bmad-module-skill-forge 0.8.3 → 0.8.4
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/README.md +4 -1
- package/docs/concepts.md +30 -0
- package/docs/examples.md +13 -0
- package/docs/getting-started.md +6 -1
- package/docs/workflows.md +2 -0
- package/package.json +1 -1
- package/src/agents/forger.agent.yaml +1 -0
- package/src/workflows/brief-skill/steps-c/step-01-gather-intent.md +4 -3
- package/src/workflows/test-skill/steps-c/step-01-init.md +3 -5
- package/tools/cli/lib/installer.js +1 -0
package/README.md
CHANGED
|
@@ -74,7 +74,9 @@ You'll be prompted for project name, output folders, and IDE configuration. See
|
|
|
74
74
|
|
|
75
75
|
1. **Set up your environment:** `@Ferris SF` — detects your tools and sets your capability tier
|
|
76
76
|
2. **Generate your first skill:** `@Ferris QS <package-name>` — creates a verified skill in under a minute
|
|
77
|
-
3. **Full quality path:** `@Ferris BS`
|
|
77
|
+
3. **Full quality path:** `@Ferris BS` → clear session → `@Ferris CS` — brief first, then compile for maximum accuracy
|
|
78
|
+
|
|
79
|
+
> **Tip:** Start a fresh conversation before each workflow. SKF workflows load significant context — clearing between them prevents interference.
|
|
78
80
|
|
|
79
81
|
See the [workflows docs](https://armelhbobdad.github.io/bmad-module-skill-forge/workflows/) for all 12 available workflows.
|
|
80
82
|
|
|
@@ -84,6 +86,7 @@ See the [workflows docs](https://armelhbobdad.github.io/bmad-module-skill-forge/
|
|
|
84
86
|
- **You maintain a library** and want to ship official, verified instruction files so AI agents use your API correctly
|
|
85
87
|
- **You manage a codebase with many dependencies** and want a consolidated "stack skill" that teaches your agent how all the pieces fit together
|
|
86
88
|
- **You use a SaaS API or closed-source tool** with no public code — SKF can generate skills from documentation alone
|
|
89
|
+
- **You need different skills for different use cases** from the same target — compile multiple skills with different scopes from one repo or doc set (e.g., a core API skill and a migration guide skill)
|
|
87
90
|
|
|
88
91
|
## Learn More
|
|
89
92
|
|
package/docs/concepts.md
CHANGED
|
@@ -111,8 +111,38 @@ Skills can include executable scripts and static assets alongside the main SKILL
|
|
|
111
111
|
|
|
112
112
|
---
|
|
113
113
|
|
|
114
|
+
## Session Context
|
|
115
|
+
|
|
116
|
+
Each SKF workflow should run in a clean conversation session. Workflows load step files, knowledge fragments, and extraction data into the LLM's context as they execute. If you run a second workflow in the same session, leftover context from the first workflow can interfere with the second — causing stale references, mode confusion, or degraded output quality.
|
|
117
|
+
|
|
118
|
+
**Best practice:** Clear your session context (start a new conversation) before invoking a new workflow. For example, after `@Ferris CS` completes a skill, start a fresh session before running `@Ferris TS` to test it.
|
|
119
|
+
|
|
120
|
+
This applies to sequential workflows in the same session. Sidecar state (forge tier, preferences) persists across sessions automatically — you don't lose any configuration by clearing context.
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
## Full Control Over Scope
|
|
125
|
+
|
|
126
|
+
You can compile multiple skills from the same target (repo or docs) with different scopes, intents, and audiences. Each brief defines what to extract and why, producing a distinct skill from the same source.
|
|
127
|
+
|
|
128
|
+
**Example:** From a single library like [cognee](https://github.com/topoteretes/cognee), you could compile:
|
|
129
|
+
|
|
130
|
+
- `cognee-core` — public API surface for general usage
|
|
131
|
+
- `cognee-graph-types` — type system and data model for schema work
|
|
132
|
+
- `cognee-migration` — upgrade patterns and breaking changes for version transitions
|
|
133
|
+
|
|
134
|
+
Each skill serves a different use case. You decide the scope — SKF compiles exactly what you specify.
|
|
135
|
+
|
|
136
|
+
---
|
|
137
|
+
|
|
114
138
|
## Best Practices
|
|
115
139
|
|
|
116
140
|
SKF integrates skill authoring best practices from the Claude platform and community guidelines. Generated skills use third-person descriptions for reliable agent discovery, consistent terminology throughout, and appropriate degrees of freedom (prescriptive for fragile operations like database migrations, flexible for creative tasks like code reviews). These practices are enforced during compilation and verified during testing.
|
|
117
141
|
|
|
118
142
|
**Example:** A skill description reads "Processes payments via REST API with token-based auth. NOT for: billing dashboards" — third-person voice, specific keywords, and negative triggers help agents select the right skill.
|
|
143
|
+
|
|
144
|
+
**Operational best practices:**
|
|
145
|
+
|
|
146
|
+
- **One workflow per session** — clear context between workflows to prevent stale state from affecting results
|
|
147
|
+
- **Multiple skills per target** — compile different skills from the same repo or docs for different use cases and audiences
|
|
148
|
+
- **Progressive capability** — start with Quick mode, upgrade tiers as you install more tools
|
package/docs/examples.md
CHANGED
|
@@ -84,7 +84,9 @@ Alex's team adopts BMAD for 10 microservices (TypeScript, Go, Rust).
|
|
|
84
84
|
|
|
85
85
|
```
|
|
86
86
|
@Ferris SF # Setup — Deep mode detected
|
|
87
|
+
# — clear session —
|
|
87
88
|
@Ferris AN # Analyze — 10 services mapped
|
|
89
|
+
# — clear session —
|
|
88
90
|
@Ferris CS --batch # Create — batch generation
|
|
89
91
|
```
|
|
90
92
|
|
|
@@ -96,8 +98,11 @@ Sarah prepares v3.0.0 with breaking changes.
|
|
|
96
98
|
|
|
97
99
|
```
|
|
98
100
|
@Ferris AS # Audit — finds 3 renames, 1 removal, 1 addition
|
|
101
|
+
# — clear session —
|
|
99
102
|
@Ferris US # Update — preserves [MANUAL] sections, adds annotations
|
|
103
|
+
# — clear session —
|
|
100
104
|
@Ferris TS # Test — verify completeness
|
|
105
|
+
# — clear session —
|
|
101
106
|
@Ferris EX # Export — package for npm release
|
|
102
107
|
```
|
|
103
108
|
|
|
@@ -197,6 +202,14 @@ Stack skills focus on integration patterns. Individual skills focus on API surfa
|
|
|
197
202
|
|
|
198
203
|
After each sprint's refactor, run `@Ferris US` to regenerate changed components. Export updates CLAUDE.md automatically. Skill generation becomes routine — like running tests.
|
|
199
204
|
|
|
205
|
+
### One Workflow Per Session
|
|
206
|
+
|
|
207
|
+
Clear your conversation context (start a new chat) before invoking a new workflow. Each SKF workflow loads step files, knowledge fragments, and extraction data into context. Starting fresh ensures the next workflow operates without interference from prior steps. Sidecar state (forge tier, preferences) persists automatically across sessions — you don't lose configuration.
|
|
208
|
+
|
|
209
|
+
### Full Control Over Scope
|
|
210
|
+
|
|
211
|
+
You can compile multiple skills from the same target (repo or docs) with different scopes and intents. Each brief defines what to extract and why, producing a distinct skill from the same source. For example, from a single library you could compile `cognee-core` for the public API, `cognee-graph-types` for the type system, and `cognee-migration` for upgrade patterns — each serving a different use case.
|
|
212
|
+
|
|
200
213
|
### Best Practices Built In
|
|
201
214
|
|
|
202
215
|
Generated skills automatically follow authoring best practices: third-person descriptions for reliable agent discovery, consistent terminology, degrees-of-freedom matching (prescriptive for fragile operations, flexible for creative tasks), and table-of-contents headers in large reference files. Discovery testing recommendations are included in test reports.
|
package/docs/getting-started.md
CHANGED
|
@@ -103,14 +103,19 @@ This detects your tools, sets your capability tier, and initializes the forge en
|
|
|
103
103
|
|
|
104
104
|
Ferris reads the repository, extracts the public API, and generates a skill in under a minute.
|
|
105
105
|
|
|
106
|
-
**Full quality path:**
|
|
106
|
+
**Full quality path (one workflow per session):**
|
|
107
107
|
```
|
|
108
108
|
@Ferris BS # Brief — scope and design the skill
|
|
109
|
+
# — clear session —
|
|
109
110
|
@Ferris CS # Create — compile from the brief
|
|
111
|
+
# — clear session —
|
|
110
112
|
@Ferris TS # Test — verify completeness
|
|
113
|
+
# — clear session —
|
|
111
114
|
@Ferris EX # Export — package for distribution
|
|
112
115
|
```
|
|
113
116
|
|
|
117
|
+
> Start a fresh conversation before each workflow. SKF workflows load significant context — clearing between them prevents interference. See [Session Context](../concepts/#session-context).
|
|
118
|
+
|
|
114
119
|
### 3. Stack Skill (for full projects)
|
|
115
120
|
|
|
116
121
|
```
|
package/docs/workflows.md
CHANGED
|
@@ -224,6 +224,8 @@ flowchart TD
|
|
|
224
224
|
TS --> EX[Export Skill]
|
|
225
225
|
```
|
|
226
226
|
|
|
227
|
+
> **One workflow per session.** Each arrow in the diagrams above represents a new conversation session. Clear your context between workflows for best results — this prevents leftover step files and extraction data from interfering with the next workflow. See [Session Context](../concepts/#session-context).
|
|
228
|
+
|
|
227
229
|
---
|
|
228
230
|
|
|
229
231
|
## Workflow Categories
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json.schemastore.org/package.json",
|
|
3
3
|
"name": "bmad-module-skill-forge",
|
|
4
|
-
"version": "0.8.
|
|
4
|
+
"version": "0.8.4",
|
|
5
5
|
"description": "BMAD module — Turn code and docs into instructions AI agents can actually follow. Progressive capability tiers (Quick/Forge/Forge+/Deep).",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"bmad",
|
|
@@ -41,6 +41,7 @@ agent:
|
|
|
41
41
|
- "Agent-level knowledge informs judgment across workflows — consult knowledge/ when a step directs, not from memory"
|
|
42
42
|
|
|
43
43
|
critical_actions:
|
|
44
|
+
- "GUARD: Verify {sidecar_path} resolves to an actual directory path (not a literal '{sidecar_path}' string). If it does not resolve — HARD HALT: '**Cannot initialize.** `sidecar_path` is not defined in your installed config.yaml. Add `sidecar_path: _bmad/_memory/forger-sidecar` to your project config.yaml and retry. This is a known installer issue with `prompt: false` config variables.'"
|
|
44
45
|
- "Load COMPLETE file {sidecar_path}/preferences.yaml"
|
|
45
46
|
- "Load COMPLETE file {sidecar_path}/forge-tier.yaml"
|
|
46
47
|
- "ONLY write STATE files to {project-root}/_bmad/_memory/forger-sidecar/ — reading from knowledge/ and workflow files is expected"
|
|
@@ -67,8 +67,8 @@ Attempt to load `{forgeTierFile}`:
|
|
|
67
67
|
**Apply tier override:** Read `{sidecar_path}/preferences.yaml`. If `tier_override` is set and is a valid tier value (Quick, Forge, Forge+, or Deep), use it instead of the detected tier.
|
|
68
68
|
|
|
69
69
|
**If not found:**
|
|
70
|
-
-
|
|
71
|
-
-
|
|
70
|
+
- "**Cannot proceed.** forge-tier.yaml not found at `{forgeTierFile}`. Please run the **setup-forge** workflow first to configure your forge tier (Quick/Forge/Forge+/Deep)."
|
|
71
|
+
- HALT — do not proceed.
|
|
72
72
|
|
|
73
73
|
### 2. Welcome and Explain
|
|
74
74
|
|
|
@@ -197,7 +197,7 @@ ONLY WHEN C is selected and target repository is confirmed will you load and rea
|
|
|
197
197
|
|
|
198
198
|
### ✅ SUCCESS:
|
|
199
199
|
|
|
200
|
-
- Forge tier discovered (
|
|
200
|
+
- Forge tier discovered (HALT if missing), override applied if set in preferences.yaml
|
|
201
201
|
- Target repository confirmed (GitHub URL or local path)
|
|
202
202
|
- User intent captured with enough context for scoping
|
|
203
203
|
- Skill name derived and confirmed
|
|
@@ -209,6 +209,7 @@ ONLY WHEN C is selected and target repository is confirmed will you load and rea
|
|
|
209
209
|
|
|
210
210
|
- Analyzing source code in this step (too early)
|
|
211
211
|
- Proceeding without a confirmed target repository
|
|
212
|
+
- Not halting when forge tier is missing
|
|
212
213
|
- Not attempting to discover forge tier
|
|
213
214
|
- Generating a skill name without user confirmation
|
|
214
215
|
- Skipping the intent gathering conversation
|
|
@@ -116,11 +116,9 @@ Read `{sidecarFile}` to determine available analysis depth.
|
|
|
116
116
|
- Read tool availability flags (ast_grep, gh_cli, qmd)
|
|
117
117
|
|
|
118
118
|
**If forge-tier.yaml missing:**
|
|
119
|
-
"**
|
|
119
|
+
"**Cannot proceed.** forge-tier.yaml not found at `{sidecarFile}`. Please run the **setup-forge** workflow first to configure your forge tier (Quick/Forge/Forge+/Deep)."
|
|
120
120
|
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
Default to Quick tier and continue.
|
|
121
|
+
HALT — do not proceed.
|
|
124
122
|
|
|
125
123
|
### 4b. Apply Tier Override (if set)
|
|
126
124
|
|
|
@@ -194,7 +192,7 @@ ONLY WHEN all required files are validated, forge tier is loaded, output documen
|
|
|
194
192
|
### ✅ SUCCESS:
|
|
195
193
|
|
|
196
194
|
- Skill path validated (SKILL.md exists)
|
|
197
|
-
- Forge tier state loaded (
|
|
195
|
+
- Forge tier state loaded (HALT if missing), override applied if set in preferences.yaml
|
|
198
196
|
- Skill metadata extracted
|
|
199
197
|
- Output document created from template with initial frontmatter
|
|
200
198
|
- Initialization status reported clearly
|
|
@@ -238,6 +238,7 @@ class Installer {
|
|
|
238
238
|
document_output_language: 'en',
|
|
239
239
|
skills_output_folder: config.skills_output_folder || 'skills',
|
|
240
240
|
forge_data_folder: config.forge_data_folder || 'forge-data',
|
|
241
|
+
sidecar_path: '_bmad/_memory/forger-sidecar',
|
|
241
242
|
skf_folder: config.skfFolder,
|
|
242
243
|
ides: config.ides || [],
|
|
243
244
|
};
|