feat(opencode): add JSON-only integration and compact AGENTS.md generator (#570)
* feat: add OpenCode integration implementation plan for BMAD-METHOD * installer(opencode): add OpenCode target metadata in install.config.yaml * chore(deps): add comment-json for JSONC parsing in OpenCode integration * feat(installer/opencode): implement setupOpenCode with minimal instructions merge and BMAD-managed agents/commands * feat(installer): add OpenCode (SST) to IDE selector and CLI --ide help * fix(opencode): align generated opencode.json(c) with schema (instructions as strings; agent.prompt; command.template; remove unsupported fields) * feat(installer): enhance OpenCode setup with agent selection and prefix options * fix: update configuration file references from `bmad-core/core-config.yaml` to `.bmad-core/core-config.yaml` across multiple agent and task files for consistency and clarity. * refactor: streamline OpenCode configuration prompts and normalize instruction paths for agents and tasks * feat: add tools property to agent definitions for enhanced functionality. Otherwise opencode consders the subagents as readonly * feat: add extraction of 'whenToUse' from agents markdown files for improved agent configuration in opencode * feat: enhance task purpose extraction from markdown files with improved parsing and cleanup logic * feat: add collision warnings for non-BMAD-managed agent and command keys during setup * feat: generate and update AGENTS.md for OpenCode integration with agent and task details * feat: add compact AGENTS.md generator and JSON-only integration for OpenCode * chore(docs): remove completed OpenCode integration implementation plans * feat: enable default prefixes for agent and command keys to avoid collisions * fix: remove unnecessary line breaks in 'whenToUse' descriptions for QA agents to mathc the rest of the agents definitions and improve programatic parsing of whenToUse prop * fix: update OpenCode references to remove 'SST' for consistency across documentation and configuration * fix: update agent mode from 'subagent' to 'all' for consistency in agent definitions * fix: consolidate 'whenToUse' description format for clarity and consistent parsing
This commit is contained in:
@@ -16,8 +16,8 @@ Implement fixes based on QA results (gate and assessments) for a specific story.
|
||||
```yaml
|
||||
required:
|
||||
- story_id: '{epic}.{story}' # e.g., "2.2"
|
||||
- qa_root: from `bmad-core/core-config.yaml` key `qa.qaLocation` (e.g., `docs/project/qa`)
|
||||
- story_root: from `bmad-core/core-config.yaml` key `devStoryLocation` (e.g., `docs/project/stories`)
|
||||
- qa_root: from `.bmad-core/core-config.yaml` key `qa.qaLocation` (e.g., `docs/project/qa`)
|
||||
- story_root: from `.bmad-core/core-config.yaml` key `devStoryLocation` (e.g., `docs/project/stories`)
|
||||
|
||||
optional:
|
||||
- story_title: '{title}' # derive from story H1 if missing
|
||||
@@ -45,7 +45,7 @@ optional:
|
||||
|
||||
### 0) Load Core Config & Locate Story
|
||||
|
||||
- Read `bmad-core/core-config.yaml` and resolve `qa_root` and `story_root`
|
||||
- Read `.bmad-core/core-config.yaml` and resolve `qa_root` and `story_root`
|
||||
- Locate story file in `{story_root}/{epic}.{story}.*.md`
|
||||
- HALT if missing and ask for correct story id/path
|
||||
|
||||
@@ -113,7 +113,7 @@ Status Rule:
|
||||
|
||||
## Blocking Conditions
|
||||
|
||||
- Missing `bmad-core/core-config.yaml`
|
||||
- Missing `.bmad-core/core-config.yaml`
|
||||
- Story file not found for `story_id`
|
||||
- No QA artifacts found (neither gate nor assessments)
|
||||
- HALT and request QA to generate at least a gate file (or proceed only with clear developer-provided fix list)
|
||||
|
||||
@@ -9,11 +9,11 @@ Quick NFR validation focused on the core four: security, performance, reliabilit
|
||||
```yaml
|
||||
required:
|
||||
- story_id: '{epic}.{story}' # e.g., "1.3"
|
||||
- story_path: `bmad-core/core-config.yaml` for the `devStoryLocation`
|
||||
- story_path: `.bmad-core/core-config.yaml` for the `devStoryLocation`
|
||||
|
||||
optional:
|
||||
- architecture_refs: `bmad-core/core-config.yaml` for the `architecture.architectureFile`
|
||||
- technical_preferences: `bmad-core/core-config.yaml` for the `technicalPreferences`
|
||||
- architecture_refs: `.bmad-core/core-config.yaml` for the `architecture.architectureFile`
|
||||
- technical_preferences: `.bmad-core/core-config.yaml` for the `technicalPreferences`
|
||||
- acceptance_criteria: From story file
|
||||
```
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@ Generate a standalone quality gate file that provides a clear pass/fail decision
|
||||
|
||||
## Gate File Location
|
||||
|
||||
**ALWAYS** check the `bmad-core/core-config.yaml` for the `qa.qaLocation/gates`
|
||||
**ALWAYS** check the `.bmad-core/core-config.yaml` for the `qa.qaLocation/gates`
|
||||
|
||||
Slug rules:
|
||||
|
||||
@@ -126,7 +126,7 @@ waiver:
|
||||
|
||||
## Output Requirements
|
||||
|
||||
1. **ALWAYS** create gate file at: `qa.qaLocation/gates` from `bmad-core/core-config.yaml`
|
||||
1. **ALWAYS** create gate file at: `qa.qaLocation/gates` from `.bmad-core/core-config.yaml`
|
||||
2. **ALWAYS** append this exact format to story's QA Results section:
|
||||
|
||||
```text
|
||||
|
||||
@@ -186,7 +186,7 @@ NFR assessment: qa.qaLocation/assessments/{epic}.{story}-nfr-{YYYYMMDD}.md
|
||||
**Template and Directory:**
|
||||
|
||||
- Render from `../templates/qa-gate-tmpl.yaml`
|
||||
- Create directory defined in `qa.qaLocation/gates` (see `bmad-core/core-config.yaml`) if missing
|
||||
- Create directory defined in `qa.qaLocation/gates` (see `.bmad-core/core-config.yaml`) if missing
|
||||
- Save to: `qa.qaLocation/gates/{epic}.{story}-{slug}.yml`
|
||||
|
||||
Gate file structure:
|
||||
|
||||
Reference in New Issue
Block a user