-
-
Notifications
You must be signed in to change notification settings - Fork 5.2k
fix(skill): clean up bmad-create-product-brief validation findings #1982
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,8 +1,8 @@ | ||
| --- | ||
| stepsCompleted: [] | ||
| inputDocuments: [] | ||
| date: { system-date } | ||
| author: { user } | ||
| date: {{system-date}} | ||
| author: {{user_name}} | ||
|
Comment on lines
+4
to
+5
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Document that the old syntax was broken, not just "cleaned up." The PR description calls this "cleanup," but the old single-brace syntax 🤖 Prompt for AI Agents🧩 Analysis chain🏁 Script executed: #!/bin/bash
# Search for where template variables are defined and what names are used
rg -n --type=js -C3 '\b(user_name|userName|user)\b.*=' tools/cli/Repository: bmad-code-org/BMAD-METHOD Length of output: 2961 🏁 Script executed: #!/bin/bash
# Check the product-brief.template.md file
cat -n src/bmm/workflows/1-analysis/bmad-create-product-brief/product-brief.template.md | head -20Repository: bmad-code-org/BMAD-METHOD Length of output: 348 🏁 Script executed: #!/bin/bash
# Search for template engine usage and how variables are provided to templates
rg -n "system-date|system_date" --type=js tools/cli/ | head -20Repository: bmad-code-org/BMAD-METHOD Length of output: 51 🏁 Script executed: #!/bin/bash
# Look for template processing/rendering code
rg -n "template.*date|system.*date" --type=js -i tools/cli/ | head -20Repository: bmad-code-org/BMAD-METHOD Length of output: 51 🏁 Script executed: #!/bin/bash
# Search for template rendering/processing code
rg -n "{{.*}}" --type=md | head -5Repository: bmad-code-org/BMAD-METHOD Length of output: 150 🏁 Script executed: #!/bin/bash
# Search for where template files are processed
rg -n "template\.md|renderTemplate|processTemplate" --type=js -i | head -20Repository: bmad-code-org/BMAD-METHOD Length of output: 1162 🏁 Script executed: #!/bin/bash
# Look for date variable assignment across the codebase
rg -n "system.*date|\.date\s*=" --type=js -i tools/cli/ -A 2 | head -30Repository: bmad-code-org/BMAD-METHOD Length of output: 51 🏁 Script executed: #!/bin/bash
# Search for project_name variable to understand variable pattern
rg -n "project_name|projectName" --type=js tools/cli/ -C 2 | head -30Repository: bmad-code-org/BMAD-METHOD Length of output: 51 🏁 Script executed: #!/bin/bash
# Read the template-engine.js file to understand how variables are processed
cat -n tools/cli/lib/agent/template-engine.jsRepository: bmad-code-org/BMAD-METHOD Length of output: 5745 🏁 Script executed: #!/bin/bash
# Search for where product-brief.template.md is referenced or processed
rg -n "product-brief" --type=js -C 3Repository: bmad-code-org/BMAD-METHOD Length of output: 51 🏁 Script executed: #!/bin/bash
# Search for where date variables are set/created
rg -n "\"date\"|'date'|\.date\s*=" --type=js tools/cli/installers -A 2 | head -40Repository: bmad-code-org/BMAD-METHOD Length of output: 51 🏁 Script executed: #!/bin/bash
# Search for workflow processing or where template files are loaded
rg -n "template\.md|\.template\.md" --type=js | head -20Repository: bmad-code-org/BMAD-METHOD Length of output: 357 🏁 Script executed: #!/bin/bash
# Search for where system-date might be set - check all file types
rg -n "system.date|systemDate" --type=js --type=ts -i | head -20Repository: bmad-code-org/BMAD-METHOD Length of output: 51 🏁 Script executed: #!/bin/bash
# Look at the workflow directory structure to understand how it's organized
find src/bmm/workflows -type f -name "*.js" -o -name "*.ts" -o -name "*.json" | head -20Repository: bmad-code-org/BMAD-METHOD Length of output: 150 🏁 Script executed: #!/bin/bash
# Search for any reference to "date" in workflow config or similar
rg -n "date" src/bmm/workflows -i --type=json --type=yaml --type=md | head -30Repository: bmad-code-org/BMAD-METHOD Length of output: 5223 🏁 Script executed: #!/bin/bash
# Look at the tech-spec-template.md to see the exact old syntax
cat -n src/bmm/workflows/bmad-quick-flow/bmad-quick-spec/tech-spec-template.md | head -20Repository: bmad-code-org/BMAD-METHOD Length of output: 458 🏁 Script executed: #!/bin/bash
# Search for documentation about available template variables
rg -n "date.*system|system.*date|available.*variable|variable.*available" src/bmm/workflows -i -B 2 -A 2 | head -50Repository: bmad-code-org/BMAD-METHOD Length of output: 5318 🏁 Script executed: #!/bin/bash
# Check if there are other product-brief templates or references
find src/bmm/workflows -name "*product*brief*" -o -name "*product*" | grep -i briefRepository: bmad-code-org/BMAD-METHOD Length of output: 204 Variable name mismatch: The new template changed Correct to The variable 🤖 Prompt for AI Agents |
||
| --- | ||
|
|
||
| # Product Brief: {{project_name}} | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,13 +1,6 @@ | ||
| --- | ||
| name: 'step-01-init' | ||
| description: 'Initialize the product brief workflow by detecting continuation state and setting up the document' | ||
|
|
||
| # File References | ||
| nextStepFile: './step-02-vision.md' | ||
| outputFile: '{planning_artifacts}/product-brief-{{project_name}}-{{date}}.md' | ||
|
|
||
| # Template References | ||
| productBriefTemplate: '../product-brief.template.md' | ||
| --- | ||
|
|
||
| # Step 1: Product Brief Initialization | ||
|
|
@@ -88,7 +81,7 @@ load context documents using smart discovery. Documents can be in the following | |
| - {planning_artifacts}/** | ||
| - {output_folder}/** | ||
| - {product_knowledge}/** | ||
| - docs/** | ||
| - {project-root}/docs/** | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Inconsistent path inlining: why keep Line 84 changes 🤖 Prompt for AI Agents |
||
|
|
||
| Also - when searching - documents can be a single markdown file, or a folder with an index and multiple files. For Example, if searching for `*foo*.md` and not found, also search for a folder called *foo*/index.md (which indicates sharded content) | ||
|
|
||
|
|
@@ -112,7 +105,7 @@ Try to discover the following: | |
|
|
||
| **Document Setup:** | ||
|
|
||
| - Copy the template from `{productBriefTemplate}` to `{outputFile}`, and update the frontmatter fields | ||
| - Copy the template from `../product-brief.template.md` to `{outputFile}`, and update the frontmatter fields | ||
|
|
||
| #### C. Present Initialization Results | ||
|
|
||
|
|
@@ -141,7 +134,7 @@ Display: "**Proceeding to product vision discovery...**" | |
|
|
||
| #### Menu Handling Logic: | ||
|
|
||
| - After setup report is presented, without delay, read fully and follow: {nextStepFile} | ||
| - After setup report is presented, without delay, read fully and follow: ./step-02-vision.md | ||
|
|
||
| #### EXECUTION RULES: | ||
|
|
||
|
|
@@ -150,7 +143,7 @@ Display: "**Proceeding to product vision discovery...**" | |
|
|
||
| ## CRITICAL STEP COMPLETION NOTE | ||
|
|
||
| ONLY WHEN [setup completion is achieved and frontmatter properly updated], will you then read fully and follow: `{nextStepFile}` to begin product vision discovery. | ||
| ONLY WHEN [setup completion is achieved and frontmatter properly updated], will you then read fully and follow: `./step-02-vision.md` to begin product vision discovery. | ||
|
|
||
| --- | ||
|
|
||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Most workflows/templates in this repo use
{{date}}as the system-generated datetime variable;{{system-date}}may not be defined (and also diverges from the{{date}}used in the output filename patterns). If it’s not supported by the templating/installer, the product brief frontmatter date could remain unrendered.Severity: medium
🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.