bmad-module-skill-forge 0.5.0 → 0.6.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 (84) hide show
  1. package/README.md +2 -1
  2. package/docs/agents.md +3 -0
  3. package/docs/concepts.md +23 -5
  4. package/docs/examples.md +30 -1
  5. package/docs/getting-started.md +11 -0
  6. package/docs/how-it-works.md +49 -25
  7. package/docs/index.md +1 -1
  8. package/docs/workflows.md +6 -6
  9. package/package.json +2 -2
  10. package/src/agents/forger.agent.yaml +1 -1
  11. package/src/forger/forge-tier.yaml +17 -1
  12. package/src/forger/preferences.yaml +1 -1
  13. package/src/knowledge/ccc-bridge.md +110 -0
  14. package/src/knowledge/confidence-tiers.md +3 -3
  15. package/src/knowledge/overview.md +2 -1
  16. package/src/knowledge/progressive-capability.md +12 -4
  17. package/src/knowledge/qmd-registry.md +14 -0
  18. package/src/knowledge/skf-knowledge-index.csv +2 -1
  19. package/src/module-help.csv +1 -1
  20. package/src/module.yaml +1 -1
  21. package/src/workflows/README.md +1 -1
  22. package/src/workflows/analyze-source/data/skill-brief-schema.md +1 -1
  23. package/src/workflows/analyze-source/data/unit-detection-heuristics.md +1 -0
  24. package/src/workflows/analyze-source/steps-c/step-01-init.md +2 -2
  25. package/src/workflows/analyze-source/steps-c/step-04-map-and-detect.md +7 -3
  26. package/src/workflows/analyze-source/validation-report.md +2 -2
  27. package/src/workflows/analyze-source/workflow-plan-analyze-source.md +1 -1
  28. package/src/workflows/audit-skill/data/drift-report-template.md +6 -6
  29. package/src/workflows/audit-skill/steps-c/step-01-init.md +2 -2
  30. package/src/workflows/audit-skill/steps-c/step-02-re-index.md +18 -1
  31. package/src/workflows/audit-skill/steps-c/step-04-semantic-diff.md +5 -5
  32. package/src/workflows/audit-skill/validation-report.md +3 -3
  33. package/src/workflows/audit-skill/workflow-plan-audit-skill.md +2 -2
  34. package/src/workflows/audit-skill/workflow.md +1 -1
  35. package/src/workflows/brief-skill/data/skill-brief-schema.md +3 -3
  36. package/src/workflows/brief-skill/steps-c/step-01-gather-intent.md +3 -3
  37. package/src/workflows/brief-skill/steps-c/step-02-analyze-target.md +15 -0
  38. package/src/workflows/create-skill/data/extraction-patterns.md +37 -1
  39. package/src/workflows/create-skill/data/skill-sections.md +2 -2
  40. package/src/workflows/create-skill/steps-c/step-01-load-brief.md +5 -3
  41. package/src/workflows/create-skill/steps-c/step-02-ecosystem-check.md +2 -2
  42. package/src/workflows/create-skill/steps-c/step-02b-ccc-discover.md +157 -0
  43. package/src/workflows/create-skill/steps-c/step-03-extract.md +10 -1
  44. package/src/workflows/create-skill/steps-c/step-03b-fetch-temporal.md +5 -5
  45. package/src/workflows/create-skill/steps-c/step-04-enrich.md +8 -8
  46. package/src/workflows/create-skill/steps-c/step-06-validate.md +1 -1
  47. package/src/workflows/create-skill/steps-c/step-07-generate-artifacts.md +32 -0
  48. package/src/workflows/create-skill/steps-c/step-08-report.md +1 -0
  49. package/src/workflows/create-skill/validation-report.md +1 -1
  50. package/src/workflows/create-skill/workflow-plan-create-skill.md +4 -2
  51. package/src/workflows/create-skill/workflow.md +1 -1
  52. package/src/workflows/create-stack-skill/data/stack-skill-template.md +1 -1
  53. package/src/workflows/create-stack-skill/steps-c/step-01-init.md +3 -2
  54. package/src/workflows/create-stack-skill/steps-c/step-05-detect-integrations.md +10 -0
  55. package/src/workflows/create-stack-skill/steps-c/step-08-validate.md +1 -1
  56. package/src/workflows/create-stack-skill/validation-report.md +1 -1
  57. package/src/workflows/create-stack-skill/workflow-plan-create-stack-skill.md +2 -2
  58. package/src/workflows/create-stack-skill/workflow.md +1 -1
  59. package/src/workflows/export-skill/steps-c/step-01-load-skill.md +1 -1
  60. package/src/workflows/export-skill/steps-c/step-02-package.md +1 -1
  61. package/src/workflows/export-skill/workflow-plan-export-skill.md +1 -1
  62. package/src/workflows/quick-skill/data/skill-template.md +8 -0
  63. package/src/workflows/quick-skill/steps-c/step-02-ecosystem-check.md +1 -3
  64. package/src/workflows/setup-forge/data/tier-rules.md +16 -6
  65. package/src/workflows/setup-forge/steps-c/step-01-detect-and-tier.md +32 -15
  66. package/src/workflows/setup-forge/steps-c/step-01b-ccc-index.md +148 -0
  67. package/src/workflows/setup-forge/steps-c/step-02-write-config.md +24 -6
  68. package/src/workflows/setup-forge/steps-c/step-03-auto-index.md +29 -6
  69. package/src/workflows/setup-forge/steps-c/step-04-report.md +14 -2
  70. package/src/workflows/setup-forge/validation-report.md +1 -1
  71. package/src/workflows/setup-forge/workflow-plan-setup-forge.md +11 -9
  72. package/src/workflows/setup-forge/workflow.md +1 -1
  73. package/src/workflows/test-skill/data/scoring-rules.md +5 -0
  74. package/src/workflows/test-skill/steps-c/step-01-init.md +2 -2
  75. package/src/workflows/test-skill/templates/test-report-template.md +3 -0
  76. package/src/workflows/test-skill/validation-report.md +2 -2
  77. package/src/workflows/test-skill/workflow-plan-test-skill.md +2 -2
  78. package/src/workflows/update-skill/steps-c/step-01-init.md +3 -2
  79. package/src/workflows/update-skill/steps-c/step-03-re-extract.md +19 -2
  80. package/src/workflows/update-skill/steps-c/step-05-validate.md +1 -1
  81. package/src/workflows/update-skill/steps-c/step-06-write.md +2 -2
  82. package/src/workflows/update-skill/validation-report.md +1 -1
  83. package/src/workflows/update-skill/workflow-plan-update-skill.md +1 -1
  84. package/tools/cli/commands/status.js +2 -1
