Compare commits

...

5 Commits

Author SHA1 Message Date
Nikolas Hor a4fbb6a266
Merge 1a85069b75 into cc300b3940 2026-03-17 11:03:23 -03:00
Alex Verkhovsky cc300b3940
Merge pull request #2033 from bmad-code-org/feat/review-trail-generation
feat(quick-dev): add Review Trail generation to step 5
2026-03-17 07:52:45 -06:00
Alex Verkhovsky 6de6f45086 feat(quick-dev): add Review Trail generation to step 5
Step 5 now builds a concern-ordered trail of clickable vscode://file/
links with brief framing and appends it to the spec before committing.
Stops are sequenced by concern (not by file), lead with the entry point,
and use ≤15-word framing focused on design rationale. Single-concern
trails omit grouping labels. The trail is a standalone review artifact
useful without any skill.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 07:51:58 -06:00
Brian a1418dfd28
chore(agents): cleanup skill manifests and remove shared manifest (#2035)
Update per-agent bmad-skill-manifest.yaml files and remove the
now-redundant shared bmad-skill-manifest.yaml after capabilities
were inlined into SKILL.md.
2026-03-16 22:50:47 -05:00
Nikolas de Hor 1a85069b75 fix: restore validate-workflow as native skill directory
The validate-workflow task was accidentally deleted during the
XML-to-native-skill refactor in #1864. The schema, handler, and
test fixtures still reference it, creating broken invocations.

Recreates the task as a native skill directory following the
established pattern (SKILL.md + bmad-skill-manifest.yaml + workflow.md),
with the original validation logic preserved.

Fixes #1530
2026-03-11 19:38:13 -03:00
14 changed files with 150 additions and 51 deletions

View File

@ -1,4 +1,4 @@
type: agent
type: skill
name: bmad-agent-analyst
displayName: Mary
title: Business Analyst

View File

@ -1,4 +1,4 @@
type: agent
type: skill
name: bmad-agent-architect
displayName: Winston
title: Architect

View File

@ -1,4 +1,4 @@
type: agent
type: skill
name: bmad-agent-dev
displayName: Amelia
title: Developer Agent

View File

@ -1,4 +1,4 @@
type: agent
type: skill
name: bmad-agent-pm
displayName: John
title: Product Manager

View File

@ -1,4 +1,4 @@
type: agent
type: skill
name: bmad-agent-qa
displayName: Quinn
title: QA Engineer

View File

@ -1,4 +1,4 @@
type: agent
type: skill
name: bmad-agent-quick-flow-solo-dev
displayName: Barry
title: Quick Flow Solo Dev

View File

@ -1,4 +1,4 @@
type: agent
type: skill
name: bmad-agent-sm
displayName: Bob
title: Scrum Master

View File

@ -1,4 +1,4 @@
type: agent
type: skill
name: bmad-agent-tech-writer
displayName: Paige
title: Technical Writer

View File

@ -1,4 +1,4 @@
type: agent
type: skill
name: bmad-agent-ux-designer
displayName: Sally
title: UX Designer

View File

@ -1,39 +0,0 @@
analyst.agent.yaml:
canonicalId: bmad-analyst
type: agent
description: "Business Analyst for market research, competitive analysis, and requirements elicitation"
architect.agent.yaml:
canonicalId: bmad-architect
type: agent
description: "Architect for distributed systems, cloud infrastructure, and API design"
dev.agent.yaml:
canonicalId: bmad-dev
type: agent
description: "Developer Agent for story execution, test-driven development, and code implementation"
pm.agent.yaml:
canonicalId: bmad-pm
type: agent
description: "Product Manager for PRD creation, requirements discovery, and stakeholder alignment"
qa.agent.yaml:
canonicalId: bmad-qa
type: agent
description: "QA Engineer for test automation, API testing, and E2E testing"
quick-flow-solo-dev.agent.yaml:
canonicalId: bmad-quick-flow-solo-dev
type: agent
description: "Quick Flow Solo Dev for rapid spec creation and lean implementation"
sm.agent.yaml:
canonicalId: bmad-sm
type: agent
description: "Scrum Master for sprint planning, story preparation, and agile ceremonies"
ux-designer.agent.yaml:
canonicalId: bmad-ux-designer
type: agent
description: "UX Designer for user research, interaction design, and UI patterns"

View File

@ -10,8 +10,51 @@
## INSTRUCTIONS
1. Change `{spec_file}` status to `done` in the frontmatter.
2. If version control is available and the tree is dirty, create a local commit with a conventional message derived from the spec title.
3. Display summary of your work to the user, including the commit hash if one was created. Advise on how to review the changes. Offer to push and/or create a pull request.
### Generate Suggested Review Order
Determine what changed:
- **Plan-code-review:** Read `{baseline_commit}` from `{spec_file}` frontmatter and construct the diff of all changes since that commit.
- **One-shot:** No baseline exists. Use the files you created or modified during implementation.
**Plan-code-review:** Append the review order as a `## Suggested Review Order` section to `{spec_file}` **after the last existing section**. Do not modify the Code Map.
**One-shot:** Display the review order directly in conversation output.
Build the trail as an ordered sequence of **stops** — clickable `path:line` references with brief framing — optimized for a human reviewer reading top-down to understand the change:
1. **Order by concern, not by file.** Group stops by the conceptual concern they address (e.g., "validation logic", "schema change", "UI binding"). A single file may appear under multiple concerns.
2. **Lead with the entry point** — the single highest-leverage file:line a reviewer should look at first to grasp the design intent.
3. **Inside each concern**, order stops from most important / architecturally interesting to supporting. Lightly bias toward higher-risk or boundary-crossing stops.
4. **End with peripherals** — tests, config, types, and other supporting changes come last.
5. **Every code reference is a clickable `vscode://file/` link.** Format each stop as a markdown link: `[short-name:line](vscode://file/absolute/path:line:1)`. Use the file's basename (or shortest unambiguous suffix) as the link text.
6. **Each stop gets one ultra-concise line of framing** (≤15 words) — why this approach was chosen here and what it achieves in the context of the change. No paragraphs.
Format each stop as framing first, link on the next indented line:
```markdown
## Suggested Review Order
**{Concern name}**
- {one-line framing}
[`file.ts:42`](vscode://file/absolute/path/to/file.ts:42:1)
- {one-line framing}
[`other.ts:17`](vscode://file/absolute/path/to/other.ts:17:1)
**{Next concern}**
- {one-line framing}
[`file.ts:88`](vscode://file/absolute/path/to/file.ts:88:1)
```
When there is only one concern, omit the bold label — just list the stops directly.
### Commit and Present
1. **Plan-code-review:** Change `{spec_file}` status to `done` in the frontmatter.
2. If version control is available and the tree is dirty, create a local commit with a conventional message derived from the spec title (plan-code-review) or the intent (one-shot).
3. Display summary of your work to the user, including the commit hash if one was created. Advise on how to review the changes — for plan-code-review, mention that `{spec_file}` now contains a Suggested Review Order. Offer to push and/or create a pull request.
Workflow complete.

View File

@ -0,0 +1,6 @@
---
name: validate-workflow
description: "Run a checklist against a document with thorough analysis and produce a validation report"
---
Follow the instructions in [workflow.md](workflow.md).

View File

@ -0,0 +1 @@
type: skill

View File

@ -0,0 +1,88 @@
# Validate Workflow Output
**Goal:** Run a checklist against a document with thorough analysis and produce a validation report.
**Inputs:**
- **workflow** (required) — Workflow path containing `checklist.md`
- **checklist** (optional) — Checklist to validate against (defaults to the workflow's `checklist.md`)
- **document** (optional) — Document to validate (ask user if not specified)
## STEPS
### Step 1: Setup
- If checklist not provided, load `checklist.md` from the workflow location
- Try to fuzzy-match files similar to the input document name; if document not provided or unsure, ask user: "Which document should I validate?"
- Load both the checklist and document
### Step 2: Validate (CRITICAL)
**For EVERY checklist item, WITHOUT SKIPPING ANY:**
1. Read the requirement carefully
2. Search the document for evidence along with any ancillary loaded documents or artifacts (quotes with line numbers)
3. Analyze deeply — look for explicit AND implied coverage
**Mark each item as:**
- **PASS** `✓` — Requirement fully met (provide evidence)
- **PARTIAL** `⚠` — Some coverage but incomplete (explain gaps)
- **FAIL** `✗` — Not met or severely deficient (explain why)
- **N/A** `` — Not applicable (explain reason)
**DO NOT SKIP ANY SECTIONS OR ITEMS.**
### Step 3: Generate Report
Create `validation-report-{timestamp}.md` in the document's folder with the following format:
```markdown
# Validation Report
**Document:** {document-path}
**Checklist:** {checklist-path}
**Date:** {timestamp}
## Summary
- Overall: X/Y passed (Z%)
- Critical Issues: {count}
## Section Results
### {Section Name}
Pass Rate: X/Y (Z%)
[MARK] {Item description}
Evidence: {Quote with line# or explanation}
{If FAIL/PARTIAL: Impact: {why this matters}}
## Failed Items
{All ✗ items with recommendations}
## Partial Items
{All ⚠ items with what's missing}
## Recommendations
1. Must Fix: {critical failures}
2. Should Improve: {important gaps}
3. Consider: {minor improvements}
```
### Step 4: Summary for User
- Present section-by-section summary
- Highlight all critical issues
- Provide path to saved report
- **HALT** — do not continue unless user asks
## HALT CONDITIONS
- HALT after presenting summary in Step 4
- HALT with error if no checklist is found and none is provided
- HALT with error if no document is found and user does not specify one