@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.
- package/.agents/config/README.md +2 -2
- package/.agents/instructions/agent.instructions.md +16 -16
- package/.agents/instructions/context7.instructions.md +40 -0
- package/.agents/instructions/learned-knowledge.instructions.md +18 -0
- package/.agents/instructions/memory-bank.instructions.md +3 -3
- package/.opencode/agents/{architect.agent.md → architect.md} +5 -6
- package/.opencode/agents/{coder.agent.md → coder.md} +4 -8
- package/.opencode/agents/{deployer.agent.md → deployer.md} +4 -9
- package/.opencode/agents/{designer.agent.md → designer.md} +5 -6
- package/.opencode/agents/{e2e-tester.agent.md → e2e-tester.md} +4 -7
- package/.opencode/agents/{implementer.agent.md → implementer.md} +4 -8
- package/.opencode/agents/orchestrator/{feature-pipeline.agent.md → feature-pipeline.md} +16 -19
- package/.opencode/agents/orchestrator/{orchestrator.agent.md → orchestrator.md} +26 -34
- package/.opencode/agents/orchestrator/{tdd-orchestrator.agent.md → tdd-orchestrator.md} +26 -29
- package/.opencode/agents/{plan.agent.md → planner.md} +4 -9
- package/.opencode/agents/{researcher.agent.md → researcher.md} +5 -9
- package/.opencode/agents/{reviewer.agent.md → reviewer.md} +5 -8
- package/.opencode/agents/{scope.agent.md → scope.md} +5 -9
- package/.opencode/agents/{tracker.agent.md → tracker.md} +5 -9
- package/.opencode/agents/{unit-tester.agent.md → unit-tester.md} +4 -8
- package/.prettierignore +26 -0
- package/AGENTS.md +10 -6
- package/README.md +36 -12
- package/opencode.mcp.example.json +13 -12
- package/package.json +3 -1
- package/scripts/sync-unit.test.js +551 -12
- package/scripts/sync.js +296 -13
package/.agents/config/README.md
CHANGED
|
@@ -27,10 +27,10 @@ the second calls `grilling` and `domain-modeling` together.
|
|
|
27
27
|
|
|
28
28
|
## Scope agent
|
|
29
29
|
|
|
30
|
-
`.opencode/agents/scope.
|
|
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.
|
|
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: "
|
|
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.
|
|
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`
|
|
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 `.
|
|
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 `.
|
|
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
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
|
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 `.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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 `.
|
|
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.
|
|
140
|
-
2. **Hand the spike to research** — that spike document is the input `researcher.
|
|
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** — `
|
|
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
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
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
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
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
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
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
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
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
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
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
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
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
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
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.
|
|
30
|
-
| 2 | designer | `designer.
|
|
31
|
-
| 3 | coder | `coder.
|
|
32
|
-
| 4 | tracker | `tracker.
|
|
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.
|
|
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
|
|
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
|
|
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.
|
|
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
|
|
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.
|
|
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
|
|
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
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
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.
|
|
35
|
-
| researcher | `researcher.
|
|
36
|
-
| architect | `architect.
|
|
37
|
-
| implementer | `implementer.
|
|
38
|
-
| designer | `designer.
|
|
39
|
-
| coder | `coder.
|
|
40
|
-
| unit-tester | `unit-tester.
|
|
41
|
-
| e2e-tester | `e2e-tester.
|
|
42
|
-
| reviewer | `reviewer.
|
|
43
|
-
| deployer | `deployer.
|
|
44
|
-
| tracker | `tracker.
|
|
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.
|
|
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
|
|
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.
|
|
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
|
|
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.
|
|
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
|
|
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.
|
|
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
|
|
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.
|
|
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
|
|
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:
|