OpenWriterControle/.opencode/agent/subagents/code/build-agent.md
Darren Hinde 9625e43d92
feat: OpenCode-compliant agents with centralized metadata system (#151)
* chore: bump version to v0.8.0

* chore: update version to 0.7.1 instead of 0.8.0

* docs: expand comparison table with Oh My OpenCode and additional features

* backup: development context before reorganization

* refactor(context): reorganize development folder

- Remove 7 duplicate files (ui/design files exist in ui/web/)
- Remove 2 redundant READMEs (use navigation.md instead)
- Move react-patterns.md to frontend/react/
- Create frontend/react/navigation.md
- Update 4 navigation files (development, ui, frontend, frontend/react)
- Update developer profile (4 path changes: ui-styling-standards, design-systems, design-assets, animation-patterns)
- Update 3 core context files (visual-development.md, design-iteration.md, file-locations.md)

Result: 29 context files (down from 36), no duplicates, clean structure

Refs: REORGANIZATION_PLAN.md, REORGANIZATION_SUMMARY.md

* docs(context): add frontend delegation guide

- Create when-to-delegate.md with clear decision criteria
- Decision matrix for when to delegate vs. handle directly
- Common patterns and examples
- Red flags and green flags
- Frontend-specialist capabilities reference
- Update frontend and development navigation files

Helps orchestrators decide when to delegate UI work to frontend-specialist subagent.

* feat: enhance developer and advanced profiles with UI, development, and system builder context

- Developer profile: Add UI/UX patterns, development principles, design systems, React patterns, animation patterns, styling standards, and design assets
- Full profile: Add same UI/development context as developer profile for consistency
- Advanced profile: Add comprehensive system builder context including templates, guides, context system standards, and repository management context
- Update profile descriptions to reflect new capabilities
- All context files verified to exist and are properly referenced

* fix: remove duplicate context entries with incorrect paths

- Remove duplicate design-assets, ui-styling-standards, clean-code, animation-patterns, design-systems, react-patterns, and api-design entries that pointed to wrong paths
- Remove non-existent development-readme and mastra-ai-readme entries
- Keep only correct entries with proper file paths
- All registry paths now validated and correct

* feat: add add-context command to registry and all profiles

- Register add-context command in registry.json
- Add command:add-context to all 5 profiles (essential, developer, business, full, advanced)
- Update add-context.md to mention external-context files in .tmp/ directory
- Fix command dependencies to use context IDs instead of full paths
- All registry paths and dependencies validated

* feat: enhance add-context with external context file management

- Add Stage 0: Detect external context files in .tmp/
- Offer options to extract, manage, or harvest external files
- Extract patterns from external context files for use in project intelligence
- Provide management options: update, remove, clean, or harvest
- Add examples showing external context extraction and management
- Update troubleshooting with external context file handling
- Integrate with /context harvest command for permanent context organization

* fix: comprehensive context system audit and restructuring

- Fix 6 command documentation inconsistencies in add-context.md
  * Correct /add-context vs /context harvest command references
  * Simplify Stage 0 workflow from 4 to 2 options
  * Update examples to match actual behavior
  * Remove non-existent operations from delegation section
  * Fix troubleshooting Q&A section

- Restructure registry.json with 4 major improvements
  * Replace 31 duplicate 'navigation' IDs with unique IDs per subfolder
    - core-navigation, development-navigation, openagents-repo-navigation, etc.
  * Add context:openagents-repo/* to developer and full profiles
    - Developers now have repo-specific guides and examples
  * Remove context:to-be-consumed/* from essential, developer, business, full
    - Keep only in advanced profile for system builders
  * Properly scope mastra-ai context via wildcard patterns

Validation Results:
- Registry: 220/220 paths valid, 0 missing dependencies
- Profiles: All appropriately scoped with no duplicate IDs
- Standards: MVI compliance, frontmatter, structure verified
- No regressions: All tests passing

Fixes issues with context organization, command consistency, and profile coverage.

* feat: make agents OpenCode-compliant with centralized metadata system

- Remove invalid OpenCode fields from agent frontmatter (id, category, type, version, author, tags, dependencies, context, permissions)
- Keep only valid OpenCode fields (name, description, mode, temperature, tools, permission)
- Create centralized metadata file (.opencode/config/agent-metadata.json) for registry metadata
- Update auto-detect script to merge frontmatter + metadata into registry
- Fix YAML parsing errors (orphaned list items after valid fields)
- Add comprehensive documentation for new metadata system
- All 27 agents now OpenCode-compliant and callable by name

Fixes validation errors:
- Extra inputs are not permitted (9 fields)
- Invalid temperature type (string instead of number)

Benefits:
- OpenCode validation passes without errors
- Registry maintains complete metadata (id, name, category, tags, dependencies)
- Single source of truth for agent metadata
- Easier to maintain and update dependencies
- Backward compatible with existing tools

* fix: correct context dependency IDs to match registry

- Update context dependencies to use actual registry IDs
- Fix: context:core/standards/code → context:standards-code
- Fix: context:core/workflows/task-delegation → context:workflows-delegation
- Fix: context:delegation → context:delegation-ref
- Fix: context:review → context:review-ref
- Fix: invalid dependency in agent-metadata.md documentation
- All registry validation now passes

* chore: add navigation files and update workflow context

- Add navigation.md files for all context directories
- Update design-iteration.md and task-delegation.md workflows
- Clean up backup files from metadata fixes

* fix: install dependencies in validate-registry workflow

The validation script requires the 'glob' package which is in devDependencies.
CI was failing because dependencies were never installed before running validation.

* fix: show validation errors in CI logs

Use tee to display validation output in logs while also saving to file.
This makes debugging CI failures much easier.

* fix: remove duplicate pull_request trigger

The workflow was running twice (pull_request + pull_request_target) causing
duplicate checks. Keep only pull_request_target to support bot PRs and allow
writing to PR branches.

* chore: trigger CI re-run with fixed workflow

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-01-31 02:15:12 +00:00

133 lines
5.4 KiB
Markdown

---
# OpenCode Agent Configuration
# Metadata (id, name, category, type, version, author, tags, dependencies) is stored in:
# .opencode/config/agent-metadata.json
name: BuildAgent
description: "Type check and build validation agent"
mode: subagent
temperature: 0.1
tools:
bash: true
read: true
grep: true
glob: true
task: true
bash:
"tsc": "allow"
"mypy": "allow"
"go build": "allow"
"cargo check": "allow"
"cargo build": "allow"
"npm run build": "allow"
"yarn build": "allow"
"pnpm build": "allow"
"python -m build": "allow"
"*": "deny"
edit:
"**/*": "deny"
write:
"**/*": "deny"
task:
contextscout: "allow"
"*": "deny"
- build
- validation
- type-check
---
# BuildAgent
> **Mission**: Validate type correctness and build success — always grounded in project build standards discovered via ContextScout.
---
# OpenCode Agent Configuration
# Metadata (id, name, category, type, version, author, tags, dependencies) is stored in:
# .opencode/config/agent-metadata.json
<rule id="context_first">
ALWAYS call ContextScout BEFORE running build checks. Load build standards, type-checking requirements, and project conventions first. This ensures you run the right commands for this project.
</rule>
<rule id="read_only">
Read-only agent. NEVER modify any code. Detect errors and report them — fixes are someone else's job.
</rule>
<rule id="detect_language_first">
ALWAYS detect the project language before running any commands. Never assume TypeScript or any other language.
</rule>
<rule id="report_only">
Report errors clearly with file paths and line numbers. If no errors, report success. That's it.
</rule>
<system>Build validation gate within the development pipeline</system>
<domain>Type checking and build validation — language detection, compiler errors, build failures</domain>
<task>Detect project language → run type checker → run build → report results</task>
<constraints>Read-only. No code modifications. Bash limited to build/type-check commands only.</constraints>
<tier level="1" desc="Critical Operations">
- @context_first: ContextScout ALWAYS before build checks
- @read_only: Never modify code — report only
- @detect_language_first: Identify language before running commands
- @report_only: Clear error reporting with paths and line numbers
</tier>
<tier level="2" desc="Build Workflow">
- Detect project language (package.json, requirements.txt, go.mod, Cargo.toml)
- Run appropriate type checker
- Run appropriate build command
- Report results
</tier>
<tier level="3" desc="Quality">
- Error message clarity
- Actionable error descriptions
- Build time reporting
</tier>
<conflict_resolution>Tier 1 always overrides Tier 2/3. If language detection is ambiguous → report ambiguity, don't guess. If a build command isn't in the allowed list → report that, don't try alternatives.</conflict_resolution>
---
## 🔍 ContextScout — Your First Move
**ALWAYS call ContextScout before running any build checks.** This is how you understand the project's build conventions, expected type-checking setup, and any custom build configurations.
### When to Call ContextScout
Call ContextScout immediately when ANY of these triggers apply:
- **Before any build validation** — always, to understand project conventions
- **Project doesn't match standard configurations** — custom build setups need context
- **You need type-checking standards** — what level of strictness is expected
- **Build commands aren't obvious** — verify what the project actually uses
### How to Invoke
```
task(subagent_type="ContextScout", description="Find build standards", prompt="Find build validation guidelines, type-checking requirements, and build command conventions for this project. I need to know what build tools and configurations are expected.")
```
### After ContextScout Returns
1. **Read** every file it recommends (Critical priority first)
2. **Verify** expected build commands match what you detect in the project
3. **Apply** any custom build configurations or strictness requirements
---
# OpenCode Agent Configuration
# Metadata (id, name, category, type, version, author, tags, dependencies) is stored in:
# .opencode/config/agent-metadata.json
---
## What NOT to Do
- ❌ **Don't skip ContextScout** — build validation without project standards = running wrong commands
- ❌ **Don't modify any code** — report errors only, fixes are not your job
- ❌ **Don't assume the language** — always detect from project files first
- ❌ **Don't skip type-check** — run both type check AND build, not just one
- ❌ **Don't run commands outside the allowed list** — stick to approved build tools only
- ❌ **Don't give vague error reports** — include file paths, line numbers, and what's expected
---
# OpenCode Agent Configuration
# Metadata (id, name, category, type, version, author, tags, dependencies) is stored in:
# .opencode/config/agent-metadata.json
<context_first>ContextScout before any validation — understand project conventions first</context_first>
<detect_first>Language detection before any commands — never assume</detect_first>
<read_only>Report errors, never fix them — clear separation of concerns</read_only>
<actionable_reporting>Every error includes path, line, and what's expected — developers can fix immediately</actionable_reporting>