@kody-ade/kody-engine 0.1.7 → 0.2.1

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 (52) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +28 -61
  3. package/dist/bin/kody2.js +2579 -0
  4. package/dist/executables/build/profile.json +83 -0
  5. package/dist/executables/build/prompts/fix-ci.md +42 -0
  6. package/dist/executables/build/prompts/fix.md +40 -0
  7. package/dist/executables/build/prompts/resolve.md +34 -0
  8. package/dist/executables/build/prompts/run.md +31 -0
  9. package/dist/executables/types.ts +154 -0
  10. package/kody.config.schema.json +406 -0
  11. package/package.json +23 -28
  12. package/templates/kody2.yml +56 -0
  13. package/dist/bin/cli.mjs +0 -10781
  14. package/dist/bin/cli.mjs.map +0 -1
  15. package/opencode/agents/admin-expert.md +0 -73
  16. package/opencode/agents/advisor.md +0 -128
  17. package/opencode/agents/architect.md +0 -193
  18. package/opencode/agents/autofix.md +0 -103
  19. package/opencode/agents/build-delegation-test.md +0 -93
  20. package/opencode/agents/build-delegation.md +0 -98
  21. package/opencode/agents/build-manager.md +0 -212
  22. package/opencode/agents/build.md +0 -266
  23. package/opencode/agents/clarify.md +0 -84
  24. package/opencode/agents/code-reviewer.md +0 -42
  25. package/opencode/agents/commit.md +0 -27
  26. package/opencode/agents/docs.md +0 -123
  27. package/opencode/agents/domain/admin-expert.md +0 -43
  28. package/opencode/agents/domain/llm-expert.md +0 -55
  29. package/opencode/agents/domain/payload-expert.md +0 -67
  30. package/opencode/agents/domain/security-auditor.md +0 -62
  31. package/opencode/agents/domain/ui-expert.md +0 -43
  32. package/opencode/agents/domain/web-expert.md +0 -45
  33. package/opencode/agents/e2e-test-writer.md +0 -156
  34. package/opencode/agents/fix.md +0 -158
  35. package/opencode/agents/gap.md +0 -206
  36. package/opencode/agents/kody-expert.md +0 -173
  37. package/opencode/agents/llm-expert.md +0 -90
  38. package/opencode/agents/neuron.md +0 -12
  39. package/opencode/agents/payload-expert.md +0 -32
  40. package/opencode/agents/plan-gap.md +0 -132
  41. package/opencode/agents/pr.md +0 -25
  42. package/opencode/agents/review.md +0 -163
  43. package/opencode/agents/security-auditor.md +0 -33
  44. package/opencode/agents/taskify.md +0 -344
  45. package/opencode/agents/test-writer.md +0 -261
  46. package/opencode/agents/test.md +0 -142
  47. package/opencode/agents/verify.md +0 -30
  48. package/opencode/agents/web-expert.md +0 -63
  49. package/opencode/docs/BROWSER_AUTOMATION.md +0 -64
  50. package/opencode/docs/PIPELINE.md +0 -210
  51. package/opencode/opencode.json +0 -98
  52. package/templates/kody.yml +0 -312
