https://github.com/squall321/report-skill
· scanned 2026-06-16 00:20 UTC (2 months, 2 weeks ago)
58 raw signals (0 security + 58 graph)
Last scanned 2 months, 2 weeks ago · v1 · 47 actionable findings from 1 signal source. 11 repeated signals grouped for readability. Security checks, system graph analysis, and verified AI-agent feedback are merged into one review queue.
All 1282 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 |
|---|---|---|---|
test_milestone_appends_and_dedupes_by_date_and_label |
software | healthy | tests/test_merge.py:17 |
test_milestone_sorts_out_of_order_new_items_by_date |
software | healthy | tests/test_merge.py:35 |
test_milestone_same_date_different_label_kept_separately |
software | healthy | tests/test_merge.py:48 |
test_bulleted_list_dedupes_exact_strings |
software | healthy | tests/test_merge.py:58 |
test_bulleted_list_case_sensitive_dedupe |
software | healthy | tests/test_merge.py:65 |
test_flowchart_dedupes_by_label |
software | healthy | tests/test_merge.py:75 |
test_row_widget_pure_append_no_dedup |
software | healthy | tests/test_merge.py:86 |
test_label_keyed_widget_last_wins_dedup |
software | healthy | tests/test_merge.py:98 |
test_comparison_dedupes_by_key |
software | healthy | tests/test_merge.py:110 |
test_quadrant_dedupes_by_id |
software | healthy | tests/test_merge.py:121 |
test_rich_text_appends_paragraph_with_double_newline |
software | healthy | tests/test_merge.py:132 |
test_rich_text_empty_new_is_noop |
software | healthy | tests/test_merge.py:139 |
test_rich_text_empty_existing_takes_new |
software | healthy | tests/test_merge.py:146 |
test_key_value_items_mode_last_wins_by_key |
software | healthy | tests/test_merge.py:156 |
test_key_value_flat_dict_mode_new_wins_per_key |
software | healthy | tests/test_merge.py:170 |
test_sankey_dedupes_nodes_by_label_and_links_by_pair |
software | healthy | tests/test_merge.py:182 |
test_network_dedupes_nodes_by_id_and_edges_by_pair |
software | healthy | tests/test_merge.py:203 |
test_progress_bar_label_merge_last_wins_value_and_max |
software | healthy | tests/test_merge.py:224 |
test_media_widget_dedupes_by_file_id |
software | healthy | tests/test_merge.py:246 |
test_media_widget_propagates_caption |
software | healthy | tests/test_merge.py:259 |
test_fallthrough_widget_pure_replace |
software | healthy | tests/test_merge.py:270 |
test_existing_none_returns_new_untouched |
software | healthy | tests/test_merge.py:282 |
test_existing_non_dict_returns_new_untouched |
software | healthy | tests/test_merge.py:288 |
test_milestone_skips_non_dict_items |
software | healthy | tests/test_merge.py:297 |
test_bulleted_list_handles_empty_new |
software | healthy | tests/test_merge.py:304 |
test_sankey_skips_links_with_missing_source_or_target |
software | healthy | tests/test_merge.py:311 |
test_is_appendable_true_for_strategy_entries |
software | healthy | tests/test_merge.py:334 |
test_is_appendable_false_for_fallthrough_widgets |
software | healthy | tests/test_merge.py:339 |
test_strategy_table_keys_are_all_unique_widgets |
software | healthy | tests/test_merge.py:343 |
send |
software | healthy | tests/_verify_mcp_stdio.py:17 |
recv |
software | healthy | tests/_verify_mcp_stdio.py:23 |
main |
software | healthy | tests/_verify_mcp_stdio.py:36 |
_clean_blocks |
software | healthy | tests/test_orchestrator.py:16 |
test_clean_input_all_ok |
software | healthy | tests/test_orchestrator.py:35 |
test_missing_block_skipped |
software | healthy | tests/test_orchestrator.py:49 |
test_severity_repair |
software | healthy | tests/test_orchestrator.py:63 |
test_unsupported_widget |
software | healthy | tests/test_orchestrator.py:80 |
test_extra_blocks_pipeline |
software | healthy | tests/test_orchestrator.py:96 |
test_extra_block_missing_id_or_type_fails |
software | healthy | tests/test_orchestrator.py:134 |
test_clean_input_does_not_mutate_inputs |
software | healthy | tests/test_orchestrator.py:148 |
test_tool_names_match_dispatch_keys |
software | healthy | tests/test_tool_dispatch_parity.py:14 |
test_tool_names_are_unique |
software | healthy | tests/test_tool_dispatch_parity.py:26 |
_ids |
software | healthy | tests/test_adapters.py:249 |
test_adapter_coverage_matches_registry |
software | healthy | tests/test_adapters.py:253 |
test_adapter_natural_input_validates |
software | healthy | tests/test_adapters.py:265 |
test_bulleted_list_rejects_none |
software | healthy | tests/test_adapters.py:286 |
test_bulleted_list_rejects_int |
software | healthy | tests/test_adapters.py:290 |
test_table_rejects_dict_without_rows |
software | healthy | tests/test_adapters.py:294 |
test_table_silently_filters_non_dict_entries |
software | healthy | tests/test_adapters.py:301 |
test_key_value_accepts_flat_dict |
software | healthy | tests/test_adapters.py:314 |
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 |
INSTALL_SKILLS.md |
software | healthy | INSTALL_SKILLS.md |
.env.example |
software | healthy | .env.example |
pyproject.toml |
software | healthy | pyproject.toml |
CHANGELOG.md |
software | healthy | CHANGELOG.md |
test_merge.py |
software | healthy | tests/test_merge.py |
_verify_mcp_stdio.py |
software | healthy | tests/_verify_mcp_stdio.py |
test_orchestrator.py |
software | healthy | tests/test_orchestrator.py |
test_tool_dispatch_parity.py |
software | healthy | tests/test_tool_dispatch_parity.py |
test_adapters.py |
software | healthy | tests/test_adapters.py |
__init__.py |
software | healthy | tests/__init__.py |
conftest.py |
software | healthy | tests/conftest.py |
_verify_chart_falsepos.py |
software | healthy | tests/_verify_chart_falsepos.py |
_verify_suggest.py |
software | healthy | tests/_verify_suggest.py |
test_builder_null_semantics.py |
software | healthy | tests/test_builder_null_semantics.py |
test_dispatch_parametrized.py |
software | healthy | tests/test_dispatch_parametrized.py |
test_cli_smoke.py |
software | healthy | tests/test_cli_smoke.py |
test_authorlocked_mapping.py |
software | healthy | tests/test_authorlocked_mapping.py |
test_fresh_machine.py |
software | healthy | tests/test_fresh_machine.py |
test_mcp_roundtrip.py |
software | healthy | tests/test_mcp_roundtrip.py |
test_widget_relations.py |
software | healthy | tests/test_widget_relations.py |
test_widget_suggest.py |
software | healthy | tests/test_widget_suggest.py |
test_structural_parity.py |
software | healthy | tests/test_structural_parity.py |
test_template_suggest.py |
software | healthy | tests/test_template_suggest.py |
test_bundle_roundtrip.py |
software | healthy | tests/test_bundle_roundtrip.py |
test_weak_llm_fixtures.py |
software | healthy | tests/test_weak_llm_fixtures.py |
test_repair.py |
software | healthy | tests/test_repair.py |
test_report_ops.py |
software | healthy | tests/test_report_ops.py |
_verify_fallback.py |
software | healthy | tests/_verify_fallback.py |
test_adapter_passthrough.py |
software | healthy | tests/test_adapter_passthrough.py |
bulleted_list_with_markdown_bullets.json |
software | healthy | tests/fixtures/weak_llm/bulleted_list_with_markdown_bullets… |
select_with_off_enum_value.json |
software | healthy | tests/fixtures/weak_llm/select_with_off_enum_value.json |
table_with_extra_columns.json |
software | healthy | tests/fixtures/weak_llm/table_with_extra_columns.json |
key_value_with_uppercase_keys.json |
software | healthy | tests/fixtures/weak_llm/key_value_with_uppercase_keys.json |
table_with_text_in_number_column.json |
software | healthy | tests/fixtures/weak_llm/table_with_text_in_number_column.js… |
key_value_with_nested_dict_values.json |
software | healthy | tests/fixtures/weak_llm/key_value_with_nested_dict_values.j… |
smartphone-2026-04.json |
software | healthy | tests/sample_drafts/smartphone-2026-04.json |
html-embed-living-memory.json |
software | healthy | tests/sample_drafts/html-embed-living-memory.json |
smartphone-2026-04-final.json |
software | healthy | tests/sample_drafts/smartphone-2026-04-final.json |
extra-page-charts.json |
software | healthy | tests/sample_drafts/extra-page-charts.json |
smartphone-2026-04-update.json |
software | healthy | tests/sample_drafts/smartphone-2026-04-update.json |
update-issues.json |
software | healthy | tests/sample_drafts/update-issues.json |
complex-3pages.json |
software | healthy | tests/sample_drafts/complex-3pages.json |
weekly-dev.json |
software | healthy | tests/sample_drafts/weekly-dev.json |
_verify_min.json |
software | healthy | tests/sample_drafts/_verify_min.json |
widget-coverage.json |
software | healthy | tests/sample_drafts/widget-coverage.json |
__init__.py |
software | healthy | tests/e2e/__init__.py |
conftest.py |
software | healthy | tests/e2e/conftest.py |
test_v0150_surface.py |
software | healthy | tests/e2e/test_v0150_surface.py |
test_lifecycle.py |
software | healthy | tests/e2e/test_lifecycle.py |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
TestAdapterErrorPaths |
software | healthy | tests/test_adapters.py:282 |
_FakeClientCtor |
software | healthy | tests/test_dispatch_parametrized.py:41 |
_FakeTierProfile |
software | healthy | tests/test_dispatch_parametrized.py:113 |
_FakePolicy |
software | healthy | tests/test_dispatch_parametrized.py:118 |
_FakeStatus |
software | healthy | tests/test_dispatch_parametrized.py:132 |
_FakeDiff |
software | healthy | tests/test_dispatch_parametrized.py:141 |
_FakeSnap |
software | healthy | tests/test_dispatch_parametrized.py:147 |
_FakeCtor |
software | healthy | tests/test_cli_smoke.py:38 |
_FakeClientCtor |
software | healthy | tests/test_authorlocked_mapping.py:93 |
_Ctor |
software | healthy | tests/test_fresh_machine.py:221 |
_FakeClientCtor |
software | healthy | tests/test_mcp_roundtrip.py:51 |
_FakeClientCtor |
software | healthy | tests/test_widget_relations.py:28 |
ValidationIssue |
software | healthy | src/report_skill/validate.py:18 |
ApiError |
software | healthy | src/report_skill/client.py:34 |
AuthorLockedError |
software | healthy | src/report_skill/client.py:41 |
NetworkUnreachableError |
software | healthy | src/report_skill/client.py:64 |
AuthUnavailableError |
software | healthy | src/report_skill/client.py:80 |
LockHeldByOtherError |
software | healthy | src/report_skill/client.py:102 |
LockNotHeldError |
software | healthy | src/report_skill/client.py:117 |
RevisionMismatchError |
software | healthy | src/report_skill/client.py:127 |
CompositeRevisionConflict |
software | healthy | src/report_skill/client.py:142 |
FinalizedReadOnlyError |
software | healthy | src/report_skill/client.py:162 |
NoEditPermissionError |
software | healthy | src/report_skill/client.py:177 |
OutOfWorkspaceScopeError |
software | healthy | src/report_skill/client.py:194 |
ShareSetupForbiddenError |
software | healthy | src/report_skill/client.py:207 |
BoardShareForbiddenError |
software | healthy | src/report_skill/client.py:222 |
TrashRestoreForbiddenError |
software | healthy | src/report_skill/client.py:237 |
TakedownManagerForbiddenError |
software | healthy | src/report_skill/client.py:253 |
TakedownOwnerForbiddenError |
software | healthy | src/report_skill/client.py:269 |
TakedownAlreadyProcessedError |
software | healthy | src/report_skill/client.py:284 |
MountForbiddenError |
software | healthy | src/report_skill/client.py:305 |
MountTargetInvalidError |
software | healthy | src/report_skill/client.py:316 |
ReportStillMountedError |
software | healthy | src/report_skill/client.py:327 |
CompositePresetPermissionError |
software | healthy | src/report_skill/client.py:339 |
ReportArchiveClient |
software | healthy | src/report_skill/client.py:361 |
TierProfile |
software | healthy | src/report_skill/tier.py:40 |
TierPolicy |
software | healthy | src/report_skill/tier.py:51 |
SnapshotMissing |
software | healthy | src/report_skill/schemas.py:9 |
ConfigError |
software | healthy | src/report_skill/mcp_server.py:147 |
BlockSpec |
software | healthy | src/report_skill/prompt.py:35 |
ConfigError |
software | healthy | src/report_skill/config.py:21 |
Settings |
software | healthy | src/report_skill/config.py:92 |
_SettingsProxy |
software | healthy | src/report_skill/config.py:139 |
LLMError |
software | healthy | src/report_skill/llm.py:34 |
LLMProvider |
software | healthy | src/report_skill/llm.py:41 |
AnthropicProvider |
software | healthy | src/report_skill/llm.py:63 |
OpenAIProvider |
software | healthy | src/report_skill/llm.py:160 |
OllamaProvider |
software | healthy | src/report_skill/llm.py:215 |
BridgeProvider |
software | healthy | src/report_skill/llm.py:271 |
BlockReport |
software | healthy | src/report_skill/orchestrator.py:23 |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
tests |
software | healthy | tests |
fixtures |
software | healthy | tests/fixtures |
weak_llm |
software | healthy | tests/fixtures/weak_llm |
sample_drafts |
software | healthy | tests/sample_drafts |
e2e |
software | healthy | tests/e2e |
docs |
software | healthy | docs |
scripts |
software | healthy | scripts |
.claude |
software | healthy | .claude |
skills |
software | healthy | .claude/skills |
widgets-sync |
software | healthy | .claude/skills/widgets-sync |
bridge-process |
software | healthy | .claude/skills/bridge-process |
report-write |
software | healthy | .claude/skills/report-write |
reference |
software | healthy | .claude/skills/report-write/reference |
examples |
software | healthy | examples |
bridge |
software | healthy | bridge |
src |
software | healthy | src |
report_skill |
software | healthy | src/report_skill |
adapters |
software | healthy | src/report_skill/adapters |
| Label | Layer | Status | Path |
|---|---|---|---|
repobility-clone-ti7652cb |
software | healthy | /tmp/repobility-clone-ti7652cb |
| Label | Layer | Status | Path |
|---|---|---|---|
postgresql |
data | healthy | tests/test_orchestrator.py |
| Label | Layer | Status | Path |
|---|---|---|---|
10.0.5.42 |
network | healthy | README.md |
| Label | Layer | Status | Path |
|---|---|---|---|
auth::src/report_skill/client.py |
security | healthy | src/report_skill/client.py |
This page is publicly accessible at:
https://repobility.com/scan/5aea3b1b-a01d-45cd-a818-2f58a6eaae58/
To check status programmatically (no auth required):
curl -s https://repobility.com/api/v1/public/scan/5aea3b1b-a01d-45cd-a818-2f58a6eaae58/
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.