@abarcenas/ai-workflow-template 1.46.0 → 1.48.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (27) hide show
  1. package/.agents/config/README.md +2 -2
  2. package/.agents/instructions/agent.instructions.md +16 -16
  3. package/.agents/instructions/context7.instructions.md +40 -0
  4. package/.agents/instructions/learned-knowledge.instructions.md +18 -0
  5. package/.agents/instructions/memory-bank.instructions.md +3 -3
  6. package/.opencode/agents/{architect.agent.md → architect.md} +5 -6
  7. package/.opencode/agents/{coder.agent.md → coder.md} +4 -8
  8. package/.opencode/agents/{deployer.agent.md → deployer.md} +4 -9
  9. package/.opencode/agents/{designer.agent.md → designer.md} +5 -6
  10. package/.opencode/agents/{e2e-tester.agent.md → e2e-tester.md} +4 -7
  11. package/.opencode/agents/{implementer.agent.md → implementer.md} +4 -8
  12. package/.opencode/agents/orchestrator/{feature-pipeline.agent.md → feature-pipeline.md} +16 -19
  13. package/.opencode/agents/orchestrator/{orchestrator.agent.md → orchestrator.md} +26 -34
  14. package/.opencode/agents/orchestrator/{tdd-orchestrator.agent.md → tdd-orchestrator.md} +26 -29
  15. package/.opencode/agents/{plan.agent.md → planner.md} +4 -9
  16. package/.opencode/agents/{researcher.agent.md → researcher.md} +5 -9
  17. package/.opencode/agents/{reviewer.agent.md → reviewer.md} +5 -8
  18. package/.opencode/agents/{scope.agent.md → scope.md} +5 -9
  19. package/.opencode/agents/{tracker.agent.md → tracker.md} +5 -9
  20. package/.opencode/agents/{unit-tester.agent.md → unit-tester.md} +4 -8
  21. package/.prettierignore +26 -0
  22. package/AGENTS.md +10 -6
  23. package/README.md +36 -12
  24. package/opencode.mcp.example.json +13 -12
  25. package/package.json +3 -1
  26. package/scripts/sync-unit.test.js +551 -12
  27. package/scripts/sync.js +296 -13
@@ -27,10 +27,10 @@ the second calls `grilling` and `domain-modeling` together.
27
27
 
28
28
  ## Scope agent
29
29
 
30
- `.opencode/agents/scope.agent.md` is the front door for underspecified feature requests. It
30
+ `.opencode/agents/scope.md` is the front door for underspecified feature requests. It
31
31
  runs grilling in rounds against a draft file, emits the current frontier as numbered questions,
32
32
  and finishes by writing a spike document at `docs/spike-<feature>.md` — the input
33
- `researcher.agent.md` already expects.
33
+ `researcher.md` already expects.
34
34
 
35
35
  It never builds or runs code. When a question needs a prototype it emits
36
36
  `prototype needed: <question>`, and the orchestrator delegates the work to `coder` (logic) or
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  description: "Guidelines for creating custom agent files for opencode"
3
- applyTo: "**/*.agent.md"
3
+ applyTo: "**/agents/**/*.md"
4
4
  ---
5
5
 
6
6
  # Custom Agent File Guidelines
@@ -11,7 +11,7 @@ Instructions for creating effective and maintainable custom agent files that pro
11
11
 
12
12
  - Target audience: Developers creating custom agents for opencode
13
13
  - File format: Markdown with YAML frontmatter
14
- - File naming convention: lowercase with hyphens (e.g., `test-specialist.agent.md`)
14
+ - File naming convention: lowercase with hyphens (e.g., `test-specialist.md`)
15
15
  - Location: `.opencode/agents/` directory (repository-level)
16
16
  - Purpose: Define specialized agents with tailored expertise, tools, and instructions for specific tasks
