https://github.com/Thatayotlhe04/Parallelogram
· scanned 2026-06-16 00:33 UTC (2 months, 2 weeks ago)
30 raw signals (0 security + 30 graph)
Last scanned 2 months, 2 weeks ago · v1 · 22 actionable findings from 1 signal source. 8 repeated signals grouped for readability. Security checks, system graph analysis, and verified AI-agent feedback are merged into one review queue.
All 288 nodes from the latest scan, grouped by kind. Each node is a unit the engine identified (file, function, endpoint, table…). Most users won't need this view — it's primarily for debugging the engine's graph extraction or for AI agents that want to enumerate the project structure.
| Label | Layer | Status | Path |
|---|---|---|---|
load_csp |
software | healthy | scripts/check_csp.py:30 |
effective |
software | healthy | scripts/check_csp.py:46 |
origin_allowed |
software | healthy | scripts/check_csp.py:50 |
main |
software | healthy | scripts/check_csp.py:69 |
check_url |
software | healthy | scripts/check_csp.py:73 |
check |
software | healthy | cli/smoke_fix.py:28 |
section |
software | healthy | cli/smoke_fix.py:38 |
record |
software | healthy | cli/smoke_fix.py:42 |
good |
software | healthy | cli/smoke_fix.py:138 |
check |
software | healthy | cli/smoke.py:30 |
section |
software | healthy | cli/smoke.py:40 |
record |
software | healthy | cli/smoke.py:44 |
_rules |
software | healthy | cli/tests/test_report.py:28 |
dirty |
software | healthy | cli/tests/test_report.py:45 |
clean |
software | healthy | cli/tests/test_report.py:53 |
test_summary_counts |
software | healthy | cli/tests/test_report.py:61 |
test_summary_duplicate_clusters |
software | healthy | cli/tests/test_report.py:75 |
test_summary_fix_projection_matches_fixer_semantics |
software | healthy | cli/tests/test_report.py:82 |
test_summary_token_stats_estimated |
software | healthy | cli/tests/test_report.py:93 |
test_summary_format_breakdown |
software | healthy | cli/tests/test_report.py:101 |
test_summary_detects_sharegpt_format |
software | healthy | cli/tests/test_report.py:112 |
test_report_exit_codes |
software | healthy | cli/tests/test_report.py:127 |
test_report_json_is_machine_readable |
software | healthy | cli/tests/test_report.py:132 |
test_report_markdown |
software | healthy | cli/tests/test_report.py:141 |
test_report_json_and_markdown_are_exclusive |
software | healthy | cli/tests/test_report.py:148 |
test_report_out_writes_file |
software | healthy | cli/tests/test_report.py:154 |
test_no_regression_against_own_baseline |
software | healthy | cli/tests/test_report.py:164 |
test_regression_exits_3 |
software | healthy | cli/tests/test_report.py:173 |
test_improvement_is_not_regression |
software | healthy | cli/tests/test_report.py:181 |
test_growth_alone_is_not_regression |
software | healthy | cli/tests/test_report.py:188 |
test_bad_baseline_file_fails_loudly |
software | healthy | cli/tests/test_report.py:203 |
test_compare_to_baseline_handles_old_format |
software | healthy | cli/tests/test_report.py:211 |
_record |
software | healthy | cli/tests/test_rules.py:32 |
_check |
software | healthy | cli/tests/test_rules.py:36 |
test_schema_accepts_valid_record |
software | healthy | cli/tests/test_rules.py:42 |
test_schema_flags_missing_messages |
software | healthy | cli/tests/test_rules.py:51 |
test_schema_flags_invalid_role |
software | healthy | cli/tests/test_rules.py:57 |
test_schema_flags_non_string_content |
software | healthy | cli/tests/test_rules.py:63 |
test_roles_accepts_alternating_pattern |
software | healthy | cli/tests/test_rules.py:71 |
test_roles_flags_doubled_user |
software | healthy | cli/tests/test_rules.py:81 |
test_roles_flags_ending_on_user |
software | healthy | cli/tests/test_rules.py:91 |
test_roles_flags_misplaced_system |
software | healthy | cli/tests/test_rules.py:99 |
test_empty_content_flags_whitespace_only |
software | healthy | cli/tests/test_rules.py:111 |
test_duplicates_finds_exact_match |
software | healthy | cli/tests/test_rules.py:123 |
test_duplicates_normalises_whitespace |
software | healthy | cli/tests/test_rules.py:135 |
test_encoding_flags_mojibake |
software | healthy | cli/tests/test_rules.py:147 |
test_resolve_counter_falls_back_when_no_tokenizer |
software | healthy | cli/tests/test_rules.py:159 |
test_resolve_counter_claude_has_no_offline_tokenizer |
software | healthy | cli/tests/test_rules.py:167 |
test_context_window_approximate_emits_warning_not_error |
software | healthy | cli/tests/test_rules.py:173 |
test_context_window_approximate_note_emitted_once_per_run |
software | healthy | cli/tests/test_rules.py:193 |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
README.md |
software | healthy | README.md |
MAC_SETUP_AND_PYPI.md |
software | healthy | MAC_SETUP_AND_PYPI.md |
SECURITY.md |
software | healthy | SECURITY.md |
publish-github-releases.sh |
software | healthy | scripts/publish-github-releases.sh |
check_csp.py |
software | healthy | scripts/check_csp.py |
smoke_fix.py |
software | healthy | cli/smoke_fix.py |
README.md |
software | healthy | cli/README.md |
pyproject.toml |
software | healthy | cli/pyproject.toml |
LICENSE |
software | healthy | cli/LICENSE |
CHANGELOG.md |
software | healthy | cli/CHANGELOG.md |
smoke.py |
software | healthy | cli/smoke.py |
test_report.py |
software | healthy | cli/tests/test_report.py |
test_rules.py |
software | healthy | cli/tests/test_rules.py |
tests.yml |
software | healthy | cli/.github/workflows/tests.yml |
__init__.py |
software | healthy | cli/src/parallelogram/__init__.py |
cli.py |
software | healthy | cli/src/parallelogram/cli.py |
__init__.py |
software | healthy | cli/src/parallelogram/rules/__init__.py |
duplicates.py |
software | healthy | cli/src/parallelogram/rules/duplicates.py |
schema.py |
software | healthy | cli/src/parallelogram/rules/schema.py |
encoding.py |
software | healthy | cli/src/parallelogram/rules/encoding.py |
empty_content.py |
software | healthy | cli/src/parallelogram/rules/empty_content.py |
context_window.py |
software | healthy | cli/src/parallelogram/rules/context_window.py |
roles.py |
software | healthy | cli/src/parallelogram/rules/roles.py |
__init__.py |
software | healthy | cli/src/parallelogram/formats/__init__.py |
sharegpt.py |
software | healthy | cli/src/parallelogram/formats/sharegpt.py |
auto.py |
software | healthy | cli/src/parallelogram/formats/auto.py |
openai_chat.py |
software | healthy | cli/src/parallelogram/formats/openai_chat.py |
__init__.py |
software | healthy | cli/src/parallelogram/core/__init__.py |
summary.py |
software | healthy | cli/src/parallelogram/core/summary.py |
io.py |
software | healthy | cli/src/parallelogram/core/io.py |
tokenization.py |
software | healthy | cli/src/parallelogram/core/tokenization.py |
runner.py |
software | healthy | cli/src/parallelogram/core/runner.py |
rules.py |
software | healthy | cli/src/parallelogram/core/rules.py |
fixer.py |
software | healthy | cli/src/parallelogram/core/fixer.py |
report.py |
software | healthy | cli/src/parallelogram/core/report.py |
__init__.py |
software | healthy | cli/src/parallelogram/output/__init__.py |
summary_output.py |
software | healthy | cli/src/parallelogram/output/summary_output.py |
terminal.py |
software | healthy | cli/src/parallelogram/output/terminal.py |
json_output.py |
software | healthy | cli/src/parallelogram/output/json_output.py |
styles.css |
software | healthy | landing/styles.css |
vercel.json |
software | healthy | landing/vercel.json |
README.md |
software | healthy | landing/README.md |
hero-terminal.js |
software | healthy | landing/hero-terminal.js |
terms.html |
software | healthy | landing/terms.html |
index.html |
software | healthy | landing/index.html |
privacy.html |
software | healthy | landing/privacy.html |
main.js |
software | healthy | landing/main.js |
demo.js |
software | healthy | landing/demo.js |
format-converter.md |
software | healthy | .claude/agents/format-converter.md |
release.yml |
software | healthy | .github/workflows/release.yml |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
DuplicatesRule |
software | healthy | cli/src/parallelogram/rules/duplicates.py:21 |
SchemaRule |
software | healthy | cli/src/parallelogram/rules/schema.py:18 |
EncodingRule |
software | healthy | cli/src/parallelogram/rules/encoding.py:44 |
EmptyContentRule |
software | healthy | cli/src/parallelogram/rules/empty_content.py:11 |
ContextWindowRule |
software | healthy | cli/src/parallelogram/rules/context_window.py:26 |
RolesRule |
software | healthy | cli/src/parallelogram/rules/roles.py:22 |
ParseResult |
software | healthy | cli/src/parallelogram/formats/__init__.py:22 |
DatasetSummary |
software | healthy | cli/src/parallelogram/core/summary.py:41 |
TokenCounter |
software | healthy | cli/src/parallelogram/core/tokenization.py:37 |
Runner |
software | healthy | cli/src/parallelogram/core/runner.py:9 |
Rule |
software | healthy | cli/src/parallelogram/core/rules.py:17 |
RuleRegistry |
software | healthy | cli/src/parallelogram/core/rules.py:76 |
Disposition |
software | healthy | cli/src/parallelogram/core/fixer.py:28 |
RecordOutcome |
software | healthy | cli/src/parallelogram/core/fixer.py:36 |
FixReport |
software | healthy | cli/src/parallelogram/core/fixer.py:45 |
Fixer |
software | healthy | cli/src/parallelogram/core/fixer.py:65 |
Severity |
software | healthy | cli/src/parallelogram/core/report.py:9 |
Issue |
software | healthy | cli/src/parallelogram/core/report.py:16 |
Report |
software | healthy | cli/src/parallelogram/core/report.py:28 |
on |
software | healthy | landing/main.js:on |
| Label | Layer | Status | Path |
|---|---|---|---|
scripts |
software | healthy | scripts |
cli |
software | healthy | cli |
tests |
software | healthy | cli/tests |
.github |
software | healthy | cli/.github |
workflows |
software | healthy | cli/.github/workflows |
src |
software | healthy | cli/src |
parallelogram |
software | healthy | cli/src/parallelogram |
rules |
software | healthy | cli/src/parallelogram/rules |
formats |
software | healthy | cli/src/parallelogram/formats |
core |
software | healthy | cli/src/parallelogram/core |
output |
software | healthy | cli/src/parallelogram/output |
landing |
software | healthy | landing |
.claude |
software | healthy | .claude |
agents |
software | healthy | .claude/agents |
.github |
software | healthy | .github |
workflows |
software | healthy | .github/workflows |
| Label | Layer | Status | Path |
|---|---|---|---|
gha::tests |
cicd | healthy | cli/.github/workflows/tests.yml |
gha::release |
cicd | healthy | .github/workflows/release.yml |
gha::landing-ci |
cicd | healthy | .github/workflows/landing-ci.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
test |
cicd | healthy | cli/.github/workflows/tests.yml |
publish |
cicd | healthy | .github/workflows/release.yml |
csp |
cicd | healthy | .github/workflows/landing-ci.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
repobility-clone-g5cpfpka |
software | healthy | /tmp/repobility-clone-g5cpfpka |
| Label | Layer | Status | Path |
|---|---|---|---|
vps::azure |
hardware | healthy | cli/src/parallelogram/core/tokenization.py |
This page is publicly accessible at:
https://repobility.com/scan/8e44ef54-d3a8-4b9e-9c3c-48f972e77267/
To check status programmatically (no auth required):
curl -s https://repobility.com/api/v1/public/scan/8e44ef54-d3a8-4b9e-9c3c-48f972e77267/
Important — please don't re-submit the same URL repeatedly. The submission endpoint is idempotent: re-submitting the same git URL returns this same scan_token, not a new one. To re-scan this repo, sign up free and use the dashboard.