https://github.com/Vasallo94/afp-protocol
· scanned 2026-06-16 00:47 UTC (2 months, 1 week ago)
7 raw signals (0 security + 7 graph)
Last scanned 2 months, 1 week ago · v1 · 6 actionable findings from 1 signal source. 1 repeated signal grouped for readability. Security checks, system graph analysis, and verified AI-agent feedback are merged into one review queue.
All 435 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 |
|---|---|---|---|
_cases |
software | healthy | tests/test_conformance_vectors.py:18 |
test_field_report_vectors |
software | healthy | tests/test_conformance_vectors.py:24 |
test_manifest_vectors |
software | healthy | tests/test_conformance_vectors.py:34 |
test_ownership_vectors |
software | healthy | tests/test_conformance_vectors.py:43 |
test_redaction_vectors |
software | healthy | tests/test_conformance_vectors.py:51 |
test_integrations_list_shows_supported_integrations |
software | healthy | tests/test_integrations_cli.py:9 |
test_install_codex_global_copies_skill |
software | healthy | tests/test_integrations_cli.py:19 |
test_install_claude_code_global_copies_skill |
software | healthy | tests/test_integrations_cli.py:32 |
test_install_cursor_project_copies_rule |
software | healthy | tests/test_integrations_cli.py:45 |
test_install_generic_requires_out |
software | healthy | tests/test_integrations_cli.py:57 |
test_install_generic_writes_prompt_block |
software | healthy | tests/test_integrations_cli.py:64 |
test_install_existing_destination_requires_force |
software | healthy | tests/test_integrations_cli.py:74 |
test_install_force_creates_backup |
software | healthy | tests/test_integrations_cli.py:89 |
_text |
software | healthy | tests/test_integration_assets.py:8 |
test_packaged_claude_code_skill_matches_source |
software | healthy | tests/test_integration_assets.py:12 |
test_packaged_cursor_rule_matches_source |
software | healthy | tests/test_integration_assets.py:21 |
test_packaged_generic_block_matches_source |
software | healthy | tests/test_integration_assets.py:28 |
test_packaged_codex_skill_exists_and_mentions_codex |
software | healthy | tests/test_integration_assets.py:35 |
test_vendored_schema_matches_canonical |
software | healthy | tests/test_spec_sync.py:17 |
test_doctor_reports_missing_manifest_and_integrations |
software | healthy | tests/test_doctor_cli.py:11 |
test_doctor_reports_valid_manifest_and_pending_drafts |
software | healthy | tests/test_doctor_cli.py:20 |
minimal_report |
software | healthy | tests/conftest.py:8 |
_good |
software | healthy | tests/test_manifest.py:8 |
test_load_manifest_ok |
software | healthy | tests/test_manifest.py:18 |
test_manifest_defaults |
software | healthy | tests/test_manifest.py:27 |
test_manifest_missing_sink_fails |
software | healthy | tests/test_manifest.py:38 |
test_manifest_invalid_subject_uri_fails |
software | healthy | tests/test_manifest.py:47 |
test_manifest_github_issues_requires_repo |
software | healthy | tests/test_manifest.py:56 |
test_manifest_accepts_gitlab_issues |
software | healthy | tests/test_manifest.py:65 |
test_manifest_gitlab_issues_requires_repo |
software | healthy | tests/test_manifest.py:76 |
test_full_flow_no_manifest_lands_in_draft |
software | healthy | tests/test_e2e.py:8 |
test_full_flow_with_manifest_allows_local |
software | healthy | tests/test_e2e.py:20 |
_kwargs |
software | healthy | tests/test_models.py:7 |
test_create_fills_generated_fields |
software | healthy | tests/test_models.py:19 |
test_to_dict_drops_none_and_serializes_enums |
software | healthy | tests/test_models.py:26 |
test_round_trip_from_dict |
software | healthy | tests/test_models.py:34 |
test_from_dict_preserves_unknown_extension_fields |
software | healthy | tests/test_models.py:42 |
test_from_dict_rejects_invalid_subject_uri |
software | healthy | tests/test_models.py:54 |
test_get_sink_local |
software | healthy | tests/test_routing.py:10 |
test_get_sink_unknown_raises |
software | healthy | tests/test_routing.py:15 |
test_route_blocks_remote_without_manifest |
software | healthy | tests/test_routing.py:20 |
_manifest |
software | healthy | tests/test_routing.py:26 |
test_route_allows_remote_with_manifest_and_matching_subject |
software | healthy | tests/test_routing.py:34 |
test_route_blocks_subject_uri_spoofing |
software | healthy | tests/test_routing.py:43 |
test_route_blocks_remote_without_report |
software | healthy | tests/test_routing.py:51 |
test_route_defaults_to_draft_when_none_requested |
software | healthy | tests/test_routing.py:58 |
test_route_allows_remote_with_subtool_fragment |
software | healthy | tests/test_routing.py:64 |
test_route_allows_remote_ignoring_purl_version |
software | healthy | tests/test_routing.py:73 |
test_route_still_blocks_different_owner_with_fragment |
software | healthy | tests/test_routing.py:86 |
_http_manifest |
software | healthy | tests/test_routing.py:96 |
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 |
README.es.md |
software | healthy | README.es.md |
CLAUDE.md |
software | healthy | CLAUDE.md |
pyproject.toml |
software | healthy | pyproject.toml |
afp.json |
software | healthy | afp.json |
LICENSE |
software | healthy | LICENSE |
AGENTS.md |
software | healthy | AGENTS.md |
AFP-INSTRUCTIONS.md |
software | healthy | integrations/generic/AFP-INSTRUCTIONS.md |
afp-report.mdc |
software | healthy | integrations/cursor/afp-report.mdc |
SKILL.md |
software | healthy | integrations/claude-code/afp-report/SKILL.md |
README.md |
software | healthy | spec/README.md |
SPEC.md |
software | healthy | spec/SPEC.md |
redaction.json |
software | healthy | spec/vectors/redaction.json |
manifest.json |
software | healthy | spec/vectors/manifest.json |
ownership.json |
software | healthy | spec/vectors/ownership.json |
field_report.json |
software | healthy | spec/vectors/field_report.json |
field_report.schema.json |
software | healthy | spec/schemas/field_report.schema.json |
afp_manifest.schema.json |
software | healthy | spec/schemas/afp_manifest.schema.json |
test_conformance_vectors.py |
software | healthy | tests/test_conformance_vectors.py |
test_integrations_cli.py |
software | healthy | tests/test_integrations_cli.py |
test_integration_assets.py |
software | healthy | tests/test_integration_assets.py |
test_spec_sync.py |
software | healthy | tests/test_spec_sync.py |
test_doctor_cli.py |
software | healthy | tests/test_doctor_cli.py |
__init__.py |
software | healthy | tests/__init__.py |
conftest.py |
software | healthy | tests/conftest.py |
test_manifest.py |
software | healthy | tests/test_manifest.py |
test_e2e.py |
software | healthy | tests/test_e2e.py |
test_models.py |
software | healthy | tests/test_models.py |
test_routing.py |
software | healthy | tests/test_routing.py |
test_drafts_discard.py |
software | healthy | tests/test_drafts_discard.py |
test_render.py |
software | healthy | tests/test_render.py |
test_sinks_draft.py |
software | healthy | tests/test_sinks_draft.py |
test_schema_file.py |
software | healthy | tests/test_schema_file.py |
test_identity.py |
software | healthy | tests/test_identity.py |
test_sinks_github.py |
software | healthy | tests/test_sinks_github.py |
test_validate.py |
software | healthy | tests/test_validate.py |
test_redact.py |
software | healthy | tests/test_redact.py |
test_init_cli.py |
software | healthy | tests/test_init_cli.py |
test_cli.py |
software | healthy | tests/test_cli.py |
test_sinks_gitlab.py |
software | healthy | tests/test_sinks_gitlab.py |
test_enums.py |
software | healthy | tests/test_enums.py |
test_idempotency.py |
software | healthy | tests/test_idempotency.py |
test_sinks_local.py |
software | healthy | tests/test_sinks_local.py |
test_discovery.py |
software | healthy | tests/test_discovery.py |
invalid_missing_required.json |
software | healthy | tests/vectors/invalid_missing_required.json |
valid_minimal.json |
software | healthy | tests/vectors/valid_minimal.json |
2026-06-11-afp-integration-manager.md |
software | healthy | docs/superpowers/plans/2026-06-11-afp-integration-manager.md |
2026-05-31-afp-gitlab-sink.md |
software | healthy | docs/superpowers/plans/2026-05-31-afp-gitlab-sink.md |
2026-06-04-afp-draft-review-signal.md |
software | healthy | docs/superpowers/plans/2026-06-04-afp-draft-review-signal.md |
2026-05-30-afp-phase1-reference-impl.md |
software | healthy | docs/superpowers/plans/2026-05-30-afp-phase1-reference-impl… |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
integrations |
software | healthy | integrations |
generic |
software | healthy | integrations/generic |
cursor |
software | healthy | integrations/cursor |
claude-code |
software | healthy | integrations/claude-code |
afp-report |
software | healthy | integrations/claude-code/afp-report |
spec |
software | healthy | spec |
vectors |
software | healthy | spec/vectors |
schemas |
software | healthy | spec/schemas |
tests |
software | healthy | tests |
vectors |
software | healthy | tests/vectors |
docs |
software | healthy | docs |
superpowers |
software | healthy | docs/superpowers |
plans |
software | healthy | docs/superpowers/plans |
specs |
software | healthy | docs/superpowers/specs |
reviews |
software | healthy | docs/reviews |
adr |
software | healthy | docs/adr |
dogfooding |
software | healthy | docs/dogfooding |
ts |
software | healthy | ts |
test |
software | healthy | ts/test |
schemas |
software | healthy | ts/schemas |
src |
software | healthy | ts/src |
.github |
software | healthy | .github |
workflows |
software | healthy | .github/workflows |
src |
software | healthy | src |
afp |
software | healthy | src/afp |
integrations |
software | healthy | src/afp/integrations |
generic |
software | healthy | src/afp/integrations/generic |
codex |
software | healthy | src/afp/integrations/codex |
afp-report |
software | healthy | src/afp/integrations/codex/afp-report |
cursor |
software | healthy | src/afp/integrations/cursor |
claude-code |
software | healthy | src/afp/integrations/claude-code |
afp-report |
software | healthy | src/afp/integrations/claude-code/afp-report |
schema |
software | healthy | src/afp/schema |
sinks |
software | healthy | src/afp/sinks |
| Label | Layer | Status | Path |
|---|---|---|---|
_CountingSink |
software | healthy | tests/test_idempotency.py:6 |
ReportInvalid |
software | healthy | ts/src/errors.ts:ReportInvalid |
ManifestInvalid |
software | healthy | ts/src/errors.ts:ManifestInvalid |
SecretDetected |
software | healthy | ts/src/errors.ts:SecretDetected |
InvalidSubjectUri |
software | healthy | ts/src/errors.ts:InvalidSubjectUri |
FrictionType |
software | healthy | src/afp/enums.py:4 |
FaultDomain |
software | healthy | src/afp/enums.py:13 |
Severity |
software | healthy | src/afp/enums.py:23 |
Confidence |
software | healthy | src/afp/enums.py:29 |
Reproducibility |
software | healthy | src/afp/enums.py:35 |
ReportInvalid |
software | healthy | src/afp/validate.py:14 |
InvalidSubjectUri |
software | healthy | src/afp/identity.py:6 |
IntegrationError |
software | healthy | src/afp/integration_manager.py:9 |
Integration |
software | healthy | src/afp/integration_manager.py:14 |
ManifestInvalid |
software | healthy | src/afp/manifest.py:13 |
Manifest |
software | healthy | src/afp/manifest.py:23 |
SecretDetected |
software | healthy | src/afp/redact.py:36 |
FieldReport |
software | healthy | src/afp/models.py:22 |
RoutingDecision |
software | healthy | src/afp/discovery.py:11 |
OnboardingError |
software | healthy | src/afp/onboarding.py:12 |
DoctorCheck |
software | healthy | src/afp/onboarding.py:17 |
GitLabIssuesSink |
software | healthy | src/afp/sinks/gitlab.py:8 |
LocalSink |
software | healthy | src/afp/sinks/local.py:7 |
SinkNotAllowed |
software | healthy | src/afp/sinks/__init__.py:15 |
Sink |
software | healthy | src/afp/sinks/base.py:1 |
GitHubIssuesSink |
software | healthy | src/afp/sinks/github.py:7 |
DraftSink |
software | healthy | src/afp/sinks/draft.py:8 |
| Label | Layer | Status | Path |
|---|---|---|---|
openai_or_anthropic_key::spec/vectors/redaction.json |
security | healthy | spec/vectors/redaction.json |
openai_or_anthropic_key::spec/vectors/redaction.json |
security | healthy | spec/vectors/redaction.json |
github_token::tests/test_validate.py |
security | healthy | tests/test_validate.py |
github_token::tests/test_redact.py |
security | healthy | tests/test_redact.py |
github_token::tests/test_redact.py |
security | healthy | tests/test_redact.py |
github_token::tests/test_redact.py |
security | healthy | tests/test_redact.py |
github_token::tests/test_cli.py |
security | healthy | tests/test_cli.py |
github_token::tests/test_cli.py |
security | healthy | tests/test_cli.py |
| Label | Layer | Status | Path |
|---|---|---|---|
auth::ts/src/redact.ts |
security | healthy | ts/src/redact.ts |
auth::src/afp/redact.py |
security | healthy | src/afp/redact.py |
auth::README.md |
security | healthy | README.md |
auth::tests/test_redact.py |
security | healthy | tests/test_redact.py |
auth::spec/vectors/redaction.json |
security | healthy | spec/vectors/redaction.json |
| Label | Layer | Status | Path |
|---|---|---|---|
test |
cicd | healthy | .github/workflows/ci.yml |
test-ts |
cicd | healthy | .github/workflows/ci.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
repobility-clone-bfdapedu |
software | healthy | /tmp/repobility-clone-bfdapedu |
| Label | Layer | Status | Path |
|---|---|---|---|
vps::aws |
hardware | healthy | spec/vectors/redaction.json |
| Label | Layer | Status | Path |
|---|---|---|---|
gha::ci |
cicd | healthy | .github/workflows/ci.yml |
This page is publicly accessible at:
https://repobility.com/scan/133abb6a-5926-46da-b0a4-5b9b0b5f1be7/
To check status programmatically (no auth required):
curl -s https://repobility.com/api/v1/public/scan/133abb6a-5926-46da-b0a4-5b9b0b5f1be7/
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.