17
17
  - Official documentation: [opencode.ai](https://opencode.ai)
@@ -39,7 +39,7 @@ tools: ["Read", "Edit", "Grep"]
39
39
  #### **name** (OPTIONAL)
40
40
 
41
41
  - Display name for the agent
42
- - If omitted, defaults to filename (without `.md` or `.agent.md`)
42
+ - If omitted, defaults to filename (without `.md`)
43
43
  - Use title case and be descriptive
44
44
  - Example: `'Testing Specialist'`
45
45
 
@@ -123,7 +123,7 @@ The recommended approach is **prompt-based orchestration**:
123
123
 
124
124
  - The orchestrator defines a step-by-step workflow in natural language.
125
125
  - Each step is delegated to a specialized agent.
126
- - The orchestrator passes only the essential context (e.g., base path, identifiers) and requires each sub-agent to read its own `.agent.md` spec for tools/constraints.
126
+ - The orchestrator passes only the essential context (e.g., base path, identifiers) and requires each sub-agent to read its own `.md` spec for tools/constraints.
127
127
 
128
128
  ### How It Works
129
129
 
@@ -136,7 +136,7 @@ tools: ["Read", "Edit", "Grep", "Task"]
136
136
  2. For each step, invoke a sub-agent by providing:
137
137
 
138
138
  - **Agent name** (the identifier users select/invoke)
139
- - **Agent spec path** (the `.agent.md` file to read and follow)
139
+ - **Agent spec path** (the `.md` file to read and follow)
140
140
  - **Minimal shared context** (e.g., base path, project name, log file)
141
141
 
142
142
  ### Prompt Pattern (Recommended)
@@ -147,7 +147,7 @@ Use a consistent "wrapper prompt" for every step so sub-agents behave predictabl
147
147
  This phase must be performed as the agent "<AGENT_NAME>" defined in "<AGENT_SPEC_PATH>".
148
148
 
149
149
  IMPORTANT:
150
- - Read and apply the entire .agent.md spec (tools, constraints, quality standards).
150
+ - Read and apply the entire agent spec file (tools, constraints, quality standards).
151
151
  - Work on "<WORK_UNIT_NAME>" with base path: "<BASE_PATH>".
152
152
  - Perform the necessary reads/writes under this base path.
153
153
  - Return a clear summary (actions taken + files produced/modified + issues).
@@ -191,7 +191,7 @@ Structure each step invocation with:
191
191
  ```text
192
192
  Step 1: Transform raw input data
193
193
  Agent: data-processor
194
- Spec: .opencode/agents/data-processor.agent.md
194
+ Spec: .opencode/agents/data-processor.md
195
195
  Context: projectName, basePath
196
196
  Input: basePath/raw/
197
197
  Output: basePath/processed/
@@ -199,7 +199,7 @@ Expected: write basePath/processed/summary.md
199
199
 
200
200
  Step 2: Analyze processed data (depends on Step 1 output)
201
201
  Agent: data-analyst
202
- Spec: .opencode/agents/data-analyst.agent.md
202
+ Spec: .opencode/agents/data-analyst.md
203
203
  Context: projectName, basePath
204
204
  Input: basePath/processed/
205
205
  Output: basePath/analysis/
@@ -363,10 +363,10 @@ When invoking a sub-agent, pass all context through descriptive instructions in
363
363
  Example (prompt template):
364
364
 
365
365
  ```text
366
- This phase must be performed as the agent "documentation-writer" defined in ".opencode/agents/documentation-writer.agent.md".
366
+ This phase must be performed as the agent "documentation-writer" defined in ".opencode/agents/documentation-writer.md".
367
367
 
368
368
  IMPORTANT:
369
- - Read and apply the entire .agent.md spec.
369
+ - Read and apply the entire agent spec file.
370
370
  - Project: [project name]
371
371
  - Base path: [base path]
372
372
  - Input: [input path]
@@ -389,24 +389,24 @@ Example of a simple orchestrator that validates code through multiple specialize
389
389
  - Repository name, PR number
390
390
  - Base path
391
391
 
392
- 2. Invoke specialized agents sequentially (each agent reads its own `.agent.md` spec):
392
+ 2. Invoke specialized agents sequentially (each agent reads its own `.md` spec):
393
393
 
394
394
  ```text
395
395
  Step 1: Security Review
396
396
  Agent: security-reviewer
397
- Spec: .opencode/agents/security-reviewer.agent.md
397
+ Spec: .opencode/agents/security-reviewer.md
398
398
  Context: repository name, PR number, base path
399
399
  Output: security-review.md
400
400
 
401
401
  Step 2: Test Coverage
402
402
  Agent: test-coverage
403
- Spec: .opencode/agents/test-coverage.agent.md
403
+ Spec: .opencode/agents/test-coverage.md
404
404
  Context: repository name, PR number, base path
405
405
  Output: coverage-report.md
406
406
 
407
407
  Step 3: Aggregate
408
408
  Agent: review-aggregator
409
- Spec: .opencode/agents/review-aggregator.agent.md
409
+ Spec: .opencode/agents/review-aggregator.md
410
410
  Context: repository name, PR number, base path
411
411
  Output: final-review.md
412
412
  ```
@@ -462,7 +462,7 @@ Use consistent variable naming conventions:
462
462
 
463
463
  ### Naming Conventions
464
464
 
465
- - Use lowercase with hyphens: `test-specialist.agent.md`
465
+ - Use lowercase with hyphens: `test-specialist.md`
466
466
  - Name should reflect agent purpose
467
467
  - Filename becomes default agent name (if `name` not specified)
468
468
  - Allowed characters: `.`, `-`, `_`, `a-z`, `A-Z`, `0-9`
@@ -493,7 +493,7 @@ Use consistent variable naming conventions:
493
493
  - [ ] Filename follows lowercase-with-hyphens convention
494
494
  - [ ] File placed in correct directory (`.opencode/agents/`)
495
495
  - [ ] Filename uses only allowed characters
496
- - [ ] File extension is `.agent.md`
496
+ - [ ] File extension is `.md`
497
497
 
498
498
  ### Quality Assurance
499
499
 
@@ -107,3 +107,43 @@ If Context7 cannot find a reliable source:
107
107
 
108
108
  - Never request or echo API keys. If configuration requires a key, instruct storing it in environment variables.
109
109
  - Treat retrieved docs as **helpful but not infallible**; for security-sensitive code, prefer official vendor docs and add an explicit verification step.
110
+
111
+ ## Configuration & troubleshooting (opencode)
112
+
113
+ opencode substitutes only two forms inside config files:
114
+
115
+ - `{env:VARIABLE_NAME}` — an **unset variable becomes an empty string**, which fails silently
116
+ - `{file:path/to/file}` — file contents; `~` is supported
117
+
118
+ It does **not** understand shell-style `$VARIABLE`. Writing `"CONTEXT7_API_KEY": "$CONTEXT7_TOKEN"` sends the literal text `$CONTEXT7_TOKEN` as the header value. The server accepts it at `initialize` and only rejects it at the first tool call, so the MCP reports as *connected* while every tool fails with an invalid-key error.
119
+
120
+ A valid remote entry:
121
+
122
+ ```json
123
+ "context7": {
124
+ "type": "remote",
125
+ "url": "https://mcp.context7.com/mcp",
126
+ "headers": { "CONTEXT7_API_KEY": "{env:CONTEXT7_TOKEN}" },
127
+ "enabled": true
128
+ }
129
+ ```
130
+
131
+ ### Local servers differ in shape
132
+
133
+ `McpLocalConfig` requires `command` to be an **array** and the env object to be named `environment`. There is no `args` key and no `env` key — using either makes opencode log `skipped malformed recognized value` and the server never appears in the tool list at all.
134
+
135
+ ```json
136
+ "github": {
137
+ "type": "local",
138
+ "command": ["npx", "-y", "@modelcontextprotocol/server-github"],
139
+ "environment": { "GITHUB_PERSONAL_ACCESS_TOKEN": "{env:GITHUB_PERSONAL_ACCESS_TOKEN}" },
140
+ "enabled": true
141
+ }
142
+ ```
143
+
144
+ ### Diagnosing a dead server
145
+
146
+ 1. Test the credential directly before touching config — `curl` the endpoint, or run the CLI that owns the token. This separates "bad key" from "key never arrived".
147
+ 2. Read `~/.local/share/opencode/log/opencode.log` and look for `mcp connected server=<name>` versus `skipped malformed`.
148
+ 3. Prefer `{file:~/.config/opencode/secrets/<name>}` when opencode may not be launched from an interactive shell: variables exported in `~/.zshrc` are visible only to interactive zsh sessions, so GUI-launched sessions see nothing.
149
+ 4. A private-repo 404 (GitHub) or a 422 from search usually means the MCP is running **anonymous**, not that the resource is missing.
@@ -577,3 +577,21 @@
577
577
  - **coder (index audits)**: Enumerate all mutating paths — create, update, shrink, delete-source, failure — then assert the same invariant helper on each. The bug was in the paths that had never been tested, not in the one that had.
578
578
  - **deployer**: This was a **follow-up fix** to a bug deliberately recorded as open in commit `308c90f`; the tracker entry must explicitly mark that follow-up **resolved** so the audit trail does not keep an open defect that no longer exists. Re-run all three gates before and after, stage only the enumerated files, and use `SKIP_BUMP=1` so the fix does not bump the minor version.
579
579
  - **all agents (knowledge retrieval)**: `memory_search` returned "No results found. The index may be empty"; `knowledgebase_search` was **not executed** (PG vector unavailable — `DATABASE_URL` not configured). Both reported as skipped/unavailable, neither retried, neither treated as a task failure.
580
+
581
+ ## Session: 2026-10-25 — Project-Owned Layer for Sync (ownership before force; formatter freeze hazard)
582
+
583
+ **Pipeline:** implementer → coder → reviewer (round 1: APPROVE WITH CHANGES) → coder → reviewer (round 2: BLOCK) → coder (round 3 fixes) → tracker
584
+ **Scope:** `scripts/sync.js`, `scripts/sync-unit.test.js`, `.prettierignore`, `AGENTS.md`, `README.md`, `package.json`, `opencode.mcp.example.json`
585
+ **Verification:** 26 files / **790 tests**, 0 failures; coverage **96.88 / 94.9 / 96.87 / 97.09**; `npm pack --dry-run` ships `.prettierignore` and excludes `AGENTS.project.md` and `opencode.json`; consumer repos untouched (apmc-cms: only its three pre-existing modified files; apmc-v2 clean).
586
+
587
+ **New knowledge:**
588
+ - **Sync mechanics, decided once and recorded here:** the overwrite policy is **hash-equality**; a file whose hash does not match is skipped **permanently** and only refreshes if the consumer writes it again. `--force` is destructive with **no backup**. Prune is **opt-in** and is never passed by the setup command. `opencode.json` looked managed (it sat in `rootFiles` at HEAD) but was excluded from the tarball with no manifest key, so it was effectively scaffold-once — **verify tarball + manifest key + copy loop before assuming any file is managed.**
589
+ - **Design pattern that worked:** check ownership **before** the `forceOverwrite || isUntouched` branch, and short-circuit prune on ownership **before** hashing. A guard placed after either decision point does not hold — the file is already copied or already queued for deletion. One exported `Set` matching channel-agnostically (root name also protects nested names) is deliberately over-conservative and easier to keep correct than four parallel checks.
590
+ - **Testing pattern that failed:** writing the shipped file verbatim as the test fixture only proved the parser agreed with itself — it passed while the detector was wrong in both directions. What caught it was a **table-driven matrix with both outcomes asserted** (false alarm *and* false all-clear) plus **parent-directory-protected, negated-hole, and real-consumer end-to-end fixtures**. A detector of "is the user's config adequate" needs both directions, or the vacuous case hides the bug.
591
+ - **Formatter hazard (consumer-fatal):** a repo-wide Prettier run over sync-managed files rewrites their hashes and is by itself sufficient to **permanently freeze** a consumer's updates. `.prettierignore` must be established **before** formatting, not added after the damage. Ship it, scaffold it if absent, and warn once when an existing one is inadequate.
592
+
593
+ **Agent tuning notes:**
594
+ - **implementer / coder**: asking an implementing agent to **pause when a heuristic exceeds a stated complexity threshold** produced an honest escalation instead of a silently wrong heuristic. Worth repeating for any "detect whether the user's config is adequate" feature: state the threshold up front and treat pausing as success, not failure.
595
+ - **reviewer (two-round shape)**: round 1 caught missing user-facing coverage; round 2 blocked the *new* mechanism for being wrong in both directions. A fix that introduces a heuristic deserves a dedicated review pass — reviewing it as part of the original change under-weights it.
596
+ - **coder (docs for honest gaps)**: protect-but-don't-honour (`.agents-sync-ignore`) must be stated plainly in the README and in code comments. Shipping the storage without the semantics is acceptable only when it is impossible to mistake for working.
597
+ - **all agents (knowledge retrieval)**: `memory_search` executed (cwd-scoped to this repo); `knowledgebase_search` **NOT executed** (PG vector unavailable — `DATABASE_URL` not configured). Neither retried nor treated as a task failure.
@@ -136,10 +136,10 @@ All `memory-bank/**/*.md` files must have YAML frontmatter for search indexing.
136
136
 
137
137
  Scope comes before planning. Underspecified work enters through the `scope` agent; planning starts only once the request is narrowed.
138
138
 
139
- 1. **Scope first** — for an underspecified request, the front door is the `scope` agent (`.opencode/agents/scope.agent.md`). It runs grilling rounds against a single draft file, then writes a terminal spike document at `docs/spike-<feature>.md`.
140
- 2. **Hand the spike to research** — that spike document is the input `researcher.agent.md` expects; pass its path as the required spike argument.
139
+ 1. **Scope first** — for an underspecified request, the front door is the `scope` agent (`.opencode/agents/scope.md`). It runs grilling rounds against a single draft file, then writes a terminal spike document at `docs/spike-<feature>.md`.
140
+ 2. **Hand the spike to research** — that spike document is the input `researcher.md` expects; pass its path as the required spike argument.
141
141
  3. **Continue the pipeline** — after research (or directly, when no research is needed), the work continues to `implementer`, `architect`, or `coder`, following the recommended next step recorded in the spike.
142
- 4. **Deep planning is optional** — `plan.agent.md` remains available as an optional deep-planning mode for work that is already scoped. It is demoted in the default flow, not removed or deprecated.
142
+ 4. **Deep planning is optional** — `planner.md` remains available as an optional deep-planning mode for work that is already scoped. It is demoted in the default flow, not removed or deprecated.
143
143
 
144
144
  When scope runs, record the spike document in the memory bank (a task entry in `tasks/` and/or `activeContext.md`) before implementation planning begins, so the settled and deferred decisions survive a session reset.
145
145
 
@@ -1,11 +1,10 @@
1
1
  ---
2
2
  description: "System architecture and design specialist. Designs component architecture, data flow, module boundaries, and technical strategy. Produces architecture decision records and design documents."
3
- name: "Architect - System Design"
4
- permission:
5
- read: allow
6
- search: allow
7
- "memory-bank/*": allow
8
- "knowledgebase/*": allow
3
+ mode: all
4
+ permissions:
5
+ - { action: edit, resource: "*", effect: deny }
6
+ - { action: edit, resource: "*.md", effect: allow }
7
+ - { action: shell, resource: "*", effect: deny }
9
8
  ---
10
9
 
11
10
  # Architect - System Design
@@ -1,13 +1,9 @@
1
1
  ---
2
2
  description: "Production code implementation specialist. Writes clean, maintainable, well-tested code following project conventions. Implements features, fixes bugs, and refactors existing code."
3
- name: "Coder - Implementation"
4
- permission:
5
- read: "allow"
6
- search: "allow"
7
- edit: "allow"
8
- execute: "allow"
9
- "memory-bank/*": allow
10
- "knowledgebase/*": allow
3
+ mode: all
4
+ permissions:
5
+ - { action: edit, resource: "*", effect: allow }
6
+ - { action: shell, resource: "*", effect: allow }
11
7
  ---
12
8
 
13
9
  # Coder - Implementation
@@ -1,14 +1,9 @@
1
1
  ---
2
2
  description: "Deployment and release engineering specialist. Handles CI/CD configuration, deployment scripts, release management, infrastructure as code, and environment setup."
3
- name: "Deployer - Release Engineering"
4
- permission:
5
- read: allow
6
- search: allow
7
- edit: allow
8
- execute: allow
9
- "github/*": allow
10
- "memory-bank/*": allow
11
- "knowledgebase/*": allow
3
+ mode: all
4
+ permissions:
5
+ - { action: edit, resource: "*", effect: allow }
6
+ - { action: shell, resource: "*", effect: allow }
12
7
  ---
13
8
 
14
9
  # Deployer - Release Engineering
@@ -1,11 +1,10 @@
1
1
  ---
2
2
  description: "UI/UX design specialist. Handles component layout, visual styling, responsive design, design systems, and user experience considerations."
3
- name: "Designer - UI/UX"
4
- permission:
5
- read: "allow"
6
- search: "allow"
7
- "memory-bank/*": allow
8
- "knowledgebase/*": allow
3
+ mode: all
4
+ permissions:
5
+ - { action: edit, resource: "*", effect: deny }
6
+ - { action: edit, resource: "*.md", effect: allow }
7
+ - { action: shell, resource: "*", effect: deny }
9
8
  ---
10
9
 
11
10
  # Designer - UI/UX
@@ -1,12 +1,9 @@
1
1
  ---
2
2
  description: "Browser debugging and exploration specialist. Inspects pages, analyzes network, takes screenshots, and investigates UI behavior using Chrome DevTools. Read-only — no code or test creation."
3
- name: "E2E Tester - Browser Automation"
4
- permission:
5
- read: allow
6
- search: allow
7
- "chrome-devtools/*": allow
8
- "memory-bank/*": allow
9
- "knowledgebase/*": allow
3
+ mode: all
4
+ permissions:
5
+ - { action: edit, resource: "*", effect: deny }
6
+ - { action: shell, resource: "*", effect: deny }
10
7
  ---
11
8
 
12
9
  # E2E Tester - Browser Automation
@@ -1,13 +1,9 @@
1
1
  ---
2
2
  description: "Implementation planning specialist. Translates architecture and design documents into detailed, actionable implementation plans with task breakdowns, file-level specifications, and execution ordering."
3
- name: "Implementer - Implementation Planning"
4
- permission:
5
- read: allow
6
- search: allow
7
- edit: allow
8
- execute: allow
9
- "memory-bank/*": allow
10
- "knowledgebase/*": allow
3
+ mode: all
4
+ permissions:
5
+ - { action: edit, resource: "*", effect: allow }
6
+ - { action: shell, resource: "*", effect: allow }
11
7
  ---
12
8
 
13
9
  # Implementer - Implementation Planning
@@ -1,13 +1,10 @@
1
1
  ---
2
2
  description: "Stripped-down feature pipeline orchestrator that runs implementer, designer, coder, and tracker sequentially. Bootstraps architecture context, supports step-by-step confirmation, logs progress, and persists lessons learned."
3
- name: "Feature Pipeline"
4
- permission:
5
- search: allow
6
- read: allow
7
- agent: allow
8
- todo: allow
9
- "memory-bank/*": allow
10
- "knowledgebase/*": allow
3
+ mode: primary
4
+ permissions:
5
+ - { action: edit, resource: "*", effect: deny }
6
+ - { action: edit, resource: "*.md", effect: allow }
7
+ - { action: shell, resource: "*", effect: allow }
11
8
  ---
12
9
 
13
10
  # Feature Pipeline
@@ -26,10 +23,10 @@ You are a lightweight orchestration agent that runs a fixed sequential pipeline:
26
23
 
27
24
  | Step | Role | Agent File | subagent_type | Purpose |
28
25
  |---|---|---|---|---|---|
29
- | 1 | implementer | `implementer.agent.md` | `implementer` | Translate architecture/design into detailed implementation plans |
30
- | 2 | designer | `designer.agent.md` | `designer` | UI/UX design specs, component layout — no code |
31
- | 3 | coder | `coder.agent.md` | `coder` | Write production code, implement features |
32
- | 4 | tracker | `tracker.agent.md` | `tracker` | Document completed work to `docs/tracker-log.md` |
26
+ | 1 | implementer | `implementer.md` | `implementer` | Translate architecture/design into detailed implementation plans |
27
+ | 2 | designer | `designer.md` | `designer` | UI/UX design specs, component layout — no code |
28
+ | 3 | coder | `coder.md` | `coder` | Write production code, implement features |
29
+ | 4 | tracker | `tracker.md` | `tracker` | Document completed work to `docs/tracker-log.md` |
33
30
 
34
31
  ## Workflow
35
32
 
@@ -40,12 +37,12 @@ Delegate bootstrap checks to a sub-agent. Do NOT read or check any files yoursel
40
37
  Invoke a sub-agent (use `subagent_type "implementer"`) to check and bootstrap the project:
41
38
 
42
39
  ```
43
- This phase must be performed as the agent "Implementer - Implementation Planning" defined in ".opencode/agents/implementer.agent.md".
40
+ This phase must be performed as the agent "Implementer - Implementation Planning" defined in ".opencode/agents/implementer.md".
44
41
 
45
42
  BOOTSTRAP CONTEXT - Check and initialize project scaffolding:
46
43
 
47
44
  IMPORTANT:
48
- - Read and apply the entire .agent.md spec (tools, constraints, quality standards).
45
+ - Read and apply the entire agent spec file (tools, constraints, quality standards).
49
46
  - Base path: "{basePath}".
50
47
  - Check if `docs/.architecture-context.md` exists with real content.
51
48
  - If missing or template-only, run the architecture-blueprint-generator skill by reading ".agents/skills/architecture-blueprint-generator/SKILL.md" and following its instructions to analyze the codebase and generate architecture context.
@@ -96,7 +93,7 @@ For each step:
96
93
  This phase must be performed as the agent "{agent_name}" defined in ".opencode/agents/{agent_file}".
97
94
 
98
95
  IMPORTANT:
99
- - Read and apply the entire .agent.md spec (tools, constraints, quality standards).
96
+ - Read and apply the entire agent spec file (tools, constraints, quality standards).
100
97
  - Work on "{work_unit}" with base path: "{basePath}".
101
98
  - Perform the necessary reads/writes under this base path.
102
99
  - Previous step context: {previous_step_summary}
@@ -129,10 +126,10 @@ When the pipeline reaches the "coder" step and the latest implementer plan has p
129
126
  b. Log: `"Batch {letter}: launching {N} parallel coder tasks — {task_ids}"`
130
127
  c. Launch **one Task tool invocation per task**, all concurrently, using `subagent_type "coder"`:
131
128
  ```
132
- This phase must be performed as the agent "Coder - Implementation" defined in ".opencode/agents/coder.agent.md".
129
+ This phase must be performed as the agent "Coder - Implementation" defined in ".opencode/agents/coder.md".
133
130
 
134
131
  IMPORTANT:
135
- - Read and apply the entire .agent.md spec (tools, constraints, quality standards).
132
+ - Read and apply the entire agent spec file (tools, constraints, quality standards).
136
133
  - Work on "Implement task {TASK_ID}: {Description} from plan /plan/{filename}" with base path: "{basePath}".
137
134
  - Perform the necessary reads/writes under this base path.
138
135
  - Previous step context: {previous_step_summary}
@@ -199,12 +196,12 @@ After every pipeline (or at the user's request), delegate to a sub-agent to pers
199
196
  Invoke the tracker (use `subagent_type "tracker"`) with the pipeline context:
200
197
 
201
198
  ```
202
- This phase must be performed as the agent "Tracker - Documentation Recorder" defined in ".opencode/agents/tracker.agent.md".
199
+ This phase must be performed as the agent "Tracker - Documentation Recorder" defined in ".opencode/agents/tracker.md".
203
200
 
204
201
  PERSIST LESSONS - Record pipeline knowledge:
205
202
 
206
203
  IMPORTANT:
207
- - Read and apply the entire .agent.md spec.
204
+ - Read and apply the entire agent spec file.
208
205
  - Base path: "{basePath}".
209
206
  - Read the orchestrator log at "docs/.orchestrator-log.md" for the full pipeline record.
210
207
  - Append a new "Session" entry to ".agents/instructions/learned-knowledge.instructions.md" with:
@@ -1,18 +1,10 @@
1
1
  ---
2
2
  description: "Master orchestration agent that dynamically builds and executes multi-step development pipelines. Analyzes user requests, selects the right sub-agents, delegates work with context, and tracks progress through a shared log. Supports both auto-execute and step-by-step confirmation modes."
3
- name: "Orchestrator - Multi-Agent Workflow"
4
- permission:
5
- search: allow
6
- read: allow
7
- agent: allow
8
- web: allow
9
- todo: allow
10
- "ddg-search/*": allow
11
- "context7/*": allow
12
- "github/*": allow
13
- "chrome-devtools/*": allow
14
- "memory-bank/*": allow
15
- "knowledgebase/*": allow
3
+ mode: primary
4
+ permissions:
5
+ - { action: edit, resource: "*", effect: deny }
6
+ - { action: edit, resource: "*.md", effect: allow }
7
+ - { action: shell, resource: "*", effect: allow }
16
8
  ---
17
9
 
18
10
  # Orchestrator - Multi-Agent Workflow
@@ -31,17 +23,17 @@ You are a master orchestration agent that coordinates specialized sub-agents to
31
23
 
32
24
  | Role | Agent File | subagent_type | Typical Tools | When to Deploy |
33
25
  |---|---|---|---|---|
34
- | scope | `scope.agent.md` | `scope` | read, search, edit, skill, question (no `execute` — never builds or runs anything) | Underspecified request, vague or unmeasurable success criteria, unknown boundaries, or an explicit request to narrow scope; runs the scoping interview only — never designs or builds |
35
- | researcher | `researcher.agent.md` | `researcher` | read, search, web, ddg-search/*, context7/* (read-only — no edit, no execute) | Technical unknowns, library evaluation, spike investigation |
36
- | architect | `architect.agent.md` | `architect` | read, search (no edit — design docs only) | System design, component architecture, data flow planning |
37
- | implementer | `implementer.agent.md` | `implementer` | read, search, edit, execute | Translating plans into actionable implementation steps |
38
- | designer | `designer.agent.md` | `designer` | read, search (no edit — design specs only) | UI/UX design, component layout, styling specs |
39
- | coder | `coder.agent.md` | `coder` | read, search, edit, execute | Writing production code, implementing features |
40
- | unit-tester | `unit-tester.agent.md` | `unit-tester` | read, search, edit, execute (test files only — *.spec.ts, *.test.ts) | Unit tests, integration tests, test coverage |
41
- | e2e-tester | `e2e-tester.agent.md` | `e2e-tester` | read, search, chrome-devtools/* | Debugging, exploration, page inspection via Chrome DevTools |
42
- | reviewer | `reviewer.agent.md` | `reviewer` | read, search, github/* | Code review, security audit, quality gates |
43
- | deployer | `deployer.agent.md` | `deployer` | read, search, edit, execute, github/* | CI/CD configuration, deployment scripts, release management |
44
- | tracker | `tracker.agent.md` | `tracker` | read, search | Doc recording — runs after pipeline to log finished work to docs/tracker-log.md |
26
+ | scope | `scope.md` | `scope` | read, search, edit, skill, question (no `execute` — never builds or runs anything) | Underspecified request, vague or unmeasurable success criteria, unknown boundaries, or an explicit request to narrow scope; runs the scoping interview only — never designs or builds |
27
+ | researcher | `researcher.md` | `researcher` | read, search, web, ddg-search/*, context7/* (read-only — no edit, no execute) | Technical unknowns, library evaluation, spike investigation |
28
+ | architect | `architect.md` | `architect` | read, search (no edit — design docs only) | System design, component architecture, data flow planning |
29
+ | implementer | `implementer.md` | `implementer` | read, search, edit, execute | Translating plans into actionable implementation steps |
30
+ | designer | `designer.md` | `designer` | read, search (no edit — design specs only) | UI/UX design, component layout, styling specs |
31
+ | coder | `coder.md` | `coder` | read, search, edit, execute | Writing production code, implementing features |
32
+ | unit-tester | `unit-tester.md` | `unit-tester` | read, search, edit, execute (test files only — *.spec.ts, *.test.ts) | Unit tests, integration tests, test coverage |
33
+ | e2e-tester | `e2e-tester.md` | `e2e-tester` | read, search, chrome-devtools/* | Debugging, exploration, page inspection via Chrome DevTools |
34
+ | reviewer | `reviewer.md` | `reviewer` | read, search, github/* | Code review, security audit, quality gates |
35
+ | deployer | `deployer.md` | `deployer` | read, search, edit, execute, github/* | CI/CD configuration, deployment scripts, release management |
36
+ | tracker | `tracker.md` | `tracker` | read, search | Doc recording — runs after pipeline to log finished work to docs/tracker-log.md |
45
37
 
46
38
  ## Workflow
47
39
 
@@ -52,12 +44,12 @@ Delegate bootstrap checks to a sub-agent. Do NOT read or check any files yoursel
52
44
  Invoke a sub-agent (use `subagent_type "implementer"`) to check and bootstrap the project:
53
45
 
54
46
  ```
55
- This phase must be performed as the agent "Implementer - Implementation Planning" defined in ".opencode/agents/implementer.agent.md".
47
+ This phase must be performed as the agent "Implementer - Implementation Planning" defined in ".opencode/agents/implementer.md".
56
48
 
57
49
  BOOTSTRAP CONTEXT - Check and initialize project scaffolding:
58
50
 
59
51
  IMPORTANT:
60
- - Read and apply the entire .agent.md spec (tools, constraints, quality standards).
52
+ - Read and apply the entire agent spec file (tools, constraints, quality standards).
61
53
  - Base path: "{basePath}".
62
54
  - Check if `docs/.architecture-context.md` exists with real content.
63
55
  - If missing or template-only, run the architecture-blueprint-generator skill by reading ".agents/skills/architecture-blueprint-generator/SKILL.md" and following its instructions to analyze the codebase and generate architecture context.
@@ -137,7 +129,7 @@ For every scope round, the orchestrator must:
137
129
  One delegation is one round. Delegate the round with these inputs:
138
130
 
139
131
  ```text
140
- Agent: "Scope - Feature Scoping" (.opencode/agents/scope.agent.md)
132
+ Agent: "Scope - Feature Scoping" (.opencode/agents/scope.md)
141
133
  work_unit: {feature}
142
134
  basePath: {basePath}
143
135
  draftPath: docs/spike-<feature>.draft.md
@@ -180,7 +172,7 @@ For each step in the pipeline:
180
172
  This phase must be performed as the agent "{agent_name}" defined in ".opencode/agents/{agent_file}".
181
173
 
182
174
  IMPORTANT:
183
- - Read and apply the entire .agent.md spec (tools, constraints, quality standards).
175
+ - Read and apply the entire agent spec file (tools, constraints, quality standards).
184
176
  - Work on "{work_unit}" with base path: "{basePath}".
185
177
  - Perform the necessary reads/writes under this base path.
186
178
  - Previous step context: {previous_step_summary}
@@ -211,10 +203,10 @@ When the pipeline reaches the "coder" step and the implementer's summary include
211
203
  b. Log: `"Batch {letter}: launching {N} parallel coder tasks — {task_ids}"`
212
204
  c. Launch **one Task tool invocation per task**, all concurrently, using `subagent_type "coder"`:
213
205
  ```
214
- This phase must be performed as the agent "Coder - Implementation" defined in ".opencode/agents/coder.agent.md".
206
+ This phase must be performed as the agent "Coder - Implementation" defined in ".opencode/agents/coder.md".
215
207
 
216
208
  IMPORTANT:
217
- - Read and apply the entire .agent.md spec (tools, constraints, quality standards).
209
+ - Read and apply the entire agent spec file (tools, constraints, quality standards).
218
210
  - Work on "Implement task {TASK_ID}: {Description} from plan /plan/{filename}" with base path: "{basePath}".
219
211
  - Perform the necessary reads/writes under this base path.
220
212
  - Previous step context: {previous_step_summary}
@@ -239,10 +231,10 @@ After the pipeline finishes executing (all steps complete or a required step fai
239
231
  1. Invoke the tracker using the Task tool with subagent_type "tracker":
240
232
 
241
233
  ```
242
- This phase must be performed as the agent "Tracker - Documentation Recorder" defined in ".opencode/agents/tracker.agent.md".
234
+ This phase must be performed as the agent "Tracker - Documentation Recorder" defined in ".opencode/agents/tracker.md".
243
235
 
244
236
  IMPORTANT:
245
- - Read and apply the entire .agent.md spec (tools, constraints, quality standards).
237
+ - Read and apply the entire agent spec file (tools, constraints, quality standards).
246
238
  - Base path: "{basePath}".
247
239
  - Read the orchestrator log at "docs/.orchestrator-log.md" for the full pipeline record.
248
240
  - Read any artifact files referenced in the log.
@@ -300,12 +292,12 @@ After every pipeline (or at the user's request), delegate to a sub-agent to pers
300
292
  Invoke the tracker (use `subagent_type "tracker"`) with the pipeline context:
301
293
 
302
294
  ```
303
- This phase must be performed as the agent "Tracker - Documentation Recorder" defined in ".opencode/agents/tracker.agent.md".
295
+ This phase must be performed as the agent "Tracker - Documentation Recorder" defined in ".opencode/agents/tracker.md".
304
296
 
305
297
  PERSIST LESSONS - Record pipeline knowledge:
306
298
 
307
299
  IMPORTANT:
308
- - Read and apply the entire .agent.md spec.
300
+ - Read and apply the entire agent spec file.
309
301
  - Base path: "{basePath}".
310
302
  - Read the orchestrator log at "docs/.orchestrator-log.md" for the full pipeline record.
311
303
  - Append a new "Session" entry to ".agents/instructions/learned-knowledge.instructions.md" with: