claude-comms 1.0.46 → 2.0.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.
- package/CHANGELOG.md +20 -1
- package/README.md +12 -13
- package/package.json +6 -10
- package/.agents/AGENTS.md +0 -61
- package/.agents/repo.md +0 -18
- package/.agents/tools/README.md +0 -45
- package/.agents/tools/agent-job/README.md +0 -208
- package/.agents/tools/agent-job/__pycache__/agent_monitor.cpython-312.pyc +0 -0
- package/.agents/tools/agent-job/agent_job.py +0 -936
- package/.agents/tools/agent-job/agent_monitor.py +0 -575
- package/.agents/tools/agent-job/consultant_template.txt +0 -73
- package/.agents/tools/chrome-devtools/README.md +0 -101
- package/.agents/tools/chrome-devtools/browsertools.py +0 -839
- package/.agents/tools/chrome-devtools/config.json +0 -24
- package/.agents/tools/workflow/CONSUMER_SETUP.md +0 -114
- package/.agents/tools/workflow/ONBOARD.md +0 -167
- package/.agents/tools/workflow/README.md +0 -169
- package/.agents/tools/workflow/cli.ts +0 -726
- package/.agents/tools/workflow/config.example.json +0 -16
- package/.agents/tools/workflow/init.ts +0 -76
- package/.agents/tools/workflow/lib/file-tracker.test.ts +0 -81
- package/.agents/tools/workflow/lib/file-tracker.ts +0 -387
- package/.agents/tools/workflow/lib/harness-executor.ts +0 -649
- package/.agents/tools/workflow/lib/prompts.scenario.test.ts +0 -262
- package/.agents/tools/workflow/lib/prompts.ts +0 -548
- package/.agents/tools/workflow/lib/streams.test.ts +0 -140
- package/.agents/tools/workflow/lib/streams.ts +0 -254
- package/.agents/tools/workflow/runner.ts +0 -994
- package/.agents/tools/workflow/templates/document.md +0 -42
- package/.agents/tools/workflow/templates/implement.md +0 -117
- package/.agents/tools/workflow/templates/plan.md +0 -54
- package/.agents/tools/workflow/templates/pm.md +0 -84
- package/.agents/tools/workflow/templates/product-owner.md +0 -211
- package/.agents/tools/workflow/templates/review.md +0 -56
- package/.agents/tools/workflow/templates/uat.md +0 -71
- package/.claude/agents/core/engineer.md +0 -146
- package/.claude/commands/action-feedback-item.md +0 -27
- package/.claude/commands/install-feedback-widget.md +0 -599
- package/.claude/commands/learn.md +0 -32
- package/.claude/hooks/comms/__pycache__/register_subagent.cpython-312.pyc +0 -0
- package/.claude/hooks/comms/__pycache__/update_subagent_completion.cpython-312.pyc +0 -0
- package/.claude/hooks/comms/get_unread_messages.py +0 -71
- package/.claude/hooks/comms/register_subagent.py +0 -74
- package/.claude/hooks/comms/send_message.py +0 -87
- package/.claude/hooks/comms/update_subagent_completion.py +0 -126
- package/.claude/hooks/context/session_id.py +0 -35
- package/.claude/hooks/observability/send_event.py +0 -110
- package/.claude/hooks/session-data/get_session_data.py +0 -261
- package/.claude/hooks/session-data/intercept_session_id.py +0 -69
- package/.claude/hooks/utils/__pycache__/server_config.cpython-312.pyc +0 -0
- package/.claude/hooks/utils/server_config.py +0 -17
- package/.claude/settings.json +0 -108
- package/.claude/settings.local.json +0 -46
- package/CLAUDE.md +0 -240
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"mcp_command": "npx",
|
|
3
|
-
"mcp_args": [
|
|
4
|
-
"-y",
|
|
5
|
-
"chrome-devtools-mcp@latest",
|
|
6
|
-
"--isolated",
|
|
7
|
-
"--headless=true"
|
|
8
|
-
],
|
|
9
|
-
"_comment": "Default config runs headless. Override by creating ~/.browsertools/config.json",
|
|
10
|
-
"_examples": {
|
|
11
|
-
"visual_mode": {
|
|
12
|
-
"mcp_args": ["-y", "chrome-devtools-mcp@latest", "--isolated"]
|
|
13
|
-
},
|
|
14
|
-
"sandbox": {
|
|
15
|
-
"mcp_args": [
|
|
16
|
-
"-y",
|
|
17
|
-
"chrome-devtools-mcp@latest",
|
|
18
|
-
"--isolated=true",
|
|
19
|
-
"--headless=true",
|
|
20
|
-
"--executablePath=/usr/local/bin/chromium-mcp"
|
|
21
|
-
]
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
}
|
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
# Consumer Repo Setup
|
|
2
|
-
|
|
3
|
-
This document describes how to set up the workflow engine in repos that consume the `.agents/` directory.
|
|
4
|
-
|
|
5
|
-
## Current Architecture
|
|
6
|
-
|
|
7
|
-
```
|
|
8
|
-
.agents/tools/workflow/
|
|
9
|
-
├── workflow-engine -> ../../../workflow-engine (symlink)
|
|
10
|
-
├── cli.ts
|
|
11
|
-
├── runner.ts
|
|
12
|
-
├── config.json
|
|
13
|
-
└── templates/
|
|
14
|
-
```
|
|
15
|
-
|
|
16
|
-
The CLI and runner import from `./workflow-engine/convex/_generated/api.js`, which resolves through the symlink to the actual `workflow-engine/` directory containing the Convex schema and generated types.
|
|
17
|
-
|
|
18
|
-
## Problem
|
|
19
|
-
|
|
20
|
-
When copying `.agents/` to a consumer repo, the symlink points to `../../../workflow-engine` which won't exist in the consumer repo's directory structure.
|
|
21
|
-
|
|
22
|
-
## Options
|
|
23
|
-
|
|
24
|
-
### Option 1: Copy workflow-engine alongside .agents
|
|
25
|
-
|
|
26
|
-
```bash
|
|
27
|
-
# In consumer repo
|
|
28
|
-
cp -r /path/to/workflow-engine ./workflow-engine
|
|
29
|
-
# Symlink already points to ../../../workflow-engine, adjust if needed
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
Pros: Simple, self-contained
|
|
33
|
-
Cons: Duplicated code, manual updates
|
|
34
|
-
|
|
35
|
-
### Option 2: Publish workflow-engine to npm
|
|
36
|
-
|
|
37
|
-
```bash
|
|
38
|
-
# Publish
|
|
39
|
-
cd workflow-engine && npm publish
|
|
40
|
-
|
|
41
|
-
# In consumer repo
|
|
42
|
-
npm install @yourorg/workflow-engine
|
|
43
|
-
|
|
44
|
-
# Update symlink
|
|
45
|
-
cd .agents/tools/workflow
|
|
46
|
-
rm workflow-engine
|
|
47
|
-
ln -s ../../../node_modules/@yourorg/workflow-engine workflow-engine
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
Pros: Clean dependency management, versioned
|
|
51
|
-
Cons: Requires npm publishing workflow
|
|
52
|
-
|
|
53
|
-
### Option 3: Git submodule
|
|
54
|
-
|
|
55
|
-
```bash
|
|
56
|
-
# In consumer repo
|
|
57
|
-
git submodule add <workflow-engine-repo-url> workflow-engine
|
|
58
|
-
|
|
59
|
-
# Symlink points to it
|
|
60
|
-
cd .agents/tools/workflow
|
|
61
|
-
ln -s ../../../workflow-engine workflow-engine
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
Pros: Always up to date with upstream
|
|
65
|
-
Cons: Submodule complexity
|
|
66
|
-
|
|
67
|
-
### Option 4: Monorepo with shared packages
|
|
68
|
-
|
|
69
|
-
If using a monorepo (turborepo, nx, etc.), workflow-engine can be a workspace package that .agents/tools/workflow depends on.
|
|
70
|
-
|
|
71
|
-
## Config Per Repo
|
|
72
|
-
|
|
73
|
-
Each consumer repo needs its own `config.json`:
|
|
74
|
-
|
|
75
|
-
```json
|
|
76
|
-
{
|
|
77
|
-
"convexUrl": "https://your-project-123.convex.cloud",
|
|
78
|
-
"namespace": "consumer-repo-name",
|
|
79
|
-
"timeoutMs": 600000,
|
|
80
|
-
"harnessDefaults": {
|
|
81
|
-
"default": "claude",
|
|
82
|
-
"plan": "claude",
|
|
83
|
-
"implement": "claude",
|
|
84
|
-
"review": "claude",
|
|
85
|
-
"uat": "claude",
|
|
86
|
-
"document": "claude",
|
|
87
|
-
"pm": "claude",
|
|
88
|
-
"chat": "claude"
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
```
|
|
92
|
-
|
|
93
|
-
The `namespace` field isolates assignments/jobs per repo in the shared Convex backend.
|
|
94
|
-
|
|
95
|
-
## Initialization
|
|
96
|
-
|
|
97
|
-
After setting up `config.json`, run the init script to register your namespace in the database:
|
|
98
|
-
|
|
99
|
-
```bash
|
|
100
|
-
cd .agents/tools/workflow
|
|
101
|
-
npx tsx init.ts
|
|
102
|
-
```
|
|
103
|
-
|
|
104
|
-
This script is **idempotent** - running it multiple times is safe and won't create duplicate namespaces. It will either:
|
|
105
|
-
- Create the namespace if it doesn't exist
|
|
106
|
-
- Report that the namespace already exists
|
|
107
|
-
|
|
108
|
-
You must run this before the runner or CLI will work, as all assignments and chat threads require a valid namespace ID.
|
|
109
|
-
|
|
110
|
-
## TODO
|
|
111
|
-
|
|
112
|
-
- [ ] Decide on distribution strategy (npm publish vs git submodule vs copy)
|
|
113
|
-
- [ ] Automate consumer repo setup script
|
|
114
|
-
- [ ] Consider generating standalone client without symlink dependency
|
|
@@ -1,167 +0,0 @@
|
|
|
1
|
-
# Workflow Engine Onboarding
|
|
2
|
-
|
|
3
|
-
## What We Built
|
|
4
|
-
|
|
5
|
-
A job queue system for orchestrating sequential Claude/Codex/Gemini headless runs. Solves the "checkbox brain" problem where Claude rushes through todos without quality gates.
|
|
6
|
-
|
|
7
|
-
### Architecture
|
|
8
|
-
|
|
9
|
-
```
|
|
10
|
-
Convex Backend (workflow-engine/) ← Schema, queries, mutations
|
|
11
|
-
↑
|
|
12
|
-
│ WebSocket subscription
|
|
13
|
-
│
|
|
14
|
-
Runner Daemon (.agents/tools/workflow/runner.ts) ← Executes jobs
|
|
15
|
-
│
|
|
16
|
-
│ spawns
|
|
17
|
-
↓
|
|
18
|
-
Claude/Codex/Gemini headless ← Actual work
|
|
19
|
-
│
|
|
20
|
-
│ on complete
|
|
21
|
-
↓
|
|
22
|
-
PM Shadow Job ← Reviews, decides next step
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
### Key Concepts
|
|
26
|
-
|
|
27
|
-
- **Assignment**: User intent (north star). Has linked list of jobs.
|
|
28
|
-
- **Job**: Single Claude/Codex/Gemini run. Types: plan, implement, review, uat, document, pm.
|
|
29
|
-
- **PM Agent**: Runs after each job. Reviews result, inserts next job or completes/blocks assignment.
|
|
30
|
-
- **Namespace**: Isolates assignments per repo in shared Convex backend.
|
|
31
|
-
|
|
32
|
-
## Files Created
|
|
33
|
-
|
|
34
|
-
### Backend (`workflow-engine/`)
|
|
35
|
-
```
|
|
36
|
-
convex/
|
|
37
|
-
├── schema.ts # assignments + jobs tables
|
|
38
|
-
├── assignments.ts # CRUD
|
|
39
|
-
├── jobs.ts # CRUD
|
|
40
|
-
└── scheduler.ts # getReadyJobs, watchQueue
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
**Deployed to**: `https://utmost-vulture-618.convex.cloud`
|
|
44
|
-
|
|
45
|
-
### Consumer-facing (`.agents/tools/workflow/`)
|
|
46
|
-
```
|
|
47
|
-
├── workflow-engine/ # symlink → ../../../workflow-engine
|
|
48
|
-
├── cli.ts # PM-ergonomic CLI
|
|
49
|
-
├── runner.ts # WebSocket daemon
|
|
50
|
-
├── config.json # namespace, convex URL
|
|
51
|
-
├── templates/ # Prompt templates (plan.md, implement.md, etc.)
|
|
52
|
-
├── README.md
|
|
53
|
-
├── CONSUMER_SETUP.md # Distribution notes for other repos
|
|
54
|
-
└── SPEC.md # (in workflow-engine/)
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
## Current State
|
|
58
|
-
|
|
59
|
-
- ✅ Convex schema deployed
|
|
60
|
-
- ✅ CLI working (`npx tsx .agents/tools/workflow/cli.ts queue`)
|
|
61
|
-
- ✅ Templates created
|
|
62
|
-
- ✅ Runner daemon written
|
|
63
|
-
- ⏳ Runner not yet tested end-to-end
|
|
64
|
-
- ⏳ PM shadow job flow not tested
|
|
65
|
-
|
|
66
|
-
## What Needs Testing
|
|
67
|
-
|
|
68
|
-
### 1. Start the runner
|
|
69
|
-
```bash
|
|
70
|
-
npx tsx .agents/tools/workflow/runner.ts
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
### 2. Create a test assignment
|
|
74
|
-
```bash
|
|
75
|
-
npx tsx .agents/tools/workflow/cli.ts create "Create a hello world function in test-hello.ts"
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
### 3. Add initial job
|
|
79
|
-
```bash
|
|
80
|
-
npx tsx .agents/tools/workflow/cli.ts insert-job <assignment_id> \
|
|
81
|
-
--type implement \
|
|
82
|
-
--harness claude \
|
|
83
|
-
--context "Create a simple hello world function that returns 'Hello, World!'"
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
### 4. Watch the runner
|
|
87
|
-
- Should pick up the job
|
|
88
|
-
- Execute Claude headless
|
|
89
|
-
- On completion, trigger PM job
|
|
90
|
-
- PM should review and decide next steps
|
|
91
|
-
|
|
92
|
-
### 5. Verify end state
|
|
93
|
-
```bash
|
|
94
|
-
npx tsx .agents/tools/workflow/cli.ts assignment <assignment_id>
|
|
95
|
-
```
|
|
96
|
-
|
|
97
|
-
## CLI Quick Reference
|
|
98
|
-
|
|
99
|
-
```bash
|
|
100
|
-
# Queries
|
|
101
|
-
cli.ts queue # Queue status
|
|
102
|
-
cli.ts assignments # List all
|
|
103
|
-
cli.ts assignment <id> # Details with jobs
|
|
104
|
-
cli.ts jobs # List jobs
|
|
105
|
-
cli.ts job <id> # Job details
|
|
106
|
-
|
|
107
|
-
# Mutations
|
|
108
|
-
cli.ts create "<north_star>" # New assignment
|
|
109
|
-
cli.ts insert-job <aid> --type X --harness Y --context "Z"
|
|
110
|
-
cli.ts complete <aid> # Mark done
|
|
111
|
-
cli.ts block <aid> --reason "..." # Escalate to human
|
|
112
|
-
cli.ts unblock <aid> # Resume
|
|
113
|
-
```
|
|
114
|
-
|
|
115
|
-
## Config
|
|
116
|
-
|
|
117
|
-
Copy `config.example.json` to `config.json` and edit:
|
|
118
|
-
|
|
119
|
-
```json
|
|
120
|
-
{
|
|
121
|
-
"convexUrl": "https://your-project.convex.cloud",
|
|
122
|
-
"namespace": "your-repo-name",
|
|
123
|
-
"timeoutMs": 600000,
|
|
124
|
-
"harnessDefaults": {
|
|
125
|
-
"default": "claude",
|
|
126
|
-
"plan": "claude",
|
|
127
|
-
"implement": "claude",
|
|
128
|
-
"review": "claude",
|
|
129
|
-
"uat": "claude",
|
|
130
|
-
"document": "claude",
|
|
131
|
-
"pm": "claude",
|
|
132
|
-
"chat": "claude"
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
```
|
|
136
|
-
|
|
137
|
-
## Claude JSON Stream Format
|
|
138
|
-
|
|
139
|
-
```
|
|
140
|
-
{"type":"system","subtype":"init","session_id":"...","tools":[...],...}
|
|
141
|
-
{"type":"assistant","message":{"content":[{"type":"text","text":"..."}],...}}
|
|
142
|
-
{"type":"assistant","message":{"content":[{"type":"tool_use","name":"...","input":{...}}],...}}
|
|
143
|
-
{"type":"user","message":{"content":[{"type":"tool_result","content":"..."}]}}
|
|
144
|
-
{"type":"result","subtype":"success","result":"final output text","duration_ms":...}
|
|
145
|
-
```
|
|
146
|
-
|
|
147
|
-
**Key extraction:**
|
|
148
|
-
- Assistant text: `event.message.content[].text` where `type === "text"`
|
|
149
|
-
- Final result: `event.result` when `event.type === "result"`
|
|
150
|
-
- Success: `event.subtype === "success"`
|
|
151
|
-
|
|
152
|
-
## Known Issues / TODO
|
|
153
|
-
|
|
154
|
-
1. Consumer repo distribution strategy not finalized (see CONSUMER_SETUP.md)
|
|
155
|
-
2. Parallel job execution logic could be tightened
|
|
156
|
-
3. No retry logic for transient failures yet
|
|
157
|
-
|
|
158
|
-
## Session Context
|
|
159
|
-
|
|
160
|
-
We spec'd this collaboratively, iterating on:
|
|
161
|
-
- Entity model (Assignment → Jobs linked list)
|
|
162
|
-
- Parallelism (assignment-level, not job-level)
|
|
163
|
-
- PM as shadow job pattern
|
|
164
|
-
- Convex-first for real-time reactivity
|
|
165
|
-
- CLI ergonomics for PM agent consumption
|
|
166
|
-
|
|
167
|
-
The eng-cog metacognitive framework from `docs/options/eng-prompt.md` was used for initial framing but dropped during rapid iteration.
|
|
@@ -1,169 +0,0 @@
|
|
|
1
|
-
# Workflow Engine
|
|
2
|
-
|
|
3
|
-
Job queue system for orchestrating sequential Claude/Codex/Gemini headless runs.
|
|
4
|
-
|
|
5
|
-
## Architecture
|
|
6
|
-
|
|
7
|
-
```
|
|
8
|
-
Convex Backend (workflow-engine/)
|
|
9
|
-
↑
|
|
10
|
-
│ WebSocket subscription
|
|
11
|
-
│
|
|
12
|
-
Runner Daemon (runner.ts)
|
|
13
|
-
│
|
|
14
|
-
│ spawns
|
|
15
|
-
↓
|
|
16
|
-
Claude/Codex/Gemini headless processes
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
## Quick Start
|
|
20
|
-
|
|
21
|
-
### 1. Configure
|
|
22
|
-
|
|
23
|
-
Copy the example config and edit:
|
|
24
|
-
|
|
25
|
-
```bash
|
|
26
|
-
cp config.example.json config.json
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
Edit `config.json`:
|
|
30
|
-
|
|
31
|
-
```json
|
|
32
|
-
{
|
|
33
|
-
"convexUrl": "https://utmost-vulture-618.convex.cloud",
|
|
34
|
-
"namespace": "your-repo-name",
|
|
35
|
-
"timeoutMs": 600000,
|
|
36
|
-
"harnessDefaults": {
|
|
37
|
-
"default": "claude",
|
|
38
|
-
"plan": "claude",
|
|
39
|
-
"implement": "claude",
|
|
40
|
-
"review": "claude",
|
|
41
|
-
"uat": "claude",
|
|
42
|
-
"document": "claude",
|
|
43
|
-
"pm": "claude",
|
|
44
|
-
"chat": "claude"
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
### 2. Start the Runner
|
|
50
|
-
|
|
51
|
-
```bash
|
|
52
|
-
npx tsx .agents/tools/workflow/runner.ts
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
The runner subscribes to Convex and executes jobs as they become ready.
|
|
56
|
-
|
|
57
|
-
### 3. Create an Assignment
|
|
58
|
-
|
|
59
|
-
```bash
|
|
60
|
-
npx tsx .agents/tools/workflow/cli.ts create "Build user authentication feature"
|
|
61
|
-
```
|
|
62
|
-
|
|
63
|
-
### 4. Add Jobs
|
|
64
|
-
|
|
65
|
-
```bash
|
|
66
|
-
npx tsx .agents/tools/workflow/cli.ts insert-job <assignment_id> \
|
|
67
|
-
--type plan \
|
|
68
|
-
--harness claude \
|
|
69
|
-
--context "Create implementation plan"
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
## CLI Reference
|
|
73
|
-
|
|
74
|
-
### Queries
|
|
75
|
-
|
|
76
|
-
```bash
|
|
77
|
-
# List assignments
|
|
78
|
-
cli.ts assignments [--status pending|active|blocked|complete]
|
|
79
|
-
|
|
80
|
-
# Get assignment with jobs
|
|
81
|
-
cli.ts assignment <id>
|
|
82
|
-
|
|
83
|
-
# List jobs
|
|
84
|
-
cli.ts jobs [--status pending|running|complete|failed]
|
|
85
|
-
|
|
86
|
-
# Get job details
|
|
87
|
-
cli.ts job <id>
|
|
88
|
-
|
|
89
|
-
# Queue status
|
|
90
|
-
cli.ts queue
|
|
91
|
-
```
|
|
92
|
-
|
|
93
|
-
### Mutations
|
|
94
|
-
|
|
95
|
-
```bash
|
|
96
|
-
# Create assignment
|
|
97
|
-
cli.ts create "<north_star>" [--priority N] [--independent]
|
|
98
|
-
|
|
99
|
-
# Insert job
|
|
100
|
-
cli.ts insert-job <assignment_id> \
|
|
101
|
-
--type <plan|implement|review|uat|document> \
|
|
102
|
-
--harness <claude|codex|gemini> \
|
|
103
|
-
[--context "instructions"] \
|
|
104
|
-
[--after <job_id>]
|
|
105
|
-
|
|
106
|
-
# Update assignment metadata
|
|
107
|
-
cli.ts update-assignment <id> \
|
|
108
|
-
[--artifacts "filepath:description"] \
|
|
109
|
-
[--decisions "decision text"]
|
|
110
|
-
|
|
111
|
-
# Complete assignment
|
|
112
|
-
cli.ts complete <assignment_id>
|
|
113
|
-
|
|
114
|
-
# Block assignment
|
|
115
|
-
cli.ts block <assignment_id> --reason "why"
|
|
116
|
-
|
|
117
|
-
# Unblock assignment
|
|
118
|
-
cli.ts unblock <assignment_id>
|
|
119
|
-
|
|
120
|
-
# Job status updates (typically used by runner)
|
|
121
|
-
cli.ts start-job <job_id>
|
|
122
|
-
cli.ts complete-job <job_id> --result "output"
|
|
123
|
-
cli.ts fail-job <job_id> [--result "error"]
|
|
124
|
-
```
|
|
125
|
-
|
|
126
|
-
## Job Types
|
|
127
|
-
|
|
128
|
-
| Type | Purpose |
|
|
129
|
-
|------|---------|
|
|
130
|
-
| `plan` | Create spec doc + work packages |
|
|
131
|
-
| `implement` | Build implementation via engineer batches |
|
|
132
|
-
| `review` | Read-only engineering quality review |
|
|
133
|
-
| `uat` | User acceptance testing |
|
|
134
|
-
| `document` | Update docs and finalize assignment |
|
|
135
|
-
| `pm` | (Shadow job) Review result, decide next |
|
|
136
|
-
|
|
137
|
-
## How It Works
|
|
138
|
-
|
|
139
|
-
1. **Assignment created** with north star (human intent)
|
|
140
|
-
2. **Jobs added** to assignment's linked list
|
|
141
|
-
3. **Runner picks up** ready jobs (pending + predecessor complete)
|
|
142
|
-
4. **Job executes** via Claude/Codex/Gemini headless
|
|
143
|
-
5. **PM job triggers** automatically after each completion
|
|
144
|
-
6. **PM decides**: insert more jobs, complete, or block
|
|
145
|
-
7. **Loop** until assignment complete or blocked
|
|
146
|
-
|
|
147
|
-
## Parallelism Rules
|
|
148
|
-
|
|
149
|
-
- Jobs within an assignment run **sequentially** (linked list)
|
|
150
|
-
- Independent assignments can run **in parallel**
|
|
151
|
-
- Non-independent assignments run **one at a time**
|
|
152
|
-
- Priority: oldest first, then lowest priority number
|
|
153
|
-
|
|
154
|
-
## Templates
|
|
155
|
-
|
|
156
|
-
Prompt templates live in `templates/`:
|
|
157
|
-
- `plan.md`
|
|
158
|
-
- `implement.md`
|
|
159
|
-
- `review.md`
|
|
160
|
-
- `uat.md`
|
|
161
|
-
- `document.md`
|
|
162
|
-
- `pm.md`
|
|
163
|
-
|
|
164
|
-
Templates use placeholders:
|
|
165
|
-
- `{{NORTH_STAR}}` - Assignment goal
|
|
166
|
-
- `{{ARTIFACTS}}` - Files produced
|
|
167
|
-
- `{{DECISIONS}}` - Decision record
|
|
168
|
-
- `{{CONTEXT}}` - Job-specific instructions
|
|
169
|
-
- `{{PREVIOUS_RESULT}}` - Prior job output
|