bmad-module-skill-forge 0.2.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.
Files changed (154) hide show
  1. package/.nvmrc +1 -0
  2. package/LICENSE +26 -0
  3. package/README.md +213 -0
  4. package/docs/404.md +20 -0
  5. package/docs/agents.md +73 -0
  6. package/docs/architecture.md +301 -0
  7. package/docs/examples.md +144 -0
  8. package/docs/getting-started.md +198 -0
  9. package/docs/index.md +75 -0
  10. package/docs/workflows.md +190 -0
  11. package/package.json +109 -0
  12. package/src/agents/forger.agent.yaml +93 -0
  13. package/src/forger/README.md +17 -0
  14. package/src/forger/forge-tier.yaml +13 -0
  15. package/src/forger/preferences.yaml +10 -0
  16. package/src/knowledge/agentskills-spec.md +158 -0
  17. package/src/knowledge/confidence-tiers.md +153 -0
  18. package/src/knowledge/manual-section-integrity.md +156 -0
  19. package/src/knowledge/overview.md +56 -0
  20. package/src/knowledge/progressive-capability.md +120 -0
  21. package/src/knowledge/provenance-tracking.md +163 -0
  22. package/src/knowledge/skf-knowledge-index.csv +9 -0
  23. package/src/knowledge/skill-lifecycle.md +150 -0
  24. package/src/knowledge/zero-hallucination.md +101 -0
  25. package/src/module-help.csv +12 -0
  26. package/src/module.yaml +22 -0
  27. package/src/workflows/README.md +148 -0
  28. package/src/workflows/analyze-source/data/skill-brief-schema.md +75 -0
  29. package/src/workflows/analyze-source/data/unit-detection-heuristics.md +88 -0
  30. package/src/workflows/analyze-source/steps-c/step-01-init.md +191 -0
  31. package/src/workflows/analyze-source/steps-c/step-01b-continue.md +144 -0
  32. package/src/workflows/analyze-source/steps-c/step-02-scan-project.md +208 -0
  33. package/src/workflows/analyze-source/steps-c/step-03-identify-units.md +199 -0
  34. package/src/workflows/analyze-source/steps-c/step-04-map-and-detect.md +222 -0
  35. package/src/workflows/analyze-source/steps-c/step-05-recommend.md +236 -0
  36. package/src/workflows/analyze-source/steps-c/step-06-generate-briefs.md +239 -0
  37. package/src/workflows/analyze-source/templates/analysis-report-template.md +41 -0
  38. package/src/workflows/analyze-source/validation-report.md +657 -0
  39. package/src/workflows/analyze-source/workflow-plan-analyze-source.md +385 -0
  40. package/src/workflows/analyze-source/workflow.md +61 -0
  41. package/src/workflows/audit-skill/data/drift-report-template.md +62 -0
  42. package/src/workflows/audit-skill/data/severity-rules.md +52 -0
  43. package/src/workflows/audit-skill/steps-c/step-01-init.md +195 -0
  44. package/src/workflows/audit-skill/steps-c/step-02-re-index.md +191 -0
  45. package/src/workflows/audit-skill/steps-c/step-03-structural-diff.md +194 -0
  46. package/src/workflows/audit-skill/steps-c/step-04-semantic-diff.md +199 -0
  47. package/src/workflows/audit-skill/steps-c/step-05-severity-classify.md +210 -0
  48. package/src/workflows/audit-skill/steps-c/step-06-report.md +217 -0
  49. package/src/workflows/audit-skill/validation-report.md +545 -0
  50. package/src/workflows/audit-skill/workflow-plan-audit-skill.md +318 -0
  51. package/src/workflows/audit-skill/workflow.md +63 -0
  52. package/src/workflows/brief-skill/data/skill-brief-schema.md +82 -0
  53. package/src/workflows/brief-skill/steps-c/step-01-gather-intent.md +184 -0
  54. package/src/workflows/brief-skill/steps-c/step-02-analyze-target.md +203 -0
  55. package/src/workflows/brief-skill/steps-c/step-03-scope-definition.md +225 -0
  56. package/src/workflows/brief-skill/steps-c/step-04-confirm-brief.md +185 -0
  57. package/src/workflows/brief-skill/steps-c/step-05-write-brief.md +156 -0
  58. package/src/workflows/brief-skill/validation-report.md +630 -0
  59. package/src/workflows/brief-skill/workflow-plan-brief-skill.md +360 -0
  60. package/src/workflows/brief-skill/workflow.md +57 -0
  61. package/src/workflows/create-skill/data/extraction-patterns.md +63 -0
  62. package/src/workflows/create-skill/data/skill-sections.md +166 -0
  63. package/src/workflows/create-skill/steps-c/step-01-load-brief.md +176 -0
  64. package/src/workflows/create-skill/steps-c/step-02-ecosystem-check.md +143 -0
  65. package/src/workflows/create-skill/steps-c/step-03-extract.md +184 -0
  66. package/src/workflows/create-skill/steps-c/step-04-enrich.md +152 -0
  67. package/src/workflows/create-skill/steps-c/step-05-compile.md +198 -0
  68. package/src/workflows/create-skill/steps-c/step-06-validate.md +162 -0
  69. package/src/workflows/create-skill/steps-c/step-07-generate-artifacts.md +165 -0
  70. package/src/workflows/create-skill/steps-c/step-08-report.md +160 -0
  71. package/src/workflows/create-skill/validation-report.md +189 -0
  72. package/src/workflows/create-skill/workflow-plan-create-skill.md +491 -0
  73. package/src/workflows/create-skill/workflow.md +52 -0
  74. package/src/workflows/create-stack-skill/data/integration-patterns.md +61 -0
  75. package/src/workflows/create-stack-skill/data/manifest-patterns.md +35 -0
  76. package/src/workflows/create-stack-skill/data/stack-skill-template.md +110 -0
  77. package/src/workflows/create-stack-skill/steps-c/step-01-init.md +142 -0
  78. package/src/workflows/create-stack-skill/steps-c/step-02-detect-manifests.md +145 -0
  79. package/src/workflows/create-stack-skill/steps-c/step-03-rank-and-confirm.md +161 -0
  80. package/src/workflows/create-stack-skill/steps-c/step-04-parallel-extract.md +155 -0
  81. package/src/workflows/create-stack-skill/steps-c/step-05-detect-integrations.md +154 -0
  82. package/src/workflows/create-stack-skill/steps-c/step-06-compile-stack.md +160 -0
  83. package/src/workflows/create-stack-skill/steps-c/step-07-generate-output.md +202 -0
  84. package/src/workflows/create-stack-skill/steps-c/step-08-validate.md +193 -0
  85. package/src/workflows/create-stack-skill/steps-c/step-09-report.md +137 -0
  86. package/src/workflows/create-stack-skill/validation-report.md +401 -0
  87. package/src/workflows/create-stack-skill/workflow-plan-create-stack-skill.md +481 -0
  88. package/src/workflows/create-stack-skill/workflow.md +59 -0
  89. package/src/workflows/export-skill/data/managed-section-format.md +70 -0
  90. package/src/workflows/export-skill/data/snippet-format.md +32 -0
  91. package/src/workflows/export-skill/steps-c/step-01-load-skill.md +184 -0
  92. package/src/workflows/export-skill/steps-c/step-02-package.md +153 -0
  93. package/src/workflows/export-skill/steps-c/step-03-generate-snippet.md +166 -0
  94. package/src/workflows/export-skill/steps-c/step-04-update-context.md +222 -0
  95. package/src/workflows/export-skill/steps-c/step-05-token-report.md +126 -0
  96. package/src/workflows/export-skill/steps-c/step-06-summary.md +167 -0
  97. package/src/workflows/export-skill/validation-report.md +263 -0
  98. package/src/workflows/export-skill/workflow-plan-export-skill.md +369 -0
  99. package/src/workflows/export-skill/workflow.md +56 -0
  100. package/src/workflows/quick-skill/data/registry-resolution.md +91 -0
  101. package/src/workflows/quick-skill/data/skill-template.md +66 -0
  102. package/src/workflows/quick-skill/steps-c/step-01-resolve-target.md +165 -0
  103. package/src/workflows/quick-skill/steps-c/step-02-ecosystem-check.md +143 -0
  104. package/src/workflows/quick-skill/steps-c/step-03-quick-extract.md +177 -0
  105. package/src/workflows/quick-skill/steps-c/step-04-compile.md +180 -0
  106. package/src/workflows/quick-skill/steps-c/step-05-validate.md +150 -0
  107. package/src/workflows/quick-skill/steps-c/step-06-write.md +160 -0
  108. package/src/workflows/quick-skill/validation-report.md +543 -0
  109. package/src/workflows/quick-skill/workflow-plan-quick-skill.md +405 -0
  110. package/src/workflows/quick-skill/workflow.md +56 -0
  111. package/src/workflows/setup-forge/data/tier-rules.md +50 -0
  112. package/src/workflows/setup-forge/steps-c/step-01-detect-and-tier.md +140 -0
  113. package/src/workflows/setup-forge/steps-c/step-02-write-config.md +141 -0
  114. package/src/workflows/setup-forge/steps-c/step-03-auto-index.md +116 -0
  115. package/src/workflows/setup-forge/steps-c/step-04-report.md +131 -0
  116. package/src/workflows/setup-forge/validation-report.md +504 -0
  117. package/src/workflows/setup-forge/workflow-plan-setup-forge.md +428 -0
  118. package/src/workflows/setup-forge/workflow.md +49 -0
  119. package/src/workflows/test-skill/data/output-section-formats.md +96 -0
  120. package/src/workflows/test-skill/data/scoring-rules.md +74 -0
  121. package/src/workflows/test-skill/steps-c/step-01-init.md +185 -0
  122. package/src/workflows/test-skill/steps-c/step-02-detect-mode.md +162 -0
  123. package/src/workflows/test-skill/steps-c/step-03-coverage-check.md +222 -0
  124. package/src/workflows/test-skill/steps-c/step-04-coherence-check.md +249 -0
  125. package/src/workflows/test-skill/steps-c/step-05-score.md +222 -0
  126. package/src/workflows/test-skill/steps-c/step-06-report.md +175 -0
  127. package/src/workflows/test-skill/templates/test-report-template.md +24 -0
  128. package/src/workflows/test-skill/validation-report.md +390 -0
  129. package/src/workflows/test-skill/workflow-plan-test-skill.md +288 -0
  130. package/src/workflows/test-skill/workflow.md +57 -0
  131. package/src/workflows/update-skill/data/manual-section-rules.md +44 -0
  132. package/src/workflows/update-skill/data/merge-conflict-rules.md +62 -0
  133. package/src/workflows/update-skill/steps-c/step-01-init.md +208 -0
  134. package/src/workflows/update-skill/steps-c/step-02-detect-changes.md +184 -0
  135. package/src/workflows/update-skill/steps-c/step-03-re-extract.md +187 -0
  136. package/src/workflows/update-skill/steps-c/step-04-merge.md +230 -0
  137. package/src/workflows/update-skill/steps-c/step-05-validate.md +187 -0
  138. package/src/workflows/update-skill/steps-c/step-06-write.md +204 -0
  139. package/src/workflows/update-skill/steps-c/step-07-report.md +201 -0
  140. package/src/workflows/update-skill/validation-report.md +559 -0
  141. package/src/workflows/update-skill/workflow-plan-update-skill.md +441 -0
  142. package/src/workflows/update-skill/workflow.md +56 -0
  143. package/tools/cli/commands/install.js +33 -0
  144. package/tools/cli/commands/status.js +195 -0
  145. package/tools/cli/commands/uninstall.js +226 -0
  146. package/tools/cli/commands/update.js +63 -0
  147. package/tools/cli/lib/compiler.js +306 -0
  148. package/tools/cli/lib/ide-commands.js +244 -0
  149. package/tools/cli/lib/installer.js +307 -0
  150. package/tools/cli/lib/manifest.js +109 -0
  151. package/tools/cli/lib/ui.js +277 -0
  152. package/tools/cli/lib/version-check.js +86 -0
  153. package/tools/cli/skf-cli.js +45 -0
  154. package/tools/skf-npx-wrapper.js +36 -0
