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
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: 'step-01-select'
|
|
3
|
-
description: 'Select skill to rename and validate the new name'
|
|
4
2
|
nextStepFile: './step-02-execute.md'
|
|
5
|
-
versionPathsKnowledge: '
|
|
3
|
+
versionPathsKnowledge: 'knowledge/version-paths.md'
|
|
6
4
|
---
|
|
7
5
|
|
|
8
6
|
# Step 1: Select Rename Target
|
|
@@ -11,46 +9,12 @@ versionPathsKnowledge: '../../../knowledge/version-paths.md'
|
|
|
11
9
|
|
|
12
10
|
Identify the skill the user wants to rename, validate the new name against the agentskills.io spec (kebab-case, length, uniqueness), warn about source authority implications, enumerate every version that will be touched, and obtain explicit user confirmation before any filesystem operation is scheduled. Every selection decision is stored in context so step-02 can execute the rename transactionally.
|
|
13
11
|
|
|
14
|
-
##
|
|
12
|
+
## Rules
|
|
15
13
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
-
|
|
19
|
-
-
|
|
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
|
-
- ⚙️ 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
|
|
24
|
-
- ✅ YOU MUST ALWAYS SPEAK OUTPUT in your Agent communication style with the config `{communication_language}`
|
|
25
|
-
|
|
26
|
-
### Role Reinforcement:
|
|
27
|
-
|
|
28
|
-
- ✅ You are Ferris in Management mode — a precision surgeon for transactional renames
|
|
29
|
-
- ✅ You validate the new name against agentskills.io spec constraints before anything moves
|
|
30
|
-
- ✅ You enumerate the full blast radius (every affected version and directory) before asking for confirmation
|
|
31
|
-
- ✅ Safety via copy-before-delete — the old skill is untouched until step-02 finishes verification
|
|
32
|
-
|
|
33
|
-
### Step-Specific Rules:
|
|
34
|
-
|
|
35
|
-
- 🎯 Focus only on selection, validation, and confirmation
|
|
36
|
-
- 🚫 FORBIDDEN to proceed without explicit user confirmation at the final gate
|
|
37
|
-
- 🚫 FORBIDDEN to modify the manifest, copy, or delete any files in this step — execution happens in step-02
|
|
38
|
-
- 🚫 FORBIDDEN to accept a new name that fails validation (kebab-case, length, uniqueness)
|
|
39
|
-
- 💬 Present the list of affected versions clearly so the user understands the scope before committing
|
|
40
|
-
|
|
41
|
-
## EXECUTION PROTOCOLS:
|
|
42
|
-
|
|
43
|
-
- 🎯 Load version-paths knowledge and the export manifest (if present) alongside an on-disk skill scan
|
|
44
|
-
- 💾 Gather all selection decisions into context for step-02
|
|
45
|
-
- 📖 Show the full list of affected versions and the resolved paths clearly
|
|
46
|
-
- 🚫 Halt only if neither the manifest nor an on-disk scan yields any skill — rename must still work for draft skills that were never exported, so a missing or empty manifest is not fatal
|
|
47
|
-
|
|
48
|
-
## CONTEXT BOUNDARIES:
|
|
49
|
-
|
|
50
|
-
- Available: Export manifest v2, SKF module config variables, on-disk skill directory listing, version-paths knowledge (Rename section)
|
|
51
|
-
- Focus: Selection, validation, and user confirmation
|
|
52
|
-
- Limits: Do not write to the manifest, do not copy or delete any files — execution is deferred to step-02
|
|
53
|
-
- Dependencies: At least one skill must exist in the export manifest (or on disk); otherwise the workflow halts
|
|
14
|
+
- Focus only on selection, validation, and confirmation — do not modify manifest, copy, or delete files
|
|
15
|
+
- Do not proceed without explicit user confirmation at the final gate
|
|
16
|
+
- Do not accept a new name that fails validation (kebab-case, length, uniqueness)
|
|
17
|
+
- Present the list of affected versions clearly so the user understands the scope
|
|
54
18
|
|
|
55
19
|
## MANDATORY SEQUENCE
|
|
56
20
|
|
|
@@ -108,7 +72,7 @@ Available skills:
|
|
|
108
72
|
"**Which skill would you like to rename?**
|
|
109
73
|
Enter the skill name or its number from the list above."
|
|
110
74
|
|
|
111
|
-
Wait for user input. Accept either the numeric index or the skill name (exact match).
|
|
75
|
+
Wait for user input. Accept either the numeric index or the skill name (exact match). **GATE [default: use args]** — If `{headless_mode}` and old skill name was provided as argument: select that skill and auto-proceed. If not provided, HALT: "headless mode requires old_name argument."
|
|
112
76
|
|
|
113
77
|
**If the user's input does not match any listed skill:** Re-display the list and ask again.
|
|
114
78
|
|
|
@@ -119,7 +83,9 @@ Store the selection as `old_name`.
|
|
|
119
83
|
"**What is the new name for this skill?**
|
|
120
84
|
The new name must be kebab-case: lowercase alphanumeric with hyphens, 1-64 characters, matching the regex `^[a-z][a-z0-9-]*[a-z0-9]$` (single-character names may be a single lowercase letter or digit)."
|
|
121
85
|
|
|
122
|
-
Wait for user input. Trim whitespace.
|
|
86
|
+
Wait for user input. Trim whitespace. **GATE [default: use args]** — If `{headless_mode}` and new_name was provided as argument: use it and auto-proceed through validation. If not provided, HALT: "headless mode requires new_name argument."
|
|
87
|
+
|
|
88
|
+
Apply the following validations in order:
|
|
123
89
|
|
|
124
90
|
1. **Kebab-case format:** Must match `^[a-z][a-z0-9-]*[a-z0-9]$` (or `^[a-z0-9]$` for the single-character case). If it fails:
|
|
125
91
|
"**Invalid name format.** The new name must be lowercase alphanumeric with hyphens, starting with a letter and ending with a letter or digit. Try again."
|
|
@@ -222,6 +188,8 @@ directories are removed and the old skill remains intact.
|
|
|
222
188
|
Proceed? [Y/N]
|
|
223
189
|
```
|
|
224
190
|
|
|
191
|
+
**GATE [default: Y]** — If `{headless_mode}`: auto-proceed with [Y], log: "headless: auto-confirmed rename {old_name} → {new_name}"
|
|
192
|
+
|
|
225
193
|
Wait for explicit user response.
|
|
226
194
|
|
|
227
195
|
- **If `Y`** → proceed to section 9
|
|
@@ -250,32 +218,3 @@ Load, read the full file, and then execute `{nextStepFile}`.
|
|
|
250
218
|
|
|
251
219
|
ONLY WHEN the user has confirmed with `Y` at the confirmation gate AND all selection decisions have been stored in context, will you then load and read fully `{nextStepFile}` to execute the rename.
|
|
252
220
|
|
|
253
|
-
---
|
|
254
|
-
|
|
255
|
-
## 🚨 SYSTEM SUCCESS/FAILURE METRICS
|
|
256
|
-
|
|
257
|
-
### ✅ SUCCESS:
|
|
258
|
-
|
|
259
|
-
- Version-paths knowledge loaded and the Rename section internalized before any decision
|
|
260
|
-
- Export manifest read and validated (halt if empty/missing)
|
|
261
|
-
- Complete skill list displayed with version counts and active version
|
|
262
|
-
- Old name selected by explicit user input
|
|
263
|
-
- New name validated against kebab-case regex, length, identity, and collision checks
|
|
264
|
-
- `source_authority: "official"` warning shown and acknowledged when applicable
|
|
265
|
-
- `affected_versions` enumerated from both the manifest and the on-disk directory listing
|
|
266
|
-
- All four outer paths resolved from templates (no hardcoding)
|
|
267
|
-
- Explicit user confirmation (`Y`) received at the confirmation gate
|
|
268
|
-
- All selection decisions stored in context for step-02
|
|
269
|
-
|
|
270
|
-
### ❌ SYSTEM FAILURE:
|
|
271
|
-
|
|
272
|
-
- Proceeding without reading version-paths knowledge
|
|
273
|
-
- Halting when the manifest is missing but on-disk skills exist — the fallback on-disk scan MUST be attempted before any "nothing to rename" halt
|
|
274
|
-
- Accepting a new name that fails any of the four validation checks
|
|
275
|
-
- Missing the source_authority warning when `"official"` is present
|
|
276
|
-
- Hardcoding directory paths instead of using `{skill_package}`, `{skill_group}`, `{forge_version}`, `{forge_group}` templates
|
|
277
|
-
- Modifying the manifest, copying, or deleting files in this step (execution belongs to step-02)
|
|
278
|
-
- Skipping the confirmation gate or proceeding on any response other than `Y`
|
|
279
|
-
- Not storing decisions in context for step-02
|
|
280
|
-
|
|
281
|
-
**Master Rule:** Skipping steps, optimizing sequences, or not following exact instructions is FORBIDDEN and constitutes SYSTEM FAILURE. No filesystem operation proceeds without explicit user confirmation, and no invalid new name is ever accepted.
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: 'step-02-execute'
|
|
3
|
-
description: 'Execute the rename transactionally — copy, verify, then delete old'
|
|
4
2
|
nextStepFile: './step-03-report.md'
|
|
5
|
-
versionPathsKnowledge: '
|
|
6
|
-
managedSectionLogic: '
|
|
3
|
+
versionPathsKnowledge: 'knowledge/version-paths.md'
|
|
4
|
+
managedSectionLogic: 'skf-export-skill/assets/managed-section-format.md'
|
|
7
5
|
---
|
|
8
6
|
|
|
9
7
|
# Step 2: Execute Rename (Transactional)
|
|
@@ -12,46 +10,13 @@ managedSectionLogic: '../../export-skill/data/managed-section-format.md'
|
|
|
12
10
|
|
|
13
11
|
Execute the rename decisions recorded in step-01 as a transaction. Copy the old `{skill_group}` and `{forge_group}` to the new name, rename inner directories, rewrite every in-file reference, verify no trace of the old name remains inside the new location, update the export manifest, rebuild platform context files, and only then delete the old directories. Any failure before the final delete rolls back by removing the new directories — the old skill remains intact.
|
|
14
12
|
|
|
15
|
-
##
|
|
13
|
+
## Rules
|
|
16
14
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
-
|
|
20
|
-
-
|
|
21
|
-
-
|
|
22
|
-
- 📖 CRITICAL: Read the complete step file before taking any action
|
|
23
|
-
- 🔄 CRITICAL: When loading next step, ensure entire file is read
|
|
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
|
-
- ✅ YOU MUST ALWAYS SPEAK OUTPUT in your Agent communication style with the config `{communication_language}`
|
|
26
|
-
|
|
27
|
-
### Role Reinforcement:
|
|
28
|
-
|
|
29
|
-
- ✅ You are Ferris in Management mode — a transactional rename surgeon
|
|
30
|
-
- ✅ Copy-before-delete: the new name is fully materialized and verified before the old name is touched
|
|
31
|
-
- ✅ Every step before section 8 is reversible — on any failure, delete `{new_skill_group}` and `{new_forge_group}` and halt
|
|
32
|
-
- ✅ Surgical precision on platform context files: preserve all content outside `<!-- SKF:BEGIN/END -->` markers
|
|
33
|
-
|
|
34
|
-
### Step-Specific Rules:
|
|
35
|
-
|
|
36
|
-
- 🎯 Execute sections strictly in order — each section depends on the previous one
|
|
37
|
-
- 🚫 FORBIDDEN to re-prompt the user — decisions were made in step-01
|
|
38
|
-
- 🚫 FORBIDDEN to delete anything from `{old_skill_group}` or `{old_forge_group}` before section 8
|
|
39
|
-
- 🚫 FORBIDDEN to proceed past a verification failure in section 5
|
|
40
|
-
- 💬 Report each section's outcome as it completes so the user sees progress
|
|
41
|
-
|
|
42
|
-
## EXECUTION PROTOCOLS:
|
|
43
|
-
|
|
44
|
-
- 🎯 Re-read version-paths knowledge at the start to avoid drift between step files
|
|
45
|
-
- 💾 Hold a copy of the manifest in memory before modifying it so section 6 can roll back on failure
|
|
46
|
-
- 📖 Rebuild managed sections from the **updated** manifest (after section 6), not from memory
|
|
47
|
-
- 🚫 If any section before section 8 fails, execute the rollback procedure defined for that section and halt
|
|
48
|
-
|
|
49
|
-
## CONTEXT BOUNDARIES:
|
|
50
|
-
|
|
51
|
-
- Available: Decisions from step-01 (`old_name`, `new_name`, `affected_versions`, `old_skill_group`, `new_skill_group`, `old_forge_group`, `new_forge_group`), SKF module config, version-paths knowledge, managed-section format
|
|
52
|
-
- Focus: Copy → rename inner dirs → rewrite files → verify → update manifest → rebuild context → delete old
|
|
53
|
-
- Limits: Only touch paths inside `{skills_output_folder}` and `{forge_data_folder}`; only modify content between `<!-- SKF:BEGIN/END -->` markers in platform context files
|
|
54
|
-
- Dependencies: Step-01 must have completed and stored all decisions in context
|
|
15
|
+
- Execute sections strictly in order — each section depends on the previous one
|
|
16
|
+
- Do not re-prompt the user — decisions were made in step-01
|
|
17
|
+
- Do not delete anything from old directories before section 8
|
|
18
|
+
- Do not proceed past a verification failure in section 5
|
|
19
|
+
- Report each section's outcome as it completes
|
|
55
20
|
|
|
56
21
|
## MANDATORY SEQUENCE
|
|
57
22
|
|
|
@@ -116,13 +81,10 @@ For each version `v` in `affected_versions`, operate on the files inside `{new_s
|
|
|
116
81
|
|
|
117
82
|
- Path: `{new_skill_group}/{v}/{new_name}/context-snippet.md`
|
|
118
83
|
- Replace the display name header `[{old_name} v...]` → `[{new_name} v...]` (preserving the version suffix)
|
|
119
|
-
- Rewrite every `root:` path that references the old name to use the new name.
|
|
120
|
-
- `root: .
|
|
121
|
-
- `root:
|
|
122
|
-
- `root:
|
|
123
|
-
- `root: skills/{old_name}/` → `root: skills/{new_name}/` (draft form written by create-skill/quick-skill/create-stack-skill before first export)
|
|
124
|
-
- Legacy pre-fix form `root: skills/{old_name}/active/{old_name}/` (from older skills created before the create-skill template was corrected) → `root: skills/{new_name}/` (also normalize to flat form during rename)
|
|
125
|
-
- Any other `root:` prefix ending in `{old_name}/` → replace the `{old_name}/` segment with `{new_name}/`
|
|
84
|
+
- Rewrite every `root:` path that references the old name to use the new name. Parse the `root:` line as `root: {prefix}{old_name}/`, preserve the prefix as-is, and replace `{old_name}` with `{new_name}`. This generically handles any IDE's skill root path (e.g., `.claude/skills/`, `.windsurf/skills/`, `.github/skills/`) as well as the draft `skills/` prefix and legacy forms — no enumeration of known prefixes needed.
|
|
85
|
+
- Example: `root: .windsurf/skills/{old_name}/` → `root: .windsurf/skills/{new_name}/`
|
|
86
|
+
- Example: `root: skills/{old_name}/` → `root: skills/{new_name}/`
|
|
87
|
+
- Legacy pre-fix form `root: skills/{old_name}/active/{old_name}/` → `root: skills/{new_name}/` (normalize to flat form during rename)
|
|
126
88
|
- If the file is missing, record it in `section3_warnings` and continue
|
|
127
89
|
|
|
128
90
|
**3d. provenance-map.json:**
|
|
@@ -206,33 +168,27 @@ Set context flag `manifest_updated = true`.
|
|
|
206
168
|
|
|
207
169
|
Report: "**Manifest updated** — re-keyed `exports.{old_name}` → `exports.{new_name}`."
|
|
208
170
|
|
|
209
|
-
### 7. Rebuild
|
|
210
|
-
|
|
211
|
-
Load the `ides` list from `config.yaml`. The installer writes installer-specific IDE identifiers (e.g. `claude-code`, `github-copilot`, `codex`, `cline`, `roo`, `windsurf`, `cursor`, `other`), NOT platform values — these must be mapped to platforms before any target-file lookup.
|
|
171
|
+
### 7. Rebuild Context Files
|
|
212
172
|
|
|
213
|
-
|
|
173
|
+
Load the `ides` list from `config.yaml`. The installer writes IDE identifiers — these must be mapped to context files and skill roots using the "IDE → Context File Mapping" table in `{managedSectionLogic}`.
|
|
214
174
|
|
|
215
|
-
|
|
216
|
-
2. For any entry not found in the table, default to `copilot` and emit a warning: "Unknown IDE '{value}' in config.yaml — defaulting to copilot"
|
|
217
|
-
3. Deduplicate the resulting platform list (e.g. both `codex` and `cline` collapse to a single `copilot` entry)
|
|
218
|
-
4. If `config.yaml.ides` is absent or the mapping yields an empty list, fall back to `["copilot"]` and emit a note: "No IDEs configured in config.yaml — defaulting to copilot (AGENTS.md)"
|
|
175
|
+
**Resolve `target_context_files`** using the canonical mapping table in `{managedSectionLogic}`:
|
|
219
176
|
|
|
220
|
-
|
|
177
|
+
1. For each entry in `config.yaml.ides`, look up its `context_file` and `skill_root` from the mapping table
|
|
178
|
+
2. For any entry not found in the table, default to AGENTS.md / `.agents/skills/` and emit a warning: "Unknown IDE '{value}' in config.yaml — defaulting to AGENTS.md"
|
|
179
|
+
3. Deduplicate by `context_file` — when multiple IDEs map to the same context file, use the first configured IDE's `skill_root`
|
|
180
|
+
4. If `config.yaml.ides` is absent or the mapping yields an empty list, fall back to `[{context_file: "AGENTS.md", skill_root: ".agents/skills/"}]` and emit a note: "No IDEs configured in config.yaml — defaulting to AGENTS.md"
|
|
221
181
|
|
|
222
|
-
|
|
182
|
+
Store the result as `target_context_files` for this section.
|
|
223
183
|
|
|
224
|
-
|
|
184
|
+
For each entry in `target_context_files`:
|
|
225
185
|
|
|
226
|
-
|
|
227
|
-
|----------|-------------|
|
|
228
|
-
| `claude` | `{project-root}/CLAUDE.md` |
|
|
229
|
-
| `cursor` | `{project-root}/.cursorrules` |
|
|
230
|
-
| `copilot` | `{project-root}/AGENTS.md` |
|
|
186
|
+
1. **Resolve target file** at `{context_file}`.
|
|
231
187
|
|
|
232
188
|
2. **Read the current file.**
|
|
233
|
-
- If the file does not exist, skip this
|
|
234
|
-
- If the file exists but contains no `<!-- SKF:BEGIN -->` marker, skip this
|
|
235
|
-
- If the file contains `<!-- SKF:BEGIN -->` but no matching `<!-- SKF:END -->`, record the error against that
|
|
189
|
+
- If the file does not exist, skip this context file (nothing to rebuild — the file will be re-created next time export-skill runs)
|
|
190
|
+
- If the file exists but contains no `<!-- SKF:BEGIN -->` marker, skip this context file (no managed section to rewrite)
|
|
191
|
+
- If the file contains `<!-- SKF:BEGIN -->` but no matching `<!-- SKF:END -->`, record the error against that context file and continue to the next entry — do not halt the entire rename on a malformed context file
|
|
236
192
|
|
|
237
193
|
3. **Build the exported skill set (version-aware, deprecated-excluded)** using the same logic as export-skill step-04 section 4b and the snippet resolution logic from section 4c:
|
|
238
194
|
- Read the manifest's `exports` object (already updated in section 6, so `{new_name}` is present and `{old_name}` is absent)
|
|
@@ -241,15 +197,9 @@ For each platform in `target_platforms`:
|
|
|
241
197
|
- For each remaining `{skill-name, active_version}` pair, read `{skills_output_folder}/{skill-name}/{active_version}/{skill-name}/context-snippet.md`
|
|
242
198
|
- If missing, fall back to the `active` symlink path; if still missing, skip with a warning
|
|
243
199
|
|
|
244
|
-
4. **Rewrite root paths for the current
|
|
200
|
+
4. **Rewrite root paths for the current context file** using the generic rewrite algorithm from export-skill step-04 section 4d:
|
|
245
201
|
|
|
246
|
-
|
|
247
|
-
|----------|-----------------|
|
|
248
|
-
| `claude` | `.claude/skills/` |
|
|
249
|
-
| `cursor` | `.cursor/skills/` |
|
|
250
|
-
| `copilot` | `.agents/skills/` |
|
|
251
|
-
|
|
252
|
-
For each snippet, detect its current `root:` prefix and rewrite it to the current platform's prefix if different.
|
|
202
|
+
For each snippet, parse the `root:` line (`root: {prefix}{skill-name}/`), strip the trailing `{skill-name}/` to extract the current prefix, and replace it with the current entry's `skill_root` if different. **Override guard:** If `snippet_skill_root_override` is set in config.yaml AND the extracted prefix equals the override value, skip the rewrite — leave the root path untouched. See `skf-export-skill/steps-c/step-04-update-context.md` §4d for full semantics.
|
|
253
203
|
|
|
254
204
|
5. **Sort skills alphabetically by name.** Count totals (skills, stack skills).
|
|
255
205
|
|
|
@@ -282,12 +232,12 @@ For each platform in `target_platforms`:
|
|
|
282
232
|
- Confirm `{new_name}` appears between the markers (if this skill's active version is not deprecated)
|
|
283
233
|
- Confirm content outside the markers is byte-identical to what was preserved
|
|
284
234
|
|
|
285
|
-
9. **On per-file failure:** record the error against that
|
|
235
|
+
9. **On per-file failure:** record the error against that context file and continue to the next entry. Do not halt the rename on a recoverable per-context-file error — the manifest and filesystem are already consistent; context files can be re-rebuilt later via `[EX] Export Skill`.
|
|
286
236
|
|
|
287
237
|
**After the loop:**
|
|
288
238
|
|
|
289
|
-
- Record `
|
|
290
|
-
- Record `
|
|
239
|
+
- Record `context_files_updated` as the list of files that were successfully rewritten
|
|
240
|
+
- Record `context_files_failed` as the list of any that failed
|
|
291
241
|
|
|
292
242
|
Report: "**Rebuilt managed sections in:** {list of updated files}. {if any failed: 'Failed: {list} — re-run `[EX] Export Skill` to retry.'}"
|
|
293
243
|
|
|
@@ -330,8 +280,8 @@ Store the following for step-03:
|
|
|
330
280
|
- `affected_versions_count` — integer count
|
|
331
281
|
- `files_updated_per_version` — structured summary (SKILL.md, metadata.json, context-snippet.md, provenance-map.json — each with ×count)
|
|
332
282
|
- `manifest_rekeyed` — boolean (true if section 6 succeeded)
|
|
333
|
-
- `
|
|
334
|
-
- `
|
|
283
|
+
- `context_files_updated` — list of successfully rebuilt files
|
|
284
|
+
- `context_files_failed` — list of files that failed to rebuild (empty if none)
|
|
335
285
|
- `section2_warnings` — list of orphaned version warnings (empty if none)
|
|
336
286
|
- `section3_warnings` — list of missing file warnings (empty if none)
|
|
337
287
|
- `verification_warnings` — list of informational SKILL.md body mentions of `{old_name}` retained (empty if none)
|
|
@@ -358,34 +308,3 @@ Load, read the full file, and then execute `{nextStepFile}`.
|
|
|
358
308
|
|
|
359
309
|
ONLY WHEN all execution sections have been attempted (copy, inner rename, file updates, symlink fix, verification, manifest re-key, context rebuild, old delete) and results have been stored in context, will you then load and read fully `{nextStepFile}` to generate the final report.
|
|
360
310
|
|
|
361
|
-
---
|
|
362
|
-
|
|
363
|
-
## 🚨 SYSTEM SUCCESS/FAILURE METRICS
|
|
364
|
-
|
|
365
|
-
### ✅ SUCCESS:
|
|
366
|
-
|
|
367
|
-
- Version-paths knowledge and managed-section format re-read at the start of the step
|
|
368
|
-
- `{new_skill_group}` and `{new_forge_group}` copied from the old paths with symlinks preserved
|
|
369
|
-
- Inner version directories renamed from `{old_name}/` to `{new_name}/` across every affected version
|
|
370
|
-
- SKILL.md frontmatter, metadata.json, context-snippet.md (display name + root paths), and provenance-map.json updated across every version
|
|
371
|
-
- `active` symlink in the new location points to the correct version
|
|
372
|
-
- Verification grep confirms no structural references to `{old_name}` remain inside the new directories
|
|
373
|
-
- Export manifest re-keyed from `exports.{old_name}` to `exports.{new_name}` preserving `active_version` and `versions` map
|
|
374
|
-
- Platform context files rebuilt from the updated manifest using export-skill step-04 logic with surgical marker replacement
|
|
375
|
-
- Old `{skill_group}` and `{forge_group}` deleted only after all previous sections succeeded
|
|
376
|
-
- All failures before section 8 trigger a full rollback; failures in section 8 are recorded for manual cleanup
|
|
377
|
-
- All results stored in context for step-03
|
|
378
|
-
|
|
379
|
-
### ❌ SYSTEM FAILURE:
|
|
380
|
-
|
|
381
|
-
- Deleting any part of `{old_skill_group}` or `{old_forge_group}` before section 8
|
|
382
|
-
- Proceeding past a verification failure in section 5 instead of rolling back
|
|
383
|
-
- Failing to restore the manifest from backup after a write failure in section 6
|
|
384
|
-
- Rewriting content outside `<!-- SKF:BEGIN/END -->` markers in platform context files
|
|
385
|
-
- Rebuilding managed sections from the pre-update manifest instead of the re-keyed one
|
|
386
|
-
- Leaving structural references to `{old_name}` inside `{new_skill_group}` or `{new_forge_group}`
|
|
387
|
-
- Hardcoding paths instead of using `{skill_package}`, `{skill_group}`, `{forge_version}`, `{forge_group}` templates
|
|
388
|
-
- Halting the entire workflow on a recoverable per-platform error in section 7
|
|
389
|
-
- Not storing results in context for step-03
|
|
390
|
-
|
|
391
|
-
**Master Rule:** The rename is transactional. Copy-before-delete is inviolable. Every section before section 8 must have a concrete rollback procedure, and rollback must be executed on failure without exception. The old skill is canonical until the new name is fully verified.
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
---
|
|
2
|
+
nextStepFile: './step-04-health-check.md'
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Step 3: Report Rename Results
|
|
6
|
+
|
|
7
|
+
## STEP GOAL:
|
|
8
|
+
|
|
9
|
+
Present a clear, final summary of what the rename workflow changed — old and new names, versions renamed, file-level update counts, manifest re-key, platform context rebuild, and any residual warnings or deletion errors — so the user can verify the outcome and know whether any manual follow-up is required.
|
|
10
|
+
|
|
11
|
+
## Rules
|
|
12
|
+
|
|
13
|
+
- Focus only on reporting results stored in context by step-02 — do not re-execute any part of the rename
|
|
14
|
+
- Do not hide verification warnings, context file rebuild failures, or deletion errors
|
|
15
|
+
- Present next-steps guidance so the user knows which downstream workflows to run
|
|
16
|
+
- Chains to the local health-check step via `{nextStepFile}` after completion — the user-facing report is NOT the terminal step
|
|
17
|
+
|
|
18
|
+
## MANDATORY SEQUENCE
|
|
19
|
+
|
|
20
|
+
**CRITICAL:** Follow this sequence exactly.
|
|
21
|
+
|
|
22
|
+
### 1. Render the Report
|
|
23
|
+
|
|
24
|
+
Display the following block, filling in values from context:
|
|
25
|
+
|
|
26
|
+
```
|
|
27
|
+
**Rename complete.**
|
|
28
|
+
|
|
29
|
+
From: {old_name}
|
|
30
|
+
To: {new_name}
|
|
31
|
+
|
|
32
|
+
Versions renamed: {affected_versions_count} ({comma-separated affected_versions})
|
|
33
|
+
|
|
34
|
+
References updated:
|
|
35
|
+
- SKILL.md frontmatter (×{affected_versions_count})
|
|
36
|
+
- metadata.json (×{affected_versions_count})
|
|
37
|
+
- context-snippet.md (×{affected_versions_count})
|
|
38
|
+
- provenance-map.json (×{affected_versions_count})
|
|
39
|
+
|
|
40
|
+
Manifest updated: {if manifest_rekeyed: "exports.{new_name} (re-keyed from exports.{old_name})" else: "(no manifest entry existed for {old_name})"}
|
|
41
|
+
Context files rebuilt: {list from context_files_updated, or "(none)"}
|
|
42
|
+
{if context_files_failed is non-empty:}
|
|
43
|
+
Context files FAILED: {list from context_files_failed}
|
|
44
|
+
→ Re-run `[EX] Export Skill` to retry the managed section rebuild for these files.
|
|
45
|
+
|
|
46
|
+
{if section2_warnings is non-empty:}
|
|
47
|
+
Warnings (inner directory rename):
|
|
48
|
+
{list each warning from section2_warnings}
|
|
49
|
+
|
|
50
|
+
{if section3_warnings is non-empty:}
|
|
51
|
+
Warnings (missing files during content update):
|
|
52
|
+
{list each warning from section3_warnings}
|
|
53
|
+
|
|
54
|
+
{if verification_warnings is non-empty:}
|
|
55
|
+
Informational: the old name still appears in SKILL.md body text (prose only, non-structural) in:
|
|
56
|
+
{list each path from verification_warnings}
|
|
57
|
+
→ These are typically historical notes or changelog entries. Review and edit manually if you want them updated.
|
|
58
|
+
|
|
59
|
+
{if deletion_errors is non-empty:}
|
|
60
|
+
**Post-commit deletion errors:**
|
|
61
|
+
{list each error}
|
|
62
|
+
→ The new name is fully committed. Remove the remnants manually with `rm -rf {path}`.
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
**Next steps:**
|
|
67
|
+
- Run `@Ferris EX` if you want to re-verify the managed sections in platform context files
|
|
68
|
+
- If you had QMD collections or external tooling registered under `{old_name}`, re-run `@Ferris SF` (or your registration command) to re-index under `{new_name}`
|
|
69
|
+
- If this skill was published to agentskills.io under `{old_name}`, the registry version is unchanged — this rename is a LOCAL operation only
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
### Result Contract
|
|
73
|
+
|
|
74
|
+
Write the result contract per `shared/references/output-contract-schema.md`: the per-run record at `{skills_output_folder}/{new_name}/rename-skill-result-{YYYYMMDD-HHmmss}.json` (UTC timestamp, resolution to seconds) and a copy at `{skills_output_folder}/{new_name}/rename-skill-result-latest.json` (stable path for pipeline consumers — copy, not symlink). Include all updated file paths (SKILL.md, metadata.json, context-snippet.md, provenance-map.json) in `outputs`; include `old_name`, `new_name`, and `versions_renamed` in `summary`.
|
|
75
|
+
|
|
76
|
+
### 2. Chain to Health Check
|
|
77
|
+
|
|
78
|
+
ONLY WHEN the rename report has been rendered and the result contract saved will you then load, read the full file, and execute `{nextStepFile}`. The health-check step is the true terminal step — do not stop here even though the report reads as final.
|
|
79
|
+
|
|
80
|
+
## CRITICAL STEP COMPLETION NOTE
|
|
81
|
+
|
|
82
|
+
This step chains to the local health-check step (`{nextStepFile}`), which in turn delegates to `shared/health-check.md`. After the health check completes, the rename-skill workflow is fully done. Do not re-run any earlier step automatically — if the user wants another rename, they should re-invoke the workflow from the top.
|
|
83
|
+
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
---
|
|
2
|
+
# `shared/health-check.md` resolves relative to the SKF module root
|
|
3
|
+
# (`_bmad/skf/` when installed, `src/` during development), NOT relative
|
|
4
|
+
# to this step file.
|
|
5
|
+
nextStepFile: 'shared/health-check.md'
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Step 4: Workflow Health Check
|
|
9
|
+
|
|
10
|
+
## STEP GOAL:
|
|
11
|
+
|
|
12
|
+
Chain to the shared workflow self-improvement health check at `{nextStepFile}`. This is the terminal step of rename-skill — after the shared health check completes, the workflow is fully done.
|
|
13
|
+
|
|
14
|
+
## Rules
|
|
15
|
+
|
|
16
|
+
- No user-facing reports, file writes, or result contracts in this step — those belong in step-03
|
|
17
|
+
- Delegate directly to `{nextStepFile}` with no additional commentary
|
|
18
|
+
- Do not attempt any other action between loading this step and executing `{nextStepFile}`
|
|
19
|
+
|
|
20
|
+
## MANDATORY SEQUENCE
|
|
21
|
+
|
|
22
|
+
Load `{nextStepFile}`, read it fully, then execute it.
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: skf-setup
|
|
3
|
+
description: Initialize forge environment, detect tools, and set capability tier (Quick/Forge/Forge+/Deep). Use when the user requests to "set up" or "initialize the forge."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Setup Forge
|
|
7
|
+
|
|
8
|
+
## Overview
|
|
9
|
+
|
|
10
|
+
Initializes the forge environment by detecting available tools, determining the capability tier (Quick/Forge/Forge+/Deep), writing persistent configuration, and optionally indexing the project for deep search. This is a fully autonomous workflow — no user interaction is required during execution.
|
|
11
|
+
|
|
12
|
+
## Role
|
|
13
|
+
|
|
14
|
+
You are a system executor performing environment resolution. Run each step in sequence, write configuration files, and report results at completion.
|
|
15
|
+
|
|
16
|
+
## Workflow Rules
|
|
17
|
+
|
|
18
|
+
These rules apply to every step in this workflow:
|
|
19
|
+
|
|
20
|
+
- Fully autonomous — all steps auto-proceed with no user interaction until the final report
|
|
21
|
+
- Read each step file completely before taking any action
|
|
22
|
+
- Follow the mandatory sequence in each step exactly — do not skip, reorder, or optimize
|
|
23
|
+
- Only load one step file at a time — never preload future steps
|
|
24
|
+
- Always communicate in `{communication_language}`
|
|
25
|
+
- If `{headless_mode}` is true, auto-proceed through confirmation gates with their default action and log each auto-decision
|
|
26
|
+
|
|
27
|
+
## Stages
|
|
28
|
+
|
|
29
|
+
| # | Step | File | Auto-proceed |
|
|
30
|
+
|---|------|------|--------------|
|
|
31
|
+
| 1 | Detect Tools & Set Tier | steps-c/step-01-detect-and-tier.md | Yes |
|
|
32
|
+
| 1b | CCC Index | steps-c/step-01b-ccc-index.md | Yes |
|
|
33
|
+
| 2 | Write Config | steps-c/step-02-write-config.md | Yes |
|
|
34
|
+
| 3 | QMD Hygiene | steps-c/step-03-auto-index.md | Yes |
|
|
35
|
+
| 4 | Report | steps-c/step-04-report.md | Yes |
|
|
36
|
+
| 5 | Workflow Health Check | steps-c/step-05-health-check.md | Yes |
|
|
37
|
+
|
|
38
|
+
## Invocation Contract
|
|
39
|
+
|
|
40
|
+
| Aspect | Detail |
|
|
41
|
+
|--------|--------|
|
|
42
|
+
| **Inputs** | (none — fully autonomous) |
|
|
43
|
+
| **Gates** | One optional: orphaned QMD collection removal (step 3, Deep tier only; default: Keep) |
|
|
44
|
+
| **Outputs** | forge-tier.yaml, preferences.yaml, forge-data directories |
|
|
45
|
+
| **Headless** | All gates auto-resolve with default action when `{headless_mode}` is true |
|
|
46
|
+
|
|
47
|
+
## On Activation
|
|
48
|
+
|
|
49
|
+
1. Load config from `{project-root}/_bmad/skf/config.yaml` and resolve:
|
|
50
|
+
- `project_name` (from installer-generated config.yaml, not module.yaml), `output_folder`, `user_name`, `communication_language`, `document_output_language`
|
|
51
|
+
- `skills_output_folder`, `forge_data_folder`, `sidecar_path`
|
|
52
|
+
|
|
53
|
+
2. **Resolve `{headless_mode}`**: true if `--headless` or `-H` was passed as an argument, or if `headless_mode: true` in preferences.yaml. Default: false.
|
|
54
|
+
|
|
55
|
+
3. Load, read the full file, and then execute `./steps-c/step-01-detect-and-tier.md` to begin the workflow.
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: 'step-01-detect-and-tier'
|
|
3
|
-
description: 'Detect available tools and determine forge capability tier'
|
|
4
|
-
|
|
5
2
|
nextStepFile: './step-01b-ccc-index.md'
|
|
6
|
-
tierRulesData: '
|
|
3
|
+
tierRulesData: 'references/tier-rules.md'
|
|
7
4
|
---
|
|
8
5
|
|
|
9
6
|
# Step 1: Detect Tools and Determine Tier
|
|
@@ -12,41 +9,11 @@ tierRulesData: '../data/tier-rules.md'
|
|
|
12
9
|
|
|
13
10
|
Verify availability of the four forge tools (ast-grep, gh, qmd, ccc), read any existing configuration for re-run comparison, check for tier override, and calculate the capability tier.
|
|
14
11
|
|
|
15
|
-
##
|
|
16
|
-
|
|
17
|
-
### Universal Rules:
|
|
18
|
-
|
|
19
|
-
- 📖 CRITICAL: Read the complete step file before taking any action
|
|
20
|
-
- 🔄 CRITICAL: When loading next step, ensure entire file is read
|
|
21
|
-
- 🎯 Execute all operations autonomously — no user interaction
|
|
22
|
-
|
|
23
|
-
### Role Reinforcement:
|
|
24
|
-
|
|
25
|
-
- ✅ You are a system executor performing environment resolution
|
|
26
|
-
- ✅ Tool detection must be empirical — run actual commands, never assume
|
|
27
|
-
- ✅ Record exact results (version strings, error messages)
|
|
28
|
-
|
|
29
|
-
### Step-Specific Rules:
|
|
30
|
-
|
|
31
|
-
- 🎯 Focus only on tool detection and tier calculation
|
|
32
|
-
- 🚫 FORBIDDEN to write any files — that is step-02's job
|
|
33
|
-
- 🚫 FORBIDDEN to skip any tool check — all 4 must be verified
|
|
34
|
-
- 💬 Tool command failures are NOT errors — they indicate unavailability
|
|
35
|
-
|
|
36
|
-
## EXECUTION PROTOCOLS:
|
|
37
|
-
|
|
38
|
-
- 🎯 Follow the MANDATORY SEQUENCE exactly
|
|
39
|
-
- 💾 Store all results in memory for step-02
|
|
40
|
-
- 📖 Load tier-rules.md for calculation reference
|
|
41
|
-
- 🚫 FORBIDDEN to proceed without checking all 4 tools
|
|
12
|
+
## Rules
|
|
42
13
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
-
|
|
46
|
-
- Available: forge-tier.yaml and preferences.yaml may exist from prior runs
|
|
47
|
-
- Focus: tool verification and tier calculation only
|
|
48
|
-
- Produces: `{detected_tools}`, `{calculated_tier}`, `{previous_tier}`, `{tier_override}` for downstream steps
|
|
49
|
-
- Dependencies: none — this step bootstraps everything
|
|
14
|
+
- Focus only on tool detection and tier calculation — do not write any files (Step 02)
|
|
15
|
+
- Do not skip any tool check — all 4 must be verified
|
|
16
|
+
- Tool command failures are not errors — they indicate unavailability
|
|
50
17
|
|
|
51
18
|
## MANDATORY SEQUENCE
|
|
52
19
|
|
|
@@ -119,7 +86,7 @@ ccc availability gates the Forge+ tier and enhances Deep tier when present.
|
|
|
119
86
|
|
|
120
87
|
**If no override, apply tier rules from {tierRulesData} in order — the first matching rule wins. Do not continue checking once a match is found:**
|
|
121
88
|
- `{ast_grep}` AND `{gh_cli}` AND `{qmd}` all true → **Deep**
|
|
122
|
-
- `{ast_grep}` AND `{ccc}` both true (
|
|
89
|
+
- `{ast_grep}` AND `{ccc}` both true, but NOT (`{gh_cli}` AND `{qmd}`) → **Forge+**
|
|
123
90
|
- `{ast_grep}` true (regardless of ccc/gh/qmd) → **Forge**
|
|
124
91
|
- Otherwise → **Quick**
|
|
125
92
|
|
|
@@ -142,26 +109,3 @@ ccc availability gates the Forge+ tier and enhances Deep tier when present.
|
|
|
142
109
|
|
|
143
110
|
ONLY WHEN all 4 core tools have been verified, optional security scan checked, and the tier calculated will you load and read fully `{nextStepFile}` to execute the CCC index check step.
|
|
144
111
|
|
|
145
|
-
---
|
|
146
|
-
|
|
147
|
-
## 🚨 SYSTEM SUCCESS/FAILURE METRICS
|
|
148
|
-
|
|
149
|
-
### ✅ SUCCESS:
|
|
150
|
-
|
|
151
|
-
- All 4 tools checked via verification commands (not existence checks)
|
|
152
|
-
- Existing forge-tier.yaml read for re-run comparison (if present)
|
|
153
|
-
- Existing preferences.yaml read for tier_override (if present)
|
|
154
|
-
- Tier correctly calculated from tool results or override applied
|
|
155
|
-
- All results stored in context for step-01b and step-02
|
|
156
|
-
- Auto-proceeded to step-01b
|
|
157
|
-
|
|
158
|
-
### ❌ SYSTEM FAILURE:
|
|
159
|
-
|
|
160
|
-
- Skipping any tool verification (ast-grep, gh, qmd, ccc — all 4 must be checked)
|
|
161
|
-
- Using `which` or `command -v` instead of verification commands
|
|
162
|
-
- Assuming tool availability without running the command
|
|
163
|
-
- Writing files in this step (that is step-02)
|
|
164
|
-
- Not checking for existing configuration on re-runs
|
|
165
|
-
- Not checking ccc availability (both binary and daemon health)
|
|
166
|
-
|
|
167
|
-
**Master Rule:** Every tool MUST be verified empirically. No assumptions, no shortcuts.
|