@@ -103,7 +103,7 @@ Perform tier-aware extraction on only the changed files identified in step 02, p
103
103
  DO NOT BE LAZY — For EACH file in the change manifest with status MODIFIED, ADDED, or RENAMED, launch a subprocess that:
104
104
 
105
105
  1. Loads the source file
106
- 2. Performs tier-appropriate extraction (Quick/Forge/Deep)
106
+ 2. Performs tier-appropriate extraction (Quick/Forge/Forge+/Deep)
107
107
  3. For each export found:
108
108
  - Record: export name, type (function/class/type/constant), signature
109
109
  - Record: file path, start line, end line
@@ -119,6 +119,23 @@ DO NOT BE LAZY — For EACH file in the change manifest with status MODIFIED, AD
119
119
 
120
120
  **Re-export tracing (Forge/Deep only):** After extracting changed files, check if any public exports from the package entry point (`__init__.py`, `index.ts`, `lib.rs`) are unresolved — particularly when a changed file is part of a module re-export chain. Follow the **Re-Export Tracing** protocol in `{extractionPatternsData}` to trace unresolved symbols to their actual definition files.
121
121
 
122
+ ### 2b. CCC Semantic Ranking (Forge+ and Deep with ccc)
123
+
124
+ **IF `tools.ccc` is true in forge-tier.yaml:**
125
+
126
+ Before aggregating extraction results, use CCC to assess semantic significance of changes:
127
+
128
+ 1. Run `ccc_bridge.search("{skill_name}", source_root, top_k=15)` to get the skill's most semantically central files
129
+ 2. Cross-reference the change manifest files with CCC results
130
+ 3. Files appearing in BOTH the change manifest AND CCC's top results are **semantically significant changes** — flag them for priority in the merge step
131
+ 4. Store `{ccc_significant_changes: [{file, score}]}` in context
132
+
133
+ This helps the merge step (section 4) prioritize which changes are most likely to affect the skill's core content vs. peripheral modifications.
134
+
135
+ CCC failures: skip ranking silently, all changes treated equally.
136
+
137
+ **IF `tools.ccc` is false:** Skip this section silently.
138
+
122
139
  ### 3. Deep Tier QMD Enrichment (Conditional)