@@ -0,0 +1,318 @@
1
+ ---
2
+ conversionFrom: 'src/workflows/audit-skill/audit-skill.spec.md'
3
+ originalFormat: 'BMAD Workflow Specification (Placeholder)'
4
+ stepsCompleted: ['step-00-conversion', 'step-02-classification', 'step-03-requirements', 'step-04-tools', 'step-05-plan-review', 'step-06-design', 'step-07-foundation', 'step-08-build-step-01', 'step-09-build-remaining-steps', 'step-10-confirmation']
5
+ created: 2026-02-27
6
+ status: VALIDATED
7
+ confirmationDate: 2026-02-27
8
+ confirmationType: conversion
9
+ coverageStatus: complete
10
+ validationStatus: COMPLETE
11
+ validationDate: 2026-02-27
12
+ validationReport: './validation-report.md'
13
+ approvedDate: 2026-02-27
14
+ ---
15
+
16
+ # Workflow Creation Plan
17
+
18
+ ## Conversion Source
19
+
20
+ **Original Path:** src/workflows/audit-skill/audit-skill.spec.md
21
+ **Original Format:** BMAD Workflow Specification (Placeholder)
22
+ **Detected Structure:** 6-step create-only pipeline defined at spec level, no implementation files exist yet
23
+
24
+ ---
25
+
26
+ ## Original Workflow Analysis
27
+
28
+ ### Goal (from source)
29
+
30
+ Drift detection between skill and current source. Compares an existing skill against its source code to detect drift. Forge tier: structural comparison via AST diff. Deep tier: full audit including semantic changes and temporal context via QMD. Produces a drift report with severity levels. ADR-A: core workflow, CI is optional export.
31
+
32
+ ### Original Steps (Complete List)
33
+
34
+ **Step 1:** load-skill - Load existing skill and provenance map
35
+ **Step 2:** re-index - Re-scan source with current tools
36
+ **Step 3:** structural-diff - Compare AST extractions (Forge+)
37
+ **Step 4:** semantic-diff - Compare QMD knowledge context (Deep only)
38
+ **Step 5:** severity-classify - Classify drift items by severity
39
+ **Step 6:** report - Generate drift report
40
+
41
+ ### Output / Deliverable
42
+
43
+ Drift report with severity levels (added/removed/changed exports, breaking changes). Document-producing workflow.
44
+
45
+ ### Input Requirements
46
+
47
+ **Required:**
48
+ - Existing skill path
49
+ - Source code (current version)
50
+
51
+ **Optional:**
52
+ - None specified
53
+
54
+ ### Key Instructions to LLM
55
+
56
+ - Primary agent: Ferris (Audit mode)
57
+ - Tiered operation: Forge tier (structural only) vs Deep tier (full semantic + QMD)
58
+ - The spec references AST diff for structural comparison and QMD for semantic context
59
+ - CI integration is noted as optional export (ADR-A decision)
60
+
61
+ ---
62
+
63
+ ## Conversion Notes (Memory-Enriched)
64
+
65
+ **What works well in original (preserve):**
66
+ - Clean 6-step pipeline with logical progression: load → scan → diff → classify → report
67
+ - Tiered Forge/Deep separation aligns with established SKF tier architecture
68
+ - Correct lifecycle positioning (Phase 2, after create-skill and test-skill)
69
+ - Clear input/output specification
70
+ - Document-producing output aligns with drift report use case
71
+
72
+ **What needs improvement (fix during build):**
73
+ - **Missing Quick tier path** — All SKF workflows support Quick/Forge/Deep with graceful degradation; Quick tier needs text-diff fallback
74
+ - **No provenance map format specification** — Step 01 loads it, but must reference known `provenance-map.json` from create-skill's `forge-data/{name}/` output
75
+ - **No confidence tier labels (T1/T2/T3)** — Every SKF workflow uses these for traceability; drift findings need confidence scoring
76
+ - **Step 04 conditional skip** — semantic-diff is Deep-only but spec has no skip logic or degradation behavior for Forge/Quick tiers
77
+ - No error handling or edge cases documented (missing skill, incompatible versions, no provenance map)
78
+ - No data files, templates, or supporting materials defined
79
+
80
+ **Missing features to add:**
81
+ - **Batch mode** (`--batch`, `--continue` flags) — Consistent with test-skill, create-skill, and all lifecycle workflows
82
+ - **Dual-mode support** — Individual skill vs stack skill auditing (stack skills have integration patterns needing cross-reference drift detection)
83
+ - **Remediation suggestions** — Like test-skill's gap report, drift items should include actionable fix recommendations
84
+ - **Update-skill chaining** — Drift report should optionally trigger update-skill workflow for detected issues
85
+
86
+ **Compliance gaps identified:**
87
+ - No step files exist (placeholder spec only)
88
+ - No workflow.md entry point
89
+ - No frontmatter on any files
90
+ - No data/ folder with supporting reference materials (severity classification rules, drift pattern definitions)
91
+ - No templates/ for drift report output format
92
+ - Mode is marked create-only — confirmed appropriate for audit (re-audit is a fresh run, not an edit)
93
+
94
+ **Cross-workflow integration points (from memory):**
95
+ - **Input from create-skill:** `forge-data/{name}/provenance-map.json`, `evidence-report.md`, `extraction-rules.yaml`
96
+ - **Input from setup-forge:** `forger-sidecar/forge-tier.yaml` for tier detection
97
+ - **Output feeds update-skill:** Drift report triggers remediation workflow
98
+ - **Sibling pattern: test-skill** — Same Ferris Audit mode, zero-hallucination AST citations, tier-aware depth scaling
99
+ - **SKF config:** Loads from `_bmad/skf/config.yaml` (project_name, output_folder, skills_output_folder, forge_data_folder, sidecar_path)
100
+
101
+ ---
102
+
103
+ ## Classification Decisions
104
+
105
+ **Workflow Name:** audit-skill
106
+ **Target Path:** {project-root}/_bmad/skf/workflows/audit-skill/
107
+
108
+ **4 Key Decisions:**
109
+ 1. **Document Output:** true (drift report with severity levels)
110
+ 2. **Module Affiliation:** SKF module
111
+ 3. **Session Type:** single-session
112
+ 4. **Lifecycle Support:** create-only
113
+
114
+ **Structure Implications:**
115
+ - Needs `steps-c/` folder only (no steps-e/ or steps-v/)
116
+ - Standard `step-01-init.md` (no continuation logic)
117
+ - Document template for progressive drift report building with `stepsCompleted` tracking
118
+ - SKF module variables available (forge_data_folder, skills_output_folder, sidecar_path)
119
+ - Config loaded from `_bmad/skf/config.yaml`
120
+ - Ferris Audit mode as primary agent with zero-hallucination AST citations
121
+
122
+ ---
123
+
124
+ ## Requirements
125
+
126
+ **Flow Structure:**
127
+ - Pattern: Linear with conditional skip (Step 04 skipped at Quick/Forge tier)
128
+ - Phases: Load & Baseline (01-02) → Analysis (03-04) → Assessment & Output (05-06)
129
+ - Estimated steps: 6 (matching spec)
130
+ - Step 01: init (load skill + provenance map + detect tier)
131
+ - Step 02: re-index (re-scan source with current tools)
132
+ - Step 03: structural-diff (AST comparison — Forge+ tiers)
133
+ - Step 04: semantic-diff (QMD comparison — Deep tier only, SKIP for Quick/Forge)
134
+ - Step 05: severity-classify (grade all drift items)
135
+ - Step 06: report (generate final drift report)
136
+
137
+ **User Interaction:**
138
+ - Style: Mostly autonomous with 1 confirmation gate
139
+ - Decision points: Gate 1 after Step 01 — confirm skill loaded, show baseline summary, offer degraded mode if provenance map missing
140
+ - Checkpoint frequency: Minimal — audit is deterministic analysis
141
+
142
+ **Inputs Required:**
143
+ - Required: Existing skill path (skills/{name}/ with SKILL.md, metadata.json)
144
+ - Required: Source code path (or auto-detect from provenance-map.json source_root)
145
+ - Prerequisites: setup-forge completed (forger-sidecar/forge-tier.yaml), skill created by create-skill (provenance-map.json in forge-data/{name}/)
146
+ - Optional: --batch flag for multiple skills, --continue for batch checkpoint resume, severity threshold filter
147
+
148
+ **Output Specifications:**
149
+ - Type: Document-producing drift report
150
+ - Format: Structured (required sections)
151
+ - Sections: Audit Summary, Structural Drift (Forge+), Semantic Drift (Deep only), Severity Classification (CRITICAL/HIGH/MEDIUM/LOW), Remediation Suggestions, Provenance
152
+ - Frequency: Single per skill (batch loops at workflow level)
153
+ - Output file: {forge_data_folder}/{skill_name}/drift-report-{timestamp}.md
154
+ - Pattern: Direct-to-Final (steps progressively build the report)
155
+
156
+ **Success Criteria:**
157
+ - All structural drift items detected with correct severity classification
158
+ - Every finding backed by AST file:line citations (zero hallucination)
159
+ - Confidence tier labels (T1/T2/T3) on all findings
160
+ - Graceful degradation: Quick (text diff) → Forge (AST diff) → Deep (AST + QMD)
161
+ - Actionable remediation suggestions per drift item
162
+ - Overall drift score: CLEAN / MINOR / SIGNIFICANT / CRITICAL
163
+
164
+ **Instruction Style:**
165
+ - Overall: Prescriptive
166
+ - Notes: Deterministic analysis, not creative facilitation. Matches established SKF pattern (test-skill, create-skill). Every step has exact instructions for what to load, compare, and output.
167
+
168
+ ---
169
+
170
+ ## Tools Configuration
171
+
172
+ **Core BMAD Tools:**
173
+ - **Party Mode:** Excluded (menu option only) — Audit is deterministic analysis, not creative exploration
174
+ - **Advanced Elicitation:** Excluded (menu option only) — No phases benefit from deep elicitation
175
+ - **Brainstorming:** Excluded — Audit produces findings, not ideas
176
+
177
+ **LLM Features:**
178
+ - **File I/O:** Required — All phases read skill artifacts, source code, provenance maps; report step writes drift-report.md
179
+ - **Sub-Processes:** Included — Batch mode parallel auditing of multiple skills (Step 01 batch loop)
180
+ - **Sub-Agents:** Excluded — Single-agent workflow (Ferris Audit mode)
181
+ - **Web-Browsing:** Excluded — All analysis is local
182
+
183
+ **Memory:**
184
+ - Type: Single-session (no complex memory)
185
+ - Tracking: stepsCompleted in drift report frontmatter
186
+ - Sidecar: Reads forger-sidecar/forge-tier.yaml (pre-existing from setup-forge)
187
+
188
+ **External Integrations (SKF-specific, pre-detected by setup-forge):**
189
+ - **ast_bridge** (ast-grep): Required at Forge/Deep tier — Steps 02-03 structural extraction and comparison
190
+ - **gh_bridge** (gh CLI): Required at all tiers — Steps 01-02 source file reading
191
+ - **qmd_bridge** (QMD): Required at Deep tier only — Step 04 semantic knowledge context
192
+ - **skills_ref**: Included — Step 01 skill format validation and ecosystem cross-reference
193
+
194
+ **Installation Requirements:**
195
+ - None — all tools pre-detected by setup-forge workflow
196
+ - User preference: N/A (no installation needed)
197
+
198
+ ---
199
+
200
+ ## Workflow Design
201
+
202
+ ### Step Sequence
203
+
204
+ | Step | Name | Type | Menu | Subprocess | Size Est. |
205
+ |------|------|------|------|------------|-----------|
206
+ | 01 | init | Init with Input Discovery | C only (user gate) | — | ~180 lines |
207
+ | 02 | re-index | Middle (Simple) | Auto-proceed | Pattern 2 (per-file AST) | ~150 lines |
208
+ | 03 | structural-diff | Middle (Simple) | Auto-proceed | Pattern 4 (parallel diff) | ~200 lines |
209
+ | 04 | semantic-diff | Middle (Simple) + Conditional Skip | Auto-proceed | Pattern 3 (QMD ops) | ~150 lines |
210
+ | 05 | severity-classify | Middle (Simple) | Auto-proceed | Pattern 3 (rules lookup) | ~180 lines |
211
+ | 06 | report | Final Step | No next step | — | ~200 lines |
212
+
213
+ ### Step Details
214
+
215
+ **Step 01: init**
216
+ - Type: Init with Input Discovery
217
+ - Goal: Load existing skill, provenance map, and detect forge tier
218
+ - Input Discovery: skill path → SKILL.md + metadata.json, provenance-map.json from forge-data, forge-tier.yaml from sidecar
219
+ - Creates: drift report from template with frontmatter + Audit Summary skeleton
220
+ - User Gate: Present baseline summary (skill name, export count, provenance age, tier, source path). Offer degraded mode if provenance map missing.
221
+ - Menu: [C] Continue after confirmation
222
+ - Batch: If --batch, loop over skill list; if --continue, check sidecar checkpoint
223
+
224
+ **Step 02: re-index**
225
+ - Type: Middle (Simple), Auto-proceed
226
+ - Goal: Re-scan source code with current tier tools
227
+ - Quick: text pattern extraction via gh_bridge
228
+ - Forge: AST extraction via ast_bridge (T1 confidence)
229
+ - Deep: AST + QMD temporal context (T2 confidence)
230
+ - Subprocess: Pattern 2 — per source file, launch subprocess for extraction, return structured findings
231
+ - Output: Internal state (current extraction snapshot), no report append yet
232
+
233
+ **Step 03: structural-diff**
234
+ - Type: Middle (Simple), Auto-proceed
235
+ - Goal: Compare provenance map extractions against current scan
236
+ - Diff categories: added exports, removed exports, changed signatures
237
+ - Quick: text-based name comparison (T1-low)
238
+ - Forge/Deep: full AST structural comparison with line-level citations (T1)
239
+ - Subprocess: Pattern 4 — parallel comparison of export categories
240
+ - Output: Appends ## Structural Drift section to drift report
241
+
242
+ **Step 04: semantic-diff**
243
+ - Type: Middle (Simple) with Conditional Skip, Auto-proceed
244
+ - Goal: Compare QMD knowledge context (Deep tier only)
245
+ - If Deep → execute semantic comparison via qmd_bridge
246
+ - If Quick/Forge → skip with note in report
247
+ - Subprocess: Pattern 3 — QMD collection query for semantic changes
248
+ - Output: Appends ## Semantic Drift section (or skip notice) to report
249
+
250
+ **Step 05: severity-classify**
251
+ - Type: Middle (Simple), Auto-proceed
252
+ - Goal: Grade every drift finding by severity
253
+ - Loads: data/severity-rules.md for classification criteria
254
+ - CRITICAL: removed/renamed exports, changed signatures (breaking)
255
+ - HIGH: new public API not in skill
256
+ - MEDIUM: implementation changes behind stable API
257
+ - LOW: style/convention changes
258
+ - Subprocess: Pattern 3 — load rules, classify findings, return assignments
259
+ - Output: Appends ## Severity Classification section with categorized findings table
260
+
261
+ **Step 06: report**
262
+ - Type: Final Step (no nextStepFile)
263
+ - Goal: Finalize drift report with summary, remediation, provenance
264
+ - Calculate overall drift score: CLEAN / MINOR / SIGNIFICANT / CRITICAL
265
+ - Generate remediation suggestions per drift item
266
+ - Add update-skill chaining recommendation if CRITICAL/HIGH found
267
+ - Add provenance section (comparison metadata, tools used, timestamp)
268
+ - Update frontmatter: mark complete, set nextWorkflow if applicable
269
+
270
+ ### Data Flow
271
+
272
+ ```
273
+ Step 01 → Loads skill baseline + creates report skeleton
274
+ Step 02 → Produces current extraction snapshot (internal)
275
+ Step 03 → Appends ## Structural Drift (compares baseline vs current)
276
+ Step 04 → Appends ## Semantic Drift (Deep) or skip notice (Quick/Forge)
277
+ Step 05 → Appends ## Severity Classification (grades all findings)
278
+ Step 06 → Completes ## Audit Summary, ## Remediation, ## Provenance
279
+ ```
280
+
281
+ ### File Structure
282
+
283
+ ```
284
+ audit-skill/
285
+ ├── workflow.md # Entry point (Ferris Audit mode)
286
+ ├── data/
287
+ │ ├── severity-rules.md # CRITICAL/HIGH/MEDIUM/LOW classification rules
288
+ │ └── drift-report-template.md # Structured report template with frontmatter
289
+ └── steps-c/
290
+ ├── step-01-init.md # Init with input discovery + user gate
291
+ ├── step-02-re-index.md # Re-scan source (auto-proceed)
292
+ ├── step-03-structural-diff.md # AST comparison (auto-proceed)
293
+ ├── step-04-semantic-diff.md # QMD comparison/skip (auto-proceed)
294
+ ├── step-05-severity-classify.md # Grade findings (auto-proceed)
295
+ └── step-06-report.md # Final report generation
296
+ ```
297
+
298
+ ### Role and Persona
299
+
300
+ - Role: Skill auditor operating in Ferris Audit mode
301
+ - Communication: Structured evidence-based reporting with file:line citations
302
+ - Style: Prescriptive — every step has exact instructions
303
+ - Principle: Zero hallucination — every finding must trace to actual code
304
+
305
+ ### Workflow Chaining
306
+
307
+ - Required from setup-forge: {sidecar_path}/forge-tier.yaml
308
+ - Required from create-skill: {forge_data_folder}/{skill_name}/provenance-map.json
309
+ - Output feeds: update-skill (if CRITICAL/HIGH drift found)
310
+ - Frontmatter contract: workflowType: 'audit-skill', nextWorkflow: 'update-skill'
311
+
312
+ ### Error Handling
313
+
314
+ - Missing skill: Error with path guidance
315
+ - Missing provenance map: Offer degraded mode (text-diff, T1-low confidence)
316
+ - Missing forge-tier.yaml: Error — run setup-forge first
317
+ - No drift found: Report CLEAN status
318
+ - Step 04 at non-Deep tier: Graceful skip with documented reason
@@ -0,0 +1,63 @@
1
+ ---
2
+ name: audit-skill
3
+ description: "Drift detection. Forge tier: structural. Deep tier: full."
4
+ web_bundle: true
5
+ installed_path: '{project-root}/_bmad/skf/workflows/audit-skill'
6
+ ---
7
+
8
+ # Audit Skill
9
+
10
+ **Goal:** Detect drift between an existing skill and its current source code, producing a severity-graded drift report with AST-backed findings and actionable remediation suggestions.
11
+
12
+ **Your Role:** In addition to your name, communication_style, and persona, you are also a skill auditor operating in Ferris Audit mode. This is a deterministic analysis workflow — every finding must trace to actual code with file:line citations. You enforce the zero-hallucination principle: structural truth over semantic guessing. You bring AST analysis expertise and drift detection methodology, while the source code provides the ground truth.
13
+
14
+ ---
15
+
16
+ ## WORKFLOW ARCHITECTURE
17
+
18
+ This uses **step-file architecture** for disciplined execution:
19
+
20
+ ### Core Principles
21
+
22
+ - **Micro-file Design**: Each step is a self-contained instruction file that is a part of an overall workflow that must be followed exactly
23
+ - **Just-In-Time Loading**: Only the current step file is in memory — never load future step files until told to do so
24
+ - **Sequential Enforcement**: Sequence within the step files must be completed in order, no skipping or optimization allowed
25
+ - **State Tracking**: Document progress in output file frontmatter using `stepsCompleted` array
26
+ - **Append-Only Building**: Build the drift report by appending sections as directed to the output file
27
+ - **Tier-Aware Execution**: Adapt analysis depth based on detected forge tier (Quick/Forge/Deep) with graceful degradation
28
+
29
+ ### Step Processing Rules
30
+
31
+ 1. **READ COMPLETELY**: Always read the entire step file before taking any action
32
+ 2. **FOLLOW SEQUENCE**: Execute all numbered sections in order, never deviate
33
+ 3. **WAIT FOR INPUT**: If a menu is presented, halt and wait for user selection
34
+ 4. **CHECK CONTINUATION**: If the step has a menu with Continue as an option, only proceed to next step when user selects 'C' (Continue)
35
+ 5. **SAVE STATE**: Update `stepsCompleted` in frontmatter before loading next step
36
+ 6. **LOAD NEXT**: When directed, load, read entire file, then execute the next step file
37
+
38
+ ### Critical Rules (NO EXCEPTIONS)
39
+
40
+ - 🛑 **NEVER** load multiple step files simultaneously
41
+ - 📖 **ALWAYS** read entire step file before execution
42
+ - 🚫 **NEVER** skip steps or optimize the sequence
43
+ - 💾 **ALWAYS** update frontmatter of output files when writing the final output for a specific step
44
+ - 🎯 **ALWAYS** follow the exact instructions in the step file
45
+ - ⏸️ **ALWAYS** halt at menus and wait for user input
46
+ - 📋 **NEVER** create mental todo lists from future steps
47
+ - ⚙️ **TOOL/SUBPROCESS FALLBACK**: If any instruction references a subprocess, subagent, or tool you do not have access to, you MUST still achieve the outcome in your main context thread
48
+ - ✅ YOU MUST ALWAYS SPEAK OUTPUT in your Agent communication style with the config `{communication_language}`
49
+
50
+ ---
51
+
52
+ ## INITIALIZATION SEQUENCE
53
+
54
+ ### 1. Module Configuration Loading
55
+
56
+ Load and read full config from {project-root}/_bmad/skf/config.yaml and resolve:
57
+
58
+ - `project_name`, `output_folder`, `user_name`, `communication_language`, `document_output_language`
59
+ - `skills_output_folder`, `forge_data_folder`, `sidecar_path`
60
+
61
+ ### 2. First Step Execution
62
+
63
+ Load, read the full file and then execute `./steps-c/step-01-init.md` to begin the workflow.
@@ -0,0 +1,82 @@
1
+ # Skill Brief Schema
2
+
3
+ ## Required Fields
4
+
5
+ | Field | Type | Description | Validation |
6
+ |-------|------|-------------|------------|
7
+ | name | string | Kebab-case skill name | Must match `[a-z0-9-]+` |
8
+ | version | string | Semantic version | Must match `X.Y.Z` pattern, default "1.0.0" |
9
+ | source_repo | string | GitHub URL or local path | Must be accessible |
10
+ | language | string | Primary programming language | Must be detected or user-specified |
11
+ | scope | object | Inclusion/exclusion boundaries | Must have type + at least one pattern |
12
+ | description | string | What this skill covers | 1-3 sentences |
13
+ | forge_tier | string | Compilation tier | One of: quick, forge, deep |
14
+ | created | string | Creation date | ISO date format |
15
+ | created_by | string | User who created the brief | From config user_name |
16
+
17
+ ## Scope Object Structure
18
+
19
+ ```yaml
20
+ scope:
21
+ type: full-library | specific-modules | public-api
22
+ include:
23
+ - "src/**/*.ts" # Glob patterns for included files/directories
24
+ exclude:
25
+ - "**/*.test.*" # Glob patterns for excluded files
26
+ - "**/node_modules/**"
27
+ notes: "Optional notes about scope decisions"
28
+ ```
29
+
30
+ ## YAML Template
31
+
32
+ ```yaml
33
+ ---
34
+ name: "{skill-name}"
35
+ version: "1.0.0"
36
+ source_repo: "{github-url-or-local-path}"
37
+ language: "{detected-language}"
38
+ description: "{brief-description}"
39
+ forge_tier: "{quick|forge|deep}"
40
+ created: "{date}"
41
+ created_by: "{user_name}"
42
+ scope:
43
+ type: "{full-library|specific-modules|public-api}"
44
+ include:
45
+ - "{pattern}"
46
+ exclude:
47
+ - "{pattern}"
48
+ notes: "{optional-scope-notes}"
49
+ ---
50
+ ```
51
+
52
+ ## Human-Readable Presentation Format
53
+
54
+ When presenting the brief for confirmation (step 04), display as:
55
+
56
+ ```
57
+ Skill Brief: {name}
58
+ ====================
59
+
60
+ Target: {source_repo}
61
+ Language: {language}
62
+ Forge Tier: {forge_tier}
63
+ Description: {description}
64
+
65
+ Scope: {scope.type}
66
+ Include: {scope.include patterns, one per line}
67
+ Exclude: {scope.exclude patterns, one per line}
68
+ Notes: {scope.notes}
69
+
70
+ Version: {version}
71
+ Created: {created}
72
+ Created by: {created_by}
73
+ ```
74
+
75
+ ## Validation Rules
76
+
77
+ 1. `name` must be unique within {forge_data_folder}
78
+ 2. `source_repo` must be accessible (gh api for GitHub, path exists for local)
79
+ 3. `language` must be a recognized programming language
80
+ 4. `scope.type` must be one of the three defined types
81
+ 5. `scope.include` must have at least one pattern
82
+ 6. `forge_tier` must match the tier from forge-tier.yaml (or default to quick)
@@ -0,0 +1,184 @@
1
+ ---
2
+ name: 'step-01-gather-intent'
3
+ description: 'Initialize brief-skill workflow, discover forge tier, and gather user intent for skill creation'
4
+
5
+ nextStepFile: './step-02-analyze-target.md'
6
+ forgeTierFile: '{project-root}/_bmad/_memory/forger-sidecar/forge-tier.yaml'
7
+ ---
8
+
9
+ # Step 1: Gather Intent
10
+
11
+ ## STEP GOAL:
12
+
13
+ To initialize the brief-skill workflow by discovering the forge tier configuration, then gathering the user's target repository, intent, and any upfront scope hints for skill creation.
14
+
15
+ ## MANDATORY EXECUTION RULES (READ FIRST):
16
+
17
+ ### Universal Rules:
18
+
19
+ - 🛑 NEVER generate content without user input
20
+ - 📖 CRITICAL: Read the complete step file before taking any action
21
+ - 🔄 CRITICAL: When loading next step with 'C', ensure entire file is read
22
+ - 📋 YOU ARE A FACILITATOR, not a content generator
23
+ - ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
24
+ - ⚙️ TOOL/SUBPROCESS FALLBACK: If any instruction references a subprocess, subagent, or tool you do not have access to, you MUST still achieve the outcome in your main context thread
25
+
26
+ ### Role Reinforcement:
27
+
28
+ - ✅ You are a skill scoping architect in Ferris Architect mode (exploratory, collaborative)
29
+ - ✅ If you already have been given a name, communication_style and identity, continue to use those while playing this new role
30
+ - ✅ We engage in collaborative dialogue, not command-response
31
+ - ✅ You bring source code analysis and skill design expertise, user brings their domain knowledge and use case
32
+ - ✅ Maintain a warm, guiding tone — this is a discovery conversation
33
+
34
+ ### Step-Specific Rules:
35
+
36
+ - 🎯 Focus only on gathering intent — do not analyze the repo yet (that's step 02)
37
+ - 🚫 FORBIDDEN to examine source code or list exports in this step
38
+ - 💬 Approach: Open-ended discovery facilitation — "What interests you about this library?"
39
+ - 📋 Collect: target repo, user intent, scope hints, skill name
40
+
41
+ ## EXECUTION PROTOCOLS:
42
+
43
+ - 🎯 Follow the MANDATORY SEQUENCE exactly
44
+ - 💾 Accumulate gathered information conversationally for use in subsequent steps
45
+ - 📖 This is the init step — sets up everything that follows
46
+ - 🚫 FORBIDDEN to proceed without a confirmed target repository
47
+
48
+ ## CONTEXT BOUNDARIES:
49
+
50
+ - Available context: Module config (forge_data_folder, user_name), forge-tier.yaml (if available)
51
+ - Focus: Understanding WHAT the user wants to skill and WHY
52
+ - Limits: Do not analyze source code, detect language, or list exports — that's step 02
53
+ - Dependencies: None — this is the first step
54
+
55
+ ## MANDATORY SEQUENCE
56
+
57
+ **CRITICAL:** Follow this sequence exactly. Do not skip, reorder, or improvise unless user explicitly requests a change.
58
+
59
+ ### 1. Discover Forge Tier
60
+
61
+ Attempt to load `{forgeTierFile}`:
62
+
63
+ **If found:**
64
+ - Read the tier level (quick, forge, or deep)
65
+ - Note available tools for scoping guidance later
66
+
67
+ **If not found:**
68
+ - Display: "**Note:** No forge tier configuration found. Defaulting to Quick tier. Run **setup-forge** first for full capabilities."
69
+ - Default to: `forge_tier: quick`
70
+
71
+ ### 2. Welcome and Explain
72
+
73
+ "**Welcome to Brief Skill — the skill scoping workflow.**
74
+
75
+ I'll help you define exactly what to skill and produce a `skill-brief.yaml` that drives the create-skill compilation workflow.
76
+
77
+ We'll work through this together:
78
+ 1. **Now:** Understand what you want to skill and why
79
+ 2. **Next:** Analyze the target repo structure
80
+ 3. **Then:** Define scope boundaries
81
+ 4. **Finally:** Confirm and write the brief
82
+
83
+ **Your forge tier:** {detected tier} — this determines what compilation capabilities are available.
84
+
85
+ Let's get started."
86
+
87
+ ### 3. Gather Target Repository
88
+
89
+ "**What repository do you want to create a skill for?**
90
+
91
+ Provide either:
92
+ - A **GitHub URL** (e.g., `https://github.com/org/repo`)
93
+ - A **local path** (e.g., `/path/to/project`)
94
+
95
+ **Target:**"
96
+
97
+ Wait for user response. Confirm the target.
98
+
99
+ ### 4. Gather User Intent
100
+
101
+ "**What's your intent for this skill?**
102
+
103
+ Help me understand:
104
+ - **What** specifically do you want to skill from this repo?
105
+ - **Why** — what's the use case? How will an AI agent use this skill?
106
+ - **Any initial thoughts** on scope? (Full library? Specific modules? Public API only?)
107
+
108
+ Take your time — the more context you share, the better the brief."
109
+
110
+ Wait for user response. Ask follow-up questions if intent is unclear.
111
+
112
+ ### 5. Capture Scope Hints
113
+
114
+ If the user mentioned scope preferences in their intent response, acknowledge them:
115
+
116
+ "**I noted these scope hints from your response:**
117
+ - {list any scope hints mentioned}
118
+
119
+ We'll refine these after analyzing the repo structure in the next step."
120
+
121
+ If no scope hints were mentioned, that's fine — skip this acknowledgment.
122
+
123
+ ### 6. Derive Skill Name
124
+
125
+ Based on the target repo and intent, propose a skill name:
126
+
127
+ "**Suggested skill name:** `{derived-name}` (kebab-case)
128
+
129
+ This will be used for the output directory and file naming. Want to use this name or suggest something different?"
130
+
131
+ Wait for confirmation or alternative.
132
+
133
+ ### 7. Summarize Gathered Intent
134
+
135
+ "**Here's what I've captured:**
136
+
137
+ - **Target:** {repo URL or path}
138
+ - **Intent:** {user's intent summary}
139
+ - **Scope hints:** {any hints, or "None — we'll define scope after analysis"}
140
+ - **Skill name:** {confirmed name}
141
+ - **Forge tier:** {tier}
142
+
143
+ Ready to analyze the target repository?"
144
+
145
+ ### 8. Present MENU OPTIONS
146
+
147
+ Display: "**Select:** [C] Continue to Target Analysis"
148
+
149
+ #### Menu Handling Logic:
150
+
151
+ - IF C: Load, read entire file, then execute {nextStepFile}
152
+ - IF Any other: Help user, then [Redisplay Menu Options](#8-present-menu-options)
153
+
154
+ #### EXECUTION RULES:
155
+
156
+ - ALWAYS halt and wait for user input after presenting menu
157
+ - ONLY proceed to next step when user selects 'C'
158
+
159
+ ## CRITICAL STEP COMPLETION NOTE
160
+
161
+ ONLY WHEN C is selected and target repository is confirmed will you load and read fully `./step-02-analyze-target.md` to execute target analysis.
162
+
163
+ ---
164
+
165
+ ## 🚨 SYSTEM SUCCESS/FAILURE METRICS
166
+
167
+ ### ✅ SUCCESS:
168
+
169
+ - Forge tier discovered (or defaulted to Quick with warning)
170
+ - Target repository confirmed (GitHub URL or local path)
171
+ - User intent captured with enough context for scoping
172
+ - Skill name derived and confirmed
173
+ - Scope hints noted (if provided)
174
+ - User ready to proceed to analysis
175
+
176
+ ### ❌ SYSTEM FAILURE:
177
+
178
+ - Analyzing source code in this step (too early)
179
+ - Proceeding without a confirmed target repository
180
+ - Not attempting to discover forge tier
181
+ - Generating a skill name without user confirmation
182
+ - Skipping the intent gathering conversation
183
+
184
+ **Master Rule:** Skipping steps, optimizing sequences, or not following exact instructions is FORBIDDEN and constitutes SYSTEM FAILURE.