- Add <meta name="description"> block to base template
- Add <meta name="robots" content="noindex, nofollow"> on preview, error,
flow-step, and not-available pages (ephemeral content)
- Add og:locale meta tag for pt_BR
- Add robots block and canonical block to base layout
- Create robots.txt (disallow /health, reference sitemap)
- Add dynamic /sitemap.xml route from flow registry
- Create SVG favicon and update link tag
- All 60 tests passing
https://claude.ai/code/session_01CvrcMDqfCKWV2hC3xpRbx3
- Extract buildApp() from server.ts into app.ts for reuse
- Create api/index.ts as Vercel serverless function entry point
- Add vercel.json with rewrites (static assets + catch-all to API)
- Build script now copies static assets to public/ and templates to dist/
- Include src/templates/** in serverless function bundle
- Local dev and tests continue to work unchanged (60/60 passing)
https://claude.ai/code/session_01CvrcMDqfCKWV2hC3xpRbx3
* refactor(augment): remove legacy YAML/XML workflow rules from code review guidelines
All workflows have been converted to markdown. Remove workflow.yaml,
workflow.xml, and config_source references from Augment review rules.
Drop the entire xml_workflows section (5 rules) and the YAML-specific
standard_workflow_instructions rule.
* refactor: extract discover_inputs protocol from workflow.xml into co-located markdown
Convert the discover_inputs XML protocol (FULL_LOAD, SELECTIVE_LOAD,
INDEX_GUIDED strategies) into standalone markdown files placed alongside
the two workflows that use it (create-story, code-review). Replace
<invoke-protocol> tags with explicit file references. This decouples
the workflows from workflow.xml, enabling its deletion in a follow-up.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* refactor: delete dead YAML/XML workflow engine files
Remove 5 files made obsolete by the workflow.yaml → workflow.md migration:
- workflow.xml (the YAML workflow interpreter engine)
- dev-story/instructions.xml (superseded by workflow.md)
- 3 installer templates for YAML workflow command generation
References in CLI code will be cleaned up in follow-up commits.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* refactor: delete obsolete workflow handler fragments
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* refactor: remove YAML workflow code paths from CLI installer pipeline
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* refactor: remove workflow.xml references from manifests and checklists
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* docs: remove workflow.xml references from English command docs
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* test: update fixtures to remove workflow.yaml references
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix: update workflow.yaml example path to workflow.md in handler-multi
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* refactor: stop tracking workflow/validate-workflow as handler attributes
These handler fragments were deleted — the exec handler already covers
loading .md workflow files directly.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* refactor: rename workflow attribute to exec in agent menu items
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix: address PR review findings from triage
- Fix regex capture group index in module manager workflow path parsing
- Remove stale workflow handler references from handler-multi.txt
- Replace workflow with multi in activation-steps dispatch contract
- Remove dead validate-workflow emission from compiler and xml-builder
- Align commands.md wording to remove engine references
- Fix relativePath anchoring in _base-ide.js recursive directory scans
- Remove dead code from workflow-command-generator (unused template,
generateCommandContent, writeColonArtifacts, writeDashArtifacts)
- Delete unused workflow-commander.md template
- Add regression test for workflow path regex
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Fastify v5 + TypeScript + Nunjucks + Tailwind CSS v4 application that
guides Brazilian lawyers through a step-by-step flow to collect case
details and assemble optimized prompts for Jus IA.
Includes:
- Flow engine with registry pattern for area/subtipo flows
- Complete trabalhista/horas-extras flow (2 steps, legal references)
- MPA state management via hidden form fields
- Chip-selector UI with 44px touch targets
- Optional LLM integration for contextual refinement questions
- Prompt builder with template interpolation and URL delivery
- Progressive enhancement JS (copy-to-clipboard)
- Deep link support (/:area/:subtipo)
- Brand design tokens from Jusbrasil guidelines
https://claude.ai/code/session_01CvrcMDqfCKWV2hC3xpRbx3
Replace assumed blue/gold palette with real Jus IA colors extracted via
Firecrawl: primary green #007A5F, text #5C6F8A, border #B3C0D0.
Keep gold #D4A843 for legal badges only. Add brand-guidelines.md reference.
https://claude.ai/code/session_01CvrcMDqfCKWV2hC3xpRbx3
Incorporates 5 key decisions from multi-agent discussion:
- Invisible AI transition: AI questions indistinguishable from structured ones
- Quantified speed: max 4-5 screens grouped by mental moment
- Preview as legal trust contract: show CLT articles/TST precedents
- Recovery moment as Critical Success Moment: back button + state preservation
- Effortless interactions: one tap per decision, contextual placeholders
https://claude.ai/code/session_01CvrcMDqfCKWV2hC3xpRbx3
12 NFRs across 4 categories: performance (loading/LLM latency),
security (no data persistence, no logging), integration (Jus IA URL
format, overflow validation), compatibility (evergreen browsers,
mobile-first, WhatsApp OG tags). Lean approach - no SLAs.
https://claude.ai/code/session_01CvrcMDqfCKWV2hC3xpRbx3
MPA mobile-first, evergreen browsers, no SEO priority,
request-response with loading state for LLM calls,
no accessibility priority for MVP. Stateless architecture.
https://claude.ai/code/session_01CvrcMDqfCKWV2hC3xpRbx3
No breakthrough innovation detected. Product is smart execution of
existing concepts (dynamic forms + LLM + parameterized URL + verified
legal base). Innovation is in the approach, not the technology.
https://claude.ai/code/session_01CvrcMDqfCKWV2hC3xpRbx3
Legaltech high-complexity concerns (OAB ethics, data retention,
attorney-client privilege, court integration) don't apply to Start Kit:
no data persistence, no login, no court integration, redirect-only.
Only residual constraint: domain knowledge for prompt template creation.
https://claude.ai/code/session_01CvrcMDqfCKWV2hC3xpRbx3
Web App | Legaltech | Medium complexity (high domain knowledge) | Greenfield.
Party Mode revised complexity from High to Medium based on stateless/anonymous
architecture with no data retention or court integration.
https://claude.ai/code/session_01CvrcMDqfCKWV2hC3xpRbx3
- Updated all JusPrompt references to Jus IA Start Kit in product brief
- Updated Party Mode insights to reflect decisions made (name, AI in MVP)
- Created PRD document from template with Step 1 initialization complete
- Discovered and loaded 7 input documents (1 brief, 1 research, 1 brainstorm, 4 project docs)
https://claude.ai/code/session_01CvrcMDqfCKWV2hC3xpRbx3
Completed Step 4 with North Star metric (1000 redirects/month),
user success metrics, business objectives, and funnel KPIs.
Product is one-shot by design - no retention loop.
https://claude.ai/code/session_01CvrcMDqfCKWV2hC3xpRbx3
Completed Step 3 (Target Users Discovery) with three personas:
- Dra. Carla (never used AI, pragmatic resistor)
- Dr. Rafael (uses AI poorly, digital overload)
- Dr. Marcos (office owner, Shadow AI concerns)
Includes detailed user journey for labor law petition flow.
https://claude.ai/code/session_01CvrcMDqfCKWV2hC3xpRbx3
Completed Step 2 (Vision Discovery) of the BMAD product brief workflow
for JusPrompt - a conversational assistant that guides lawyers through
building optimized requests for Jus IA without prompt engineering knowledge.
Includes Party Mode insights on naming, URL limits, and MVP strategy.
https://claude.ai/code/session_01CvrcMDqfCKWV2hC3xpRbx3
* refactor: convert document-project workflow.yaml to workflow.md (step 9)
Convert main workflow and both sub-workflows (deep-dive, full-scan) from
legacy .yaml entry point format to unified .md format. Update agent files
and module-help.csv references. Clean engine-scaffolding <critical> blocks
from instruction files.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix: correct config path typo bmb→bmm in sub-workflow files
Both deep-dive-workflow.md and full-scan-workflow.md referenced
_bmad/bmb/config.yaml instead of _bmad/bmm/config.yaml, which
would break config resolution at runtime.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
* refactor: convert create-story workflow.yaml to workflow.md (step 7)
Merge workflow.yaml config and instructions.xml execution logic into a
single self-contained workflow.md. Drop engine scaffolding directives,
preserve all behavioral constraints. Update checklist.md references.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix: update remaining workflow.yaml refs to workflow.md
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
* chore: convert dev-story workflow from yaml to markdown format
Merge workflow.yaml config and instructions.xml content into a single
workflow.md, following the established conversion pattern. Drop engine
scaffolding directives, preserve all behavioral constraints verbatim.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix: update dev-story workflow references from .yaml to .md
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
* chore: convert code-review workflow.yaml to workflow.md
Step 6 of 9 in yaml-to-md conversion plan. Merges workflow.yaml
config and instructions.xml content into a single workflow.md
following the established conversion pattern. Updates agent yaml
and module-help.csv references.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix: escape folder names with backticks to fix markdownlint MD037
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
* feat(manifest): unified skill scanner decoupled from legacy collectors
Add collectSkills() that recursively walks module trees to discover
type:skill directories anywhere, replacing the band-aid detection
inside collectWorkflows(). Legacy collectors now skip claimed dirs.
scanInstalledModules recognizes skill-only modules.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix(manifest): address PR review findings from triage
- Add missing skillClaimedDirs guard to getAgentsFromDir (F1)
- Add skills to this.files[] in collectSkills (F2)
- Add test for type:skill inside workflows/ dir (F5)
- Warn on malformed workflow.md parse in skill dirs (F6)
- Add skills count to generateManifests return value (F9)
- Remove redundant \r? from regex after line normalization (F10)
- Normalize path.relative to forward slashes for cross-platform (F12)
- Enforce directory name as skill canonicalId, warn if manifest overrides (F13)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Step 5 of 9 in yaml-to-md conversion plan. Merges workflow.yaml config
(6 input_file_patterns including INDEX_GUIDED) and instructions.md
execution logic into a single self-contained workflow.md. Updates
references in sm.agent.yaml, pm.agent.yaml, module-help.csv, and
checklist.md. Deletes workflow.yaml and instructions.md.
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
* feat(tasks): convert review-adversarial-general from XML task to native skill
Convert the simplest core task (review-adversarial-general.xml) from
type:task XML format to type:skill markdown format. This establishes
the pattern for converting remaining XML tasks to self-contained skills.
- Convert XML task to workflow.md with frontmatter, role, execution steps
- Add type:skill manifest for verbatim directory copying
- Extend manifest-generator getTasksFromDir to recurse into subdirectories
and detect type:skill entries (mirrors existing workflow skill detection)
- Update cross-references in quick-dev-new-preview, quick-dev, quick-spec
- Update module-help.csv to use skill: prefix
* refactor: replace file path references with skill name invocations
Consumers of review-adversarial-general now invoke by skill name
instead of loading via _bmad/ file path. Removes the indirection
variable from frontmatter and inlines the skill name directly.
* refactor(installer): scan tasks/ for type:skill entries
Teach collectWorkflows to also scan the tasks/ subdirectory for
type:skill entries. Skills can live anywhere in the source tree —
the workflow scanner just needs to look in more places.
* fix: update stale task terminology to skill after format conversion
Address review findings from PR #1857: replace remaining "task"
references with "skill" in workflow steps and test documentation.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Set up the product brief document with frontmatter tracking workflow state
and input documents discovered during Phase 1 Analysis (brainstorm, research,
and 4 detailed idea explorations).
https://claude.ai/code/session_01CvrcMDqfCKWV2hC3xpRbx3
Research covers:
- Prompt Library: 8+ BR competitors mapped, white space in verified-data-connected prompts
- Calculator: 10+ competitors including Jusfy (R$50M+ revenue, 118% YoY), gap in AI end-to-end
- Dashboard: No BR competitor exists but better as feature (80% don't measure AI ROI)
- Community: 4-5 paid communities exist (personality-driven), better absorbed as Library feature
Final prioritization: (1) Prompt Library, (2) Calculator, (3/4) Dashboard+Community as features
https://claude.ai/code/session_01CvrcMDqfCKWV2hC3xpRbx3
* chore(sprint-planning): convert workflow.yaml + instructions.md to unified workflow.md
Step 4 of 9 in the yaml-to-md conversion plan. Merges config
and instructions into a single self-contained workflow.md,
dropping engine scaffolding (critical tags, invoke-protocol).
* fix(sprint-planning): address review findings from PR triage
- Update stale workflow.yaml references to workflow.md in sm.agent.yaml and module-help.csv
- Widen epics_pattern from epic*.md to *epic*.md to match documented input files
- Fix placeholder mismatch: epics_in_progress_count → in_progress_count
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Incorporate proprietary survey data from Jusbrasil (Aug 2025, n=2861; Mar 2026, n=977)
covering adoption rates, tool usage, trust levels, non-user barriers, and conversion
factors. Add section 3 with data-driven implications for each of the 4 selected ideas.
Key findings: Prompt Library has highest relevance (ease of use +4.2pp as conversion
factor), Dashboard is more retention than acquisition, Community is better as a feature
than standalone product.
https://claude.ai/code/session_01CvrcMDqfCKWV2hC3xpRbx3
Add structured documentation for the Jus IA external tools brainstorming project:
- Research context on AI legal tools in Brazil and lawyer pain points
- Full brainstorm with 23 ideas across 5 categories
- 4 selected ideas with detailed descriptions: Prompt Library, Legal Calculator,
Productivity Dashboard, and Prompts Community
- README with project overview, principles, and next steps
https://claude.ai/code/session_01CvrcMDqfCKWV2hC3xpRbx3
* feat(skills): add type:skill manifest for verbatim skill directory copying
Introduce `type: skill` in bmad-skill-manifest.yaml to signal the
installer to copy entire skill directories verbatim into IDE skill
directories, replacing the launcher-based approach.
Changes:
- skill-manifest.js: fix single-entry detection for type-only manifests,
add getArtifactType export
- manifest-generator.js: collect type:skill entries separately, write
skill-manifest.csv, derive canonicalId from directory name
- _config-driven.js: add installVerbatimSkills with YAML-safe SKILL.md
generation, stale file cleanup, and warning on parse failures
- Rename quick-dev-new-preview to bmad-quick-dev-new-preview so
directory name is the canonical ID
- Update workflow.md installed_path to reference IDE skill base directory
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* refactor: replace {installed_path} with relative paths in quick-dev skill
Skills resolve paths relative to the skill root directory per the
open agent standard, so the installed_path variable is unnecessary.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* feat(skills): add install_to_bmad flag and skill: help catalog reference
Add install_to_bmad flag to skill manifests (default true) enabling
skills to opt out of _bmad/ copy while retaining .claude/skills/
installation. Support skill:<canonicalId> references in module-help.csv
workflow-file column. Fix stale quick-dev-new-preview directory
references in agent YAML and help catalog.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* test: add install_to_bmad design contract tests
Unit tests against getInstallToBmad and loadSkillManifest that nail
down the 4 core design decisions for the install_to_bmad flag.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix: reset skills array between runs and allow skill-only targets
- Reset this.skills and this.files in ManifestGenerator to prevent stale
data when instance is reused across multiple manifest runs
- Allow targets with empty artifact_types to still install verbatim
skills by checking skill_format before short-circuiting
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix: resolve broken file references in quick-dev-new-preview workflow
- Fix step-02-plan.md templateFile path (./tech-spec-template.md → ../tech-spec-template.md)
- Teach validate-file-refs.js to skip skill: prefixed references in CSV
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
* feat: add pi coding agent as supported platform
Add pi (provider-agnostic terminal-native AI coding agent) to
platform-codes.yaml with native skills format output to .pi/skills/.
Pi follows the open Agent Skills specification and uses the same
subdirectory/SKILL.md structure that BMAD already generates for
other platforms.
Fixes#1853
* fix: address PR review comments for Pi test suite
- Assert template_type === 'default' to pin config contract
- Verify Pi appears in getAvailableIdes() list
- Test detect() returns false before install, true after
- Parse frontmatter between --- delimiters instead of regex on full file
- Assert description is present and non-empty
- Assert frontmatter contains only name and description keys
- Validate body content is non-empty with expected activation instructions
- Add reinstall/upgrade coverage (rerun setup over existing output)
- Move temp directory cleanup to finally block
* feat: add skill manifest for advanced-elicitation workflow
Register advanced-elicitation as an invocable skill so it can be
triggered as a standalone slash command, matching the pattern used
by party-mode and brainstorming.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* refactor: convert advanced-elicitation from XML to markdown workflow
The installer only discovers workflow.yaml and workflow.md files,
so workflow.xml was never registered. Convert to workflow.md with
YAML frontmatter while preserving all elicitation logic verbatim.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix: update all references from workflow.xml to workflow.md
Update 67 references across 50 files to point to the new markdown
workflow. Also fix incorrect methods.csv filename and bare
advanced-elicitation.xml reference in generate-project-context.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Brian <bmadcode@gmail.com>
Align documentation with the skills-based architecture migration by
replacing references to "commands", "slash commands", and legacy command
names with the new "skills" terminology and skill names.
* refactor(sprint-status): convert workflow.yaml + instructions.md to single workflow.md
Merge workflow config and instruction content into a unified workflow.md
with YAML frontmatter, following the established convention for converted
workflows. Update module-help.csv reference accordingly.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix(sprint-status): restore no-time-estimates rule dropped during conversion
The <critical> preamble removal incorrectly classified this behavioral
rule as boilerplate. It is an actual output constraint.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* test: add comprehensive workflow conversion test results
- 14 test fixtures covering data and validate modes
- Tested across Opus, Sonnet, and Haiku models
- OLD format (yaml+md) vs NEW format (workflow.md)
- Confirms zero regressions in conversion
- Includes reproduction instructions for future sessions
* fix(sprint-status): consolidate no-time-estimates into role line
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* refactor(qa-generate-e2e-tests): convert workflow.yaml + instructions.md to single workflow.md
Task 2 of yaml-to-md conversion plan. Merges config variables into
INITIALIZATION section, inlines instructions into EXECUTION section.
Drops non-consumed yaml keys (required_tools, tags, execution_hints).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* refactor(retrospective): convert workflow.yaml + instructions.md to single workflow.md
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix: update workflow.yaml references to workflow.md for converted workflows
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* chore: remove test results file from version control
SPRINT_STATUS_CONVERSION_TEST_RESULTS.md contains hardcoded local
filesystem paths and is a session-specific test artifact. Added to
.bare/info/exclude to keep it ignored across all worktrees.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>