123
140
 
124
141
  **ONLY if forge_tier == Deep:**
@@ -200,7 +217,7 @@ ONLY WHEN all changed files have been extracted and results compiled will you lo
200
217
  - Every changed file from manifest extracted with tier-appropriate method
201
218
  - All exports labeled with confidence tier (T1/T1-low/T2)
202
219
  - AST file:line citations on every extracted export
203
- - QMD enrichment performed for Deep tier (skipped with notice for Quick/Forge)
220
+ - QMD enrichment performed for Deep tier (skipped with notice for Quick/Forge/Forge+)
204
221
  - Extraction results compiled with per-file detail
205
222
  - Summary displayed before auto-proceeding
206
223
  - No unchanged files extracted
@@ -73,7 +73,7 @@ Launch subprocesses in parallel for each validation category, aggregating result
73
73
 
74
74
  **If available**, run: `npx skill-check check <skill-dir> --fix --format json --no-security-scan`
75
75
 
76
- Parse JSON output for quality score (0-100), auto-fixed issues, and remaining diagnostics. If `body.max_lines` reported, prefer selective split: extract only the largest Tier 2 section(s) to `references/`, keeping all Tier 1 content inline (see `knowledge/split-body-strategy.md`). Fall back to `npx skill-check split-body <skill-dir> --write` only if selective split is not feasible. After any split, verify `#quick-start` and `#key-types` anchors still resolve in SKILL.md.
76
+ Parse JSON output for quality score (0-100), auto-fixed issues, and remaining diagnostics. If `body.max_lines` reported, prefer selective split: extract only the largest Tier 2 section(s) to `references/`, keeping all Tier 1 content inline (selective split preserves agent accuracy — inline passive context achieves 100% task accuracy vs 79% for on-demand retrieval per Vercel research). Fall back to `npx skill-check split-body <skill-dir> --write` only if selective split is not feasible. After any split, verify `#quick-start` and `#key-types` anchors still resolve in SKILL.md.
77
77
 
78
78
  **If unavailable**, perform manual check: validate merged SKILL.md structure, verify required sections (exports, usage patterns, conventions), verify export entries have name/type/signature/file:line reference, flag missing sections.
79
79
 
@@ -115,7 +115,7 @@ Write to `{forge_data_folder}/{skill_name}/provenance-map.json`:
115
115
 
116
116
  ### 4. Write Updated evidence-report.md
117
117
 
118
- Append update operation section to `{forge_data_folder}/{skill_name}/evidence-report.md`:
118
+ Append update operation section to `{forge_data_folder}/{skill_name}/evidence-report.md` (create the file with a standard header if it does not yet exist):
119
119
 
