Not in the top 1,000 by GitHub stars

armelhbobdad/bmad-module-skill-forge

A standalone BMAD module that transforms code repositories, documentation websites, and developer discourse into agentskills.io-compliant, version-pinned, provenance-backed agent skills.

History

Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.

View weekly changes

src/skf-analyze-source/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 96ae82bdd228

No earlier version was observed for comparison.

Compare on GitHub

src/skf-audit-skill/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 96ae82bdd228

No earlier version was observed for comparison.

Compare on GitHub

src/skf-brief-skill/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 96ae82bdd228

No earlier version was observed for comparison.

Compare on GitHub

src/skf-campaign/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 96ae82bdd228

No earlier version was observed for comparison.

Compare on GitHub

src/skf-create-skill/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 96ae82bdd228

No earlier version was observed for comparison.

Compare on GitHub

src/skf-create-stack-skill/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 96ae82bdd228

No earlier version was observed for comparison.

Compare on GitHub

src/skf-drop-skill/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 96ae82bdd228

No earlier version was observed for comparison.

Compare on GitHub

src/skf-export-skill/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 96ae82bdd228

No earlier version was observed for comparison.

Compare on GitHub

src/skf-forger/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 96ae82bdd228

No earlier version was observed for comparison.

Compare on GitHub

src/skf-quick-skill/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 96ae82bdd228

No earlier version was observed for comparison.

Compare on GitHub

src/skf-refine-architecture/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 96ae82bdd228

No earlier version was observed for comparison.

Compare on GitHub

src/skf-rename-skill/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 96ae82bdd228

No earlier version was observed for comparison.

Compare on GitHub

src/skf-setup/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 96ae82bdd228

No earlier version was observed for comparison.

Compare on GitHub

src/skf-test-skill/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 96ae82bdd228

No earlier version was observed for comparison.

Compare on GitHub

src/skf-update-skill/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 96ae82bdd228

No earlier version was observed for comparison.

Compare on GitHub

src/skf-verify-stack/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 96ae82bdd228

No earlier version was observed for comparison.

Compare on GitHub

View on GitHubAdd to my skills

Verified commit 96ae82bdd228488c80d4edf7973ae0f3c0b9e956

git clone --filter=blob:none --no-checkout https://github.com/armelhbobdad/bmad-module-skill-forge.git .hotskills/armelhbobdad-bmad-module-skill-forge && git -C .hotskills/armelhbobdad-bmad-module-skill-forge checkout --detach 96ae82bdd228488c80d4edf7973ae0f3c0b9e956 # Copy each selected skill directory from .hotskills/armelhbobdad-bmad-module-skill-forge into .claude/skills/<skill-name>/
100GitHub stars
1star in 7 days
16skills in this repository
296commits in 30 days

Heat

3.3
  • Star growth, last 7 daysNot available
  • Star growth, last 24 hoursNot available
  • Rank movement, last 7 daysNot available
  • Commits, last 30 daysNot available
  • Accounts asking about it through MCP, last 7 daysNot available
  • Hot votes this weekNot available

Heat never changes the order by stars, and sponsorship never touches it. How heat works

Stars over time

Oct 25, 2026Nov 3, 2026100

30-day change not yet available: not enough history.

Individual skills in this repository

How it works

skf-analyze-source

When your agent uses it

Discover what to skill in a large repo and produce recommended skill briefs. Use when the user requests to "analyze source for skills" or "discover skill opportunities."

What it loads into context

Frontmatter

43 tokens

Always available to the agent

SKILL.md

2,937 tokens

When the skill is activated

Reference documents

596,347 tokens

Loaded on request

Token counts are estimates. Scripts run separately; they are not counted as reference context.

The playbook

  1. Overview
  2. Conventions
  3. Role
  4. Workflow Rules
  5. Stages
  6. Invocation Contract
  7. On Activation

Scripts executed separately

  • ../skf-audit-skill/scripts/render-drift-tables.py
  • ../skf-create-skill/scripts/scan-doc-rot.py
  • ../skf-drop-skill/scripts/dir-sizes.py
  • ../skf-drop-skill/scripts/drop-roster.py
  • ../skf-forger/scripts/forge-status.py
  • ../skf-forger/scripts/parse-pipeline.py
  • ../skf-forger/scripts/pipeline-gate.py
  • ../skf-forger/scripts/pipeline-journal.py
  • ../skf-refine-architecture/scripts/skf-check-preservation.py
  • ../skf-rename-skill/scripts/skf-validate-rename-name.py
  • ../skf-test-skill/scripts/aggregate-coherence.py
  • ../skf-test-skill/scripts/build-result-context.py
  • ../skf-test-skill/scripts/check-metadata-coherence.py
  • ../skf-test-skill/scripts/combine-external-scores.py
  • ../skf-test-skill/scripts/compute-score.py
  • ../skf-test-skill/scripts/gap-ledger.py
  • ../skf-test-skill/scripts/hard-gate.py
  • ../skf-test-skill/scripts/load-coverage-inputs.py
  • ../skf-test-skill/scripts/locate-export-segments.py
  • ../skf-test-skill/scripts/reconcile-coverage.py
  • ../skf-test-skill/scripts/score-signatures.py
  • ../skf-test-skill/scripts/stage-helper-payload.py
  • ../skf-test-skill/scripts/validate-inventory.py
  • ../skf-test-skill/scripts/verify-declared-numerator.py
  • ../skf-update-skill/scripts/skf-new-file-diff.py
  • ../skf-verify-stack/scripts/skf-coverage-tally.py
  • ../skf-verify-stack/scripts/skf-previous-report.py
  • ../skf-verify-stack/scripts/skf-report-delta.py
  • ../skf-verify-stack/scripts/skf-verdict-rollup.py

Files

  • ../../.claude-plugin/marketplace.jsonasset1,507 bytes
  • SKILL.mdcore11,943 bytes
  • SKILL.mdcore11,943 bytes
  • SKILL.mdcore11,943 bytes
  • SKILL.mdcore11,943 bytes
  • SKILL.mdcore11,943 bytes
  • SKILL.mdcore11,943 bytes
  • SKILL.mdcore11,943 bytes
  • assets/skill-brief-schema.mddoc13,847 bytes
  • customize.tomlasset2,994 bytes
  • references/auto-docs-only.mddoc8,350 bytes
  • references/continue.mddoc2,084 bytes
  • references/discover-additional-source.mddoc11,287 bytes
  • references/generate-briefs.mddoc19,114 bytes
  • references/headless-contract.mddoc9,453 bytes
  • references/health-check.mddoc804 bytes
  • references/identify-units.mddoc15,327 bytes
  • references/init.mddoc14,717 bytes
  • references/map-and-detect.mddoc16,795 bytes
  • references/map-unit-exports.mddoc6,342 bytes
  • references/recommend.mddoc9,172 bytes
  • references/scan-project.mddoc8,425 bytes
  • references/scan-root.mddoc3,160 bytes
  • references/step-auto-scope-coexistence.mddoc3,668 bytes
  • references/step-auto-scope-corpora.mddoc4,436 bytes
  • references/step-auto-scope-split.mddoc6,355 bytes
  • references/step-auto-scope.mddoc34,716 bytes
  • references/step-shape-detect.mddoc7,902 bytes
  • references/unit-detection-heuristics.mddoc12,056 bytes
  • templates/analysis-report-template.mddoc583 bytes
  • ../skf-audit-skill/SKILL.mddoc9,944 bytes
  • ../skf-audit-skill/assets/drift-report-template.mddoc2,307 bytes
  • ../skf-audit-skill/customize.tomlasset3,351 bytes
  • ../skf-audit-skill/references/constituent-freshness.mddoc5,404 bytes
  • ../skf-audit-skill/references/doc-drift.mddoc8,545 bytes
  • ../skf-audit-skill/references/headless-contract.mddoc4,762 bytes
  • ../skf-audit-skill/references/health-check.mddoc1,187 bytes
  • ../skf-audit-skill/references/init.mddoc31,836 bytes
  • ../skf-audit-skill/references/re-index.mddoc20,536 bytes
  • ../skf-audit-skill/references/report.mddoc18,037 bytes
  • ../skf-audit-skill/references/semantic-diff.mddoc8,999 bytes
  • ../skf-audit-skill/references/severity-classify.mddoc9,555 bytes
  • ../skf-audit-skill/references/severity-rules.mddoc3,576 bytes
  • ../skf-audit-skill/references/structural-diff.mddoc15,173 bytes
  • ../skf-audit-skill/references/upstream-checkout.mddoc7,164 bytes
  • ../skf-audit-skill/scripts/render-drift-tables.pyruns32,770 bytes
  • ../skf-brief-skill/SKILL.mddoc11,371 bytes
  • ../skf-brief-skill/assets/description-voice-examples.mddoc2,184 bytes
  • ../skf-brief-skill/assets/scope-templates.mddoc7,668 bytes
  • ../skf-brief-skill/assets/skill-brief-schema.mddoc22,961 bytes
  • ../skf-brief-skill/customize.tomlasset3,990 bytes
  • ../skf-brief-skill/references/analyze-target.mddoc28,246 bytes
  • ../skf-brief-skill/references/confirm-brief.mddoc8,404 bytes
  • ../skf-brief-skill/references/draft-checkpoint.mddoc5,735 bytes
  • ../skf-brief-skill/references/gather-intent-ratify.mddoc5,527 bytes
  • ../skf-brief-skill/references/gather-intent.mddoc26,070 bytes
  • ../skf-brief-skill/references/headless-args.mddoc9,508 bytes
  • ../skf-brief-skill/references/health-check.mddoc884 bytes
  • ../skf-brief-skill/references/invocation-contract.mddoc9,200 bytes
  • ../skf-brief-skill/references/portfolio-similarity-check.mddoc3,202 bytes
  • ../skf-brief-skill/references/qmd-collection-registration.mddoc2,714 bytes
  • ../skf-brief-skill/references/scope-definition.mddoc29,816 bytes
  • ../skf-brief-skill/references/step-auto-brief.mddoc8,256 bytes
  • ../skf-brief-skill/references/step-auto-validate.mddoc6,141 bytes
  • ../skf-brief-skill/references/version-resolution.mddoc4,462 bytes
  • ../skf-brief-skill/references/write-brief.mddoc15,773 bytes
  • ../skf-create-skill/SKILL.mddoc12,218 bytes
  • ../skf-create-skill/assets/compile-assembly-rules.mddoc27,339 bytes
  • ../skf-create-skill/assets/skill-sections.mddoc17,489 bytes
  • ../skf-create-skill/customize.tomlasset2,661 bytes
  • ../skf-create-skill/references/authoritative-files-protocol.mddoc10,614 bytes
  • ../skf-create-skill/references/batch-mode.mddoc8,635 bytes
  • ../skf-create-skill/references/ccc-index-check.mddoc4,988 bytes
  • ../skf-create-skill/references/compile.mddoc30,504 bytes
  • ../skf-create-skill/references/component-extraction.mddoc25,344 bytes
  • ../skf-create-skill/references/enrich.mddoc8,990 bytes
  • ../skf-create-skill/references/entry-points-by-hand.mddoc5,742 bytes
  • ../skf-create-skill/references/extract.mddoc44,745 bytes
  • ../skf-create-skill/references/extraction-patterns-by-hand.mddoc26,193 bytes
  • ../skf-create-skill/references/extraction-patterns-tracing.mddoc8,048 bytes
  • ../skf-create-skill/references/extraction-patterns.mddoc34,993 bytes
  • ../skf-create-skill/references/generate-artifacts.mddoc28,895 bytes
  • ../skf-create-skill/references/health-check.mddoc1,062 bytes
  • ../skf-create-skill/references/load-brief.mddoc13,427 bytes
  • ../skf-create-skill/references/relabel-rule.mddoc2,040 bytes
  • ../skf-create-skill/references/report.mddoc11,320 bytes
  • ../skf-create-skill/references/source-resolution-protocols.mddoc14,115 bytes
  • ../skf-create-skill/references/step-auto-shard.mddoc5,627 bytes
  • ../skf-create-skill/references/step-doc-rot.mddoc14,355 bytes
  • ../skf-create-skill/references/step-doc-sources.mddoc11,056 bytes
  • ../skf-create-skill/references/sub/ccc-discover.mddoc7,863 bytes
  • ../skf-create-skill/references/sub/fetch-docs.mddoc22,142 bytes
  • ../skf-create-skill/references/sub/fetch-temporal.mddoc9,865 bytes
  • ../skf-create-skill/references/tier-degradation-rules.mddoc4,938 bytes
  • ../skf-create-skill/references/validate.mddoc42,012 bytes
  • ../skf-create-skill/scripts/scan-doc-rot.pyruns24,366 bytes
  • ../skf-create-stack-skill/SKILL.mddoc9,544 bytes
  • ../skf-create-stack-skill/assets/metadata-contract.mddoc2,009 bytes
  • ../skf-create-stack-skill/assets/provenance-map-schema.mddoc5,859 bytes
  • ../skf-create-stack-skill/assets/stack-skill-template.mddoc5,916 bytes
  • ../skf-create-stack-skill/customize.tomlasset2,946 bytes
  • ../skf-create-stack-skill/references/compile-stack.mddoc8,997 bytes
  • ../skf-create-stack-skill/references/compose-mode-rules.mddoc5,009 bytes
  • ../skf-create-stack-skill/references/detect-integrations.mddoc20,663 bytes
  • ../skf-create-stack-skill/references/detect-manifests.mddoc9,245 bytes
  • ../skf-create-stack-skill/references/generate-output.mddoc21,268 bytes
  • ../skf-create-stack-skill/references/health-check.mddoc884 bytes
  • ../skf-create-stack-skill/references/init.mddoc14,076 bytes
  • ../skf-create-stack-skill/references/integration-patterns.mddoc2,170 bytes
  • ../skf-create-stack-skill/references/invocation-contract.mddoc5,936 bytes
  • ../skf-create-stack-skill/references/manifest-patterns.mddoc6,726 bytes
  • ../skf-create-stack-skill/references/parallel-extract.mddoc17,728 bytes
  • ../skf-create-stack-skill/references/rank-and-confirm.mddoc9,057 bytes
  • ../skf-create-stack-skill/references/report.mddoc9,081 bytes
  • ../skf-create-stack-skill/references/validate.mddoc11,902 bytes
  • ../skf-drop-skill/SKILL.mddoc10,343 bytes
  • ../skf-drop-skill/customize.tomlasset3,903 bytes
  • ../skf-drop-skill/references/execute.mddoc17,449 bytes
  • ../skf-drop-skill/references/health-check.mddoc879 bytes
  • ../skf-drop-skill/references/invocation-contract.mddoc8,721 bytes
  • ../skf-drop-skill/references/report.mddoc7,960 bytes
  • ../skf-drop-skill/references/select.mddoc28,757 bytes
  • ../skf-drop-skill/scripts/dir-sizes.pyruns5,242 bytes
  • ../skf-drop-skill/scripts/drop-roster.pyruns14,777 bytes
  • ../skf-export-skill/SKILL.mddoc10,241 bytes
  • ../skf-export-skill/assets/managed-section-format.mddoc7,227 bytes
  • ../skf-export-skill/assets/snippet-format.mddoc4,723 bytes
  • ../skf-export-skill/customize.tomlasset3,898 bytes
  • ../skf-export-skill/references/generate-snippet.mddoc11,159 bytes
  • ../skf-export-skill/references/health-check.mddoc1,178 bytes
  • ../skf-export-skill/references/invocation-contract.mddoc3,068 bytes
  • ../skf-export-skill/references/load-skill.mddoc20,118 bytes
  • ../skf-export-skill/references/manifest-rebuild.mddoc3,582 bytes
  • ../skf-export-skill/references/multi-skill-mode.mddoc3,193 bytes
  • ../skf-export-skill/references/orphan-context-detection.mddoc6,187 bytes
  • ../skf-export-skill/references/orphan-row-detection.mddoc7,444 bytes
  • ../skf-export-skill/references/package.mddoc1,675 bytes
  • ../skf-export-skill/references/preflight-snippet-root-probe.mddoc7,229 bytes
  • ../skf-export-skill/references/result-envelope.mddoc5,239 bytes
  • ../skf-export-skill/references/summary.mddoc11,648 bytes
  • ../skf-export-skill/references/token-report.mddoc4,611 bytes
  • ../skf-export-skill/references/update-context.mddoc17,071 bytes
  • ../skf-forger/SKILL.mddoc16,646 bytes
  • ../skf-forger/bmad-skill-manifest.yamlasset1,475 bytes
  • ../skf-forger/bmad-skill-manifest.yamlasset1,475 bytes
  • ../skf-forger/customize.tomlasset1,913 bytes
  • ../skf-forger/references/pipeline-mode.mddoc12,187 bytes
  • ../skf-forger/scripts/forge-status.pyruns13,480 bytes
  • ../skf-forger/scripts/parse-pipeline.pyruns21,820 bytes
  • ../skf-forger/scripts/pipeline-gate.pyruns17,967 bytes
  • ../skf-forger/scripts/pipeline-journal.pyruns49,550 bytes
  • ../skf-quick-skill/SKILL.mddoc11,753 bytes
  • ../skf-quick-skill/assets/skill-template.mddoc3,360 bytes
  • ../skf-quick-skill/customize.tomlasset3,909 bytes
  • ../skf-quick-skill/references/batch-mode.mddoc11,627 bytes
  • ../skf-quick-skill/references/compile.mddoc10,560 bytes
  • ../skf-quick-skill/references/ecosystem-check.mddoc2,726 bytes
  • ../skf-quick-skill/references/finalize.mddoc11,002 bytes
  • ../skf-quick-skill/references/halt-contract.mddoc7,912 bytes
  • ../skf-quick-skill/references/health-check.mddoc1,377 bytes
  • ../skf-quick-skill/references/quick-extract.mddoc24,563 bytes
  • ../skf-quick-skill/references/registry-resolution.mddoc1,237 bytes
  • ../skf-quick-skill/references/resolve-target.mddoc24,351 bytes
  • ../skf-quick-skill/references/write-and-validate.mddoc20,686 bytes
  • ../skf-refine-architecture/SKILL.mddoc10,104 bytes
  • ../skf-refine-architecture/customize.tomlasset4,327 bytes
  • ../skf-refine-architecture/references/compile.mddoc18,051 bytes
  • ../skf-refine-architecture/references/exit-codes.mddoc5,776 bytes
  • ../skf-refine-architecture/references/finding-storage.mddoc3,391 bytes
  • ../skf-refine-architecture/references/gap-analysis.mddoc20,283 bytes
  • ../skf-refine-architecture/references/health-check.mddoc901 bytes
  • ../skf-refine-architecture/references/improvements.mddoc5,378 bytes
  • ../skf-refine-architecture/references/init.mddoc18,683 bytes
  • ../skf-refine-architecture/references/issue-detection.mddoc8,343 bytes
  • ../skf-refine-architecture/references/refinement-rules.mddoc8,277 bytes
  • ../skf-refine-architecture/references/report.mddoc9,995 bytes
  • ../skf-refine-architecture/scripts/skf-check-preservation.pyruns75,954 bytes
  • ../skf-rename-skill/SKILL.mddoc7,288 bytes
  • ../skf-rename-skill/customize.tomlasset3,039 bytes
  • ../skf-rename-skill/references/execute.mddoc33,438 bytes
  • ../skf-rename-skill/references/exit-codes.mddoc3,719 bytes
  • ../skf-rename-skill/references/health-check.mddoc897 bytes
  • ../skf-rename-skill/references/invocation-contract.mddoc4,678 bytes
  • ../skf-rename-skill/references/report.mddoc9,365 bytes
  • ../skf-rename-skill/references/select.mddoc32,540 bytes
  • ../skf-rename-skill/scripts/skf-validate-rename-name.pyruns13,147 bytes
  • ../skf-setup/SKILL.mddoc10,164 bytes
  • ../skf-setup/customize.tomlasset1,993 bytes
  • ../skf-setup/references/auto-index.mddoc8,030 bytes
  • ../skf-setup/references/ccc-index.mddoc4,286 bytes
  • ../skf-setup/references/detect-and-tier.mddoc8,515 bytes
  • ../skf-setup/references/health-check.mddoc1,562 bytes
  • ../skf-setup/references/invocation-contract.mddoc5,312 bytes
  • ../skf-setup/references/report.mddoc8,399 bytes
  • ../skf-setup/references/tier-rules.mddoc1,746 bytes
  • ../skf-setup/references/write-config.mddoc5,004 bytes
  • ../skf-test-skill/SKILL.mddoc7,586 bytes
  • ../skf-test-skill/assets/output-section-formats.mddoc4,039 bytes
  • ../skf-test-skill/customize.tomlasset3,174 bytes
  • ../skf-test-skill/references/coherence-check.mddoc25,398 bytes
  • ../skf-test-skill/references/coverage-check-tiers.mddoc5,478 bytes
  • ../skf-test-skill/references/coverage-check.mddoc34,988 bytes
  • ../skf-test-skill/references/detect-mode.mddoc2,349 bytes
  • ../skf-test-skill/references/external-validators.mddoc13,639 bytes
  • ../skf-test-skill/references/health-check.mddoc696 bytes
  • ../skf-test-skill/references/init.mddoc31,157 bytes
  • ../skf-test-skill/references/invocation-contract.mddoc9,875 bytes
  • ../skf-test-skill/references/migration-section-rules.mddoc4,960 bytes
  • ../skf-test-skill/references/report.mddoc28,137 bytes
  • ../skf-test-skill/references/score.mddoc18,929 bytes
  • ../skf-test-skill/references/scoring-rules.mddoc9,783 bytes
  • ../skf-test-skill/references/source-access-protocol.mddoc16,341 bytes
  • ../skf-test-skill/references/step-hard-gate.mddoc5,507 bytes
  • ../skf-test-skill/scripts/aggregate-coherence.pyruns20,728 bytes
  • ../skf-test-skill/scripts/build-result-context.pyruns17,334 bytes
  • ../skf-test-skill/scripts/check-metadata-coherence.pyruns14,284 bytes
  • ../skf-test-skill/scripts/combine-external-scores.pyruns6,797 bytes
  • ../skf-test-skill/scripts/compute-score.pyruns32,129 bytes
  • ../skf-test-skill/scripts/gap-ledger.pyruns81,713 bytes
  • ../skf-test-skill/scripts/hard-gate.pyruns7,212 bytes
  • ../skf-test-skill/scripts/load-coverage-inputs.pyruns66,037 bytes
  • ../skf-test-skill/scripts/locate-export-segments.pyruns34,810 bytes
  • ../skf-test-skill/scripts/reconcile-coverage.pyruns38,646 bytes
  • ../skf-test-skill/scripts/score-signatures.pyruns21,579 bytes
  • ../skf-test-skill/scripts/stage-helper-payload.pyruns5,304 bytes
  • ../skf-test-skill/scripts/validate-inventory.pyruns20,746 bytes
  • ../skf-test-skill/scripts/verify-declared-numerator.pyruns10,420 bytes
  • ../skf-test-skill/templates/test-report-template.mddoc1,831 bytes
  • ../skf-update-skill/SKILL.mddoc9,540 bytes
  • ../skf-update-skill/customize.tomlasset2,851 bytes
  • ../skf-update-skill/references/detect-changes.mddoc49,192 bytes
  • ../skf-update-skill/references/gap-driven.mddoc41,368 bytes
  • ../skf-update-skill/references/health-check.mddoc4,409 bytes
  • ../skf-update-skill/references/init.mddoc46,768 bytes
  • ../skf-update-skill/references/invocation-contract.mddoc3,573 bytes
  • ../skf-update-skill/references/manual-section-rules.mddoc1,243 bytes
  • ../skf-update-skill/references/merge.mddoc31,348 bytes
  • ../skf-update-skill/references/re-extract.mddoc15,128 bytes
  • ../skf-update-skill/references/report.mddoc23,442 bytes
  • ../skf-update-skill/references/write.mddoc66,042 bytes
  • ../skf-update-skill/scripts/skf-new-file-diff.pyruns12,671 bytes
  • ../skf-verify-stack/SKILL.mddoc10,692 bytes
  • ../skf-verify-stack/assets/feasibility-report-template.mddoc1,929 bytes
  • ../skf-verify-stack/customize.tomlasset4,451 bytes
  • ../skf-verify-stack/references/coverage-patterns.mddoc2,914 bytes
  • ../skf-verify-stack/references/coverage.mddoc14,855 bytes
  • ../skf-verify-stack/references/exit-codes.mddoc4,740 bytes
  • ../skf-verify-stack/references/health-check.mddoc1,515 bytes
  • ../skf-verify-stack/references/init.mddoc17,634 bytes
  • ../skf-verify-stack/references/integration-verification-rules.mddoc5,075 bytes
  • ../skf-verify-stack/references/integrations.mddoc18,933 bytes
  • ../skf-verify-stack/references/report.mddoc11,910 bytes
  • ../skf-verify-stack/references/requirements.mddoc8,922 bytes
  • ../skf-verify-stack/references/synthesize.mddoc16,626 bytes
  • ../skf-verify-stack/scripts/skf-coverage-tally.pyruns21,037 bytes
  • ../skf-verify-stack/scripts/skf-previous-report.pyruns13,296 bytes
  • ../skf-verify-stack/scripts/skf-report-delta.pyruns28,006 bytes
  • ../skf-verify-stack/scripts/skf-verdict-rollup.pyruns20,710 bytes

No excerpt is shown for this license. Read the source on GitHub.

View the complete source on GitHub

Skills included

  • skf-analyze-source
  • skf-audit-skill
  • skf-brief-skill
  • skf-campaign
  • skf-create-skill
  • skf-create-stack-skill
  • skf-drop-skill
  • skf-export-skill
  • skf-forger
  • skf-quick-skill
  • skf-refine-architecture
  • skf-rename-skill
  • skf-setup
  • skf-test-skill
  • skf-update-skill
  • skf-verify-stack

Repository facts

License
No license detected
Created
Feb 13, 2026
Last pushed
Nov 5, 2026
Forks
11
Open issues
8
Project activity
Active

Before you install

Network or broad shell

Automated signals, not a guarantee

Checked Nov 6, 2026

Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.

Show 67 notes
  • src/skf-analyze-source/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • src/skf-analyze-source/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • src/skf-analyze-source/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • src/skf-analyze-source/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • src/skf-analyze-source/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • src/skf-analyze-source/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • src/skf-forger/bmad-skill-manifest.yaml:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • src/skf-audit-skill/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • src/skf-audit-skill/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • src/skf-audit-skill/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • src/skf-audit-skill/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • src/skf-audit-skill/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • src/skf-audit-skill/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • src/skf-audit-skill/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • src/skf-audit-skill/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • src/skf-audit-skill/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • src/skf-brief-skill/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • src/skf-brief-skill/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • src/skf-brief-skill/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • src/skf-campaign/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
Show all 359 signals by file

.claude-plugin/marketplace.json

  • Network accessline 6
    "description": "Turn code and docs into instructions AI agents can actually follow. Evidence-based skill compilation with progressive capability tiers.",   "license": "MIT",   "homepage": "https://github.com/armelhbobdad/bmad-module-skill-f
  • Network accessline 7
    "license": "MIT",   "homepage": "https://github.com/armelhbobdad/bmad-module-skill-forge",   "repository": "https://github.com/armelhbobdad/bmad-module-skill-forge",
  • Network accessline 8
    "homepage": "https://github.com/armelhbobdad/bmad-module-skill-forge",
  • Network accessline 9
    "repository": "https://github.com/armelhbobdad/bmad-module-skill-forge",

src/skf-analyze-source/references/auto-docs-only.md

  • Network accessline 33
    curl -sI --max-time 5 {url}
  • Network accessline 43
    Name the skill with the helper that names every brief. It names a documentation URL after its host (`https://docs.example.com/guide/intro` gives `docs-example-com`), the name §0c's coexistence check compared:
  • Dangerous shell operationline 154
    Delete the run folder, whose payloads the emitter has read: `rm -rf "{run_dir}"`. Then load, read fully, and execute {nextStepFile} to run the shared workflow health check.

src/skf-analyze-source/references/generate-briefs.md

  • Dangerous shell operationline 310
    After the briefs are written (or skipped, or none was confirmed), the report updated, the summary presented, the run ended in §9 and the on-complete hook invoked (or skipped per empty `{onCompleteCommand}`), delete the run folder, whose pay

src/skf-analyze-source/references/step-auto-scope.md

  • Network accessline 189
    The first lists a remote fetch (tree objects only: the blobless clone downloads no file for it), the second a local path inside a git work tree (`git -C "{scan_root}" rev-parse --is-inside-work-tree` prints `true`), the third any other loca
  • Dangerous shell operationline 454
    Then delete the run folder, whose payloads the emitter has read: `rm -rf "{run_dir}"`. Load, read fully, then execute {nextStepFile} to run the shared workflow health check.

src/skf-audit-skill/SKILL.md

  • Network accessline 92
    Run `uv --version`, and check that `skf-load-provenance.py`, `skf-structural-diff.py`, `skf-severity-classify.py` and `skf-detect-docs.py` each exist in `{project-root}/_bmad/skf/shared/scripts/` or `{project-root}/src/shared/scripts/`. If 
  • Network accessline 92
    Run `uv --version`, and check that `skf-load-provenance.py`, `skf-structural-diff.py`, `skf-severity-classify.py` and `skf-detect-docs.py` each exist in `{project-root}/_bmad/skf/shared/scripts/` or `{project-root}/src/shared/scripts/`. If 

src/skf-audit-skill/references/re-index.md

  • Dangerous shell operationline 100
    rm -f "{auditDataFolder}/extraction.json"
  • Dangerous shell operationline 100
    rm -f "{auditDataFolder}/extraction.json"

src/skf-audit-skill/references/report.md

  • Dangerous shell operationline 213
    Only when the report has been written, presented, and the result contract saved, delete the run folder, whose decisions, warnings and payloads the run no longer needs: `rm -rf "{run_dir}"`. Then load, read the full file, and execute `{nextS
  • Dangerous shell operationline 213
    Only when the report has been written, presented, and the result contract saved, delete the run folder, whose decisions, warnings and payloads the run no longer needs: `rm -rf "{run_dir}"`. Then load, read the full file, and execute `{nextS

src/skf-audit-skill/references/structural-diff.md

  • Dangerous shell operationline 87
    rm -f "{auditDataFolder}/relocations.json"
  • Dangerous shell operationline 87
    rm -f "{auditDataFolder}/relocations.json"

src/skf-audit-skill/scripts/render-drift-tables.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Executable scriptline 1
    #!/usr/bin/env python3

src/skf-brief-skill/assets/skill-brief-schema.md

  • Network accessline 204
    # Optional: documentation URLs for T3 content (required when source_type: "docs-only") # doc_urls: #   - url: "https://docs.example.com/api"
  • Network accessline 204
    # Optional: documentation URLs for T3 content (required when source_type: "docs-only") # doc_urls: #   - url: "https://docs.example.com/api"
  • Network accessline 205
    # doc_urls: #   - url: "https://docs.example.com/api" #     label: "API Reference"
  • Network accessline 205
    # doc_urls: #   - url: "https://docs.example.com/api" #     label: "API Reference"
  • Network accessline 206
    #   - url: "https://docs.example.com/api"
  • Network accessline 206
    #   - url: "https://docs.example.com/api"

src/skf-brief-skill/references/analyze-target.md

  • Network accessline 62
    uv run {validatePinsHelper} --repo-url "https://github.com/{owner}/{repo}" --pin "{target_version}" --format tag
  • Network accessline 62
    uv run {validatePinsHelper} --repo-url "https://github.com/{owner}/{repo}" --pin "{target_version}" --format tag
  • Network accessline 97
    git clone --depth 1 --branch "{analysis_ref}" "https://github.com/{owner}/{repo}.git" "{run_dir}/clone"
  • Network accessline 97
    git clone --depth 1 --branch "{analysis_ref}" "https://github.com/{owner}/{repo}.git" "{run_dir}/clone"
  • Dangerous shell operationline 100
    Leave `--branch` out when `{analysis_ref}` is `HEAD`. A commit SHA is no `--branch` value: clone it with `git clone --filter=blob:none --no-checkout "https://github.com/{owner}/{repo}.git" "{run_dir}/clone"`, then `git -C "{run_dir}/clone" 
  • Dangerous shell operationline 100
    Leave `--branch` out when `{analysis_ref}` is `HEAD`. A commit SHA is no `--branch` value: clone it with `git clone --filter=blob:none --no-checkout "https://github.com/{owner}/{repo}.git" "{run_dir}/clone"`, then `git -C "{run_dir}/clone" 
  • Network accessline 100
    Leave `--branch` out when `{analysis_ref}` is `HEAD`. A commit SHA is no `--branch` value: clone it with `git clone --filter=blob:none --no-checkout "https://github.com/{owner}/{repo}.git" "{run_dir}/clone"`, then `git -C "{run_dir}/clone" 
  • Network accessline 100
    Leave `--branch` out when `{analysis_ref}` is `HEAD`. A commit SHA is no `--branch` value: clone it with `git clone --filter=blob:none --no-checkout "https://github.com/{owner}/{repo}.git" "{run_dir}/clone"`, then `git -C "{run_dir}/clone" 

src/skf-brief-skill/references/confirm-brief.md

  • Dangerous shell operationline 160
    - IF X: Treat as user-cancellation. Remove the run folder (`case "{run_dir}" in "{project-root}/_bmad-output/.skf-run/skf-brief-skill-"*) rm -rf "{run_dir}" ;; esac`), display `"Cancelled: no brief was written."` and HALT (exit code 6, `hal
  • Dangerous shell operationline 160
    - IF X: Treat as user-cancellation. Remove the run folder (`case "{run_dir}" in "{project-root}/_bmad-output/.skf-run/skf-brief-skill-"*) rm -rf "{run_dir}" ;; esac`), display `"Cancelled: no brief was written."` and HALT (exit code 6, `hal

src/skf-brief-skill/references/gather-intent-ratify.md

  • Dangerous shell operationline 52
    - **[X]**: remove the run folder (`case "{run_dir}" in "{project-root}/_bmad-output/.skf-run/skf-brief-skill-"*) rm -rf "{run_dir}" ;; esac`), display `"Cancelled: no brief was written."` and HALT (exit code 6, `halt_reason: "user-cancelled
  • Dangerous shell operationline 52
    - **[X]**: remove the run folder (`case "{run_dir}" in "{project-root}/_bmad-output/.skf-run/skf-brief-skill-"*) rm -rf "{run_dir}" ;; esac`), display `"Cancelled: no brief was written."` and HALT (exit code 6, `halt_reason: "user-cancelled

src/skf-brief-skill/references/gather-intent.md

  • Dangerous shell operationline 38
    mkdir -p "{forge_data_folder}" &&    printf 'probe' > "{forge_data_folder}/.skf-write-probe" &&    rm "{forge_data_folder}/.skf-write-probe" &&
  • Dangerous shell operationline 38
    mkdir -p "{forge_data_folder}" &&    printf 'probe' > "{forge_data_folder}/.skf-write-probe" &&    rm "{forge_data_folder}/.skf-write-probe" &&
  • Dangerous shell operationline 40
    rm "{forge_data_folder}/.skf-write-probe" && \
  • Dangerous shell operationline 40
    rm "{forge_data_folder}/.skf-write-probe" && \
  • Network accessline 101
    Provide one of: - A **GitHub URL** (e.g., `https://github.com/org/repo`) - A **package name or registry page** (e.g., `zod`, `requests==2.31.0`, `https://www.npmjs.com/package/zod`), which I resolve to its GitHub repository
  • Network accessline 101
    Provide one of: - A **GitHub URL** (e.g., `https://github.com/org/repo`) - A **package name or registry page** (e.g., `zod`, `requests==2.31.0`, `https://www.npmjs.com/package/zod`), which I resolve to its GitHub repository
  • Network accessline 102
    - A **GitHub URL** (e.g., `https://github.com/org/repo`) - A **package name or registry page** (e.g., `zod`, `requests==2.31.0`, `https://www.npmjs.com/package/zod`), which I resolve to its GitHub repository - A **local path** (e.g., `/path
  • Network accessline 102
    - A **GitHub URL** (e.g., `https://github.com/org/repo`) - A **package name or registry page** (e.g., `zod`, `requests==2.31.0`, `https://www.npmjs.com/package/zod`), which I resolve to its GitHub repository - A **local path** (e.g., `/path
  • Network accessline 103
    - A **package name or registry page** (e.g., `zod`, `requests==2.31.0`, `https://www.npmjs.com/package/zod`), which I resolve to its GitHub repository
  • Network accessline 103
    - A **package name or registry page** (e.g., `zod`, `requests==2.31.0`, `https://www.npmjs.com/package/zod`), which I resolve to its GitHub repository
  • Network accessline 104
    - A **local path** (e.g., `/path/to/project`) - **Documentation URLs** for a docs-only skill (e.g., `https://docs.stripe.com/api`) — use this when no source code is available (SaaS, closed-source) - A **path to an existing `skill-brief.yaml
  • Network accessline 104
    - A **local path** (e.g., `/path/to/project`) - **Documentation URLs** for a docs-only skill (e.g., `https://docs.stripe.com/api`) — use this when no source code is available (SaaS, closed-source) - A **path to an existing `skill-brief.yaml
  • Network accessline 105
    - **Documentation URLs** for a docs-only skill (e.g., `https://docs.stripe.com/api`) — use this when no source code is available (SaaS, closed-source)
  • Network accessline 105
    - **Documentation URLs** for a docs-only skill (e.g., `https://docs.stripe.com/api`) — use this when no source code is available (SaaS, closed-source)
  • Dangerous shell operationline 114
    - Empty input, `cancel`, `exit`, `[X]`, `q`, or `:q` → Remove the run folder (`case "{run_dir}" in "{project-root}/_bmad-output/.skf-run/skf-brief-skill-"*) rm -rf "{run_dir}" ;; esac`), display `"Cancelled: no brief was written."` and HALT
  • Dangerous shell operationline 114
    - Empty input, `cancel`, `exit`, `[X]`, `q`, or `:q` → Remove the run folder (`case "{run_dir}" in "{project-root}/_bmad-output/.skf-run/skf-brief-skill-"*) rm -rf "{run_dir}" ;; esac`), display `"Cancelled: no brief was written."` and HALT
  • Network accessline 153
    - Set `source_type: "docs-only"` in the brief data - Collect one or more doc URLs with optional labels - HEAD-check the collected URLs in parallel — do not loop sequentially. Issue all N `curl -sI {url}` (or equivalent) calls in a **single 
  • Network accessline 153
    - Set `source_type: "docs-only"` in the brief data - Collect one or more doc URLs with optional labels - HEAD-check the collected URLs in parallel — do not loop sequentially. Issue all N `curl -sI {url}` (or equivalent) calls in a **single 
  • Network accessline 154
    - Collect one or more doc URLs with optional labels - HEAD-check the collected URLs in parallel — do not loop sequentially. Issue all N `curl -sI {url}` (or equivalent) calls in a **single message with N parallel Bash calls**, then process 
  • Network accessline 154
    - Collect one or more doc URLs with optional labels - HEAD-check the collected URLs in parallel — do not loop sequentially. Issue all N `curl -sI {url}` (or equivalent) calls in a **single message with N parallel Bash calls**, then process 
  • Network accessline 155
    - HEAD-check the collected URLs in parallel — do not loop sequentially. Issue all N `curl -sI {url}` (or equivalent) calls in a **single message with N parallel Bash calls**, then process the responses together. Each call must use a 5-secon
  • Network accessline 155
    - HEAD-check the collected URLs in parallel — do not loop sequentially. Issue all N `curl -sI {url}` (or equivalent) calls in a **single message with N parallel Bash calls**, then process the responses together. Each call must use a 5-secon
  • Dangerous shell operationline 326
    - IF X: Treat as user-cancellation. Remove the run folder (`case "{run_dir}" in "{project-root}/_bmad-output/.skf-run/skf-brief-skill-"*) rm -rf "{run_dir}" ;; esac`), display `"Cancelled: no brief was written."` and HALT (exit code 6, `hal
  • Dangerous shell operationline 326
    - IF X: Treat as user-cancellation. Remove the run folder (`case "{run_dir}" in "{project-root}/_bmad-output/.skf-run/skf-brief-skill-"*) rm -rf "{run_dir}" ;; esac`), display `"Cancelled: no brief was written."` and HALT (exit code 6, `hal

src/skf-brief-skill/references/headless-args.md

  • Network accessline 69
    When `normalized.source_authority` is absent, `source_type` is `source` and `target_repo` is a GitHub URL (`https://github.com/<owner>/<repo>`), probe the operator's login:
  • Network accessline 69
    When `normalized.source_authority` is absent, `source_type` is `source` and `target_repo` is a GitHub URL (`https://github.com/<owner>/<repo>`), probe the operator's login:
  • Network accessline 81
    - **Version:** a `target_version` sets `version` too; without one, step 2 detects the version. - **Doc URLs:** HEAD-check every `doc_urls` entry in parallel, all calls in one message, each `curl -sI --max-time 5 {url}`. Keep a URL that fail
  • Network accessline 81
    - **Version:** a `target_version` sets `version` too; without one, step 2 detects the version. - **Doc URLs:** HEAD-check every `doc_urls` entry in parallel, all calls in one message, each `curl -sI --max-time 5 {url}`. Keep a URL that fail
  • Network accessline 82
    - **Doc URLs:** HEAD-check every `doc_urls` entry in parallel, all calls in one message, each `curl -sI --max-time 5 {url}`. Keep a URL that fails, log `"warn: could not reach {url} ({status or error})"` and add it to `workflow_warnings[]`:
  • Network accessline 82
    - **Doc URLs:** HEAD-check every `doc_urls` entry in parallel, all calls in one message, each `curl -sI --max-time 5 {url}`. Keep a URL that fails, log `"warn: could not reach {url} ({status or error})"` and add it to `workflow_warnings[]`:

src/skf-brief-skill/references/scope-definition.md

  • Network accessline 90
    HEAD-check the URLs in parallel — issue all N `curl -sI --max-time 5 {url}` calls in a **single message with N parallel Bash calls**, then process the responses together. On a 4xx/5xx, DNS failure, or timeout per URL, warn `"Could not reach
  • Network accessline 90
    HEAD-check the URLs in parallel — issue all N `curl -sI --max-time 5 {url}` calls in a **single message with N parallel Bash calls**, then process the responses together. On a 4xx/5xx, DNS failure, or timeout per URL, warn `"Could not reach
  • Dangerous shell operationline 224
    Once the runner has run, whatever its exit, remove a clone this section made (`rm -rf "{run_dir}/clone"`).
  • Dangerous shell operationline 224
    Once the runner has run, whatever its exit, remove a clone this section made (`rm -rf "{run_dir}/clone"`).
  • Dangerous shell operationline 225
    - **Quick tier, or a runner that cannot trace** (it exits 3 when no ast-grep is installed, 1 or 2 when the scan fails), or a clone that fails (remove what it left, `rm -rf "{run_dir}/clone"`): read the entry barrel step 2 fetched and list i
  • Dangerous shell operationline 225
    - **Quick tier, or a runner that cannot trace** (it exits 3 when no ast-grep is installed, 1 or 2 when the scan fails), or a clone that fails (remove what it left, `rm -rf "{run_dir}/clone"`): read the entry barrel step 2 fetched and list i

src/skf-brief-skill/references/step-auto-validate.md

  • Dangerous shell operationline 101
    case "{run_dir}" in "{project-root}/_bmad-output/.skf-run/skf-brief-skill-"*) rm -rf "{run_dir}" ;; esac
  • Dangerous shell operationline 101
    case "{run_dir}" in "{project-root}/_bmad-output/.skf-run/skf-brief-skill-"*) rm -rf "{run_dir}" ;; esac

src/skf-brief-skill/references/write-brief.md

  • Dangerous shell operationline 150
    **Draft cleanup.** After a successful write, remove `{forge_data_folder}/{skill-name}/.brief-draft.json` if it exists (`rm -f`, silent on absent). The draft was the checkpoint step 1 §8 and step 3 §5c wrote for the in-flight workflow window
  • Dangerous shell operationline 150
    **Draft cleanup.** After a successful write, remove `{forge_data_folder}/{skill-name}/.brief-draft.json` if it exists (`rm -f`, silent on absent). The draft was the checkpoint step 1 §8 and step 3 §5c wrote for the in-flight workflow window
  • Dangerous shell operationline 224
    case "{run_dir}" in "{project-root}/_bmad-output/.skf-run/skf-brief-skill-"*) rm -rf "{run_dir}" ;; esac
  • Dangerous shell operationline 224
    case "{run_dir}" in "{project-root}/_bmad-output/.skf-run/skf-brief-skill-"*) rm -rf "{run_dir}" ;; esac

