bmad-module-skill-forge 0.9.0 → 0.10.1-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +39 -0
- package/.gitattributes +16 -0
- package/README.md +105 -38
- package/docs/404.md +13 -10
- package/docs/RELEASING.md +185 -0
- package/docs/STABILITY.md +123 -0
- package/docs/_data/pinned.yaml +98 -0
- package/docs/agents.md +16 -11
- package/docs/architecture.md +221 -0
- package/docs/bmad-synergy.md +11 -13
- package/docs/concepts.md +18 -108
- package/docs/examples.md +121 -80
- package/docs/getting-started.md +85 -147
- package/docs/how-it-works.md +25 -536
- package/docs/index.md +44 -27
- package/docs/skill-model.md +328 -0
- package/docs/troubleshooting.md +39 -0
- package/docs/verifying-a-skill.md +232 -0
- package/docs/why-skf.md +93 -0
- package/docs/workflows.md +119 -13
- package/package.json +25 -4
- package/src/README.md +23 -25
- package/src/forger/forge-tier.yaml +4 -2
- package/src/forger/preferences.yaml +7 -1
- package/src/knowledge/agentskills-spec.md +1 -1
- package/src/knowledge/architecture-verification.md +1 -1
- package/src/knowledge/ccc-bridge.md +16 -15
- package/src/knowledge/overview.md +11 -11
- package/src/knowledge/progressive-capability.md +3 -3
- package/src/knowledge/provenance-tracking.md +9 -3
- package/src/knowledge/qmd-registry.md +8 -8
- package/src/knowledge/skf-knowledge-index.csv +2 -2
- package/src/knowledge/skill-lifecycle.md +16 -1
- package/src/knowledge/split-body-strategy.md +1 -1
- package/src/knowledge/version-paths.md +17 -12
- package/src/module-help.csv +18 -17
- package/src/module.yaml +4 -0
- package/src/shared/health-check.md +372 -0
- package/src/shared/references/feasibility-report-schema.md +86 -0
- package/src/shared/references/headless-gate-convention.md +62 -0
- package/src/shared/references/output-contract-schema.md +35 -0
- package/src/shared/references/pipeline-contracts.md +102 -0
- package/src/shared/scripts/skf-atomic-write.py +370 -0
- package/src/shared/scripts/skf-manifest-ops.py +236 -0
- package/src/shared/scripts/skf-preflight.py +164 -0
- package/src/shared/scripts/skf-rebuild-managed-sections.py +201 -0
- package/src/shared/scripts/skf-severity-classify.py +163 -0
- package/src/shared/scripts/skf-skill-inventory.py +210 -0
- package/src/shared/scripts/skf-structural-diff.py +257 -0
- package/src/shared/scripts/skf-validate-frontmatter.py +318 -0
- package/src/shared/scripts/skf-validate-output.py +247 -0
- package/src/skf-analyze-source/SKILL.md +57 -0
- package/src/skf-analyze-source/assets/skill-brief-schema.md +125 -0
- package/src/skf-analyze-source/references/unit-detection-heuristics.md +124 -0
- package/src/{workflows/analyze-source → skf-analyze-source}/steps-c/step-01-init.md +6 -66
- package/src/{workflows/analyze-source → skf-analyze-source}/steps-c/step-01b-continue.md +4 -59
- package/src/{workflows/analyze-source → skf-analyze-source}/steps-c/step-02-scan-project.md +7 -68
- package/src/{workflows/analyze-source → skf-analyze-source}/steps-c/step-03-identify-units.md +6 -66
- package/src/{workflows/analyze-source → skf-analyze-source}/steps-c/step-04-map-and-detect.md +7 -68
- package/src/{workflows/analyze-source → skf-analyze-source}/steps-c/step-05-recommend.md +6 -66
- package/src/{workflows/analyze-source → skf-analyze-source}/steps-c/step-06-generate-briefs.md +14 -66
- package/src/skf-analyze-source/steps-c/step-07-health-check.md +22 -0
- package/src/skf-audit-skill/SKILL.md +59 -0
- package/src/{workflows/audit-skill/data → skf-audit-skill/assets}/drift-report-template.md +7 -7
- package/src/{workflows/audit-skill/data → skf-audit-skill/references}/severity-rules.md +11 -11
- package/src/{workflows/audit-skill → skf-audit-skill}/steps-c/step-01-init.md +24 -68
- package/src/{workflows/audit-skill → skf-audit-skill}/steps-c/step-02-re-index.md +36 -71
- package/src/{workflows/audit-skill → skf-audit-skill}/steps-c/step-03-structural-diff.md +21 -63
- package/src/{workflows/audit-skill → skf-audit-skill}/steps-c/step-04-semantic-diff.md +6 -65
- package/src/{workflows/audit-skill → skf-audit-skill}/steps-c/step-05-severity-classify.md +5 -63
- package/src/{workflows/audit-skill → skf-audit-skill}/steps-c/step-06-report.md +10 -59
- package/src/skf-audit-skill/steps-c/step-07-health-check.md +22 -0
- package/src/skf-brief-skill/SKILL.md +53 -0
- package/src/{workflows/brief-skill/data → skf-brief-skill/assets}/scope-templates.md +23 -0
- package/src/skf-brief-skill/assets/skill-brief-schema.md +206 -0
- package/src/{workflows/brief-skill → skf-brief-skill}/steps-c/step-01-gather-intent.md +6 -67
- package/src/{workflows/brief-skill → skf-brief-skill}/steps-c/step-02-analyze-target.md +6 -66
- package/src/{workflows/brief-skill → skf-brief-skill}/steps-c/step-03-scope-definition.md +12 -68
- package/src/{workflows/brief-skill → skf-brief-skill}/steps-c/step-04-confirm-brief.md +5 -63
- package/src/{workflows/brief-skill → skf-brief-skill}/steps-c/step-05-write-brief.md +10 -69
- package/src/skf-brief-skill/steps-c/step-06-health-check.md +22 -0
- package/src/skf-create-skill/SKILL.md +63 -0
- package/src/{workflows/create-skill/data → skf-create-skill/assets}/compile-assembly-rules.md +60 -0
- package/src/{workflows/create-skill/data → skf-create-skill/assets}/skill-sections.md +92 -23
- package/src/skf-create-skill/assets/tessl-dismissal-rules.md +102 -0
- package/src/{workflows/create-skill/data → skf-create-skill/references}/extraction-patterns-tracing.md +13 -13
- package/src/{workflows/create-skill/data → skf-create-skill/references}/extraction-patterns.md +8 -3
- package/src/skf-create-skill/references/source-resolution-protocols.md +239 -0
- package/src/{workflows/create-skill/data → skf-create-skill/references}/tier-degradation-rules.md +8 -7
- package/src/{workflows/create-skill → skf-create-skill}/steps-c/step-01-load-brief.md +25 -63
- package/src/{workflows/create-skill → skf-create-skill}/steps-c/step-02-ecosystem-check.md +8 -64
- package/src/skf-create-skill/steps-c/step-03-extract.md +379 -0
- package/src/{workflows/create-skill → skf-create-skill}/steps-c/step-03d-component-extraction.md +18 -35
- package/src/{workflows/create-skill → skf-create-skill}/steps-c/step-04-enrich.md +12 -69
- package/src/{workflows/create-skill → skf-create-skill}/steps-c/step-05-compile.md +71 -75
- package/src/skf-create-skill/steps-c/step-06-validate.md +267 -0
- package/src/{workflows/create-skill → skf-create-skill}/steps-c/step-07-generate-artifacts.md +30 -74
- package/src/skf-create-skill/steps-c/step-08-report.md +145 -0
- package/src/skf-create-skill/steps-c/step-09-health-check.md +23 -0
- package/src/{workflows/create-skill/steps-c → skf-create-skill/steps-c/sub}/step-02b-ccc-discover.md +8 -66
- package/src/skf-create-skill/steps-c/sub/step-03b-fetch-temporal.md +229 -0
- package/src/{workflows/create-skill/steps-c → skf-create-skill/steps-c/sub}/step-03c-fetch-docs.md +18 -42
- package/src/skf-create-stack-skill/SKILL.md +64 -0
- package/src/{workflows/create-stack-skill/data → skf-create-stack-skill/assets}/stack-skill-template.md +2 -1
- package/src/{workflows/create-stack-skill/data → skf-create-stack-skill/references}/compose-mode-rules.md +19 -5
- package/src/{workflows/create-stack-skill/data → skf-create-stack-skill/references}/integration-patterns.md +1 -1
- package/src/{workflows/create-stack-skill/data → skf-create-stack-skill/references}/manifest-patterns.md +10 -10
- package/src/{workflows/create-stack-skill → skf-create-stack-skill}/steps-c/step-01-init.md +14 -55
- package/src/{workflows/create-stack-skill → skf-create-stack-skill}/steps-c/step-02-detect-manifests.md +29 -63
- package/src/{workflows/create-stack-skill → skf-create-stack-skill}/steps-c/step-03-rank-and-confirm.md +9 -59
- package/src/{workflows/create-stack-skill → skf-create-stack-skill}/steps-c/step-04-parallel-extract.md +29 -64
- package/src/skf-create-stack-skill/steps-c/step-05-detect-integrations.md +164 -0
- package/src/{workflows/create-stack-skill → skf-create-stack-skill}/steps-c/step-06-compile-stack.md +7 -60
- package/src/skf-create-stack-skill/steps-c/step-07-generate-output.md +328 -0
- package/src/{workflows/create-stack-skill → skf-create-stack-skill}/steps-c/step-08-validate.md +17 -63
- package/src/skf-create-stack-skill/steps-c/step-09-report.md +128 -0
- package/src/skf-create-stack-skill/steps-c/step-10-health-check.md +22 -0
- package/src/skf-drop-skill/SKILL.md +57 -0
- package/src/{workflows/drop-skill → skf-drop-skill}/steps-c/step-01-select.md +9 -69
- package/src/{workflows/drop-skill → skf-drop-skill}/steps-c/step-02-execute.md +30 -106
- package/src/skf-drop-skill/steps-c/step-03-report.md +83 -0
- package/src/skf-drop-skill/steps-c/step-04-health-check.md +22 -0
- package/src/skf-export-skill/SKILL.md +57 -0
- package/src/skf-export-skill/assets/managed-section-format.md +138 -0
- package/src/{workflows/export-skill/data → skf-export-skill/assets}/snippet-format.md +8 -12
- package/src/skf-export-skill/steps-c/step-01-load-skill.md +247 -0
- package/src/{workflows/export-skill → skf-export-skill}/steps-c/step-02-package.md +5 -58
- package/src/{workflows/export-skill → skf-export-skill}/steps-c/step-03-generate-snippet.md +15 -77
- package/src/{workflows/export-skill → skf-export-skill}/steps-c/step-04-update-context.md +59 -133
- package/src/{workflows/export-skill → skf-export-skill}/steps-c/step-05-token-report.md +4 -58
- package/src/{workflows/export-skill → skf-export-skill}/steps-c/step-06-summary.md +20 -64
- package/src/skf-export-skill/steps-c/step-07-health-check.md +22 -0
- package/src/skf-forger/SKILL.md +110 -0
- package/src/skf-forger/bmad-skill-manifest.yaml +11 -0
- package/src/skf-quick-skill/SKILL.md +56 -0
- package/src/{workflows/quick-skill/data → skf-quick-skill/references}/registry-resolution.md +6 -6
- package/src/{workflows/quick-skill → skf-quick-skill}/steps-c/step-01-resolve-target.md +9 -62
- package/src/{workflows/quick-skill → skf-quick-skill}/steps-c/step-02-ecosystem-check.md +5 -59
- package/src/{workflows/quick-skill → skf-quick-skill}/steps-c/step-03-quick-extract.md +18 -61
- package/src/{workflows/quick-skill → skf-quick-skill}/steps-c/step-04-compile.md +6 -60
- package/src/{workflows/quick-skill → skf-quick-skill}/steps-c/step-05-validate.md +58 -78
- package/src/skf-quick-skill/steps-c/step-06-write.md +73 -0
- package/src/skf-quick-skill/steps-c/step-07-health-check.md +22 -0
- package/src/skf-refine-architecture/SKILL.md +57 -0
- package/src/{workflows/refine-architecture/data → skf-refine-architecture/references}/refinement-rules.md +16 -16
- package/src/{workflows/refine-architecture → skf-refine-architecture}/steps-c/step-01-init.md +6 -63
- package/src/{workflows/refine-architecture → skf-refine-architecture}/steps-c/step-02-gap-analysis.md +29 -71
- package/src/{workflows/refine-architecture → skf-refine-architecture}/steps-c/step-03-issue-detection.md +5 -65
- package/src/{workflows/refine-architecture → skf-refine-architecture}/steps-c/step-04-improvements.md +5 -64
- package/src/{workflows/refine-architecture → skf-refine-architecture}/steps-c/step-05-compile.md +5 -56
- package/src/{workflows/refine-architecture → skf-refine-architecture}/steps-c/step-06-report.md +14 -64
- package/src/skf-refine-architecture/steps-c/step-07-health-check.md +22 -0
- package/src/skf-rename-skill/SKILL.md +58 -0
- package/src/{workflows/rename-skill → skf-rename-skill}/steps-c/step-01-select.md +12 -73
- package/src/{workflows/rename-skill → skf-rename-skill}/steps-c/step-02-execute.md +32 -113
- package/src/skf-rename-skill/steps-c/step-03-report.md +83 -0
- package/src/skf-rename-skill/steps-c/step-04-health-check.md +22 -0
- package/src/skf-setup/SKILL.md +55 -0
- package/src/{workflows/setup-forge → skf-setup}/steps-c/step-01-detect-and-tier.md +6 -62
- package/src/{workflows/setup-forge → skf-setup}/steps-c/step-01b-ccc-index.md +9 -65
- package/src/{workflows/setup-forge → skf-setup}/steps-c/step-02-write-config.md +15 -60
- package/src/{workflows/setup-forge → skf-setup}/steps-c/step-03-auto-index.md +7 -66
- package/src/skf-setup/steps-c/step-04-report.md +92 -0
- package/src/skf-setup/steps-c/step-05-health-check.md +22 -0
- package/src/skf-test-skill/SKILL.md +59 -0
- package/src/skf-test-skill/references/migration-section-rules.md +114 -0
- package/src/skf-test-skill/references/scoring-rules.md +207 -0
- package/src/skf-test-skill/references/source-access-protocol.md +109 -0
- package/src/skf-test-skill/scripts/compute-score.py +310 -0
- package/src/skf-test-skill/steps-c/step-01-init.md +238 -0
- package/src/{workflows/test-skill → skf-test-skill}/steps-c/step-02-detect-mode.md +4 -62
- package/src/skf-test-skill/steps-c/step-03-coverage-check.md +347 -0
- package/src/skf-test-skill/steps-c/step-04-coherence-check.md +239 -0
- package/src/{workflows/test-skill → skf-test-skill}/steps-c/step-04b-external-validators.md +42 -77
- package/src/skf-test-skill/steps-c/step-05-score.md +266 -0
- package/src/skf-test-skill/steps-c/step-06-report.md +290 -0
- package/src/skf-test-skill/steps-c/step-07-health-check.md +25 -0
- package/src/skf-test-skill/templates/test-report-template.md +58 -0
- package/src/skf-update-skill/SKILL.md +58 -0
- package/src/{workflows/update-skill/data → skf-update-skill/references}/manual-section-rules.md +6 -6
- package/src/{workflows/update-skill/data → skf-update-skill/references}/merge-conflict-rules.md +5 -5
- package/src/skf-update-skill/references/remote-source-resolution.md +94 -0
- package/src/{workflows/update-skill → skf-update-skill}/steps-c/step-01-init.md +22 -69
- package/src/skf-update-skill/steps-c/step-02-detect-changes.md +255 -0
- package/src/skf-update-skill/steps-c/step-03-re-extract.md +336 -0
- package/src/{workflows/update-skill → skf-update-skill}/steps-c/step-04-merge.md +60 -72
- package/src/{workflows/update-skill → skf-update-skill}/steps-c/step-05-validate.md +5 -62
- package/src/skf-update-skill/steps-c/step-06-write.md +278 -0
- package/src/{workflows/update-skill → skf-update-skill}/steps-c/step-07-report.md +11 -66
- package/src/skf-update-skill/steps-c/step-08-health-check.md +22 -0
- package/src/skf-verify-stack/SKILL.md +60 -0
- package/src/skf-verify-stack/assets/feasibility-report-template.md +76 -0
- package/src/{workflows/verify-stack/data → skf-verify-stack/references}/coverage-patterns.md +12 -4
- package/src/skf-verify-stack/references/integration-verification-rules.md +78 -0
- package/src/skf-verify-stack/steps-c/step-01-init.md +178 -0
- package/src/{workflows/verify-stack → skf-verify-stack}/steps-c/step-02-coverage.md +27 -72
- package/src/skf-verify-stack/steps-c/step-03-integrations.md +179 -0
- package/src/{workflows/verify-stack → skf-verify-stack}/steps-c/step-04-requirements.md +14 -67
- package/src/skf-verify-stack/steps-c/step-05-synthesize.md +147 -0
- package/src/skf-verify-stack/steps-c/step-06-report.md +156 -0
- package/src/skf-verify-stack/steps-c/step-07-health-check.md +25 -0
- package/tools/cli/commands/install.js +1 -1
- package/tools/cli/commands/status.js +21 -23
- package/tools/cli/commands/uninstall.js +11 -19
- package/tools/cli/commands/update.js +2 -2
- package/tools/cli/lib/ide-skills.js +216 -0
- package/tools/cli/lib/installer.js +29 -52
- package/tools/cli/lib/manifest.js +11 -5
- package/tools/cli/lib/platform-codes.yaml +223 -0
- package/tools/cli/lib/ui.js +76 -47
- package/tools/validate-docs-drift.js +193 -0
- package/src/agents/forger.agent.yaml +0 -114
- package/src/workflows/README.md +0 -174
- package/src/workflows/analyze-source/data/skill-brief-schema.md +0 -125
- package/src/workflows/analyze-source/data/unit-detection-heuristics.md +0 -124
- package/src/workflows/analyze-source/workflow.md +0 -61
- package/src/workflows/audit-skill/workflow.md +0 -64
- package/src/workflows/brief-skill/data/skill-brief-schema.md +0 -159
- package/src/workflows/brief-skill/workflow.md +0 -58
- package/src/workflows/create-skill/data/source-resolution-protocols.md +0 -200
- package/src/workflows/create-skill/steps-c/step-03-extract.md +0 -301
- package/src/workflows/create-skill/steps-c/step-03b-fetch-temporal.md +0 -253
- package/src/workflows/create-skill/steps-c/step-06-validate.md +0 -254
- package/src/workflows/create-skill/steps-c/step-08-report.md +0 -176
- package/src/workflows/create-skill/workflow.md +0 -53
- package/src/workflows/create-stack-skill/steps-c/step-05-detect-integrations.md +0 -196
- package/src/workflows/create-stack-skill/steps-c/step-07-generate-output.md +0 -270
- package/src/workflows/create-stack-skill/steps-c/step-09-report.md +0 -145
- package/src/workflows/create-stack-skill/workflow.md +0 -59
- package/src/workflows/drop-skill/steps-c/step-03-report.md +0 -135
- package/src/workflows/drop-skill/workflow.md +0 -63
- package/src/workflows/export-skill/data/managed-section-format.md +0 -103
- package/src/workflows/export-skill/steps-c/step-01-load-skill.md +0 -237
- package/src/workflows/export-skill/workflow.md +0 -58
- package/src/workflows/quick-skill/steps-c/step-06-write.md +0 -179
- package/src/workflows/quick-skill/workflow.md +0 -58
- package/src/workflows/refine-architecture/workflow.md +0 -61
- package/src/workflows/rename-skill/steps-c/step-03-report.md +0 -132
- package/src/workflows/rename-skill/workflow.md +0 -64
- package/src/workflows/setup-forge/steps-c/step-04-report.md +0 -156
- package/src/workflows/setup-forge/workflow.md +0 -51
- package/src/workflows/test-skill/data/scoring-rules.md +0 -123
- package/src/workflows/test-skill/data/source-access-protocol.md +0 -51
- package/src/workflows/test-skill/steps-c/step-01-init.md +0 -217
- package/src/workflows/test-skill/steps-c/step-03-coverage-check.md +0 -280
- package/src/workflows/test-skill/steps-c/step-04-coherence-check.md +0 -271
- package/src/workflows/test-skill/steps-c/step-05-score.md +0 -222
- package/src/workflows/test-skill/steps-c/step-06-report.md +0 -207
- package/src/workflows/test-skill/templates/test-report-template.md +0 -28
- package/src/workflows/test-skill/workflow.md +0 -57
- package/src/workflows/update-skill/data/remote-source-resolution.md +0 -57
- package/src/workflows/update-skill/steps-c/step-02-detect-changes.md +0 -221
- package/src/workflows/update-skill/steps-c/step-03-re-extract.md +0 -256
- package/src/workflows/update-skill/steps-c/step-06-write.md +0 -265
- package/src/workflows/update-skill/workflow.md +0 -56
- package/src/workflows/verify-stack/data/feasibility-report-template.md +0 -63
- package/src/workflows/verify-stack/data/integration-verification-rules.md +0 -73
- package/src/workflows/verify-stack/steps-c/step-01-init.md +0 -179
- package/src/workflows/verify-stack/steps-c/step-03-integrations.md +0 -195
- package/src/workflows/verify-stack/steps-c/step-05-synthesize.md +0 -191
- package/src/workflows/verify-stack/steps-c/step-06-report.md +0 -197
- package/src/workflows/verify-stack/workflow.md +0 -61
- package/tools/cli/lib/compiler.js +0 -306
- package/tools/cli/lib/ide-commands.js +0 -244
- /package/src/{workflows/analyze-source → skf-analyze-source}/templates/analysis-report-template.md +0 -0
- /package/src/{workflows/quick-skill/data → skf-quick-skill/assets}/skill-template.md +0 -0
- /package/src/{workflows/setup-forge/data → skf-setup/references}/tier-rules.md +0 -0
- /package/src/{workflows/test-skill/data → skf-test-skill/assets}/output-section-formats.md +0 -0
package/docs/how-it-works.md
CHANGED
|
@@ -1,341 +1,37 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: How It Works
|
|
3
|
-
description:
|
|
3
|
+
description: A plain-English walkthrough of Skill Forge compiling one skill from a real library, end to end.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
This page is for people who want to understand how SKF works under the hood. It covers the BMad framework, workflow architecture, capability tiers, output format, tool ecosystem, and key design decisions. For definitions of key terms, see [Concepts](../concepts/).
|
|
6
|
+
Skill Forge reads your code, extracts what your AI agents actually need, and compiles it into instructions with citations. This page walks through what that looks like end-to-end. For the machinery behind it, see [Architecture](../architecture/). For what ships inside a skill, see [Skill Model](../skill-model/).
|
|
9
7
|
|
|
10
8
|
---
|
|
11
9
|
|
|
12
|
-
##
|
|
13
|
-
|
|
14
|
-
[BMad](https://docs.bmad-method.org/) works because it turns big, fuzzy work into **repeatable workflows**. Each workflow is broken into small steps with clear instructions, so the AI follows the same path every time. It also uses a **shared knowledge base** (standards and patterns) so outputs are consistent, not random. In short: **structured steps + shared standards = reliable results**.
|
|
15
|
-
|
|
16
|
-
## How SKF Fits In
|
|
17
|
-
|
|
18
|
-
SKF plugs into BMad the same way a specialist plugs into a team. It uses the same step-by-step workflow engine and shared standards, but focuses exclusively on skill compilation and quality assurance. That means you get **evidence-based agent skills**, **AST-verified instructions**, and **drift detection** that align with the rest of the BMad process.
|
|
19
|
-
|
|
20
|
-
---
|
|
21
|
-
|
|
22
|
-
## Architecture & Flow
|
|
23
|
-
|
|
24
|
-
BMad is a small **agent + workflow engine**. There is no external orchestrator — everything runs inside the LLM context window through structured instructions.
|
|
25
|
-
|
|
26
|
-
### Building Blocks
|
|
27
|
-
|
|
28
|
-
Each workflow directory contains these files, and each has a specific job:
|
|
29
|
-
|
|
30
|
-
| File | What it does | When it loads |
|
|
31
|
-
|---------------------------|---------------------------------------------------------------------------------------------------------------------|---------------------------------------------------|
|
|
32
|
-
| `workflow.md` | Human-readable entry point — goals, role definition, initialization sequence, routes to first step | Entry point per workflow |
|
|
33
|
-
| `steps-c/*.md` | **Create** steps — primary execution, 5–11 sequential files per workflow | One at a time (just-in-time) |
|
|
34
|
-
| `data/*.md` | Workflow-specific reference data — schemas, heuristics, rules, patterns | Read by steps on demand |
|
|
35
|
-
| `templates/*.md` | Output skeletons with placeholder vars — steps fill these in to produce the final artifact | Read by steps when generating output |
|
|
10
|
+
## A walkthrough: building a cognee skill
|
|
36
11
|
|
|
37
|
-
|
|
12
|
+
Your AI agent keeps hallucinating cognee API calls. You run one command:
|
|
38
13
|
|
|
39
|
-
| File | What it does | When it loads |
|
|
40
|
-
|---------------------------|---------------------------------------------------------------------------------------------------------------------|---------------------------------------------------|
|
|
41
|
-
| `forger.agent.yaml` | Expert persona — identity, principles, critical actions, menu of triggers | First — always in context |
|
|
42
|
-
| `skf-knowledge-index.csv` | Knowledge fragment index — id, name, tags, tier, file path | Read by steps to decide which fragments to load |
|
|
43
|
-
| `knowledge/*.md` | 13 reusable fragments + overview.md index — cross-cutting principles and patterns (e.g., `zero-hallucination.md`, `confidence-tiers.md`, `ccc-bridge.md`) | Selectively read into context when a step directs |
|
|
44
|
-
|
|
45
|
-
```mermaid
|
|
46
|
-
flowchart LR
|
|
47
|
-
U[User] --> A[Agent Persona]
|
|
48
|
-
A --> W[Workflow Entry: workflow.md]
|
|
49
|
-
W --> S[Step Files: steps-c/]
|
|
50
|
-
S --> K[Knowledge Fragments<br/>skf-knowledge-index.csv → knowledge/*.md]
|
|
51
|
-
S --> D[Data & Templates<br/>data/*.md, templates/*.md]
|
|
52
|
-
S --> O[Outputs: skills/, forge-data/, sidecar<br/>when a step writes output]
|
|
53
14
|
```
|
|
54
|
-
|
|
55
|
-
### How It Works at Runtime
|
|
56
|
-
|
|
57
|
-
1. **Trigger** — User types `@Ferris CS` (or fuzzy match like `create-skill`). The agent menu in `forger.agent.yaml` maps the trigger to the workflow path.
|
|
58
|
-
2. **Agent loads** — `forger.agent.yaml` injects the persona (identity, principles, critical actions) into the context window. Sidecar files (`forge-tier.yaml`, `preferences.yaml`) are loaded for persistent state.
|
|
59
|
-
3. **Workflow loads** — `workflow.md` presents the mode choice and routes to the first step file.
|
|
60
|
-
4. **Step-by-step execution** — Only the current step file is in context (just-in-time loading). Each step explicitly names the next one. The LLM reads, executes, saves output, then loads the next step. No future steps are ever preloaded.
|
|
61
|
-
5. **Knowledge injection** — Steps consult `skf-knowledge-index.csv` and selectively load fragments from `knowledge/` by tags and relevance. Cross-cutting principles (zero hallucination, confidence tiers, provenance) are loaded only when a step directs — not preloaded.
|
|
62
|
-
6. **Data injection** — Steps read `data/*.md` files as needed (schemas, heuristics, extraction patterns). This is deliberate context engineering: only the data relevant to the current step enters the context window.
|
|
63
|
-
7. **Templates** — When a step produces output (e.g., a skill brief or test report), it reads the template file and fills in placeholders with computed results. The template provides consistent structure; the step provides the content.
|
|
64
|
-
8. **Progress tracking** — Each step appends to an output file with state tracking. Resume mode reads this state and routes to the next incomplete step.
|
|
65
|
-
|
|
66
|
-
### Ferris Operating Modes
|
|
67
|
-
|
|
68
|
-
Ferris operates in four workflow-driven modes (mode is determined by which workflow is running, not conversation state):
|
|
69
|
-
|
|
70
|
-
| Mode | Workflows | Behavior |
|
|
71
|
-
|---------------|--------------------|-------------------------------------------------------------|
|
|
72
|
-
| **Architect** | SF, AN, BS, CS, QS, SS, RA | Exploratory, assembling, refining — discovers structure, scopes skills, and improves architecture |
|
|
73
|
-
| **Surgeon** | US | Precise, semantic diffing — preserves [MANUAL] sections during regeneration |
|
|
74
|
-
| **Audit** | AS, TS, VS | Judgmental, scoring — evaluates quality and detects drift |
|
|
75
|
-
| **Delivery** | EX | Validates package, generates snippets, injects into context files |
|
|
76
|
-
|
|
77
|
-
---
|
|
78
|
-
|
|
79
|
-
## Why Another Tool?
|
|
80
|
-
|
|
81
|
-
AI agents guess API calls from training data. When the training data is wrong, outdated, or incomplete, they hallucinate — inventing function names, guessing parameter types, producing code that fails at runtime.
|
|
82
|
-
|
|
83
|
-
Several approaches exist to address this, but each has a gap:
|
|
84
|
-
|
|
85
|
-
| Approach | What it does well | Where it falls short |
|
|
86
|
-
|----------|-------------------|----------------------|
|
|
87
|
-
| Skill scaffolding (`npx skills init`) | Generates a spec-compliant skill file | The file is empty — you still have to write every instruction by hand |
|
|
88
|
-
| LLM summarization | Understands context and intent | Generates plausible-sounding content that may not match the actual API |
|
|
89
|
-
| RAG / context stuffing | Retrieves relevant code snippets | Returns fragments without synthesis — no coherent skill output |
|
|
90
|
-
| Manual authoring | High initial accuracy | Drifts as the source code changes, doesn't scale across dependencies |
|
|
91
|
-
| IDE built-in context (Copilot, Cursor) | Convenient, zero setup | Uses generic training data, not your project's specific integration patterns |
|
|
92
|
-
|
|
93
|
-
SKF takes a different approach: it mechanically extracts function signatures, type definitions, and usage patterns from source code via AST parsing, enriches them with documentation and developer discourse, then compiles everything into version-pinned skills that comply with the [agentskills.io specification](https://agentskills.io/specification). Every instruction traces to its source — nothing is generated from training data.
|
|
94
|
-
|
|
95
|
-
---
|
|
96
|
-
|
|
97
|
-
## Progressive Capability Model
|
|
98
|
-
|
|
99
|
-
SKF uses an additive tier model. You never lose capability by adding a tool.
|
|
100
|
-
|
|
101
|
-
| Tier | Required Tools | What You Get |
|
|
102
|
-
|------|---------------|-------------|
|
|
103
|
-
| **Quick** | None (`gh_bridge`, `skill-check`, `tessl` used when available) | Source reading + spec validation + content quality review. Best-effort skills in under a minute. **Note:** Quick Skill (QS) is tier-unaware by design — it always runs at community tier regardless of installed tools. |
|
|
104
|
-
| **Forge** | + `ast_bridge` (ast-grep) | Structural truth. AST-verified signatures. Co-import detection. T1 confidence. |
|
|
105
|
-
| **Forge+** | + `ccc_bridge` (cocoindex-code) | Semantic discovery. CCC pre-ranks files by meaning before AST extraction. Better coverage on large codebases. |
|
|
106
|
-
| **Deep** | `ast_bridge` + `gh_bridge` (gh) + `qmd_bridge` (QMD). CCC optional — enhances when installed. | Knowledge search. Temporal provenance. Drift detection. Full intelligence. |
|
|
107
|
-
|
|
108
|
-
Setup detects your installed tools and sets your tier automatically:
|
|
109
|
-
|
|
110
|
-
```
|
|
111
|
-
@Ferris SF
|
|
15
|
+
@Ferris QS https://github.com/topoteretes/cognee
|
|
112
16
|
```
|
|
113
17
|
|
|
114
|
-
|
|
115
|
-
Forge initialized. Tools: gh, ast-grep, ccc, QMD. Tier: Deep. Ready.
|
|
116
|
-
```
|
|
117
|
-
|
|
118
|
-
Don't have ast-grep, cocoindex-code, or QMD yet? No problem — Quick mode works with no additional tools. Optional GitHub CLI improves source access. Install tools later; your tier upgrades automatically.
|
|
119
|
-
|
|
120
|
-
### Tier Override — Comparing Output Across Tiers
|
|
121
|
-
|
|
122
|
-
You can force a specific tier by setting `tier_override` in your preferences file (`_bmad/_memory/forger-sidecar/preferences.yaml`):
|
|
123
|
-
|
|
124
|
-
```yaml
|
|
125
|
-
# Force Forge tier regardless of detected tools
|
|
126
|
-
tier_override: Forge
|
|
127
|
-
```
|
|
18
|
+
In under a minute, you get a `SKILL.md` your agent can load — with every instruction traceable to a specific file and line in cognee's source code. Here's what happens between those two moments.
|
|
128
19
|
|
|
129
|
-
|
|
20
|
+
### 1. Ferris picks a workflow
|
|
130
21
|
|
|
131
|
-
|
|
132
|
-
# 1. Set tier_override: Quick in preferences.yaml
|
|
133
|
-
@Ferris CS # compile at Quick tier
|
|
22
|
+
`QS` is a trigger — short for *Quick Skill*. Ferris is the single AI agent that runs every Skill Forge workflow. He reads the trigger, loads the Quick Skill workflow, and prepares the context he needs to do the job.
|
|
134
23
|
|
|
135
|
-
|
|
136
|
-
@Ferris CS # recompile at Forge tier — compare output
|
|
24
|
+
### 2. The workflow resolves your target
|
|
137
25
|
|
|
138
|
-
|
|
139
|
-
@Ferris CS # recompile with semantic discovery — compare coverage
|
|
26
|
+
Ferris confirms the repository exists, detects its language, finds its version from the source manifest (`pyproject.toml`, `package.json`, etc.), and records the exact commit SHA he'll read from. This is the anchor — everything that follows traces back to this one commit.
|
|
140
27
|
|
|
141
|
-
|
|
142
|
-
```
|
|
28
|
+
### 3. He extracts the API
|
|
143
29
|
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
---
|
|
147
|
-
|
|
148
|
-
## Confidence Tiers
|
|
149
|
-
|
|
150
|
-
Every claim in a generated skill carries a confidence tier that traces to its source:
|
|
151
|
-
|
|
152
|
-
| Tier | Source | Tool | What It Means |
|
|
153
|
-
|------|--------|------|---------------|
|
|
154
|
-
| **T1** | AST extraction | `ast_bridge` | Current code, structurally verified. Immutable for that version. |
|
|
155
|
-
| **T1-low** | Source reading | `gh_bridge` | Source-read without AST verification. Location correct, signature may be inferred. |
|
|
156
|
-
| **T2** | QMD evidence | `qmd_bridge` | Historical + planned context (issues, PRs, changelogs, docs). |
|
|
157
|
-
| **T3** | External documentation | `doc_fetcher` | External, untrusted. Quarantined. |
|
|
158
|
-
|
|
159
|
-
### Temporal Provenance
|
|
160
|
-
|
|
161
|
-
Confidence tiers map to temporal scopes:
|
|
162
|
-
|
|
163
|
-
- **T1-now (instructions):** What ast-grep sees in the checked-out code. This is what your agent executes.
|
|
164
|
-
- **T2-past (annotations):** Closed issues, merged PRs, changelogs — why the API looks the way it does.
|
|
165
|
-
- **T2-future (annotations):** Open PRs, deprecation warnings, RFCs — what's coming.
|
|
166
|
-
|
|
167
|
-
Progressive disclosure controls how much context surfaces at each level:
|
|
168
|
-
|
|
169
|
-
| Output | Content |
|
|
170
|
-
|--------|---------|
|
|
171
|
-
| `context-snippet.md` | T1-now + T2-future gotchas (breaking changes, deprecation warnings) — compressed, always-on |
|
|
172
|
-
| `SKILL.md` | T1-now + lightweight T2 annotations |
|
|
173
|
-
| `references/` | Full temporal context with all tiers |
|
|
174
|
-
|
|
175
|
-
### Tier Constrains Authority
|
|
176
|
-
|
|
177
|
-
Your forge tier limits what authority claims a skill can make:
|
|
178
|
-
|
|
179
|
-
| Forge Tier | AST? | CCC? | QMD? | Max Authority | Accuracy Guarantee |
|
|
180
|
-
|-----------|------|------|------|---------------|-------------------|
|
|
181
|
-
| Quick | No | No | No | `community` | Best-effort |
|
|
182
|
-
| Forge | Yes | No | No | `official` | Structural (AST-verified) |
|
|
183
|
-
| Forge+ | Yes | Yes | No | `official` | Structural + semantic discovery |
|
|
184
|
-
| Deep | Yes | opt. (enhances when installed) | Yes | `official` | Full (structural + contextual + temporal) |
|
|
185
|
-
|
|
186
|
-
---
|
|
187
|
-
|
|
188
|
-
## Completeness Scoring
|
|
189
|
-
|
|
190
|
-
The Test Skill workflow (`@Ferris TS`) calculates a **completeness score** — a weighted measure of how thoroughly and accurately a skill documents its target. This score is the quality gate: pass and the skill is ready for export; fail and it routes to update-skill for remediation.
|
|
191
|
-
|
|
192
|
-
### Categories & Weights
|
|
193
|
-
|
|
194
|
-
The score is the weighted sum of five categories:
|
|
195
|
-
|
|
196
|
-
| Category | Weight | What It Measures |
|
|
197
|
-
|----------|--------|------------------|
|
|
198
|
-
| **Export Coverage** | 36% | Percentage of source exports documented in SKILL.md |
|
|
199
|
-
| **Signature Accuracy** | 22% | Documented function signatures match actual source signatures (parameter names, types, order, return types) |
|
|
200
|
-
| **Type Coverage** | 14% | Types and interfaces referenced in exports are fully documented |
|
|
201
|
-
| **Coherence** | 18% | Cross-references resolve, integration patterns are complete (contextual mode only) |
|
|
202
|
-
| **External Validation** | 10% | Average of skill-check quality score (0-100) and tessl content score (0-100%) |
|
|
203
|
-
|
|
204
|
-
### Formula
|
|
205
|
-
|
|
206
|
-
```
|
|
207
|
-
total_score = sum(category_weight × category_score)
|
|
208
|
-
```
|
|
209
|
-
|
|
210
|
-
Each category score is a percentage: `(items_passing / items_total) × 100`.
|
|
211
|
-
|
|
212
|
-
**Coherence** (contextual mode) combines two sub-scores:
|
|
213
|
-
|
|
214
|
-
```
|
|
215
|
-
coherence = (reference_validity × 0.6) + (integration_completeness × 0.4)
|
|
216
|
-
```
|
|
217
|
-
|
|
218
|
-
If no integration patterns exist, coherence equals reference validity alone.
|
|
219
|
-
|
|
220
|
-
**External validation** averages the two tools when both are available. When only one tool is available, that tool's score is used. When neither is available, the 10% weight is redistributed proportionally to the other active categories.
|
|
221
|
-
|
|
222
|
-
### Naive vs Contextual Mode
|
|
223
|
-
|
|
224
|
-
Test Skill runs in one of two modes, detected automatically:
|
|
225
|
-
|
|
226
|
-
- **Contextual mode** (stack skills) — All five categories scored with the default weights above.
|
|
227
|
-
- **Naive mode** (individual skills) — Coherence is not scored. Its 18% weight is redistributed:
|
|
228
|
-
|
|
229
|
-
| Category | Naive Weight |
|
|
230
|
-
|----------|-------------|
|
|
231
|
-
| Export Coverage | 45% |
|
|
232
|
-
| Signature Accuracy | 25% |
|
|
233
|
-
| Type Coverage | 20% |
|
|
234
|
-
| External Validation | 10% |
|
|
235
|
-
|
|
236
|
-
### Tier Adjustments
|
|
237
|
-
|
|
238
|
-
Your forge tier determines which categories can be scored:
|
|
239
|
-
|
|
240
|
-
| Tier | Skipped Categories | Reason |
|
|
241
|
-
|------|-------------------|--------|
|
|
242
|
-
| **Quick** | Signature Accuracy, Type Coverage | No AST parsing available |
|
|
243
|
-
| **Docs-only** | Signature Accuracy, Type Coverage | No source code to compare against |
|
|
244
|
-
| **Provenance-map** (State 2) | Signature Accuracy, Type Coverage | String comparison only, no semantic AST verification |
|
|
245
|
-
| **Forge / Forge+ / Deep** | None | Full AST-backed scoring |
|
|
246
|
-
|
|
247
|
-
When categories are skipped, their combined weight (36%) is redistributed proportionally to the remaining active categories. A Quick-tier skill and a Deep-tier skill both pass at the same 80% threshold — the score reflects what your tier can actually measure.
|
|
248
|
-
|
|
249
|
-
### Pass/Fail
|
|
250
|
-
|
|
251
|
-
```
|
|
252
|
-
threshold = custom_threshold OR 80% (default)
|
|
253
|
-
|
|
254
|
-
score >= threshold → PASS → Recommend export-skill
|
|
255
|
-
score < threshold → FAIL → Recommend update-skill
|
|
256
|
-
```
|
|
30
|
+
He reads cognee's source code, identifies the public exports, and pulls out function signatures, parameter types, and return types. At the Forge tier (with ast-grep installed), each signature is verified against the real syntax tree of the source. At Quick tier (no extra tools), he reads the file directly. Either way, nothing is invented — if he can't cite it, he doesn't include it.
|
|
257
31
|
|
|
258
|
-
|
|
32
|
+
### 4. He writes the skill with receipts
|
|
259
33
|
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
When the score is calculated, each finding is classified by severity to guide remediation:
|
|
263
|
-
|
|
264
|
-
| Severity | Examples |
|
|
265
|
-
|----------|----------|
|
|
266
|
-
| **Critical** | Missing exported function/class documentation |
|
|
267
|
-
| **High** | Signature mismatch between source and SKILL.md |
|
|
268
|
-
| **Medium** | Missing type/interface documentation; scripts/assets directory inconsistencies |
|
|
269
|
-
| **Low** | Missing optional metadata or examples; description optimization opportunities |
|
|
270
|
-
| **Info** | Style suggestions; discovery testing recommendations |
|
|
271
|
-
|
|
272
|
-
### Score Report Output
|
|
273
|
-
|
|
274
|
-
The test report includes a score breakdown table showing each category's raw score, weight, and weighted contribution:
|
|
275
|
-
|
|
276
|
-
| Category | Score | Weight | Weighted |
|
|
277
|
-
|----------|-------|--------|----------|
|
|
278
|
-
| Export Coverage | 92% | 36% | 33.1% |
|
|
279
|
-
| Signature Accuracy | 85% | 22% | 18.7% |
|
|
280
|
-
| Type Coverage | 100% | 14% | 14.0% |
|
|
281
|
-
| Coherence | 80% | 18% | 14.4% |
|
|
282
|
-
| External Validation | 78% | 10% | 7.8% |
|
|
283
|
-
| **Total** | | **100%** | **88.0%** |
|
|
284
|
-
|
|
285
|
-
The report also records `analysisConfidence` (full, provenance-map, metadata-only, remote-only, or docs-only) and includes a degradation notice when source access was limited.
|
|
286
|
-
|
|
287
|
-
---
|
|
288
|
-
|
|
289
|
-
## Output Architecture
|
|
290
|
-
|
|
291
|
-
### Per-Skill Output
|
|
292
|
-
|
|
293
|
-
Every generated skill produces a self-contained, version-aware directory:
|
|
294
|
-
|
|
295
|
-
```
|
|
296
|
-
skills/{name}/
|
|
297
|
-
├── active -> {version} # Symlink to current version
|
|
298
|
-
├── {version}/
|
|
299
|
-
│ └── {name}/ # agentskills.io-compliant package
|
|
300
|
-
│ ├── SKILL.md # Active skill (loaded on trigger)
|
|
301
|
-
│ ├── context-snippet.md # Passive context (compressed, always-on)
|
|
302
|
-
│ ├── metadata.json # Machine-readable provenance
|
|
303
|
-
│ ├── references/ # Progressive disclosure
|
|
304
|
-
│ │ ├── {function-a}.md
|
|
305
|
-
│ │ └── {function-b}.md
|
|
306
|
-
│ ├── scripts/ # Executable automation (when detected in source)
|
|
307
|
-
│ │ └── {script-name}.sh
|
|
308
|
-
│ └── assets/ # Templates, schemas, configs (when detected in source)
|
|
309
|
-
│ └── {asset-name}.json
|
|
310
|
-
└── {older-version}/
|
|
311
|
-
└── {name}/ # Previous version preserved
|
|
312
|
-
└── ...
|
|
313
|
-
```
|
|
314
|
-
|
|
315
|
-
Multiple versions coexist under the same skill name. The `active` symlink points to the current version. Updating a skill for a new library release creates a new version directory — users pinned to older versions keep their skill intact. The inner `{name}/` directory is a standalone [agentskills.io](https://agentskills.io) package, directly installable via `npx skills add`.
|
|
316
|
-
|
|
317
|
-
The `scripts/` and `assets/` directories are optional — only created when the source repository contains executable scripts or static assets matching detection heuristics. Each file traces to its source via `[SRC:file:L1]` provenance citations with SHA-256 content hashes for drift detection. User-authored files go in `scripts/[MANUAL]/` or `assets/[MANUAL]/` subdirectories and are preserved during updates.
|
|
318
|
-
|
|
319
|
-
### SKILL.md Format
|
|
320
|
-
|
|
321
|
-
Skills follow the [agentskills.io specification](https://agentskills.io/specification) with frontmatter:
|
|
322
|
-
|
|
323
|
-
```yaml
|
|
324
|
-
---
|
|
325
|
-
name: cognee
|
|
326
|
-
description: >
|
|
327
|
-
Use when cognee is a Python AI memory engine that transforms documents into
|
|
328
|
-
knowledge graphs with vector and graph storage for semantic search and
|
|
329
|
-
reasoning. Use this skill when writing code that calls cognee's Python API
|
|
330
|
-
(add, cognify, search, memify, config, datasets, prune, session) or
|
|
331
|
-
integrating cognee-mcp. Covers the full public API, SearchType modes,
|
|
332
|
-
DataPoint custom models, pipeline tasks, and configuration for
|
|
333
|
-
LLM/embedding/vector/graph providers. Do NOT use for general knowledge graph
|
|
334
|
-
theory or unrelated Python libraries.
|
|
335
|
-
---
|
|
336
|
-
```
|
|
337
|
-
|
|
338
|
-
Every instruction in the body traces to source:
|
|
34
|
+
Each instruction in the output carries a receipt:
|
|
339
35
|
|
|
340
36
|
```python
|
|
341
37
|
await cognee.search( # [AST:cognee/api/v1/search/search.py:L26]
|
|
@@ -343,230 +39,23 @@ await cognee.search( # [AST:cognee/api/v1/search/search.py:L26]
|
|
|
343
39
|
)
|
|
344
40
|
```
|
|
345
41
|
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
Machine-readable provenance for every skill:
|
|
349
|
-
|
|
350
|
-
```json
|
|
351
|
-
{
|
|
352
|
-
"name": "cognee",
|
|
353
|
-
"version": "0.5.5",
|
|
354
|
-
"skill_type": "single",
|
|
355
|
-
"source_authority": "community",
|
|
356
|
-
"source_repo": "https://github.com/topoteretes/cognee",
|
|
357
|
-
"source_root": "cognee/",
|
|
358
|
-
"source_commit": null,
|
|
359
|
-
"source_ref": "v0.5.5",
|
|
360
|
-
"confidence_tier": "Deep",
|
|
361
|
-
"spec_version": "1.3",
|
|
362
|
-
"generation_date": "2026-03-20T16:55:00+04:00",
|
|
363
|
-
"stats": {
|
|
364
|
-
"exports_documented": 22,
|
|
365
|
-
"exports_public_api": 22,
|
|
366
|
-
"exports_internal": 815,
|
|
367
|
-
"exports_total": 837,
|
|
368
|
-
"public_api_coverage": 1.0,
|
|
369
|
-
"total_coverage": 0.026,
|
|
370
|
-
"confidence_t1": 837,
|
|
371
|
-
"confidence_t2": 14,
|
|
372
|
-
"confidence_t3": 10
|
|
373
|
-
}
|
|
374
|
-
}
|
|
375
|
-
```
|
|
376
|
-
|
|
377
|
-
`scripts` and `assets` arrays are optional — omitted entirely (not empty) when the source has no scripts or assets.
|
|
378
|
-
|
|
379
|
-
### Stack Skill Output
|
|
380
|
-
|
|
381
|
-
Stack skills map how your dependencies interact — shared types, co-import patterns, integration points:
|
|
382
|
-
|
|
383
|
-
```
|
|
384
|
-
skills/{project}-stack/
|
|
385
|
-
├── active -> {version}
|
|
386
|
-
└── {version}/
|
|
387
|
-
└── {project}-stack/
|
|
388
|
-
├── SKILL.md # Integration patterns + project conventions
|
|
389
|
-
├── context-snippet.md # Compressed stack index
|
|
390
|
-
├── metadata.json # Component versions, integration graph
|
|
391
|
-
└── references/
|
|
392
|
-
├── nextjs.md # Project-specific subset
|
|
393
|
-
├── better-auth.md # Project-specific subset
|
|
394
|
-
└── integrations/
|
|
395
|
-
├── auth-db.md # Cross-library pattern
|
|
396
|
-
└── pwa-auth.md # Cross-library pattern
|
|
397
|
-
```
|
|
398
|
-
|
|
399
|
-
The primary source is your project repo. Component references trace to library repos. `skill_type: "stack"` in metadata.
|
|
400
|
-
|
|
401
|
-
---
|
|
402
|
-
|
|
403
|
-
## Dual-Output Strategy
|
|
404
|
-
|
|
405
|
-
Based on [Vercel research](https://vercel.com/blog/agents-md-outperforms-skills-in-our-agent-evals): passive context (AGENTS.md/CLAUDE.md) achieves 100% pass rate vs 79% for active skills alone.
|
|
406
|
-
|
|
407
|
-
Every skill generates both:
|
|
408
|
-
|
|
409
|
-
1. **SKILL.md** — Active skill loaded on trigger with full instructions
|
|
410
|
-
2. **context-snippet.md** — Passive context, compressed index; injected into platform context files (CLAUDE.md/AGENTS.md/.cursorrules) only when `export-skill` is run. Export reads configured IDEs from `config.yaml` and writes to all target platforms in one pass.
|
|
411
|
-
|
|
412
|
-
### Managed Context Section
|
|
413
|
-
|
|
414
|
-
Export injects a managed section between markers:
|
|
415
|
-
|
|
416
|
-
```markdown
|
|
417
|
-
<!-- SKF:BEGIN updated:2026-03-20 -->
|
|
418
|
-
[SKF Skills]|1 skill
|
|
419
|
-
|IMPORTANT: Prefer documented APIs over training data.
|
|
420
|
-
|
|
|
421
|
-
[cognee v0.5.5]|root: .agents/skills/cognee/
|
|
422
|
-
|IMPORTANT: cognee v0.5.5 — read SKILL.md before writing cognee code. Do NOT rely on training data.
|
|
423
|
-
|quick-start:{SKILL.md#quick-start} — add → cognify → search async workflow
|
|
424
|
-
|api: add(), cognify(), search(), memify(), config, datasets, prune, update(), session, SearchType, run_custom_pipeline(), visualize_graph()
|
|
425
|
-
|key-types:{SKILL.md#key-types} — SearchType(14 modes: GRAPH_COMPLETION default, RAG_COMPLETION, CHUNKS, CYPHER, TEMPORAL...), Task, DataPoint
|
|
426
|
-
|gotchas: all core functions are async (must await); delete() deprecated since v0.3.9 — use datasets.delete_data(); memify default pipeline changed to triplet embedding (Mar 2026)
|
|
427
|
-
<!-- SKF:END -->
|
|
428
|
-
```
|
|
429
|
-
|
|
430
|
-
~80-120 tokens per skill (version-pinned, retrieval instruction, section anchors, inline gotchas). Root paths are platform-aware (`.claude/skills/`, `.cursor/skills/`, `.agents/skills/`). Aligned with [Vercel's research](https://vercel.com/blog/agents-md-outperforms-skills-in-our-agent-evals) finding that indexed format with explicit retrieval instructions dramatically improves agent performance. Developer controls placement. Ferris controls content. Snippet updates only happen at `export-skill` — create and update are draft operations. An `.export-manifest.json` tracks which skills have been explicitly exported, preventing draft skills from leaking into the managed section.
|
|
431
|
-
|
|
432
|
-
---
|
|
433
|
-
|
|
434
|
-
## Tool Ecosystem
|
|
435
|
-
|
|
436
|
-
### 7 Tools
|
|
437
|
-
|
|
438
|
-
| Tool | Wraps | Purpose |
|
|
439
|
-
|------|-------|---------|
|
|
440
|
-
| **`gh_bridge`** | GitHub CLI (`gh`) | Source code access, issue mining, release tracking, PR intelligence |
|
|
441
|
-
| **`skill-check`** | [thedaviddias/skill-check](https://github.com/thedaviddias/skill-check) | Validation + auto-fix (`check --fix`), quality scoring (0-100), security scan, split-body, diff comparison |
|
|
442
|
-
| **`tessl`** | [tessl](https://tessl.io) | Content quality review, actionability scoring, progressive disclosure evaluation, AI judge with suggestions |
|
|
443
|
-
| **`ast_bridge`** | ast-grep CLI | Structural extraction, custom AST queries, co-import detection |
|
|
444
|
-
| **`ccc_bridge`** | cocoindex-code | Semantic code search, project indexing, file discovery pre-ranking |
|
|
445
|
-
| **`qmd_bridge`** | QMD (local search) | BM25 keyword search, vector semantic search, collection indexing |
|
|
446
|
-
| **`doc_fetcher`** | Environment web tools | Remote documentation fetching for T3-confidence content. Tool-agnostic — uses whatever web fetching is available (Firecrawl, WebFetch, curl, etc.). Output quarantined as T3. |
|
|
447
|
-
|
|
448
|
-
Bridge names are **conceptual interfaces** used throughout workflow steps. Each bridge resolves to concrete MCP tools, CLI commands, or fallback behavior depending on the IDE environment. See [`src/knowledge/tool-resolution.md`](https://github.com/armelhbobdad/bmad-module-skill-forge/blob/main/src/knowledge/tool-resolution.md) for the complete resolution table.
|
|
449
|
-
|
|
450
|
-
### Conflict Resolution
|
|
451
|
-
|
|
452
|
-
When tools disagree, higher priority wins for instructions. Lower priority is preserved as annotations:
|
|
453
|
-
|
|
454
|
-
| Priority | Source | Tool |
|
|
455
|
-
|----------|--------|------|
|
|
456
|
-
| 1 (highest) | AST extraction | `ast_bridge` |
|
|
457
|
-
| 1b | CCC discovery (pre-ranking) | `ccc_bridge` |
|
|
458
|
-
| 2 | QMD evidence | `qmd_bridge` |
|
|
459
|
-
| 3 | Source reading (non-AST) | `gh_bridge` |
|
|
460
|
-
| 4 | External documentation | `doc_fetcher` |
|
|
461
|
-
|
|
462
|
-
### Internal Utility
|
|
463
|
-
|
|
464
|
-
**`manifest_reader`** detects and parses dependency files across ecosystems:
|
|
465
|
-
|
|
466
|
-
- **Full support:** `package.json`, `pyproject.toml`, `requirements.txt`, `Cargo.toml`, `go.mod`
|
|
467
|
-
- **Basic support:** `build.gradle`, `pom.xml`, `Gemfile`, `composer.json`
|
|
468
|
-
|
|
469
|
-
---
|
|
470
|
-
|
|
471
|
-
## Workspace Artifacts
|
|
472
|
-
|
|
473
|
-
Build artifacts are committable — another developer can reproduce the same skill:
|
|
474
|
-
|
|
475
|
-
```
|
|
476
|
-
forge-data/{skill-name}/
|
|
477
|
-
├── skill-brief.yaml # Compilation config (version-independent)
|
|
478
|
-
└── {version}/
|
|
479
|
-
├── provenance-map.json # Source map with AST bindings
|
|
480
|
-
├── evidence-report.md # Build audit trail
|
|
481
|
-
└── extraction-rules.yaml # Language-specific ast-grep schema
|
|
482
|
-
```
|
|
483
|
-
|
|
484
|
-
The `provenance-map.json` includes a `file_entries` array for script/asset file-level provenance (SHA-256 hashes, source paths) alongside the export-level `entries` array.
|
|
485
|
-
|
|
486
|
-
`skills/` and `forge-data/` are committed. Agent memory (`_bmad/_memory/forger-sidecar/`) is gitignored.
|
|
487
|
-
|
|
488
|
-
---
|
|
489
|
-
|
|
490
|
-
## Ownership Model
|
|
42
|
+
That tag means: *this came from AST extraction of this exact file at this exact line.* You can click through to the upstream source at the pinned commit and see it yourself.
|
|
491
43
|
|
|
492
|
-
|
|
493
|
-
|---------|-------------------|-------------|
|
|
494
|
-
| OSS library (maintainer generates) | `official` | `npx skills publish` to agentskills ecosystem |
|
|
495
|
-
| Internal service (team generates) | `internal` | `skills/` in repo, ships with code |
|
|
496
|
-
| External dependency (consumer generates) | `community` | Local `skills/`, marked as community |
|
|
44
|
+
### 5. You get two files
|
|
497
45
|
|
|
498
|
-
|
|
46
|
+
Ferris writes a `SKILL.md` (the full instruction manual your agent loads on demand) and a `context-snippet.md` (an 80–120 token index). The snippet gets injected into your platform context file (`CLAUDE.md`, `AGENTS.md`, or `.cursorrules`) as an always-on reminder: *"This skill exists; read it before writing cognee code."* Both halves are load-bearing — see the [Dual-Output Strategy](../skill-model/#dual-output-strategy) for why.
|
|
499
47
|
|
|
500
|
-
|
|
48
|
+
### 6. The audit trail stays on disk
|
|
501
49
|
|
|
502
|
-
|
|
50
|
+
Alongside the skill, Ferris leaves a `provenance-map.json` (every receipt), an `evidence-report.md` (build audit trail), and the compilation config (`skill-brief.yaml`). Commit these with the skill and any teammate — or any skeptic — can reproduce the same output from the same source.
|
|
503
51
|
|
|
504
|
-
|
|
505
|
-
|----------|-----------|
|
|
506
|
-
| **Solo agent (Ferris), not multi-agent** | One domain (skill compilation) doesn't benefit from handoffs. Shared knowledge base (AST patterns, provenance maps) is the core asset. |
|
|
507
|
-
| **Workflows drive modes, not conversation** | Ferris doesn't auto-switch based on question content. Invoke a workflow to change mode. Predictable behavior. |
|
|
508
|
-
| **Hub-and-spoke cross-knowledge** | Each skill covers one source repository. Stack skills compose cross-library integration patterns in `references/integrations/`, citing each library's own skill. |
|
|
509
|
-
| **Stack skill = compositional** | SKILL.md is the integration layer. references/ contains per-library + integration pairs. Partial regeneration on dependency updates. |
|
|
510
|
-
| **Snippet updates only at export** | Create/update write a draft `context-snippet.md` to `skills/`. Export regenerates the final `context-snippet.md` and publishes it to the platform context file (CLAUDE.md/AGENTS.md/.cursorrules). No managed-section updates in draft workflows. |
|
|
511
|
-
| **Bundle spec with opt-in update** | Offline-capable. Run `@Ferris SF --update-spec` to fetch the latest agentskills.io spec on demand. |
|
|
52
|
+
That's the whole pipeline. One trigger in, one verifiable skill out, every claim traceable back to a file and a commit.
|
|
512
53
|
|
|
513
54
|
---
|
|
514
55
|
|
|
515
|
-
##
|
|
516
|
-
|
|
517
|
-
SKF relies on a curated skill compilation knowledge base:
|
|
518
|
-
|
|
519
|
-
- Index: `src/knowledge/skf-knowledge-index.csv`
|
|
520
|
-
- Fragments: `src/knowledge/`
|
|
521
|
-
|
|
522
|
-
Workflows load only the fragments required for the current task to stay focused and compliant.
|
|
523
|
-
|
|
524
|
-
## Module Structure
|
|
525
|
-
|
|
526
|
-
```
|
|
527
|
-
src/
|
|
528
|
-
├── module.yaml
|
|
529
|
-
├── module-help.csv
|
|
530
|
-
├── agents/
|
|
531
|
-
│ └── forger.agent.yaml
|
|
532
|
-
├── forger/
|
|
533
|
-
│ ├── forge-tier.yaml
|
|
534
|
-
│ ├── preferences.yaml
|
|
535
|
-
│ └── README.md
|
|
536
|
-
├── knowledge/
|
|
537
|
-
│ ├── skf-knowledge-index.csv
|
|
538
|
-
│ └── *.md (13 knowledge fragments + overview.md index)
|
|
539
|
-
└── workflows/
|
|
540
|
-
├── setup-forge/
|
|
541
|
-
├── analyze-source/
|
|
542
|
-
├── brief-skill/
|
|
543
|
-
├── create-skill/
|
|
544
|
-
├── quick-skill/
|
|
545
|
-
├── create-stack-skill/
|
|
546
|
-
├── verify-stack/
|
|
547
|
-
├── refine-architecture/
|
|
548
|
-
├── update-skill/
|
|
549
|
-
├── audit-skill/
|
|
550
|
-
├── test-skill/
|
|
551
|
-
└── export-skill/
|
|
552
|
-
```
|
|
553
|
-
|
|
554
|
-
---
|
|
555
|
-
|
|
556
|
-
## Security
|
|
557
|
-
|
|
558
|
-
- All tool wrappers use array-style subprocess execution — no shell interpolation
|
|
559
|
-
- Input sanitization: allowlist characters for repo names, file paths, patterns
|
|
560
|
-
- File paths validated against project root (no directory traversal)
|
|
561
|
-
- **Source code never leaves the machine.** All processing is local (AST, QMD, validation).
|
|
562
|
-
- `doc_fetcher` informs users which URLs will be fetched externally before processing
|
|
563
|
-
|
|
564
|
-
---
|
|
565
|
-
|
|
566
|
-
## Ecosystem Alignment
|
|
567
|
-
|
|
568
|
-
SKF produces skills compatible with the [agentskills.io](https://agentskills.io) ecosystem:
|
|
56
|
+
## Next
|
|
569
57
|
|
|
570
|
-
-
|
|
571
|
-
-
|
|
572
|
-
-
|
|
58
|
+
- **[Architecture](../architecture/)** — how Ferris loads workflows, how sub-agents handle large extractions, how the 7 tools resolve conflicts, where artifacts land on disk
|
|
59
|
+
- **[Skill Model](../skill-model/)** — what a skill contains, confidence tiers (T1 / T2 / T3), capability tiers (Quick / Forge / Forge+ / Deep), and the dual-output strategy
|
|
60
|
+
- **[Verifying a Skill](../verifying-a-skill/)** — the 60-second audit recipe and how completeness scoring works
|
|
61
|
+
- **[BMAD Synergy](../bmad-synergy/)** — how SKF fits alongside BMAD Method, TEA, BMB, and other modules
|