120
120
  ```markdown
121
121
  ## Update Operation — {current_date}
@@ -182,7 +182,7 @@ External tool checks deferred from step-05 now run against the written files:
182
182
 
183
183
  **If skill-check available:**
184
184
  - Run: `npx skill-check check {skills_output_folder}/{skill_name} --fix --format json --no-security-scan`
185
- - If `body.max_lines` reported, prefer selective split (see `knowledge/split-body-strategy.md`). Fall back to `npx skill-check split-body {skills_output_folder}/{skill_name} --write` if not feasible. Verify anchors resolve after split.
185
+ - If `body.max_lines` reported, prefer selective split — extract only the largest Tier 2 section(s) to `references/`, keeping Tier 1 inline (inline passive context achieves 100% task accuracy vs 79% for on-demand retrieval). Fall back to `npx skill-check split-body {skills_output_folder}/{skill_name} --write` if not feasible. Verify anchors resolve after split.
186
186
  - Run: `npx skill-check diff` if original version was preserved
187
187
  - Run: `npx skill-check check {skills_output_folder}/{skill_name} --format json` for security scan
188
188
 
@@ -413,7 +413,7 @@ This workflow is a well-architected surgical pipeline that achieves its goal of
413
413
 
414
414
  1. **Zero-hallucination principle** enforced throughout — every statement must trace to actual artifacts
415
415
  2. **[MANUAL] section preservation** treated as highest priority with multiple safeguards (inventory in step-01, preservation in step-04, integrity verification in step-05, write verification in step-06)
416
- 3. **Tier-aware extraction** well-implemented across Quick/Forge/Deep with graceful degradation
416
+ 3. **Tier-aware extraction** well-implemented across Quick/Forge/Forge+/Deep with graceful degradation
417
417
  4. **Subprocess optimization** strategically placed at the right steps (02-parallel, 03-per-file, 03-QMD, 05-parallel)
418
418
  5. **Error handling** is comprehensive (missing artifacts → abort with helpful message, missing provenance → degraded mode, [MANUAL] conflicts → user resolution)
419
419
  6. **Workflow chaining** properly integrated with input/output contracts
@@ -125,7 +125,7 @@ Document-producing workflow that outputs:
125
125
 
126
126
  ### Missing Features to Add During Conversion
127
127
 
128
- 1. Tier-aware re-extraction (Quick/Forge/Deep graceful degradation)
128
+ 1. Tier-aware re-extraction (Quick/Forge/Forge+/Deep graceful degradation)
129
129
  2. Degraded mode for missing provenance map (fallback to full re-extraction)
130
130
  3. Stack skill multi-file update support
131
131
  4. Batch mode with checkpoint resume
@@ -146,7 +146,7 @@ function displayStatus(status, version) {
146
146
  const tools = ft.tools || {};
147
147
  console.log(chalk.white.bold(' Forge Tier'));
148
148
  if (status.tierDetected) {
149
- const tierColors = { Quick: chalk.yellow, Forge: chalk.hex('#F59E0B'), Deep: chalk.hex('#FCD34D') };
149
+ const tierColors = { Quick: chalk.yellow, Forge: chalk.hex('#F59E0B'), 'Forge+': chalk.hex('#E88D0E'), Deep: chalk.hex('#FCD34D') };
150
150
  const tierColor = tierColors[ft.tier] || chalk.white;
151
151
  console.log(` Tier: ${tierColor(ft.tier)}`);
152
152
  console.log(` Detected: ${chalk.dim(ft.tier_detected_at || '(unknown)')}`);
@@ -155,6 +155,7 @@ function displayStatus(status, version) {
155
155
  }
156
156
  console.log(` ast-grep: ${formatTool(tools.ast_grep)}`);
157
157
  console.log(` gh CLI: ${formatTool(tools.gh_cli)}`);
158
+ console.log(` ccc: ${formatTool(tools.ccc)}`);
158
159
  console.log(` QMD: ${formatTool(tools.qmd)}`);
159
160
  console.log('');
160
161