src/skf-campaign/assets/campaign-state-schema.json

  • Network accessline 1
    {   "$schema": "http://json-schema.org/draft-07/schema#",
  • Network accessline 2
    "$schema": "http://json-schema.org/draft-07/schema#",

src/skf-campaign/references/step-01-setup.md

  • Network accessline 44
    Every target goes through `{manifestScript}`, whatever its source, so no target reaches state unchecked. It rejects a malformed target, a `repo_url` that is no GitHub repository (it reads a URL, an SSH URL or `owner/repo`, and writes each a

src/skf-campaign/scripts/.gitkeep

  • Executable scriptline 1
    Executable file

src/skf-campaign/scripts/campaign-deps.py

  • Executable scriptline 1
    Executable file

src/skf-campaign/scripts/campaign-parse-manifest.py

  • Executable scriptline 1
    Executable file
  • Network accessline 33
    Every source, each rule taken from the script of the stage that reads it: - `repo_url` must name a GitHub repository: a URL, an SSH URL or `owner/repo`.   targets[] carries it as `https://github.com/<owner>/<repo>`, the one shape
  • Network accessline 34
    - `repo_url` must name a GitHub repository: a URL, an SSH URL or `owner/repo`.   targets[] carries it as `https://github.com/<owner>/<repo>`, the one shape   the pin stage (skf-validate-pins.py) and every later stage read; another
  • Network accessline 35
    targets[] carries it as `https://github.com/<owner>/<repo>`, the one shape
  • Network accessline 117
    """(`https://github.com/<owner>/<repo>`, None) for a GitHub repository, else (None, why not).
  • Network accessline 127
    rest = re.sub(r"^https?://", "", url, flags=re.I)         if "://" in rest:             return None, f"`repo_url` `{repo_url}` is no GitHub URL: use https://github.com/<owner>/<repo>"
  • Network accessline 128
    if "://" in rest:             return None, f"`repo_url` `{repo_url}` is no GitHub URL: use https://github.com/<owner>/<repo>"         first, _, path = rest.partition("/")
  • Network accessline 129
    return None, f"`repo_url` `{repo_url}` is no GitHub URL: use https://github.com/<owner>/<repo>"
  • Network accessline 146
    if len(parts) < 2 or not all(SEGMENT_RE.match(p) and p.strip(".") for p in parts[:2]):         return None, f"`repo_url` `{repo_url}` names no repository (use a GitHub URL or `owner/repo`)"     canonical = f"https://github.com/{parts[0]}/{p
  • Network accessline 147
    return None, f"`repo_url` `{repo_url}` names no repository (use a GitHub URL or `owner/repo`)"     canonical = f"https://github.com/{parts[0]}/{parts[1]}"     if len(parts) > 2:
  • Network accessline 148
    canonical = f"https://github.com/{parts[0]}/{parts[1]}"
  • Possible obfuscationline 368
    text = sys.stdin.buffer.read().decode("utf-8", errors="replace").lstrip("<U+FEFF>")

src/skf-campaign/scripts/campaign-provenance.py

  • Executable scriptline 1
    Executable file
  • Network accessline 118
    # https://host/owner/repo (take the last two path segments)

src/skf-campaign/scripts/campaign-quality-gate.py

  • Executable scriptline 1
    Executable file

src/skf-campaign/scripts/campaign-render-batch.py

  • Executable scriptline 1
    Executable file

src/skf-campaign/scripts/campaign-render-kickoff.py

  • Executable scriptline 1
    Executable file

src/skf-campaign/scripts/campaign-report.py

  • Executable scriptline 1
    Executable file

src/skf-campaign/scripts/campaign-state.py

  • Executable scriptline 1
    Executable file

src/skf-campaign/scripts/campaign-status.py

  • Executable scriptline 1
    Executable file

src/skf-campaign/scripts/campaign-validate-pins.py

  • Executable scriptline 1
    Executable file

src/skf-campaign/scripts/campaign-validate-state.py

  • Executable scriptline 1
    Executable file

src/skf-create-skill/assets/skill-sections.md

  • Network accessline 141
    // "assets": [{ "file": "assets/{name}", "purpose": "{description}", "source_file": "{source-path}", "confidence": "T1-low" }],   // doc_sources[] — include ONLY when doc detection ran; omit if detection was skipped entirely   // "doc_sourc
  • Network accessline 141
    // "assets": [{ "file": "assets/{name}", "purpose": "{description}", "source_file": "{source-path}", "confidence": "T1-low" }],   // doc_sources[] — include ONLY when doc detection ran; omit if detection was skipped entirely   // "doc_sourc
  • Network accessline 142
    // doc_sources[] — include ONLY when doc detection ran; omit if detection was skipped entirely   // "doc_sources": [{ "url": "https://...", "detected_via": "homepageUrl|readme_link|pages_api|docs_folder|readme_always|brief_doc_urls", "conte
  • Network accessline 142
    // doc_sources[] — include ONLY when doc detection ran; omit if detection was skipped entirely   // "doc_sources": [{ "url": "https://...", "detected_via": "homepageUrl|readme_link|pages_api|docs_folder|readme_always|brief_doc_urls", "conte
  • Network accessline 143
    // "doc_sources": [{ "url": "https://...", "detected_via": "homepageUrl|readme_link|pages_api|docs_folder|readme_always|brief_doc_urls", "content_hash": "sha256:{hex}|null", "recorded_at": "ISO-8601" }],
  • Network accessline 143
    // "doc_sources": [{ "url": "https://...", "detected_via": "homepageUrl|readme_link|pages_api|docs_folder|readme_always|brief_doc_urls", "content_hash": "sha256:{hex}|null", "recorded_at": "ISO-8601" }],

src/skf-create-skill/references/compile.md

  • Dangerous shell operationline 75
    rm -rf "{project-root}/_bmad-output/.skf-stage/{skill-name}" && mkdir -p "{project-root}/_bmad-output/.skf-stage/{skill-name}/references"
  • Dangerous shell operationline 75
    rm -rf "{project-root}/_bmad-output/.skf-stage/{skill-name}" && mkdir -p "{project-root}/_bmad-output/.skf-stage/{skill-name}/references"
  • Dangerous shell operationline 155
    rm -f "{stats_json}"
  • Dangerous shell operationline 155
    rm -f "{stats_json}"

src/skf-create-skill/references/component-extraction.md

  • Dangerous shell operationline 157
    rm -f "{extraction_json}"
  • Dangerous shell operationline 157
    rm -f "{extraction_json}"
  • Dangerous shell operationline 261
    case "{component_scan}" in "{project-root}/_bmad-output/.skf-run/skf-create-skill-3d-"*) rm -rf "{component_scan}" ;; esac
  • Dangerous shell operationline 261
    case "{component_scan}" in "{project-root}/_bmad-output/.skf-run/skf-create-skill-3d-"*) rm -rf "{component_scan}" ;; esac

src/skf-create-skill/references/entry-points-by-hand.md

  • Dangerous shell operationline 10
    rm -f "<the JSON>"
  • Dangerous shell operationline 10
    rm -f "<the JSON>"

src/skf-create-skill/references/extract.md

  • Dangerous shell operationline 98
    **Start clean:** first, for every brief, docs-only included, set `{source_tree}`, `{workspace_clone}` and `{remote_clone_path}` to null and `{resolved-source-path}` to `{source_root}` (null for a docs-only brief), so that in a `--batch` run
  • Dangerous shell operationline 98
    **Start clean:** first, for every brief, docs-only included, set `{source_tree}`, `{workspace_clone}` and `{remote_clone_path}` to null and `{resolved-source-path}` to `{source_root}` (null for a docs-only brief), so that in a `--batch` run
  • Dangerous shell operationline 208
    rm -f "{extraction_json}"
  • Dangerous shell operationline 208
    rm -f "{extraction_json}"

src/skf-create-skill/references/generate-artifacts.md

  • Dangerous shell operationline 156
    Do not `rm` + `ln -s` the active link by hand. The bare-rm pattern has two failure modes: (1) a concurrent reader sees a missing `active` mid-flip, and (2) a bug or typo that replaces `{skill_group}/active` with a plain directory turns the 
  • Dangerous shell operationline 156
    Do not `rm` + `ln -s` the active link by hand. The bare-rm pattern has two failure modes: (1) a concurrent reader sees a missing `active` mid-flip, and (2) a bug or typo that replaces `{skill_group}/active` with a plain directory turns the 

src/skf-create-skill/references/report.md

  • Dangerous shell operationline 137
    **Remove the run folder.** The brief finished, so outside `--batch` delete `{run_dir}` (`rm -rf "{run_dir}"`); under `--batch`, batch-mode.md §3 reads the staged `result-context.json` there and removes the folder itself. A halted brief keep
  • Dangerous shell operationline 137
    **Remove the run folder.** The brief finished, so outside `--batch` delete `{run_dir}` (`rm -rf "{run_dir}"`); under `--batch`, batch-mode.md §3 reads the staged `result-context.json` there and removes the folder itself. A halted brief keep

src/skf-create-skill/references/sub/fetch-docs.md

  • Dangerous shell operationline 92
    Bind `{docs_staging}` ← `{project-root}/_bmad-output/{skill-name}-docs`, the folder that holds every page this step fetches. Just before the first page this run fetched is saved, create the folder or empty it (`mkdir -p "{docs_staging}" && 
  • Dangerous shell operationline 92
    Bind `{docs_staging}` ← `{project-root}/_bmad-output/{skill-name}-docs`, the folder that holds every page this step fetches. Just before the first page this run fetched is saved, create the folder or empty it (`mkdir -p "{docs_staging}" && 
  • Network accessline 121
    curl -fsSL --max-time 30 "{url}/sitemap.xml" | uv run {detectDocsHelper} filter-urls --root "{url}" -
  • Network accessline 121
    curl -fsSL --max-time 30 "{url}/sitemap.xml" | uv run {detectDocsHelper} filter-urls --root "{url}" -
  • Network accessline 134
    printf '%s\n' "${subpages[@]}" | awk '{ print NR, $0 }' | xargs -P 4 -L 1 sh -c '        f="{docs_staging}/subpage-{n}-$0.md"        curl -fsSL --max-time 30 "$1" -o "$f" || { rm -f "$f"; echo "fetch failed: $1" >&2; }
  • Network accessline 134
    printf '%s\n' "${subpages[@]}" | awk '{ print NR, $0 }' | xargs -P 4 -L 1 sh -c '        f="{docs_staging}/subpage-{n}-$0.md"        curl -fsSL --max-time 30 "$1" -o "$f" || { rm -f "$f"; echo "fetch failed: $1" >&2; }
  • Network accessline 135
    f="{docs_staging}/subpage-{n}-$0.md"        curl -fsSL --max-time 30 "$1" -o "$f" || { rm -f "$f"; echo "fetch failed: $1" >&2; }      '
  • Network accessline 135
    f="{docs_staging}/subpage-{n}-$0.md"        curl -fsSL --max-time 30 "$1" -o "$f" || { rm -f "$f"; echo "fetch failed: $1" >&2; }      '
  • Dangerous shell operationline 136
    curl -fsSL --max-time 30 "$1" -o "$f" || { rm -f "$f"; echo "fetch failed: $1" >&2; }
  • Dangerous shell operationline 136
    curl -fsSL --max-time 30 "$1" -o "$f" || { rm -f "$f"; echo "fetch failed: $1" >&2; }
  • Network accessline 136
    curl -fsSL --max-time 30 "$1" -o "$f" || { rm -f "$f"; echo "fetch failed: $1" >&2; }
  • Network accessline 136
    curl -fsSL --max-time 30 "$1" -o "$f" || { rm -f "$f"; echo "fetch failed: $1" >&2; }
  • Dangerous shell operationline 239
    Once the pages are extracted, and at Deep tier indexed by §5b, remove `{docs_staging}` **only when `source_type` is `"source"` and the brief is not a whole-language reference** (`whole_language_reference` false): `rm -rf {project-root}/_bma
  • Dangerous shell operationline 239
    Once the pages are extracted, and at Deep tier indexed by §5b, remove `{docs_staging}` **only when `source_type` is `"source"` and the brief is not a whole-language reference** (`whole_language_reference` false): `rm -rf {project-root}/_bma

src/skf-create-skill/references/validate.md

  • Network accessline 220
    (Security scan enabled by default when `--no-security-scan` omitted. The scan uses [Snyk](https://docs.snyk.io/) to check for prompt injection risks, sensitive data exposure, and unsafe tool permissions.)
  • Network accessline 220
    (Security scan enabled by default when `--no-security-scan` omitted. The scan uses [Snyk](https://docs.snyk.io/) to check for prompt injection risks, sensitive data exposure, and unsafe tool permissions.)
  • Network accessline 226
    [Credential-related source omitted]
  • Network accessline 226
    [Credential-related source omitted]
  • Dangerous shell operationline 313
    rm -f "{verify_json}"
  • Dangerous shell operationline 313
    rm -f "{verify_json}"

src/skf-create-skill/scripts/scan-doc-rot.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Executable scriptline 1
    #!/usr/bin/env python3

src/skf-create-stack-skill/references/compile-stack.md

  • Dangerous shell operationline 133
    - IF X: HALT (exit 6, `halt_reason: "user-cancelled"`, phase `compile-stack:review`): leave any existing committed stack package untouched, emit the envelope, then delete the run folder (`rm -rf "{run_dir}"`), the draft and the bundle with 
  • Dangerous shell operationline 133
    - IF X: HALT (exit 6, `halt_reason: "user-cancelled"`, phase `compile-stack:review`): leave any existing committed stack package untouched, emit the envelope, then delete the run folder (`rm -rf "{run_dir}"`), the draft and the bundle with 

src/skf-create-stack-skill/references/detect-manifests.md

  • Dangerous shell operationline 126
    STOP and wait for the user's response. Option 2 sets `{scan_root}` to the folder the user names (a relative path resolves from `project_root`) and runs the scan call above again, replacing `{manifest_scan}`. Option 3 is a HALT (exit 6, `hal
  • Dangerous shell operationline 126
    STOP and wait for the user's response. Option 2 sets `{scan_root}` to the folder the user names (a relative path resolves from `project_root`) and runs the scan call above again, replacing `{manifest_scan}`. Option 3 is a HALT (exit 6, `hal

src/skf-create-stack-skill/references/generate-output.md

  • Dangerous shell operationline 235
    On failure, invoke the rollback contract from §1. Then delete the working files no later step reads: `rm -rf "{draftFolder}" "{bundleFile}" "{exportRecordsFile}" "{importCountsFile}" "{pairsFile}" "{stackInventoryFile}" "{composeEntriesFile
  • Dangerous shell operationline 235
    On failure, invoke the rollback contract from §1. Then delete the working files no later step reads: `rm -rf "{draftFolder}" "{bundleFile}" "{exportRecordsFile}" "{importCountsFile}" "{pairsFile}" "{stackInventoryFile}" "{composeEntriesFile

src/skf-create-stack-skill/references/rank-and-confirm.md

  • Dangerous shell operationline 119
    - IF X: HALT (exit 6, `halt_reason: "user-cancelled"`, phase `rank-and-confirm:scope`): leave any existing committed stack package untouched, emit the envelope, then delete the run folder (`rm -rf "{run_dir}"`)
  • Dangerous shell operationline 119
    - IF X: HALT (exit 6, `halt_reason: "user-cancelled"`, phase `rank-and-confirm:scope`): leave any existing committed stack package untouched, emit the envelope, then delete the run folder (`rm -rf "{run_dir}"`)

src/skf-create-stack-skill/references/report.md

  • Dangerous shell operationline 98
    After the report sections above are handled, delete the run folder, whose warnings and decisions the envelope and the result files now hold: `rm -rf "{run_dir}"`. Then load, read the full file, and execute `{nextStepFile}`. The health-check
  • Dangerous shell operationline 98
    After the report sections above are handled, delete the run folder, whose warnings and decisions the envelope and the result files now hold: `rm -rf "{run_dir}"`. Then load, read the full file, and execute `{nextStepFile}`. The health-check

src/skf-drop-skill/SKILL.md

  • Dangerous shell operationline 94
    mkdir -p "{skills_output_folder}" &&       printf 'probe' > "{skills_output_folder}/.skf-write-probe" &&       rm "{skills_output_folder}/.skf-write-probe"
  • Dangerous shell operationline 94
    mkdir -p "{skills_output_folder}" &&       printf 'probe' > "{skills_output_folder}/.skf-write-probe" &&       rm "{skills_output_folder}/.skf-write-probe"
  • Dangerous shell operationline 96
    rm "{skills_output_folder}/.skf-write-probe"
  • Dangerous shell operationline 96
    rm "{skills_output_folder}/.skf-write-probe"

src/skf-drop-skill/references/execute.md

  • Dangerous shell operationline 47
    and display the line it prints verbatim. Write the payload as valid JSON: in the halt message and `path`, replace each backslash with / and each double quote with a backtick. The emitter gives every field the site leaves out its default (`n
  • Dangerous shell operationline 47
    and display the line it prints verbatim. Write the payload as valid JSON: in the halt message and `path`, replace each backslash with / and each double quote with a backtick. The emitter gives every field the site leaves out its default (`n
  • Dangerous shell operationline 152
    - **No non-deprecated versions remain** (`resolve.counts.non_deprecated` is `0`, reachable only when dropping the sole surviving version, permitted in step 1 because no other non-deprecated versions existed): remove the now-dangling `active
  • Dangerous shell operationline 152
    - **No non-deprecated versions remain** (`resolve.counts.non_deprecated` is `0`, reachable only when dropping the sole surviving version, permitted in step 1 because no other non-deprecated versions existed): remove the now-dangling `active
  • Dangerous shell operationline 164
    - **`failed`**: at least one path was attempted and none was deleted, so the purge accomplished none of its destructive intent and must NOT report success. HALT (exit code 4, `halt_reason: "delete-failed"`, phase `execute:delete`): "**Purge
  • Dangerous shell operationline 164
    - **`failed`**: at least one path was attempted and none was deleted, so the purge accomplished none of its destructive intent and must NOT report success. HALT (exit code 4, `halt_reason: "delete-failed"`, phase `execute:delete`): "**Purge

src/skf-drop-skill/references/report.md

  • Dangerous shell operationline 67
    {if delete_failures is non-empty:}- Not deleted:           {each delete_failures path with its error} (remove by hand: `rm -rf {path}`)
  • Dangerous shell operationline 67
    {if delete_failures is non-empty:}- Not deleted:           {each delete_failures path with its error} (remove by hand: `rm -rf {path}`)
  • Dangerous shell operationline 136
    Whether or not a hook ran, then delete the run folder, whose payload the emitter has read: `rm -rf "{run_dir}"`.
  • Dangerous shell operationline 136
    Whether or not a hook ran, then delete the run folder, whose payload the emitter has read: `rm -rf "{run_dir}"`.

src/skf-drop-skill/references/select.md

  • Dangerous shell operationline 43
    and display the line it prints verbatim. Write the payload as valid JSON: in the halt message and `path`, replace each backslash with / and each double quote with a backtick. The emitter gives every field the site leaves out its default (`n
  • Dangerous shell operationline 43
    and display the line it prints verbatim. Write the payload as valid JSON: in the halt message and `path`, replace each backslash with / and each double quote with a backtick. The emitter gives every field the site leaves out its default (`n
  • Dangerous shell operationline 312
    A dry run passes no `--result-dir`, so it writes no result file. Then, in either mode, delete the run folder (`rm -rf "{run_dir}"`) and HALT (exit code 0). In a headless run, display the line the emitter printed verbatim (the `message` of i
  • Dangerous shell operationline 312
    A dry run passes no `--result-dir`, so it writes no result file. Then, in either mode, delete the run folder (`rm -rf "{run_dir}"`) and HALT (exit code 0). In a headless run, display the line the emitter printed verbatim (the `message` of i

src/skf-drop-skill/scripts/dir-sizes.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Executable scriptline 1
    #!/usr/bin/env python3

src/skf-drop-skill/scripts/drop-roster.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Executable scriptline 1
    #!/usr/bin/env python3

src/skf-export-skill/SKILL.md

  • Dangerous shell operationline 98
    mkdir -p "{skills_output_folder}" &&       printf 'probe' > "{skills_output_folder}/.skf-write-probe" &&       rm "{skills_output_folder}/.skf-write-probe"
  • Dangerous shell operationline 98
    mkdir -p "{skills_output_folder}" &&       printf 'probe' > "{skills_output_folder}/.skf-write-probe" &&       rm "{skills_output_folder}/.skf-write-probe"
  • Dangerous shell operationline 100
    rm "{skills_output_folder}/.skf-write-probe"
  • Dangerous shell operationline 100
    rm "{skills_output_folder}/.skf-write-probe"

src/skf-export-skill/references/summary.md

  • Network accessline 94
    **Rendering rule for the command below — must be obeyed:** substitute `{resolved_skill_package}` with the actual resolved path before printing (do not leave the placeholder for the user to replace). The substituted path must be either absol
  • Network accessline 94
    **Rendering rule for the command below — must be obeyed:** substitute `{resolved_skill_package}` with the actual resolved path before printing (do not leave the placeholder for the user to replace). The substituted path must be either absol
  • Network accessline 104
    For other source formats (registry name, git URL, tarball, etc.), see the **Installation → Source Formats** section at <https://www.npmjs.com/package/skills>.
  • Network accessline 104
    For other source formats (registry name, git URL, tarball, etc.), see the **Installation → Source Formats** section at <https://www.npmjs.com/package/skills>.

src/skf-forger/SKILL.md

  • Network accessline 85
    - `status` `hard-halt` (`code` `CONFIG_MISSING`, `CONFIG_MALFORMED` or `SIDECAR_UNDEFINED`): HARD HALT with its `error` text.    - No JSON object with a `status`: HARD HALT with what the call printed. When `uv` itself is missing, add that S
  • Network accessline 85
    - `status` `hard-halt` (`code` `CONFIG_MISSING`, `CONFIG_MALFORMED` or `SIDECAR_UNDEFINED`): HARD HALT with its `error` text.    - No JSON object with a `status`: HARD HALT with what the call printed. When `uv` itself is missing, add that S
  • Network accessline 86
    - No JSON object with a `status`: HARD HALT with what the call printed. When `uv` itself is missing, add that SKF runs its scripts with `uv`, which installs from <https://docs.astral.sh/uv/getting-started/installation/>.
  • Network accessline 86
    - No JSON object with a `status`: HARD HALT with what the call printed. When `uv` itself is missing, add that SKF runs its scripts with `uv`, which installs from <https://docs.astral.sh/uv/getting-started/installation/>.

src/skf-forger/references/pipeline-mode.md

  • Network accessline 7
    1. **Parse the invocation**: hand the parser the user's whole pipeline invocation, everything typed after `@Ferris` or `/skf-forger`: the codes, or the alias with the arguments after it (for example `forge-auto https://github.com/honojs/hon
  • Network accessline 7
    1. **Parse the invocation**: hand the parser the user's whole pipeline invocation, everything typed after `@Ferris` or `/skf-forger`: the codes, or the alias with the arguments after it (for example `forge-auto https://github.com/honojs/hon

src/skf-forger/scripts/forge-status.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Executable scriptline 1
    #!/usr/bin/env python3

src/skf-forger/scripts/parse-pipeline.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 40
    uv run scripts/parse-pipeline.py 'forge-quick'      # exit 3: missing_args [target]   uv run scripts/parse-pipeline.py 'QS TS EX'         # exit 0: first_input, QS's target   uv run scripts/parse-pipeline.py 'forge-auto https://github.com/o
  • Network accessline 40
    uv run scripts/parse-pipeline.py 'forge-quick'      # exit 3: missing_args [target]   uv run scripts/parse-pipeline.py 'QS TS EX'         # exit 0: first_input, QS's target   uv run scripts/parse-pipeline.py 'forge-auto https://github.com/o
  • Network accessline 41
    uv run scripts/parse-pipeline.py 'QS TS EX'         # exit 0: first_input, QS's target   uv run scripts/parse-pipeline.py 'forge-auto https://github.com/o/r --pin 0.2.1'   echo 'AN -> CS -> TS -> EX' | uv run scripts/parse-pipeline.py --std
  • Network accessline 41
    uv run scripts/parse-pipeline.py 'QS TS EX'         # exit 0: first_input, QS's target   uv run scripts/parse-pipeline.py 'forge-auto https://github.com/o/r --pin 0.2.1'   echo 'AN -> CS -> TS -> EX' | uv run scripts/parse-pipeline.py --std
  • Network accessline 42
    uv run scripts/parse-pipeline.py 'forge-auto https://github.com/o/r --pin 0.2.1'
  • Network accessline 42
    uv run scripts/parse-pipeline.py 'forge-auto https://github.com/o/r --pin 0.2.1'

src/skf-forger/scripts/pipeline-gate.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 162
    [Credential-related source omitted]
  • Access to secretsline 162
    [Credential-related source omitted]

src/skf-forger/scripts/pipeline-journal.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 122
    CLI usage (from the skf-forger skill root):   uv run scripts/pipeline-journal.py start --run-root <dir> <<'SKF_PIPELINE'   forge-auto https://github.com/honojs/hono --pin v4.6.0
  • Network accessline 122
    CLI usage (from the skf-forger skill root):   uv run scripts/pipeline-journal.py start --run-root <dir> <<'SKF_PIPELINE'   forge-auto https://github.com/honojs/hono --pin v4.6.0
  • Network accessline 123
    uv run scripts/pipeline-journal.py start --run-root <dir> <<'SKF_PIPELINE'   forge-auto https://github.com/honojs/hono --pin v4.6.0   SKF_PIPELINE
  • Network accessline 123
    uv run scripts/pipeline-journal.py start --run-root <dir> <<'SKF_PIPELINE'   forge-auto https://github.com/honojs/hono --pin v4.6.0   SKF_PIPELINE
  • Network accessline 124
    forge-auto https://github.com/honojs/hono --pin v4.6.0
  • Network accessline 124
    forge-auto https://github.com/honojs/hono --pin v4.6.0

src/skf-quick-skill/SKILL.md

  • Network accessline 62
    Then check the runtime: every helper this workflow runs, the envelope emitter included, runs through `uv run`, so confirm that `python3` and `uv` are both on `$PATH` (`command -v python3` and `command -v uv`). If either is missing, HARD HAL
  • Network accessline 62
    Then check the runtime: every helper this workflow runs, the envelope emitter included, runs through `uv run`, so confirm that `python3` and `uv` are both on `$PATH` (`command -v python3` and `command -v uv`). If either is missing, HARD HAL

src/skf-quick-skill/references/batch-mode.md

  • Network accessline 28
    @vercel/og cognee@0.5.0 https://github.com/foo/bar
  • Network accessline 28
    @vercel/og cognee@0.5.0 https://github.com/foo/bar
  • Network accessline 29
    cognee@0.5.0 https://github.com/foo/bar https://github.com/foo/bar@2.1.0-beta
  • Network accessline 29
    cognee@0.5.0 https://github.com/foo/bar https://github.com/foo/bar@2.1.0-beta
  • Network accessline 30
    https://github.com/foo/bar
  • Network accessline 30
    https://github.com/foo/bar
  • Network accessline 31
    https://github.com/foo/bar@2.1.0-beta
  • Network accessline 31
    https://github.com/foo/bar@2.1.0-beta

src/skf-quick-skill/references/finalize.md

  • Dangerous shell operationline 32
    **Resolve `{atomicWriteHelper}`** from `{atomicWriteProbeOrder}`; first existing path wins. If no candidate exists, skip the flip the same way `--no-active-pointer` does: log "Active pointer: skipped, atomic-write helper unavailable", omit 
  • Dangerous shell operationline 32
    **Resolve `{atomicWriteHelper}`** from `{atomicWriteProbeOrder}`; first existing path wins. If no candidate exists, skip the flip the same way `--no-active-pointer` does: log "Active pointer: skipped, atomic-write helper unavailable", omit 
  • Dangerous shell operationline 129
    case "{run_dir}" in */.skf-run/skf-quick-skill-*) rm -rf "{run_dir}/src" && rm -f "{run_dir}"/*.json "{run_dir}"/*.jsonl "{run_dir}"/*.txt && rmdir "{run_dir}" ;; esac
  • Dangerous shell operationline 129
    case "{run_dir}" in */.skf-run/skf-quick-skill-*) rm -rf "{run_dir}/src" && rm -f "{run_dir}"/*.json "{run_dir}"/*.jsonl "{run_dir}"/*.txt && rmdir "{run_dir}" ;; esac

src/skf-quick-skill/references/quick-extract.md

  • Dangerous shell operationline 44
    rm -f "{run_dir}"/extract*.json
  • Dangerous shell operationline 44
    rm -f "{run_dir}"/extract*.json
  • Network accessline 73
    - **library** (default) — README has installation / usage / API content; manifest at root with publishable metadata. Proceed normally. - **awesome-list** — README H1 contains "awesome" (case-insensitive) or `awesome-` is in the repo name; R
  • Network accessline 73
    - **library** (default) — README has installation / usage / API content; manifest at root with publishable metadata. Proceed normally. - **awesome-list** — README H1 contains "awesome" (case-insensitive) or `awesome-` is in the repo name; R
  • Network accessline 74
    - **awesome-list** — README H1 contains "awesome" (case-insensitive) or `awesome-` is in the repo name; README body is dominated by curated bullet links of the form `- [name](url) — desc`; no manifest at root. - **docs-site / website** — RE
  • Network accessline 74
    - **awesome-list** — README H1 contains "awesome" (case-insensitive) or `awesome-` is in the repo name; README body is dominated by curated bullet links of the form `- [name](url) — desc`; no manifest at root. - **docs-site / website** — RE
  • Network accessline 75
    - **docs-site / website** — README is short (under ~50 non-empty lines) and primarily points elsewhere ("See https://… for docs"); root has no manifest, or only a docs-framework manifest (e.g. `docusaurus.config.js`, `astro.config.mjs`, `mk
  • Network accessline 75
    - **docs-site / website** — README is short (under ~50 non-empty lines) and primarily points elsewhere ("See https://… for docs"); root has no manifest, or only a docs-framework manifest (e.g. `docusaurus.config.js`, `astro.config.mjs`, `mk

src/skf-quick-skill/references/resolve-target.md

  • Network accessline 46
    Examples: `cocoindex`, `@tanstack/react-query`, `requests==2.31.0`, `https://github.com/tursodatabase/limbo`, `cognee@0.5.0`
  • Network accessline 46
    Examples: `cocoindex`, `@tanstack/react-query`, `requests==2.31.0`, `https://github.com/tursodatabase/limbo`, `cognee@0.5.0`
  • Network accessline 82
    "**This input looks like a description, not a package or URL.** Quick Skill needs a package name (e.g. `lodash`, `@vercel/og`, `requests==2.31.0`) or a GitHub URL (e.g. `https://github.com/lodash/lodash`).
  • Network accessline 82
    "**This input looks like a description, not a package or URL.** Quick Skill needs a package name (e.g. `lodash`, `@vercel/og`, `requests==2.31.0`) or a GitHub URL (e.g. `https://github.com/lodash/lodash`).

src/skf-quick-skill/references/write-and-validate.md

  • Dangerous shell operationline 71
    case "{skill_package}" in */{repo_name}/{version}/{repo_name}) rm -rf "{skill_package}" && mkdir -p "{skill_package}" ;; esac
  • Dangerous shell operationline 71
    case "{skill_package}" in */{repo_name}/{version}/{repo_name}) rm -rf "{skill_package}" && mkdir -p "{skill_package}" ;; esac

src/skf-refine-architecture/SKILL.md

  • Dangerous shell operationline 107
    mkdir -p "$dir" &&         printf 'probe' > "$dir/.skf-write-probe" &&         rm "$dir/.skf-write-probe"
  • Dangerous shell operationline 107
    mkdir -p "$dir" &&         printf 'probe' > "$dir/.skf-write-probe" &&         rm "$dir/.skf-write-probe"
  • Dangerous shell operationline 109
    rm "$dir/.skf-write-probe"
  • Dangerous shell operationline 109
    rm "$dir/.skf-write-probe"

src/skf-refine-architecture/references/compile.md

  • Dangerous shell operationline 193
    - IF cancel / exit / [X] / q / :q: delete the draft (`rm -f "{draftFile}"`), display "Cancelled: refinement not finalized. `{outputFile}` is unchanged." and HALT (exit code 6, `halt_reason: "user-cancelled"`) at phase `compile:review`. Thes
  • Dangerous shell operationline 193
    - IF cancel / exit / [X] / q / :q: delete the draft (`rm -f "{draftFile}"`), display "Cancelled: refinement not finalized. `{outputFile}` is unchanged." and HALT (exit code 6, `halt_reason: "user-cancelled"`) at phase `compile:review`. Thes

src/skf-refine-architecture/references/report.md

  • Dangerous shell operationline 120
    Then delete the run folder, whose analysis copy, plan and payloads the run no longer needs: `rm -rf "{run_dir}"`. Then load, read the full file, and execute `{nextStepFile}`: the health-check step is the true terminal step of this workflow,
  • Dangerous shell operationline 120
    Then delete the run folder, whose analysis copy, plan and payloads the run no longer needs: `rm -rf "{run_dir}"`. Then load, read the full file, and execute `{nextStepFile}`: the health-check step is the true terminal step of this workflow,

src/skf-refine-architecture/scripts/skf-check-preservation.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Executable scriptline 1
    #!/usr/bin/env python3

src/skf-rename-skill/references/execute.md

  • Dangerous shell operationline 118
    **Rollback procedure for this section:** `rm -rf {new_skill_group}`, plus `rm -rf {new_forge_group}` when `{forge_move}` is true (this run created it), each without a trailing `/`. Old skill is untouched.
  • Dangerous shell operationline 118
    **Rollback procedure for this section:** `rm -rf {new_skill_group}`, plus `rm -rf {new_forge_group}` when `{forge_move}` is true (this run created it), each without a trailing `/`. Old skill is untouched.
  • Dangerous shell operationline 147
    - `rm -rf {new_skill_group}`, plus `rm -rf {new_forge_group}` when `{forge_move}` is true (this run created it), each without a trailing `/`
  • Dangerous shell operationline 147
    - `rm -rf {new_skill_group}`, plus `rm -rf {new_forge_group}` when `{forge_move}` is true (this run created it), each without a trailing `/`
  • Dangerous shell operationline 177
    if [ -L "{new_skill_group}/active" ]; then rm -f "{new_skill_group}/active"
  • Dangerous shell operationline 177
    if [ -L "{new_skill_group}/active" ]; then rm -f "{new_skill_group}/active"
  • Dangerous shell operationline 178
    elif [ -e "{new_skill_group}/active" ]; then rm -rf "{new_skill_group}/active"
  • Dangerous shell operationline 178
    elif [ -e "{new_skill_group}/active" ]; then rm -rf "{new_skill_group}/active"
  • Dangerous shell operationline 194
    - `rm -rf {new_skill_group}`, plus `rm -rf {new_forge_group}` when `{forge_move}` is true (this run created it), each without a trailing `/`
  • Dangerous shell operationline 194
    - `rm -rf {new_skill_group}`, plus `rm -rf {new_forge_group}` when `{forge_move}` is true (this run created it), each without a trailing `/`
  • Dangerous shell operationline 216
    - `rm -rf {new_skill_group}`, plus `rm -rf {new_forge_group}` when `{forge_move}` is true (this run created it), each without a trailing `/`
  • Dangerous shell operationline 216
    - `rm -rf {new_skill_group}`, plus `rm -rf {new_forge_group}` when `{forge_move}` is true (this run created it), each without a trailing `/`
  • Dangerous shell operationline 262
    - `rm -rf {new_skill_group}`, plus `rm -rf {new_forge_group}` when `{forge_move}` is true (this run created it), each without a trailing `/`
  • Dangerous shell operationline 262
    - `rm -rf {new_skill_group}`, plus `rm -rf {new_forge_group}` when `{forge_move}` is true (this run created it), each without a trailing `/`
  • Dangerous shell operationline 339
    Report: "**Deleted old directories:** `{old_skill_group}`{if forge_move: ' and `{old_forge_group}`'}. {if deletion_errors is non-empty: 'Errors: {list} — remove manually with `rm -rf {path}`.'}"
  • Dangerous shell operationline 339
    Report: "**Deleted old directories:** `{old_skill_group}`{if forge_move: ' and `{old_forge_group}`'}. {if deletion_errors is non-empty: 'Errors: {list} — remove manually with `rm -rf {path}`.'}"

src/skf-rename-skill/references/report.md

  • Dangerous shell operationline 60
    - When `deletion_errors` is not empty, each one, with: "The new name is fully committed. Remove the remnants by hand with `rm -rf {path}`."
  • Dangerous shell operationline 60
    - When `deletion_errors` is not empty, each one, with: "The new name is fully committed. Remove the remnants by hand with `rm -rf {path}`."
  • Dangerous shell operationline 102
    rm -f "{run_dir}/result-context.json" "{run_dir}/decision.json" "{run_dir}/headless-decisions.jsonl" "{run_dir}/warnings.jsonl" "{run_dir}/rename-rewrite.json" "{run_dir}/export-manifest.backup.json" && rmdir "{run_dir}"
  • Dangerous shell operationline 102
    rm -f "{run_dir}/result-context.json" "{run_dir}/decision.json" "{run_dir}/headless-decisions.jsonl" "{run_dir}/warnings.jsonl" "{run_dir}/rename-rewrite.json" "{run_dir}/export-manifest.backup.json" && rmdir "{run_dir}"

src/skf-rename-skill/references/select.md

  • Dangerous shell operationline 75
    { mkdir -p "$dir" && printf 'probe' > "$dir/.skf-write-probe" && rm "$dir/.skf-write-probe"; } \
  • Dangerous shell operationline 75
    { mkdir -p "$dir" && printf 'probe' > "$dir/.skf-write-probe" && rm "$dir/.skf-write-probe"; } \
  • Dangerous shell operationline 83
    Once the loop passes and `{customization_resolver_unavailable}` is set (SKILL.md On Activation step 3), record the reason in the run sink: write `customization_resolver_unavailable: {customization_resolver_unavailable}` to `{run_dir}/resolv
  • Dangerous shell operationline 83
    Once the loop passes and `{customization_resolver_unavailable}` is set (SKILL.md On Activation step 3), record the reason in the run sink: write `customization_resolver_unavailable: {customization_resolver_unavailable}` to `{run_dir}/resolv
  • Dangerous shell operationline 167
    Two concurrent rename runs against the same `old_name` would corrupt state mid-copy: one would `rm -rf` the other's freshly-staged new directories, or both would race on the manifest re-key. Take the run lock, a file that names the run hold
  • Dangerous shell operationline 167
    Two concurrent rename runs against the same `old_name` would corrupt state mid-copy: one would `rm -rf` the other's freshly-staged new directories, or both would race on the manifest re-key. Take the run lock, a file that names the run hold
  • Dangerous shell operationline 335
    rm -f "{run_dir}/result-context.json" "{run_dir}/decision.json" "{run_dir}/headless-decisions.jsonl" "{run_dir}/warnings.jsonl" && rmdir "{run_dir}"
  • Dangerous shell operationline 335
    rm -f "{run_dir}/result-context.json" "{run_dir}/decision.json" "{run_dir}/headless-decisions.jsonl" "{run_dir}/warnings.jsonl" && rmdir "{run_dir}"

src/skf-rename-skill/scripts/skf-validate-rename-name.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Executable scriptline 1
    #!/usr/bin/env python3

src/skf-setup/SKILL.md

  • Network accessline 59
    3. **Probe `uv` runtime.** Run `uv --version`. If `uv` is missing, halt with phase `on-activation:uv-missing`, no `path`, and reason `Setup cannot proceed: uv is not installed. Install it from https://docs.astral.sh/uv/getting-started/insta
  • Network accessline 59
    3. **Probe `uv` runtime.** Run `uv --version`. If `uv` is missing, halt with phase `on-activation:uv-missing`, no `path`, and reason `Setup cannot proceed: uv is not installed. Install it from https://docs.astral.sh/uv/getting-started/insta

src/skf-setup/references/report.md

  • Dangerous shell operationline 81
    rm -f "{run_dir}/detect-tools.json" "{run_dir}/detect-tools.err" "{run_dir}/ccc-exclusions.json" "{run_dir}/write-tools.err" "{run_dir}/forge-data-dir.err" "{run_dir}/qmd-classify.json" "{run_dir}/qmd-remove.json" "{run_dir}/clean-stale.jso
  • Dangerous shell operationline 81
    rm -f "{run_dir}/detect-tools.json" "{run_dir}/detect-tools.err" "{run_dir}/ccc-exclusions.json" "{run_dir}/write-tools.err" "{run_dir}/forge-data-dir.err" "{run_dir}/qmd-classify.json" "{run_dir}/qmd-remove.json" "{run_dir}/clean-stale.jso

src/skf-test-skill/references/init.md

  • Network accessline 74
    Every step runs SKF's helpers through `uv run`, which also installs the dependencies each script declares (PEP 723); bare `python3` ignores them, so a helper such as the frontmatter validator fails on its PyYAML import. Confirm that `python
  • Network accessline 74
    Every step runs SKF's helpers through `uv run`, which also installs the dependencies each script declares (PEP 723); bare `python3` ignores them, so a helper such as the frontmatter validator fails on its PyYAML import. Confirm that `python

src/skf-test-skill/references/report.md

  • Dangerous shell operationline 312
    **`--no-health-check` flag bypass.** If `no_health_check: true` is set in workflow context (from the `--no-health-check` flag, `init.md` §1), §4c already recorded `health_check_dispatched: false` in the report and `healthCheckDispatched: fa
  • Dangerous shell operationline 312
    **`--no-health-check` flag bypass.** If `no_health_check: true` is set in workflow context (from the `--no-health-check` flag, `init.md` §1), §4c already recorded `health_check_dispatched: false` in the report and `healthCheckDispatched: fa
  • Dangerous shell operationline 323
    rm -rf "{project-root}/_bmad-output/.skf-run/skf-test-skill-{run_id}"
  • Dangerous shell operationline 323
    rm -rf "{project-root}/_bmad-output/.skf-run/skf-test-skill-{run_id}"

src/skf-test-skill/scripts/aggregate-coherence.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Executable scriptline 1
    #!/usr/bin/env python3

src/skf-test-skill/scripts/build-result-context.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Executable scriptline 1
    #!/usr/bin/env python3
  • Possible obfuscationline 138
    lines = text.lstrip("<U+FEFF>").split("\n")
  • Possible obfuscationline 138
    lines = text.lstrip("<U+FEFF>").split("\n")

src/skf-test-skill/scripts/check-metadata-coherence.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Executable scriptline 1
    #!/usr/bin/env python3

src/skf-test-skill/scripts/combine-external-scores.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Executable scriptline 1
    #!/usr/bin/env python3

src/skf-test-skill/scripts/compute-score.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Executable scriptline 1
    #!/usr/bin/env python3

src/skf-test-skill/scripts/gap-ledger.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Executable scriptline 1
    #!/usr/bin/env python3

src/skf-test-skill/scripts/hard-gate.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Executable scriptline 1
    #!/usr/bin/env python3

src/skf-test-skill/scripts/load-coverage-inputs.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Executable scriptline 1
    #!/usr/bin/env python3

src/skf-test-skill/scripts/locate-export-segments.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 45
    usage-scope). A qualified name (`client.fetch`, `Store::load`) matches only as written, except that a declaration also matches its last part (`def fetch(`): a declaration never carries the qualifier.
  • Network accessline 45
    usage-scope). A qualified name (`client.fetch`, `Store::load`) matches only as written, except that a declaration also matches its last part (`def fetch(`): a declaration never carries the qualifier.
  • Network accessline 47
    (`def fetch(`): a declaration never carries the qualifier.
  • Network accessline 47
    (`def fetch(`): a declaration never carries the qualifier.
  • Network accessline 589
    return True                 else:                     expr = i  # a grouping `(`: `await (fetch())`
  • Network accessline 589
    return True                 else:                     expr = i  # a grouping `(`: `await (fetch())`
  • Network accessline 590
    else:                     expr = i  # a grouping `(`: `await (fetch())`                 close = _matching_close(text, i)
  • Network accessline 590
    else:                     expr = i  # a grouping `(`: `await (fetch())`                 close = _matching_close(text, i)
  • Network accessline 591
    expr = i  # a grouping `(`: `await (fetch())`
  • Network accessline 591
    expr = i  # a grouping `(`: `await (fetch())`

src/skf-test-skill/scripts/reconcile-coverage.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Executable scriptline 1
    #!/usr/bin/env python3

src/skf-test-skill/scripts/score-signatures.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Executable scriptline 1
    #!/usr/bin/env python3

src/skf-test-skill/scripts/stage-helper-payload.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Executable scriptline 1
    #!/usr/bin/env python3

src/skf-test-skill/scripts/validate-inventory.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Executable scriptline 1
    #!/usr/bin/env python3

src/skf-test-skill/scripts/verify-declared-numerator.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Executable scriptline 1
    #!/usr/bin/env python3

src/skf-update-skill/references/health-check.md

  • Dangerous shell operationline 50
    1c. **Remove this update's run folder** `{run_dir}` in every mode (`--detect-only` and `--dry-run` included), when `{run_dir}` is bound: from `{project-root}`, run `rm -rf "{run_dir}"`. It holds this run's state, its decision log and warnin
  • Dangerous shell operationline 50
    1c. **Remove this update's run folder** `{run_dir}` in every mode (`--detect-only` and `--dry-run` included), when `{run_dir}` is bound: from `{project-root}`, run `rm -rf "{run_dir}"`. It holds this run's state, its decision log and warnin

src/skf-update-skill/references/write.md

  • Dangerous shell operationline 14
    # the helper, an "rm and recreate" pattern would leave a brief window where
  • Dangerous shell operationline 14
    # the helper, an "rm and recreate" pattern would leave a brief window where

src/skf-update-skill/scripts/skf-new-file-diff.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Executable scriptline 1
    #!/usr/bin/env python3

src/skf-verify-stack/references/init.md

  • Dangerous shell operationline 68
    mkdir -p "{outputFolderPath}" &&    printf 'probe' > "{outputFolderPath}/.skf-write-probe" &&    rm "{outputFolderPath}/.skf-write-probe"
  • Dangerous shell operationline 68
    mkdir -p "{outputFolderPath}" &&    printf 'probe' > "{outputFolderPath}/.skf-write-probe" &&    rm "{outputFolderPath}/.skf-write-probe"
  • Dangerous shell operationline 70
    rm "{outputFolderPath}/.skf-write-probe"
  • Dangerous shell operationline 70
    rm "{outputFolderPath}/.skf-write-probe"

src/skf-verify-stack/references/report.md

  • Dangerous shell operationline 156
    If `{workflow.on_complete}` is non-empty, execute it now (e.g. route the verdict onward or trigger a downstream step); in headless, log the action. Then delete the run folder, whose inventory, summaries and payloads the run no longer needs:
  • Dangerous shell operationline 156
    If `{workflow.on_complete}` is non-empty, execute it now (e.g. route the verdict onward or trigger a downstream step); in headless, log the action. Then delete the run folder, whose inventory, summaries and payloads the run no longer needs:

src/skf-verify-stack/scripts/skf-coverage-tally.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Executable scriptline 1
    #!/usr/bin/env python3

src/skf-verify-stack/scripts/skf-previous-report.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Executable scriptline 1
    #!/usr/bin/env python3

src/skf-verify-stack/scripts/skf-report-delta.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Executable scriptline 1
    #!/usr/bin/env python3

src/skf-verify-stack/scripts/skf-verdict-rollup.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Executable scriptline 1
    #!/usr/bin/env python3

How the signals fit together

Facts from a static read of the files at the pinned commit. They describe what the code does, not why.

Some files could not be read; the facts below still hold.

Declared and executed: 1 fact
Signal confidence: 353 facts

and 303 more

Works with

Agent compatibility, from the files in this repository
AgentStatusEvidenceInstall to
Claude CodeNativeManifest .claude-plugin/marketplace.json.claude/skills/<skill-name>/
CodexCompatibleStandard SKILL.md src/skf-analyze-source/SKILL.md.agents/skills/<skill-name>/
CursorCompatibleStandard SKILL.md src/skf-analyze-source/SKILL.md.cursor/skills/<skill-name>/
Gemini CLICompatibleStandard SKILL.md src/skf-analyze-source/SKILL.md.gemini/skills/<skill-name>/
GitHub CopilotCompatibleStandard SKILL.md src/skf-analyze-source/SKILL.md.github/skills/<skill-name>/
OpenCodeCompatibleStandard SKILL.md src/skf-analyze-source/SKILL.md.opencode/skills/<skill-name>/
  • Native The repository ships a manifest, folder or frontmatter field for this agent.
  • Compatible A standard SKILL.md that this agent can read.
  • Unknown No evidence either way.

Derived automatically from paths, manifests and frontmatter. Not tested on each agent.