https://github.com/stbenjam/skillsaw
· scanned 2026-06-16 00:21 UTC (2 months, 2 weeks ago)
99 raw signals (0 security + 99 graph)
Last scanned 2 months, 2 weeks ago · v1 · 52 actionable findings from 1 signal source. 47 repeated signals grouped for readability. Security checks, system graph analysis, and verified AI-agent feedback are merged into one review queue.
All 4043 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 |
|---|---|---|---|
_make_context |
software | healthy | tests/test_prompt_dogfood.py:34 |
_rules_with_prompts |
software | healthy | tests/test_prompt_dogfood.py:46 |
test_prompt_passes_content_rules |
software | healthy | tests/test_prompt_dogfood.py:59 |
test_detect_single_skill |
software | healthy | tests/test_agentskill_rules.py:24 |
test_detect_skill_collection |
software | healthy | tests/test_agentskill_rules.py:36 |
test_detect_standard_discovery_path |
software | healthy | tests/test_agentskill_rules.py:51 |
test_detect_github_skills_path |
software | healthy | tests/test_agentskill_rules.py:64 |
test_detect_nested_skill_collection |
software | healthy | tests/test_agentskill_rules.py:77 |
test_detect_not_agentskills |
software | healthy | tests/test_agentskill_rules.py:92 |
test_plugin_repo_discovers_embedded_skills |
software | healthy | tests/test_agentskill_rules.py:102 |
test_plugin_takes_priority_over_agentskills |
software | healthy | tests/test_agentskill_rules.py:120 |
test_valid_skill_passes |
software | healthy | tests/test_agentskill_rules.py:136 |
test_missing_skill_md_fails |
software | healthy | tests/test_agentskill_rules.py:146 |
test_missing_frontmatter_fails |
software | healthy | tests/test_agentskill_rules.py:164 |
test_missing_name_fails |
software | healthy | tests/test_agentskill_rules.py:175 |
test_missing_description_fails |
software | healthy | tests/test_agentskill_rules.py:187 |
test_name_too_long_fails |
software | healthy | tests/test_agentskill_rules.py:197 |
test_description_too_long_checked_by_description_rule |
software | healthy | tests/test_agentskill_rules.py:210 |
test_name_valid_passes |
software | healthy | tests/test_agentskill_rules.py:229 |
test_name_with_numbers_passes |
software | healthy | tests/test_agentskill_rules.py:239 |
test_name_single_char_passes |
software | healthy | tests/test_agentskill_rules.py:249 |
test_name_uppercase_fails |
software | healthy | tests/test_agentskill_rules.py:259 |
test_name_consecutive_hyphens_fails |
software | healthy | tests/test_agentskill_rules.py:271 |
test_name_trailing_hyphen_fails |
software | healthy | tests/test_agentskill_rules.py:282 |
test_name_dir_mismatch_fails |
software | healthy | tests/test_agentskill_rules.py:292 |
test_name_at_root_skips_dir_check |
software | healthy | tests/test_agentskill_rules.py:306 |
test_description_valid_passes |
software | healthy | tests/test_agentskill_rules.py:321 |
test_description_whitespace_only_fails |
software | healthy | tests/test_agentskill_rules.py:333 |
test_description_over_limit_warns |
software | healthy | tests/test_agentskill_rules.py:344 |
test_structure_known_dirs_pass |
software | healthy | tests/test_agentskill_rules.py:359 |
test_structure_unknown_dir_warns |
software | healthy | tests/test_agentskill_rules.py:371 |
test_structure_custom_allowed_dirs |
software | healthy | tests/test_agentskill_rules.py:383 |
test_structure_ignores_dotdirs |
software | healthy | tests/test_agentskill_rules.py:398 |
test_structure_ignores_files |
software | healthy | tests/test_agentskill_rules.py:409 |
test_evals_required_disabled_by_default |
software | healthy | tests/test_agentskill_rules.py:424 |
test_evals_required_default_severity_is_error |
software | healthy | tests/test_agentskill_rules.py:432 |
test_evals_required_fails_when_missing |
software | healthy | tests/test_agentskill_rules.py:438 |
test_evals_required_passes_when_present |
software | healthy | tests/test_agentskill_rules.py:449 |
test_evals_default_severity_is_error |
software | healthy | tests/test_agentskill_rules.py:465 |
test_evals_valid_passes |
software | healthy | tests/test_agentskill_rules.py:471 |
test_evals_no_evals_dir_skips |
software | healthy | tests/test_agentskill_rules.py:499 |
test_evals_dir_without_json_warns |
software | healthy | tests/test_agentskill_rules.py:509 |
test_evals_invalid_json_fails |
software | healthy | tests/test_agentskill_rules.py:521 |
test_evals_missing_evals_array_fails |
software | healthy | tests/test_agentskill_rules.py:535 |
test_evals_entry_missing_id_warns |
software | healthy | tests/test_agentskill_rules.py:548 |
test_evals_entry_missing_prompt_warns |
software | healthy | tests/test_agentskill_rules.py:561 |
test_evals_bad_assertions_type_warns |
software | healthy | tests/test_agentskill_rules.py:574 |
test_evals_assertions_not_strings_warns |
software | healthy | tests/test_agentskill_rules.py:589 |
test_evals_duplicate_ids_warns |
software | healthy | tests/test_agentskill_rules.py:604 |
test_evals_skill_name_mismatch_warns |
software | healthy | tests/test_agentskill_rules.py:627 |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
action.yml |
software | healthy | action.yml |
requirements-dev.txt |
software | healthy | requirements-dev.txt |
mkdocs.yml |
software | healthy | mkdocs.yml |
apm.yml |
software | healthy | apm.yml |
DEVELOPMENT.md |
software | healthy | DEVELOPMENT.md |
README.md |
software | healthy | README.md |
CLAUDE.md |
software | healthy | CLAUDE.md |
CONTRIBUTING.md |
software | healthy | CONTRIBUTING.md |
.skillsaw-badge.json |
software | healthy | .skillsaw-badge.json |
Dockerfile |
software | healthy | Dockerfile |
THREAT_MODEL.md |
software | healthy | THREAT_MODEL.md |
.coderabbit.yaml |
software | healthy | .coderabbit.yaml |
pyproject.toml |
software | healthy | pyproject.toml |
Makefile |
software | healthy | Makefile |
.skillsaw.yaml |
software | healthy | .skillsaw.yaml |
LICENSE |
software | healthy | LICENSE |
requirements.txt |
software | healthy | requirements.txt |
AGENTS.md |
software | healthy | AGENTS.md |
.pre-commit-hooks.yaml |
software | healthy | .pre-commit-hooks.yaml |
TODO.md |
software | healthy | TODO.md |
test_prompt_dogfood.py |
software | healthy | tests/test_prompt_dogfood.py |
test_agentskill_rules.py |
software | healthy | tests/test_agentskill_rules.py |
test_pre_commit_hooks.py |
software | healthy | tests/test_pre_commit_hooks.py |
test_marketplace_integration.py |
software | healthy | tests/test_marketplace_integration.py |
test_integration.py |
software | healthy | tests/test_integration.py |
test_content_rules.py |
software | healthy | tests/test_content_rules.py |
__init__.py |
software | healthy | tests/__init__.py |
test_autofix.py |
software | healthy | tests/test_autofix.py |
conftest.py |
software | healthy | tests/conftest.py |
test_action_review.py |
software | healthy | tests/test_action_review.py |
test_perf_helpers.py |
software | healthy | tests/test_perf_helpers.py |
test_content_analysis.py |
software | healthy | tests/test_content_analysis.py |
test_formatters.py |
software | healthy | tests/test_formatters.py |
test_llm.py |
software | healthy | tests/test_llm.py |
test_parallel.py |
software | healthy | tests/test_parallel.py |
test_llm_integration.py |
software | healthy | tests/test_llm_integration.py |
test_yaml_line_numbers_integration.py |
software | healthy | tests/test_yaml_line_numbers_integration.py |
test_explain.py |
software | healthy | tests/test_explain.py |
test_promptfoo_rules.py |
software | healthy | tests/test_promptfoo_rules.py |
test_docs.py |
software | healthy | tests/test_docs.py |
test_config.py |
software | healthy | tests/test_config.py |
test_apm_rules.py |
software | healthy | tests/test_apm_rules.py |
test_openclaw_rules.py |
software | healthy | tests/test_openclaw_rules.py |
test_utils.py |
software | healthy | tests/test_utils.py |
test_context.py |
software | healthy | tests/test_context.py |
test_baseline.py |
software | healthy | tests/test_baseline.py |
test_instruction_file_rules.py |
software | healthy | tests/test_instruction_file_rules.py |
test_json_null_handling.py |
software | healthy | tests/test_json_null_handling.py |
test_settings_rules.py |
software | healthy | tests/test_settings_rules.py |
test_rules_dir.py |
software | healthy | tests/test_rules_dir.py |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
TestMarketplaceScaffolding |
software | healthy | tests/test_marketplace_integration.py:19 |
TestStandaloneSkillCreation |
software | healthy | tests/test_marketplace_integration.py:115 |
ExpectedViolation |
software | healthy | tests/test_integration.py:93 |
TestSinglePlugin |
software | healthy | tests/test_integration.py:170 |
TestHooksJson |
software | healthy | tests/test_integration.py:227 |
TestSupplyChainHooks |
software | healthy | tests/test_integration.py:241 |
TestRootLevelMcp |
software | healthy | tests/test_integration.py:263 |
TestMarketplace |
software | healthy | tests/test_integration.py:287 |
TestAgentskills |
software | healthy | tests/test_integration.py:314 |
TestFilePathArgument |
software | healthy | tests/test_integration.py:346 |
TestMultiplePaths |
software | healthy | tests/test_integration.py:385 |
TestFixMultiplePaths |
software | healthy | tests/test_integration.py:738 |
TestCursorRules |
software | healthy | tests/test_integration.py:815 |
TestDotClaude |
software | healthy | tests/test_integration.py:831 |
TestCodeRabbit |
software | healthy | tests/test_integration.py:884 |
TestApm |
software | healthy | tests/test_integration.py:907 |
TestPromptfoo |
software | healthy | tests/test_integration.py:947 |
TestSuppression |
software | healthy | tests/test_integration.py:966 |
TestConfigFeatures |
software | healthy | tests/test_integration.py:1012 |
TestExitCodes |
software | healthy | tests/test_integration.py:1058 |
TestOutputFormats |
software | healthy | tests/test_integration.py:1100 |
TestAssertDirectives |
software | healthy | tests/test_integration.py:1182 |
TestRuleCoverage |
software | healthy | tests/test_integration.py:1256 |
TestOptInRules |
software | healthy | tests/test_integration.py:1298 |
TestRequiredFieldsConfig |
software | healthy | tests/test_integration.py:1322 |
TestUnlinkedInternalReferenceAutofix |
software | healthy | tests/test_integration.py:1381 |
TestSafeAutofixIdempotency |
software | healthy | tests/test_integration.py:1611 |
TestRuleFilter |
software | healthy | tests/test_integration.py:1817 |
TestNoCustomRulesRenameBypass |
software | healthy | tests/test_integration.py:1899 |
TestBaseline |
software | healthy | tests/test_integration.py:1955 |
TestApplyPatch |
software | healthy | tests/test_integration.py:2057 |
TestRuleCrashExitCode |
software | healthy | tests/test_integration.py:2300 |
TestMarkdownAstRegressions |
software | healthy | tests/test_integration.py:2318 |
TestJsonConfigNotContent |
software | healthy | tests/test_integration.py:2412 |
TestContentWeakLanguageRule |
software | healthy | tests/test_content_rules.py:43 |
TestContentTautologicalRule |
software | healthy | tests/test_content_rules.py:121 |
TestContentCriticalPositionRule |
software | healthy | tests/test_content_rules.py:142 |
TestContentRedundantWithToolingRule |
software | healthy | tests/test_content_rules.py:181 |
TestContentInstructionBudgetRule |
software | healthy | tests/test_content_rules.py:202 |
TestContentNegativeOnlyRule |
software | healthy | tests/test_content_rules.py:227 |
TestContentSectionLengthRule |
software | healthy | tests/test_content_rules.py:359 |
TestContentContradictionRule |
software | healthy | tests/test_content_rules.py:400 |
TestContentHookCandidateRule |
software | healthy | tests/test_content_rules.py:464 |
TestContentActionabilityScoreRule |
software | healthy | tests/test_content_rules.py:490 |
TestContentCognitiveChunksRule |
software | healthy | tests/test_content_rules.py:518 |
TestContentEmbeddedSecretsRule |
software | healthy | tests/test_content_rules.py:596 |
TestContentBannedReferencesRule |
software | healthy | tests/test_content_rules.py:711 |
TestContentInconsistentTerminologyRule |
software | healthy | tests/test_content_rules.py:741 |
TestContentBrokenInternalReferenceRule |
software | healthy | tests/test_content_rules.py:771 |
TestContentUnlinkedInternalReferenceRule |
software | healthy | tests/test_content_rules.py:883 |
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 |
cursor-rules |
software | healthy | tests/fixtures/cursor-rules |
broken |
software | healthy | tests/fixtures/cursor-rules/broken |
.cursor |
software | healthy | tests/fixtures/cursor-rules/broken/.cursor |
rules |
software | healthy | tests/fixtures/cursor-rules/broken/.cursor/rules |
suppression |
software | healthy | tests/fixtures/suppression |
multi-rule |
software | healthy | tests/fixtures/suppression/multi-rule |
commands |
software | healthy | tests/fixtures/suppression/multi-rule/commands |
single-rule |
software | healthy | tests/fixtures/suppression/single-rule |
commands |
software | healthy | tests/fixtures/suppression/single-rule/commands |
all-rules |
software | healthy | tests/fixtures/suppression/all-rules |
commands |
software | healthy | tests/fixtures/suppression/all-rules/commands |
next-line |
software | healthy | tests/fixtures/suppression/next-line |
commands |
software | healthy | tests/fixtures/suppression/next-line/commands |
marketplace |
software | healthy | tests/fixtures/marketplace |
clean |
software | healthy | tests/fixtures/marketplace/clean |
plugins |
software | healthy | tests/fixtures/marketplace/clean/plugins |
log-analyzer |
software | healthy | tests/fixtures/marketplace/clean/plugins/log-analyzer |
commands |
software | healthy | tests/fixtures/marketplace/clean/plugins/log-analyzer/comma… |
agents |
software | healthy | tests/fixtures/marketplace/clean/plugins/log-analyzer/agents |
skills |
software | healthy | tests/fixtures/marketplace/clean/plugins/log-analyzer/skills |
log-search |
software | healthy | tests/fixtures/marketplace/clean/plugins/log-analyzer/skill… |
widget-maker |
software | healthy | tests/fixtures/marketplace/clean/plugins/widget-maker |
commands |
software | healthy | tests/fixtures/marketplace/clean/plugins/widget-maker/comma… |
skills |
software | healthy | tests/fixtures/marketplace/clean/plugins/widget-maker/skills |
widget-lint |
software | healthy | tests/fixtures/marketplace/clean/plugins/widget-maker/skill… |
data-fetcher |
software | healthy | tests/fixtures/marketplace/clean/plugins/data-fetcher |
commands |
software | healthy | tests/fixtures/marketplace/clean/plugins/data-fetcher/comma… |
broken |
software | healthy | tests/fixtures/marketplace/broken |
plugins |
software | healthy | tests/fixtures/marketplace/broken/plugins |
no-json |
software | healthy | tests/fixtures/marketplace/broken/plugins/no-json |
commands |
software | healthy | tests/fixtures/marketplace/broken/plugins/no-json/commands |
widget-maker |
software | healthy | tests/fixtures/marketplace/broken/plugins/widget-maker |
commands |
software | healthy | tests/fixtures/marketplace/broken/plugins/widget-maker/comm… |
orphan-tool |
software | healthy | tests/fixtures/marketplace/broken/plugins/orphan-tool |
commands |
software | healthy | tests/fixtures/marketplace/broken/plugins/orphan-tool/comma… |
config |
software | healthy | tests/fixtures/config |
per-rule-exclude |
software | healthy | tests/fixtures/config/per-rule-exclude |
commands |
software | healthy | tests/fixtures/config/per-rule-exclude/commands |
opt-in-rules |
software | healthy | tests/fixtures/config/opt-in-rules |
commands |
software | healthy | tests/fixtures/config/opt-in-rules/commands |
.claude |
software | healthy | tests/fixtures/config/opt-in-rules/.claude |
commands |
software | healthy | tests/fixtures/config/opt-in-rules/.claude/commands |
skills |
software | healthy | tests/fixtures/config/opt-in-rules/skills |
my-skill |
software | healthy | tests/fixtures/config/opt-in-rules/skills/my-skill |
extras |
software | healthy | tests/fixtures/config/opt-in-rules/skills/my-skill/extras |
evals |
software | healthy | tests/fixtures/config/opt-in-rules/skills/my-skill/evals |
content-paths |
software | healthy | tests/fixtures/config/content-paths |
commands |
software | healthy | tests/fixtures/config/content-paths/commands |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
analyze |
cicd | healthy | .github/workflows/codeql.yml |
test |
cicd | healthy | .github/workflows/test.yml |
lint |
cicd | healthy | .github/workflows/test.yml |
verify-update |
cicd | healthy | .github/workflows/test.yml |
integration |
cicd | healthy | .github/workflows/test.yml |
self-lint |
cicd | healthy | .github/workflows/test-action.yml |
build-and-push |
cicd | healthy | .github/workflows/docker.yml |
panel-review |
cicd | healthy | .github/workflows/skillsaw-review-panel.yml |
scout |
cicd | healthy | .github/workflows/skillsaw-ecosystem-scout.yml |
build |
cicd | healthy | .github/workflows/release.yml |
publish |
cicd | healthy | .github/workflows/release.yml |
build |
cicd | healthy | .github/workflows/pages.yml |
deploy |
cicd | healthy | .github/workflows/pages.yml |
llm-integration |
cicd | healthy | .github/workflows/test-llm-integration.yml |
maintenance |
cicd | healthy | .github/workflows/skillsaw-maintenance.yml |
issue-solver |
cicd | healthy | .github/workflows/skillsaw-issue-solver.yml |
pr-review |
cicd | healthy | .github/workflows/skillsaw-pr-review.yml |
promptfoo-compat |
cicd | healthy | .github/workflows/test-promptfoo-compat.yml |
review |
cicd | healthy | .github/workflows/test-action-review.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
gha::codeql |
cicd | healthy | .github/workflows/codeql.yml |
gha::test |
cicd | healthy | .github/workflows/test.yml |
gha::test-action |
cicd | healthy | .github/workflows/test-action.yml |
gha::docker |
cicd | healthy | .github/workflows/docker.yml |
gha::skillsaw-review-panel |
cicd | healthy | .github/workflows/skillsaw-review-panel.yml |
gha::skillsaw-ecosystem-scout |
cicd | healthy | .github/workflows/skillsaw-ecosystem-scout.yml |
gha::release |
cicd | healthy | .github/workflows/release.yml |
gha::pages |
cicd | healthy | .github/workflows/pages.yml |
gha::test-llm-integration |
cicd | healthy | .github/workflows/test-llm-integration.yml |
gha::skillsaw-maintenance |
cicd | healthy | .github/workflows/skillsaw-maintenance.yml |
gha::skillsaw-issue-solver |
cicd | healthy | .github/workflows/skillsaw-issue-solver.yml |
gha::skillsaw-pr-review |
cicd | healthy | .github/workflows/skillsaw-pr-review.yml |
gha::test-promptfoo-compat |
cicd | healthy | .github/workflows/test-promptfoo-compat.yml |
gha::test-action-review |
cicd | healthy | .github/workflows/test-action-review.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
auth::src/skillsaw/rules/builtin/content/embedded_secrets.py |
security | healthy | src/skillsaw/rules/builtin/content/embedded_secrets.py |
auth::.github/workflows/test.yml |
security | healthy | .github/workflows/test.yml |
auth::.claude/skills/skillsaw-release/SKILL.md |
security | healthy | .claude/skills/skillsaw-release/SKILL.md |
auth::tests/test_content_rules.py |
security | healthy | tests/test_content_rules.py |
auth::src/skillsaw/rules/builtin/mcp/valid_json.py |
security | healthy | src/skillsaw/rules/builtin/mcp/valid_json.py |
auth::tests/test_llm_integration.py |
security | healthy | tests/test_llm_integration.py |
auth::.github/skills/skillsaw-release/SKILL.md |
security | healthy | .github/skills/skillsaw-release/SKILL.md |
auth::src/skillsaw/rules/builtin/content_analysis.py |
security | healthy | src/skillsaw/rules/builtin/content_analysis.py |
auth::.cursor/skills/skillsaw-release/SKILL.md |
security | healthy | .cursor/skills/skillsaw-release/SKILL.md |
auth::tests/test_mcp_rules.py |
security | healthy | tests/test_mcp_rules.py |
| Label | Layer | Status | Path |
|---|---|---|---|
CLAUDE_CODE_OAUTH_TOKEN |
cicd | healthy | — |
IMAGE_NAME |
cicd | healthy | — |
CODECOV_TOKEN |
cicd | healthy | — |
GITHUB_TOKEN |
cicd | healthy | — |
OPENROUTER_API_KEY |
cicd | healthy | — |
REGISTRY |
cicd | healthy | — |
| Label | Layer | Status | Path |
|---|---|---|---|
github_token::tests/test_content_rules.py |
security | healthy | tests/test_content_rules.py |
password_literal::tests/test_content_rules.py |
security | healthy | tests/test_content_rules.py |
password_literal::tests/test_perf_helpers.py |
security | healthy | tests/test_perf_helpers.py |
| Label | Layer | Status | Path |
|---|---|---|---|
repobility-clone-lv_uomb3 |
software | healthy | /tmp/repobility-clone-lv_uomb3 |
| Label | Layer | Status | Path |
|---|---|---|---|
redis |
data | healthy | tests/test_llm_integration.py |
| Label | Layer | Status | Path |
|---|---|---|---|
rabbitmq |
data | healthy | tests/test_llm_integration.py |
| Label | Layer | Status | Path |
|---|---|---|---|
1.0.0.0 |
network | healthy | tests/test_rules.py |
| Label | Layer | Status | Path |
|---|---|---|---|
image::Dockerfile |
hardware | healthy | Dockerfile |
| Label | Layer | Status | Path |
|---|---|---|---|
vps::aws |
hardware | healthy | README.md |
This page is publicly accessible at:
https://repobility.com/scan/e010a334-2c2b-4a91-80d5-4815b6f15b26/
To check status programmatically (no auth required):
curl -s https://repobility.com/api/v1/public/scan/e010a334-2c2b-4a91-80d5-4815b6f15b26/
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.