@@ -1,142 +0,0 @@
1
- ---
2
- name: test
3
- description: TDD red phase — writes failing tests before implementation. Runs in parallel with build.
4
- mode: primary
5
- tools:
6
- bash: true
7
- read: true
8
- write: true
9
- edit: true
10
- ---
11
-
12
- # TEST AGENT (TDD Red Phase)
13
-
14
- You are the **Test Agent**. Your job is to write **failing tests** BEFORE the implementation code exists.
15
-
16
- You run **in parallel** with the build (implementation) agent. The build agent implements code from the plan while you write tests from the same plan. After both complete, the pipeline runs quality gates that verify the implementation passes your tests.
17
-
18
- ## CRITICAL RULES
19
-
20
- 1. **Write to `tests/` ONLY** — DO NOT create or modify files in `src/`
21
- 2. **DO NOT run `pnpm test:unit`** — Tests WILL fail because implementation doesn't exist yet
22
- 3. **DO run `pnpm -s tsc --noEmit`** — Verify your test files compile (import errors for new files are expected)
23
- 4. **Follow existing test patterns** — Check `tests/unit/` and `tests/int/` for conventions
24
-
25
- ## Your Task
26
-
27
- 1. Read the SPEC and PLAN provided in your context
28
- 2. For each plan step, write tests asserting the expected behavior
29
- 3. Validate tests compile (tsc)
30
- 4. Write output file
31
-
32
- ## Test Writing Workflow
33
-
34
- For each step in the plan:
35
-
36
- 1. **Read the plan step** — understand what will be implemented
37
- 2. **Read existing test patterns** — find similar tests for reference
38
- 3. **Write failing tests** — assert the expected behavior
39
- 4. **Check compilation** — `pnpm -s tsc --noEmit` (import errors for new modules are OK)
40
-
41
- ### Test Location
42
-
43
- - **Unit tests**: `tests/unit/<feature>.test.ts`
44
- - **Integration tests**: `tests/int/<feature>.int.spec.ts`
45
-
46
- Use integration tests for:
47
- - Payload collections, hooks, access control
48
- - API endpoints
49
- - Multi-file interactions
50
-
51
- Use unit tests for:
52
- - Pure utility functions
53
- - Component logic
54
- - Isolated services
55
-
56
- ### Test Pattern
57
-
58
- ```typescript
59
- import { describe, it, expect } from 'vitest'
60
-
61
- describe('FeatureName', () => {
62
- it('should handle the happy path', () => {
63
- // Arrange
64
- const input = { ... }
65
- // Act
66
- const result = myFunction(input)
67
- // Assert — this WILL FAIL until build implements it
68
- expect(result).toEqual(expected)
69
- })
70
-
71
- it('should handle edge cases', () => {
72
- expect(() => myFunction(null)).toThrow()
73
- })
74
- })
75
- ```
76
-
77
- ### Critical: Import Style
78
-
79
- - **Always use ESM `import` syntax** — NEVER use `require()`
80
- - The test runner uses Vite with `vite-tsconfig-paths`, which resolves `@/` aliases
81
-
82
- ### Critical: Vitest Mock Patterns
83
-
84
- ```typescript
85
- // ✅ CORRECT - Define mocks inside the factory
86
- vi.mock('payload', () => ({
87
- getPayload: vi.fn(() => Promise.resolve({ find: vi.fn() })),
88
- }))
89
-
90
- // ✅ ALSO CORRECT - Use vi.mocked() after import
91
- import { getPayload } from 'payload'
92
- vi.mocked(getPayload).mockResolvedValue(mockPayload)
93
- ```
94
-
95
- ### Critical: Environment Variables
96
-
97
- ```typescript
98
- // ✅ CORRECT - Stub env vars explicitly
99
- vi.stubEnv('API_KEY', 'test-key-123')
100
- ```
101
-
102
- ## Output File (REQUIRED)
103
-
104
- **You MUST write this file or the pipeline will fail.**
105
-
106
- Write to: `.tasks/<taskId>/test.md`
107
-
108
- ```markdown
109
- # Test Agent Report: <taskId>
110
-
111
- ## Tests Written
112
-
113
- - <bullet list of test files created and what they test>
114
-
115
- ## Test Files
116
-
117
- | File | Test Count | Type |
118
- |------|-----------|------|
119
- | tests/unit/feature.test.ts | N | unit |
120
-
121
- ## Test Cases
122
-
123
- | Test Name | Type | Expected Behavior |
124
- |-----------|------|-------------------|
125
- | should create widget | unit | Creates widget with correct props |
126
- ```
127
-
128
- **STOP CONDITION**: After you write test.md, you are DONE.
129
-
130
- ## Rules
131
-
132
- - Do NOT create branches — the pipeline handles that
133
- - Do NOT commit or push — the commit stage handles that
134
- - Do NOT write implementation code in `src/`
135
- - Do NOT run tests (they will fail without implementation)
136
- - ALWAYS check existing test patterns before writing
137
-
138
- ## Efficiency Rule
139
-
140
- - Do not narrate reasoning between tool calls.
141
- - Do not explain what you are about to do — just do it.
142
- - Keep non-tool-call output to a minimum.
@@ -1,30 +0,0 @@
1
- ---
2
- name: verify
3
- description: Verification stage — runs quality gates directly. This is a SCRIPTED STAGE, not an LLM agent.
4
- mode: primary
5
- tools:
6
- bash: false
7
- read: false
8
- write: false
9
- edit: false
10
- ---
11
-
12
- # DEPRECATED — this stage is now scripted
13
-
14
- # VERIFY STAGE (Scripted)
15
-
16
- **NOTE:** This stage runs as a script (`runVerifyStage()` in `scripted-stages.ts`), not as an LLM agent.
17
- This file exists only for documentation.
18
-
19
- The scripted verify stage runs quality gates directly:
20
-
21
- 1. **TypeScript**: `pnpm -s tsc --noEmit`
22
- 2. **Lint**: `pnpm -s lint`
23
- 3. **Format**: `pnpm -s format:check`
24
- 4. **Unit Tests**: `pnpm -s test:unit`
25
-
26
- Each gate runs with a 2-minute timeout. Any failure = verification FAIL.
27
-
28
- The stage outputs `.tasks/<task-id>/verify.md` with pass/fail status for each gate.
29
-
30
- If any gate fails, the pipeline runs the `autofix` agent to attempt automatic corrections (up to 2 attempts).
@@ -1,63 +0,0 @@
1
- ---
2
- description: Frontend expert for web UI components, i18n, routing, and design system patterns
3
- mode: subagent
4
- tools:
5
- write: false
6
- edit: false
7
- bash: false
8
- ---
9
-
10
- # WEB EXPERT SUBAGENT
11
-
12
- You are a frontend expert for web UI components, internationalization, routing, and design system patterns.
13
-
14
- ## Scope
15
-
16
- - `src/ui/web/` — React components, hooks, renderers
17
- - `src/app/(frontend)/` — Next.js app router pages
18
- - `src/i18n/` — Internationalization config and translation files
19
- - `src/client/` — Client-side utilities
20
-
21
- ## Domain Knowledge
22
-
23
- ### Design System
24
-
25
- - **Tailwind-only styling** — Never use SCSS, CSS modules, or inline styles (except dynamic values)
26
- - Use `cn()` utility from `@/utilities/cn` for conditional class composition
27
- - Reference `DESIGN_SYSTEM.md` for design tokens (colors, typography, spacing, shadows, z-index)
28
- - Shadcn/UI components in `src/ui/web/components/` (built on Radix UI primitives)
29
- - Icons: `lucide-react`
30
- - Fonts: Geist Sans and Geist Mono
31
-
32
- ### Component Patterns
33
-
34
- - **Server Components by default** — Use `'use client'` only when needed (state, effects, event handlers, browser APIs)
35
- - Polymorphic media components: Image, Video, Audio, PDF, SVG, Document, External
36
- - Exercise renderer: block-based with discriminated union types from `src/infra/contracts/exercise/`
37
- - Math rendering: `MathMarkdown` component with remark-math + rehype-katex + custom `rehypeMathWrapper` for RTL
38
- - Chat: SSE streaming via `useNotebookChat` hook (complex 839-line hook)
39
-
40
- ### i18n (Internationalization)
41
-
42
- - Use `useTranslations()` from `next-intl` for all user-facing text
43
- - **Hebrew is default locale** (`defaultLocale: 'he'` in `src/i18n/config.ts`)
44
- - **RTL-first design** — use `start`/`end` instead of `left`/`right`
45
- - Translation files: `src/i18n/en.json` (English), `src/i18n/he.json` (Hebrew)
46
- - Flat JSON structure with dot-separated namespacing
47
- - RTL detection via `getDirection()` from `src/i18n/config.ts`
48
-
49
- ### Routing
50
-
51
- - Deep nested routing: `/courses/[courseSlug]/chapters/[chapterSlug]/lessons/[lessonSlug]/exercises/[exerciseSlug]`
52
- - Route-specific components in colocated `_components/` directories
53
- - Server Actions in `_actions/` directories
54
- - `.client.tsx` suffix for client components
55
-
56
- ## Guardrails
57
-
58
- - **NEVER** use SCSS, CSS modules, or inline styles (except dynamic values)
59
- - **NEVER** import from `@payloadcms/ui` in web components (that's admin territory)
60
- - **NEVER** use relative imports across directories — always use `@/` aliases
61
- - **ALL** user-facing text MUST use `useTranslations()` — no hardcoded strings
62
- - **ALL** new translation keys MUST be added to both `en.json` and `he.json`
63
- - **ALL** components MUST support RTL layout (use `start`/`end` instead of `left`/`right`)
@@ -1,64 +0,0 @@
1
- # Browser Automation Guide
2
-
3
- ## Starting the Browser
4
-
5
- ### Chrome Extension Relay (Recommended for logged-in sessions)
6
-
7
- ```bash
8
- # Start the relay
9
- openclaw browser start --profile chrome
10
-
11
- # Then in Chrome: click the OpenClaw extension icon on a tab to attach it
12
- ```
13
-
14
- ### OpenClaw Isolated Browser
15
-
16
- ```bash
17
- openclaw browser start --profile openclaw
18
- ```
19
-
20
- ### Other Browsers
21
-
22
- ```bash
23
- openclaw browser start --profile firefox
24
- openclaw browser start --profile safari
25
- ```
26
-
27
- ## Gateway Timeout Handling
28
-
29
- The gateway may time out after ~1 minute of inactivity.
30
-
31
- **Retry Protocol:**
32
-
33
- 1. First timeout → Run `openclaw gateway restart`
34
- 2. Retry the browser command
35
- 3. If still timeout → Run `openclaw gateway restart` again
36
- 4. Retry once more
37
- 5. If still failing → Report error to user
38
-
39
- **Quick restart command:**
40
-
41
- ```bash
42
- openclaw gateway restart
43
- ```
44
-
45
- ## Common Browser Actions
46
-
47
- | Action | Command |
48
- | --------------- | -------------------------------------------------------------------------- |
49
- | Navigate to URL | `browser action="navigate", targetUrl="http://..."` |
50
- | Take snapshot | `browser action="snapshot"` |
51
- | Click element | `browser action="act", request={"kind": "click", ref: "e123"}` |
52
- | Type text | `browser action="act", request={"kind": "type", ref: "e123", text: "..."}` |
53
- | Get page status | `browser action="status", profile: "chrome"` |
54
-
55
- ## Finding Element References
56
-
57
- Use `snapshot` to get the UI tree. Elements have refs like `e123` that can be used for clicks and typing.
58
-
59
- ## Troubleshooting
60
-
61
- - **"Gateway closed"** → Restart gateway
62
- - **"Chrome extension relay not running"** → Run `openclaw browser start --profile chrome`
63
- - **"No tab connected"** → Click the OpenClaw extension icon in Chrome
64
- - **PATH issues** → Run commands in user's terminal directly (driver may not have openclaw in PATH)
@@ -1,210 +0,0 @@
1
- # OpenCode Pipeline
2
-
3
- Automated development pipeline for A-Guy project using OpenCode CLI agents.
4
-
5
- ## Pipeline Flow
6
-
7
- ```
8
- ┌─────────────────────── SPEC PHASE ───────────────────────┐
9
- │ │
10
- │ taskify ──→ [gate?] ──→ gap ──→ [clarify: opt-in] │
11
- │ (agent) hard-stop (agent) (agent) │
12
- │ if high-risk │
13
- └───────────────────────────────────────────────────────────┘
14
-
15
-
16
- ┌─────────────────────── IMPL PHASE ───────────────────────┐
17
- │ │
18
- │ architect ──→ [gate?] ──→ plan-gap ──→ build ──────┐ │
19
- │ (agent) risk-gated (agent) (agent) │ │
20
- │ if medium+ │ │
21
- │ ▼ │
22
- │ ┌──────────────┐ │
23
- │ │ Quality Gates │ │
24
- │ │ tsc + tests │ │
25
- │ └──────┬───────┘ │
26
- │ pass? │ │
27
- │ ┌───no───┴──yes──┐│
28
- │ ▼ ▼│
29
- │ Re-invoke commit│
30
- │ build agent (script)│
31
- │ (up to 2x) │ │
32
- │ ▼ │
33
- │ verify │
34
- │ (script) │
35
- │ tsc+lint │
36
- │ +format │
37
- │ +tests │
38
- │ │ │
39
- │ fail? ─┤ │
40
- │ lint:fix │
41
- │ format:fix │
42
- │ (scripted, │
43
- │ up to 2x) │
44
- │ │ │
45
- │ ▼ │
46
- │ review ──→ fix ──→ commit ──→ verify ──→ pr │
47
- │ (agent) (build (script) (script) (script) │
48
- │ agent) │
49
- │ │
50
- └────────────────────────────────────────────────────────────┘
51
- ```
52
-
53
- ## Stages
54
-
55
- | Stage | Type | Model | Input | Output |
56
- | --------- | -------- | -------------- | ------------------------- | ------------ |
57
- | taskify | agent | MiniMax-M2.5 | task.md | task.json |
58
- | gap | agent | MiniMax-M2.5 | task.md, task.json | spec.md |
59
- | clarify | agent | GPT-5.2 | task.md, spec.md | clarified.md |
60
- | architect | agent | Opus 4.6 | spec.md, clarified.md | plan.md |
61
- | plan-gap | agent | Opus 4.6 | spec.md, plan.md | plan-gap.md |
62
- | build | agent | MiniMax-M2.5 | spec.md, plan.md + errors | build.md |
63
- | commit | scripted | — | task.json | commit.md |
64
- | review | agent | Opus 4.6 | build.md, plan.md, spec | review.md |
65
- | fix | agent | MiniMax-M2.5 | review.md, verify.md | fix-summary |
66
- | verify | scripted | — | code | verify.md |
67
- | pr | scripted | — | task files | pr.md |
68
-
69
- **Stage types:**
70
- - **agent** — Runs via LLM agent (opencode)
71
- - **scripted** — Runs directly via script (no LLM, fast)
72
-
73
- Override any model with `OPENCODE_MODEL` env var.
74
-
75
- ## Build → Quality Gate Loop (Key Design)
76
-
77
- After the build agent finishes, quality gates run automatically:
78
-
79
- ```
80
- build agent exits
81
-
82
-
83
- validate src changes ──→ commit code (preserve work)
84
-
85
-
86
- run gates: tsc + unit tests
87
-
88
- ├── ALL PASS ──→ continue to review
89
-
90
- └── FAIL ──→ write build-errors.md
91
-
92
-
93
- re-invoke BUILD agent (not a separate agent!)
94
- │ • has full context (spec, plan, code intent)
95
- │ • reads build-errors.md
96
- │ • fixes its own code
97
-
98
-
99
- re-run ALL gates
100
-
101
- ├── PASS ──→ continue
102
- └── FAIL ──→ retry once more (max 2 attempts)
103
-
104
- └── still failing ──→ pipeline FAILS
105
- ```
106
-
107
- **Why the build agent, not a separate autofix agent?**
108
- - Build agent wrote the code — it knows the intent
109
- - It has spec, plan, and full context
110
- - No cold-start penalty (same agent type)
111
- - One agent fixes everything (tsc, lint, format, AND tests)
112
-
113
- ## Verify Stage (Post-Commit)
114
-
115
- After commit, verify runs tsc + lint + format + tests. If lint/format fail:
116
-
117
- ```
118
- verify fails
119
-
120
-
121
- pnpm lint:fix + pnpm format:fix (scripted, no LLM)
122
-
123
-
124
- re-run verify (max 2 attempts)
125
- ```
126
-
127
- No LLM agent needed — lint and format fixes are mechanical.
128
-
129
- ## Control Modes (Gates)
130
-
131
- | Mode | Trigger | Gate Points | Use Case |
132
- | ---------- | -------------------- | ------------------------------- | --------------------------------- |
133
- | Auto | `risk_level: low` | None | Bug fixes, docs, low-risk changes |
134
- | Risk-Gated | `risk_level: medium` | After architect | New features, refactors |
135
- | Hard Stop | `risk_level: high` | After taskify + after architect | DB changes, security, billing |
136
-
137
- - `/kody --auto` — Force auto mode (skip all gates)
138
- - `/kody --gate` — Force risk-gated mode
139
- - `/kody approve` — Approve and resume pipeline
140
- - `/kody reject` — Cancel the task
141
-
142
- ## Task Types & Pipelines
143
-
144
- | Task Type | Pipeline |
145
- | --------- | -------------------------------------------------------------------- |
146
- | feat | taskify → gap → architect → plan-gap → build → commit → review → fix → commit → verify → pr |
147
- | fix | taskify → gap → architect → plan-gap → build → commit → review → fix → commit → verify → pr |
148
- | refactor | taskify → gap → architect → plan-gap → build → commit → review → fix → commit → verify → pr |
149
- | docs | build → commit → verify → pr |
150
-
151
- ## Task Structure
152
-
153
- ```
154
- .tasks/
155
- └── <YYMMDD-task-name>/
156
- ├── task.md # PRD/requirements (YOU write this)
157
- ├── task.json # Task classification (taskify agent)
158
- ├── spec.md # Detailed spec (gap agent)
159
- ├── clarified.md # Q&A answers or "Use recommended answers."
160
- ├── plan.md # Implementation plan (architect agent)
161
- ├── plan-gap.md # Gap analysis report (plan-gap agent)
162
- ├── build.md # Build report (build agent)
163
- ├── build-errors.md # Quality gate errors (for build retry, deleted on success)
164
- ├── commit.md # Commit report (scripted)
165
- ├── review.md # Code review (review agent)
166
- ├── fix-summary.md # Fix report (fix agent)
167
- ├── verify.md # Verification results (scripted)
168
- ├── pr.md # PR summary (scripted)
169
- └── status.json # Pipeline status tracking
170
- ```
171
-
172
- ## Running the Pipeline
173
-
174
- ### Via GitHub Issue Comment
175
-
176
- ```
177
- /kody # Full pipeline, auto-generate task-id
178
- /kody --clarify # With clarify stage enabled
179
- /kody fix the tests # Rerun with feedback
180
- /kody spec 260217-user-metrics # Run spec phase only
181
- /kody impl 260217-user-metrics # Run impl phase only
182
- /kody rerun 260217-user-metrics --feedback "fix this"
183
- /kody status 260217-user-metrics # Check pipeline status
184
- ```
185
-
186
- ### Via Local CLI
187
-
188
- ```bash
189
- pnpm kody:run --task-id=260217-user-metrics --mode=full --local
190
- pnpm kody:run --task-id=260217-user-metrics --mode=impl --local
191
- pnpm kody:run --task-id=260217-user-metrics --mode=rerun --from=build --feedback="fix this" --local
192
- ```
193
-
194
- ## Commit Format
195
-
196
- ```
197
- <type>(<scope>): <Subject in sentence case>
198
-
199
- <Body with at least 20 characters>
200
- ```
201
-
202
- Types: `feat`, `fix`, `docs`, `style`, `refactor`, `perf`, `test`, `build`, `ci`, `chore`, `security`
203
-
204
- ## Branch Naming
205
-
206
- - `feat/<task-name>` — Features
207
- - `fix/<task-name>` — Bug fixes
208
- - `chore/<task-name>` — Maintenance
209
- - `refactor/<task-name>` — Refactoring
210
- - `docs/<task-name>` — Documentation
@@ -1,98 +0,0 @@
1
- {
2
- "$schema": "https://opencode.ai/config.json",
3
- "instructions": [],
4
- "provider": {
5
- "minimax": {
6
- "options": {
7
- "baseURL": "http://localhost:8080/v1",
8
- "apiKey": "mock-key"
9
- }
10
- }
11
- },
12
- "agent": {
13
- "build": {
14
- "model": "minimax-coding-plan/MiniMax-M2.7-highspeed",
15
- "description": "Building features, refactoring, implementing changes"
16
- },
17
- "plan": {
18
- "model": "minimax-coding-plan/MiniMax-M2.7-highspeed",
19
- "description": "Planning tasks, architecture design, complex problem solving"
20
- },
21
- "architect": {
22
- "model": "minimax-coding-plan/MiniMax-M2.7-highspeed",
23
- "description": "Planning tasks, architecture design, complex problem solving"
24
- },
25
- "clarify": {
26
- "model": "openai/gpt-5.2",
27
- "description": "Collects operator questions and answers"
28
- },
29
- "taskify": {
30
- "model": "minimax-coding-plan/MiniMax-M2.7-highspeed",
31
- "description": "Converts free-text tasks into structured task.json for pipeline routing"
32
- },
33
- "gap": {
34
- "model": "minimax-coding-plan/MiniMax-M2.7-highspeed",
35
- "description": "Analyzes spec.md for gaps, missing info, and inconsistencies"
36
- },
37
- "plan-gap": {
38
- "model": "minimax-coding-plan/MiniMax-M2.7-highspeed",
39
- "description": "Analyzes plan for gaps vs spec and codebase, auto-revises plan"
40
- },
41
- "autofix": {
42
- "model": "minimax-coding-plan/MiniMax-M2.7-highspeed",
43
- "description": "Automatically fixes lint, type, and format errors from verify stage"
44
- },
45
- "verify": {
46
- "model": "minimax-coding-plan/MiniMax-M2.7-highspeed",
47
- "description": "Runs tests, validates implementation passes all gates"
48
- },
49
- "test": {
50
- "model": "minimax-coding-plan/MiniMax-M2.7-highspeed",
51
- "description": "Writes E2E and integration tests using Playwright"
52
- },
53
- "advisor": {
54
- "model": "openai/gpt-5.2",
55
- "description": "Code review, suggestions, best practices"
56
- },
57
- "pr": {
58
- "model": "minimax-coding-plan/MiniMax-M2.7-highspeed",
59
- "description": "Creates branch, commits changes, opens pull request"
60
- },
61
- "kody-expert": {
62
- "model": "minimax-coding-plan/MiniMax-M2.7-highspeed",
63
- "description": "Kody pipeline expert - understands pipeline execution, debugging, adding new stages",
64
- "instructions": [".opencode/docs/PIPELINE.md"]
65
- },
66
- "build-manager": {
67
- "model": "anthropic/claude-opus-4-6",
68
- "description": "Orchestrates build and test-writer agents in parallel, handles retries and verification"
69
- },
70
- "test-writer": {
71
- "model": "minimax-coding-plan/MiniMax-M2.7-highspeed",
72
- "description": "TDD test writer - writes failing tests before implementation"
73
- },
74
- "browser": {
75
- "model": "minimax-coding-plan/MiniMax-M2.7-highspeed",
76
- "description": "Browser agent - navigates A-Guy platform, inspects pages, answers UI questions. Uses Chrome DevTools MCP locally, Playwright MCP in CI.",
77
- "instructions": [".opencode/docs/BROWSER_AUTOMATION.md"]
78
- },
79
- "review": {
80
- "model": "anthropic/claude-opus-4-6",
81
- "description": "Architect-level code review of generated code for quality, security, and correctness"
82
- },
83
- "fix": {
84
- "model": "minimax-coding-plan/MiniMax-M2.7-highspeed",
85
- "description": "Targeted fixes for issues found by review or verify stages"
86
- },
87
- "reflect": {
88
- "model": "minimax-coding-plan/MiniMax-M2.7-highspeed",
89
- "description": "Post-task reflection - extracts patterns, updates knowledge base, creates skills when patterns repeat"
90
- },
91
- "e2e-test-writer": {
92
- "model": "minimax-coding-plan/MiniMax-M2.7-highspeed",
93
- "description": "Writes Playwright E2E tests for UI changes. Tests committed but NOT run in pipeline — CI runs them on PR."
94
- }
95
- },
96
- "mcp": {}
97
-
98
- }