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 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` then `@Ferris CS` — brief first, then compile for maximum accuracy
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.
@@ -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.3",
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
- - Display: "**Note:** No forge tier configuration found. Defaulting to Quick tier. Run **setup-forge** first for full capabilities."
71
- - Default to: `forge_tier: Quick`
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 (or defaulted to Quick with warning), override applied if set in preferences.yaml
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
- "**Warning:** Forge tier not detected. Defaulting to **Quick** tier (structural checks only).
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
- Run **setup-forge** to enable deeper analysis with AST-backed verification."
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 (or gracefully defaulted to Quick), override applied if set in preferences.yaml
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
  };