refactor(catalog): rename after/before columns to preceded-by/followed-by
The bare prepositions `after` and `before` had no subject anchor, leaving the dependency direction ambiguous: "X has Y in its `after` column" reads plausibly as either "Y comes after X" or "X comes after Y". An LLM catalog consumer just got the direction wrong because of this. `preceded-by` / `followed-by` are passive-voice participles whose grammar locks the subject (the skill in this row) and forces a single reading: "X is preceded by Y" can only mean Y comes first. Rename applied to: - module-help.csv headers (bmm-skills, core-skills) - bmad-help SKILL.md schema doc + descriptions - installer.js mergeModuleHelpCatalogs header string - plugin-resolver.js _buildSynthesizedHelpCsv header string - bmad-manifest.json keys (bmad-product-brief, bmad-prfaq) - distillate-format-reference.md example manifest The separate `required` column continues to carry hard-gate semantics; the renamed columns are pure soft sequencing hints, as already documented in bmad-help. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
9debc165aa
commit
411e8c71cd
|
|
@ -7,8 +7,8 @@
|
||||||
"description": "Produces battle-tested PRFAQ document and optional LLM distillate for PRD input.",
|
"description": "Produces battle-tested PRFAQ document and optional LLM distillate for PRD input.",
|
||||||
"supports-headless": true,
|
"supports-headless": true,
|
||||||
"phase-name": "1-analysis",
|
"phase-name": "1-analysis",
|
||||||
"after": ["brainstorming", "perform-research"],
|
"preceded-by": ["brainstorming", "perform-research"],
|
||||||
"before": ["create-prd"],
|
"followed-by": ["create-prd"],
|
||||||
"is-required": false,
|
"is-required": false,
|
||||||
"output-location": "{planning_artifacts}"
|
"output-location": "{planning_artifacts}"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -8,8 +8,8 @@
|
||||||
"description": "Produces executive product brief and optional LLM distillate for PRD input.",
|
"description": "Produces executive product brief and optional LLM distillate for PRD input.",
|
||||||
"supports-headless": true,
|
"supports-headless": true,
|
||||||
"phase-name": "1-analysis",
|
"phase-name": "1-analysis",
|
||||||
"after": ["brainstorming", "perform-research"],
|
"preceded-by": ["brainstorming", "perform-research"],
|
||||||
"before": ["create-prd"],
|
"followed-by": ["create-prd"],
|
||||||
"is-required": true,
|
"is-required": true,
|
||||||
"output-location": "{planning_artifacts}"
|
"output-location": "{planning_artifacts}"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
module,skill,display-name,menu-code,description,action,args,phase,after,before,required,output-location,outputs
|
module,skill,display-name,menu-code,description,action,args,phase,preceded-by,followed-by,required,output-location,outputs
|
||||||
BMad Method,_meta,,,,,,,,,false,https://docs.bmad-method.org/llms.txt,
|
BMad Method,_meta,,,,,,,,,false,https://docs.bmad-method.org/llms.txt,
|
||||||
BMad Method,bmad-document-project,Document Project,DP,Analyze an existing project to produce useful documentation.,,,anytime,,,false,project-knowledge,*
|
BMad Method,bmad-document-project,Document Project,DP,Analyze an existing project to produce useful documentation.,,,anytime,,,false,project-knowledge,*
|
||||||
BMad Method,bmad-generate-project-context,Generate Project Context,GPC,Scan existing codebase to generate a lean LLM-optimized project-context.md. Essential for brownfield projects.,,,anytime,,,false,output_folder,project context
|
BMad Method,bmad-generate-project-context,Generate Project Context,GPC,Scan existing codebase to generate a lean LLM-optimized project-context.md. Essential for brownfield projects.,,,anytime,,,false,output_folder,project context
|
||||||
|
|
|
||||||
|
|
|
@ -139,7 +139,7 @@ parts: 1
|
||||||
|
|
||||||
## Solution Architecture
|
## Solution Architecture
|
||||||
- Plugins: skill bundles with Anthropic plugin standard as base format + bmad-manifest.json extending for BMAD-specific metadata (installer options, capabilities, help integration, phase ordering, dependencies)
|
- Plugins: skill bundles with Anthropic plugin standard as base format + bmad-manifest.json extending for BMAD-specific metadata (installer options, capabilities, help integration, phase ordering, dependencies)
|
||||||
- Existing manifest example: `{"module-code":"bmm","replaces-skill":"bmad-create-product-brief","capabilities":[{"name":"create-brief","menu-code":"CB","supports-headless":true,"phase-name":"1-analysis","after":["brainstorming"],"before":["create-prd"],"is-required":true}]}`
|
- Existing manifest example: `{"module-code":"bmm","replaces-skill":"bmad-create-product-brief","capabilities":[{"name":"create-brief","menu-code":"CB","supports-headless":true,"phase-name":"1-analysis","preceded-by":["brainstorming"],"followed-by":["create-prd"],"is-required":true}]}`
|
||||||
- Vercel skills CLI handles platform translation; integration pattern (wrap/fork/call) is PRD decision
|
- Vercel skills CLI handles platform translation; integration pattern (wrap/fork/call) is PRD decision
|
||||||
- bmad-setup: global skill scanning installed bmad-manifest.json files, registering capabilities, configuring project settings; always included as base skill in every bundle (solves bootstrapping)
|
- bmad-setup: global skill scanning installed bmad-manifest.json files, registering capabilities, configuring project settings; always included as base skill in every bundle (solves bootstrapping)
|
||||||
- bmad-update: plugin update path without full reinstall; technical approach (diff/replace/preserve customizations) is PRD decision
|
- bmad-update: plugin update path without full reinstall; technical approach (diff/replace/preserve customizations) is PRD decision
|
||||||
|
|
|
||||||
|
|
@ -33,16 +33,16 @@ When this skill completes, the user should:
|
||||||
The catalog uses this format:
|
The catalog uses this format:
|
||||||
|
|
||||||
```
|
```
|
||||||
module,skill,display-name,menu-code,description,action,args,phase,after,before,required,output-location,outputs
|
module,skill,display-name,menu-code,description,action,args,phase,preceded-by,followed-by,required,output-location,outputs
|
||||||
```
|
```
|
||||||
|
|
||||||
**Phases** determine the high-level flow:
|
**Phases** determine the high-level flow:
|
||||||
- `anytime` — available regardless of workflow state
|
- `anytime` — available regardless of workflow state
|
||||||
- Numbered phases (`1-analysis`, `2-planning`, etc.) flow in order; naming varies by module
|
- Numbered phases (`1-analysis`, `2-planning`, etc.) flow in order; naming varies by module
|
||||||
|
|
||||||
**Dependencies** determine ordering within and across phases:
|
**Sequencing** determines recommended ordering within and across phases (these are soft suggestions, not hard gates — see `required` for gating):
|
||||||
- `after` — skills that should ideally complete before this one
|
- `preceded-by` — skills that should ideally complete before this one
|
||||||
- `before` — skills that should run after this one
|
- `followed-by` — skills that should ideally run after this one
|
||||||
- Format: `skill-name` for single-action skills, `skill-name:action` for multi-action skills
|
- Format: `skill-name` for single-action skills, `skill-name:action` for multi-action skills
|
||||||
|
|
||||||
**Required gates**:
|
**Required gates**:
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
module,skill,display-name,menu-code,description,action,args,phase,after,before,required,output-location,outputs
|
module,skill,display-name,menu-code,description,action,args,phase,preceded-by,followed-by,required,output-location,outputs
|
||||||
Core,_meta,,,,,,,,,false,https://docs.bmad-method.org/llms.txt,
|
Core,_meta,,,,,,,,,false,https://docs.bmad-method.org/llms.txt,
|
||||||
Core,bmad-brainstorming,Brainstorming,BSP,Use early in ideation or when stuck generating ideas.,,,anytime,,,false,{output_folder}/brainstorming,brainstorming session
|
Core,bmad-brainstorming,Brainstorming,BSP,Use early in ideation or when stuck generating ideas.,,,anytime,,,false,{output_folder}/brainstorming,brainstorming session
|
||||||
Core,bmad-party-mode,Party Mode,PM,Orchestrate multi-agent discussions when you need multiple perspectives or want agents to collaborate.,,,anytime,,,false,,
|
Core,bmad-party-mode,Party Mode,PM,Orchestrate multi-agent discussions when you need multiple perspectives or want agents to collaborate.,,,anytime,,,false,,
|
||||||
|
|
|
||||||
|
|
|
@ -942,7 +942,7 @@ class Installer {
|
||||||
*/
|
*/
|
||||||
async mergeModuleHelpCatalogs(bmadDir, _agentEntries = []) {
|
async mergeModuleHelpCatalogs(bmadDir, _agentEntries = []) {
|
||||||
const allRows = [];
|
const allRows = [];
|
||||||
const headerRow = 'module,skill,display-name,menu-code,description,action,args,phase,after,before,required,output-location,outputs';
|
const headerRow = 'module,skill,display-name,menu-code,description,action,args,phase,preceded-by,followed-by,required,output-location,outputs';
|
||||||
const COLUMN_COUNT = 13;
|
const COLUMN_COUNT = 13;
|
||||||
const PHASE_INDEX = 7;
|
const PHASE_INDEX = 7;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -338,7 +338,7 @@ class PluginResolver {
|
||||||
* @returns {string} CSV content
|
* @returns {string} CSV content
|
||||||
*/
|
*/
|
||||||
_buildSynthesizedHelpCsv(moduleName, skillInfos) {
|
_buildSynthesizedHelpCsv(moduleName, skillInfos) {
|
||||||
const header = 'module,skill,display-name,menu-code,description,action,args,phase,after,before,required,output-location,outputs';
|
const header = 'module,skill,display-name,menu-code,description,action,args,phase,preceded-by,followed-by,required,output-location,outputs';
|
||||||
const rows = [header];
|
const rows = [header];
|
||||||
|
|
||||||
for (const info of skillInfos) {
|
for (const info of skillInfos) {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue