Skip to content

Commit e7b91e7

Browse files
committed
Enhance agent documentation and workflows
- Updated planning-agent.md to include best uses, non-goals, review mode, and output format for plan reviews. - Revised qa.md to add best uses, escalation criteria, and a new BDD mode for requirements-driven testing. - Improved reviewer.md with best uses, escalation criteria, and a section for positive signals in code reviews. - Expanded security.md to include best uses, escalation criteria, and a severity rubric for vulnerabilities. - Removed test_generator.md as its functionality is integrated into qa.md. - Consolidated cheatsheet.md to reflect updated agent roles and routing guidelines, emphasizing cost-awareness and model usage. - Added setup.sh script for streamlined development environment setup, including symlinks and package installations. - Updated cost-awareness.md to clarify model usage and decision-making guidelines for cost-effective development. - Introduced personal-profile.md to capture communication, stack preferences, and evaluation criteria for tools and research.
1 parent 9740847 commit e7b91e7

29 files changed

Lines changed: 1242 additions & 1273 deletions

.claude/rules/personal-profile.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../../skills/rules/personal-profile.md

.cursor/rules/personal-profile.mdc

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
---
2+
description: Captures Martin's communication, stack, research, architecture, privacy, and cost preferences. Use when giving recommendations, writing code, evaluating tools, or explaining concepts.
3+
globs: "**/*"
4+
---
5+
6+
# Personal Profile
7+
8+
## Communication Style
9+
- Direct, casual, first-person tone
10+
- Slack-style brevity
11+
- No corporate polish
12+
- Minimal em dashes
13+
- Use `->` notation for flows
14+
- Use real-world analogies when teaching new concepts
15+
16+
## Developer Context
17+
- Default to Go and TypeScript unless told otherwise
18+
- Prefer terminal-first workflows: Zellij, git worktrees, LazyGit, CLI tools
19+
- Prefer CLI solutions over GUI recommendations
20+
- Check current docs first with Context7, MCP, or verified web sources when available
21+
- Favor production-ready code with error handling, context propagation, and logging
22+
- Lead architecture discussions with domain modeling before folders or frameworks
23+
- Do not assume deployment target; ask if infra is unspecified
24+
- Default to the simplest, cheapest viable option
25+
26+
## Research And Evaluation
27+
- Include maintenance health, commit frequency, issue load, bus factor, license, adoption signals, and stack fit
28+
- Cite sources for recommendations
29+
- Say explicitly when no source is available
30+
- Include confidence levels for claims and recommendations
31+
- Flag deprecations, breaking changes, and migration concerns proactively
32+
33+
## Business And Startup
34+
- Structure idea work as: problem, user, solution, MVP, business model, technical architecture
35+
- Include competitors and differentiation when relevant
36+
- Use fresh market data with dates when available
37+
38+
## General Principles
39+
- Never suggest sending real customer data to third-party AI services
40+
- Use synthetic data for testing
41+
- Prefer maintainable solutions for a solo dev or small team
42+
- Stay cost-conscious by default
43+
- Calibrate teaching depth to current domain familiarity
44+
- Label extrapolation and speculation clearly
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
const DEFAULT_COOLDOWN_MS = 1500
2+
3+
export const CompletionSoundPlugin = async ({ client, $ }) => {
4+
const defaultSound = new URL("../sounds/navi-listen.wav", import.meta.url).pathname
5+
const soundFile = process.env.OPENCODE_SOUND_FILE || defaultSound
6+
const cooldownMs = Number(process.env.OPENCODE_SOUND_COOLDOWN_MS || DEFAULT_COOLDOWN_MS)
7+
8+
let lastPlayedAt = 0
9+
10+
async function playCompletionSound() {
11+
const now = Date.now()
12+
if (now - lastPlayedAt < cooldownMs) return
13+
lastPlayedAt = now
14+
15+
try {
16+
await $`afplay ${soundFile}`
17+
} catch (error) {
18+
await client.app.log({
19+
body: {
20+
service: "completion-sound-plugin",
21+
level: "warn",
22+
message: "Failed to play OpenCode completion sound",
23+
extra: {
24+
soundFile,
25+
error: String(error),
26+
},
27+
},
28+
})
29+
}
30+
}
31+
32+
return {
33+
event: async ({ event }) => {
34+
if (event.type === "session.idle") {
35+
await playCompletionSound()
36+
}
37+
},
38+
}
39+
}

.opencode/sounds/navi-listen.wav

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../../sounds/navi-listen.wav

CLAUDE.md

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ A portable, reproducible terminal development environment (devkit). Not a softwa
1010

1111
- `brewfile` -- Homebrew package manifest (install with `brew bundle --file=brewfile`)
1212
- `zellij/layouts/` -- KDL layout files for Zellij workspaces (api, database, debug, golang, migrations, monitor, node, pipeline, testrunner)
13-
- `opencode/aig_agents/` -- AI agent persona definitions for OpenCode (advisor, architect, engineer, QA, security, etc.)
14-
- `skills/rules/` -- Always-on coding standards (code quality, engineering principles, security, workflow)
13+
- `opencode/aig_agents/` -- OpenCode agent persona definitions (planning, engineer, coder, frontend, QA, reviewer, security, docs, Linear, pickle agents)
14+
- `skills/rules/` -- Always-on coding standards and personal preferences (code quality, engineering principles, security, workflow, personal profile)
1515
- `skills/commands/` -- On-demand slash commands (refactor-challenge, trace-debug, explain-code, etc.)
1616
- `skills/plane/` -- Plane.so project management commands
1717
- `.claude/rules/` -- Symlinked from `skills/rules/` (single source of truth)
@@ -57,7 +57,7 @@ Configs are symlinked from this repo to `~/.config/` and `~/`:
5757
- `.config/shell/enhancements.zsh` -> sourced from `.zshrc`
5858
- `.claude/settings.json` -> `~/.claude/settings.json`
5959
- `opencode/aig_agents/` -> `~/.config/opencode/agents/` (via `scripts/opencode-setup.sh`)
60-
- `opencode.json` -> `~/.config/opencode/config.json` (via `scripts/opencode-setup.sh`)
60+
- `opencode.json` -> `~/.config/opencode/opencode.json` (via `scripts/opencode-setup.sh`)
6161

6262
### OpenCode + Copilot Pro Setup
6363

@@ -91,21 +91,21 @@ AI agent and assistant configs are included but optional -- the core workflow (t
9191
- **Claude Code** -- Kept for work use; devkit includes Claude rules and settings for both tools
9292

9393
### OpenCode Agents
94-
14 specialized agents in `opencode/aig_agents/`, invoked with `@agent-name` syntax inside OpenCode:
95-
- `@agent-advisor` -- routes tasks to appropriate agents and tools
96-
- `@planning-agent` / `@plan-reviewer` -- architecture and plan review (Gemini 3.1 Pro)
97-
- `@engineer` -- default builder (GPT 5.4, requires approval)
98-
- `@coder` -- autonomous test-fix loops (GPT 5.3 Codex)
99-
- `@frontend` -- UI/vision-to-code (Kimi K2.5)
100-
- `@lead_dev` -- quick tasks, auto-commits (MiniMax Free)
94+
11 specialized agents in `opencode/aig_agents/`, invoked with `@agent-name` syntax inside OpenCode:
95+
- `@planning-agent` -- architecture, task breakdown, and plan review (Gemini 3.1 Pro)
96+
- `build` mode in `opencode.json` -- default free implementation lane (MiniMax M2.5 Free)
97+
- `@engineer` -- premium implementation/orchestration for harder work (Gemini 3.1 Pro)
98+
- `@coder` -- autonomous test-fix loops when the spec and tests are clear (GPT 5.3 Codex)
99+
- `@frontend` -- cost-sensitive UI and component work (Kimi K2.5)
101100
- `@reviewer` / `@security` -- code review and security audit (Gemini 3.1 Pro, cross-model)
102-
- `@qa` / `@test_generator` -- testing (GPT 5.3 Codex)
101+
- `@qa` -- test generation, execution, and BDD flows (GPT 5.4 Mini)
103102
- `@docs_generator` -- documentation (Gemini 3 Flash)
104-
- `@linear` -- Linear project management
105-
- `@commiter` -- git automation (MiniMax Free)
103+
- `@linear` -- Linear project management (GPT 5.4 Mini)
104+
- `@pickle-think` -- free triage and rough planning (Big Pickle)
105+
- `@pickle-implement` -- free low-risk code changes (Big Pickle)
106106

107107
### Rules & Commands
108-
Always-on rules in `skills/rules/` are symlinked into `.claude/rules/` -- they apply to every conversation automatically.
108+
Always-on rules in `skills/rules/` are symlinked into `.claude/rules/` -- they apply to every conversation automatically. Personal preferences live in `skills/rules/personal-profile.md`.
109109

110110
On-demand commands in `skills/commands/` are invoked as slash commands:
111111
- `/refactor-challenge` and `/trace-debug` -- Socratic tutors (guide, don't fix)
@@ -126,6 +126,6 @@ Frontend design skills (`/audit`, `/polish`, `/critique`, `/animate`, etc.) are
126126
- Shell scripts should use `set -e` and follow existing patterns in `scripts/`
127127
- `skills/rules/` is the single source of truth for always-on rules -- `.claude/rules/` files are symlinks. Edit files in `skills/rules/`, not `.claude/rules/`
128128
- `opencode/aig_agents/` is the single source of truth for OpenCode agents -- `~/.config/opencode/agents/` is a symlink
129-
- Agent model IDs use the `opencode/` prefix for Zen models (e.g., `opencode/gpt-5.4`)
129+
- Agent model IDs use the `opencode/` prefix for Zen models (e.g., `opencode/minimax-m2.5-free`, `opencode/gemini-3.1-pro`)
130130
- `skills/commands/` and `skills/plane/` are slash commands symlinked into `~/.claude/skills/`
131131
- `.cursor/rules/` is maintained separately in `.mdc` format -- update when modifying standards in `skills/`

README.md

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -82,26 +82,23 @@ The repo includes configs for AI coding tools — these are entirely optional an
8282
| PR review | Copilot | Included | Assign Copilot as reviewer on PRs. |
8383
| Heavy agentic work | OpenCode + Zen | ~$90/mo | Architecture, multi-file refactors, autonomous coding. |
8484

85-
### OpenCode Agents (14 agents)
85+
### OpenCode Agents (11 agents)
8686

8787
| Agent | Specialty | Model | Cost | Invoke With |
8888
| :--- | :--- | :--- | :--- | :--- |
89-
| **Advisor** | Task routing & tool selection | Gemini 3 Flash | Budget | `@agent-advisor` |
90-
| **Architect** | System design & planning | Gemini 3.1 Pro | $2/$12 | `@planning-agent` |
91-
| **Plan Reviewer** | Architecture review | Gemini 3.1 Pro | $2/$12 | `@plan-reviewer` |
92-
| **Engineer** | Default builder (approval) | GPT 5.4 | $2.50/$15 | `@engineer` |
89+
| **Architect** | System design, task breakdown, plan review | Gemini 3.1 Pro | $2/$12 | `@planning-agent` |
90+
| **PM** | Linear integration | GPT 5.4 Mini | $0.75/$4.50 | `@linear` |
91+
| **Engineer** | Premium builder (approval) | Gemini 3.1 Pro | $2/$12 | `@engineer` |
9392
| **Coder** | Autonomous test-fix loops | GPT 5.3 Codex | $1.75/$14 | `@coder` |
94-
| **Frontend** | UI/vision-to-code | Kimi K2.5 | $0.60/$3 | `@frontend` |
95-
| **Lead Dev** | Quick tasks (auto-commit) | MiniMax Free | FREE | `@lead_dev` |
93+
| **Frontend** | UI/component development | Kimi K2.5 | $0.60/$3 | `@frontend` |
9694
| **Reviewer** | Code quality review | Gemini 3.1 Pro | $2/$12 | `@reviewer` |
9795
| **Security** | Vulnerability scanning | Gemini 3.1 Pro | $2/$12 | `@security` |
98-
| **QA** | Test generation & execution | GPT 5.3 Codex | $1.75/$14 | `@qa` |
99-
| **Test Gen** | BDD/requirements-driven tests | GPT 5.3 Codex | $1.75/$14 | `@test_generator` |
100-
| **Docs** | Inline + external docs | Gemini 3 Flash | Budget | `@docs_generator` |
101-
| **PM** | Linear integration | Gemini 3 Flash | Budget | `@linear` |
102-
| **Committer** | Git automation | MiniMax Free | FREE | `@commiter` |
96+
| **QA** | Test generation, execution, BDD | GPT 5.4 Mini | $0.75/$4.50 | `@qa` |
97+
| **Docs** | Inline + external docs | Gemini 3 Flash | ~$0.50/$3 | `@docs_generator` |
98+
| **Pickle Think** | Free triage & rough planning | Big Pickle | FREE | `@pickle-think` |
99+
| **Pickle Implement** | Free low-risk code changes | Big Pickle | FREE | `@pickle-implement` |
103100

104-
Agent configs live in [`opencode/aig_agents/`](opencode/aig_agents/). Rules live in [`skills/`](skills/) (symlinked into [`.claude/rules/`](.claude/rules/)) and [`.cursor/rules/`](.cursor/rules/).
101+
`planning-agent` now includes plan review mode, `qa` now handles requirements-driven / BDD test generation, and `pickle-think` / `pickle-implement` provide a free first-pass lane on Big Pickle. The default OpenCode build lane in [`opencode.json`](opencode.json) now uses `MiniMax M2.5 Free`; `@engineer` remains the premium escalation path on Gemini 3.1 Pro. Agent configs live in [`opencode/aig_agents/`](opencode/aig_agents/). Rules live in [`skills/`](skills/) (symlinked into [`.claude/rules/`](.claude/rules/)) and [`.cursor/rules/`](.cursor/rules/).
105102

106103
For frontend design skills (`/audit`, `/polish`, `/critique`, `/animate`, `/frontend-design`, etc.), install [Impeccable](https://impeccable.style/):
107104

opencode.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
{
22
"$schema": "https://opencode.ai/config.json",
3-
"model": "opencode/gpt-5.4",
4-
"small_model": "opencode/minimax-m2.5-free",
3+
"model": "opencode/minimax-m2.5-free",
4+
"small_model": "opencode/big-pickle",
55
"mode": {
66
"build": {
7-
"model": "opencode/gpt-5.4",
7+
"model": "opencode/minimax-m2.5-free",
88
"tools": {
99
"write": true,
1010
"edit": true,

opencode/.DS_Store

6 KB
Binary file not shown.

0 commit comments

Comments
 (0)