devcouncil 0.1.0 → 0.1.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/LICENSE +201 -201
- package/README.md +62 -543
- package/package.json +1 -1
- package/pyproject.toml +29 -26
- package/src/devcouncil/__main__.py +4 -4
- package/src/devcouncil/app/__init__.py +28 -28
- package/src/devcouncil/app/config.py +135 -108
- package/src/devcouncil/app/errors.py +23 -23
- package/src/devcouncil/app/events.py +44 -44
- package/src/devcouncil/app/orchestrator.py +67 -67
- package/src/devcouncil/app/project_status.py +29 -0
- package/src/devcouncil/app/run_context.py +39 -39
- package/src/devcouncil/app/state_machine.py +108 -108
- package/src/devcouncil/artifacts/__init__.py +1 -1
- package/src/devcouncil/artifacts/coverage.py +96 -96
- package/src/devcouncil/artifacts/graph.py +143 -143
- package/src/devcouncil/artifacts/migrations.py +20 -20
- package/src/devcouncil/artifacts/schemas.py +23 -23
- package/src/devcouncil/artifacts/serializer.py +21 -21
- package/src/devcouncil/artifacts/validators.py +27 -27
- package/src/devcouncil/cli/commands/artifacts.py +51 -48
- package/src/devcouncil/cli/commands/ast.py +22 -0
- package/src/devcouncil/cli/commands/baseline.py +35 -32
- package/src/devcouncil/cli/commands/config.py +76 -54
- package/src/devcouncil/cli/commands/dashboard.py +26 -0
- package/src/devcouncil/cli/commands/doctor.py +86 -42
- package/src/devcouncil/cli/commands/go.py +237 -0
- package/src/devcouncil/cli/commands/hook.py +96 -29
- package/src/devcouncil/cli/commands/init.py +67 -56
- package/src/devcouncil/cli/commands/integrate.py +320 -14
- package/src/devcouncil/cli/commands/lsp.py +20 -0
- package/src/devcouncil/cli/commands/map.py +25 -21
- package/src/devcouncil/cli/commands/plan.py +257 -206
- package/src/devcouncil/cli/commands/prompt.py +36 -33
- package/src/devcouncil/cli/commands/repair.py +72 -69
- package/src/devcouncil/cli/commands/report.py +112 -54
- package/src/devcouncil/cli/commands/reset_demo_state.py +31 -28
- package/src/devcouncil/cli/commands/rollback.py +49 -47
- package/src/devcouncil/cli/commands/run.py +252 -207
- package/src/devcouncil/cli/commands/setup.py +159 -18
- package/src/devcouncil/cli/commands/show.py +76 -57
- package/src/devcouncil/cli/commands/status.py +117 -105
- package/src/devcouncil/cli/commands/tasks.py +55 -41
- package/src/devcouncil/cli/commands/trace.py +2 -1
- package/src/devcouncil/cli/commands/verify.py +158 -128
- package/src/devcouncil/cli/commands/version.py +20 -20
- package/src/devcouncil/cli/commands/watch.py +574 -0
- package/src/devcouncil/cli/main.py +42 -24
- package/src/devcouncil/council/prompts/arbiter.md +19 -19
- package/src/devcouncil/council/prompts/critic_a.md +10 -10
- package/src/devcouncil/council/prompts/critic_b.md +10 -10
- package/src/devcouncil/council/prompts/implementation_reviewer.md +16 -16
- package/src/devcouncil/council/prompts/planner_a.md +16 -16
- package/src/devcouncil/council/prompts/planner_b.md +16 -16
- package/src/devcouncil/council/prompts/rebuttal.md +10 -10
- package/src/devcouncil/council/prompts/spec_writer.md +12 -12
- package/src/devcouncil/domain/assumption.py +17 -17
- package/src/devcouncil/domain/critique.py +32 -32
- package/src/devcouncil/domain/evidence.py +27 -27
- package/src/devcouncil/domain/gap.py +26 -26
- package/src/devcouncil/domain/requirement.py +22 -22
- package/src/devcouncil/domain/task.py +26 -26
- package/src/devcouncil/execution/__init__.py +1 -1
- package/src/devcouncil/execution/context_builder.py +54 -54
- package/src/devcouncil/execution/executor.py +15 -15
- package/src/devcouncil/execution/hook_policy.py +24 -3
- package/src/devcouncil/execution/patch.py +28 -28
- package/src/devcouncil/execution/permissions.py +44 -44
- package/src/devcouncil/execution/prompt_builder.py +23 -23
- package/src/devcouncil/execution/task_runner.py +63 -63
- package/src/devcouncil/executors/__init__.py +1 -1
- package/src/devcouncil/executors/coding_cli.py +112 -0
- package/src/devcouncil/executors/mini_swe.py +63 -63
- package/src/devcouncil/executors/native/agent.py +81 -81
- package/src/devcouncil/executors/openhands.py +56 -56
- package/src/devcouncil/gating/__init__.py +1 -1
- package/src/devcouncil/gating/checks/clean_git.py +50 -45
- package/src/devcouncil/gating/checks/planned_files_check.py +32 -32
- package/src/devcouncil/gating/checks/requirement_coverage.py +26 -26
- package/src/devcouncil/gating/checks/secret_scan_check.py +34 -34
- package/src/devcouncil/gating/policy.py +157 -157
- package/src/devcouncil/indexing/__init__.py +1 -1
- package/src/devcouncil/indexing/ast_matcher.py +168 -0
- package/src/devcouncil/indexing/graph_index.py +48 -48
- package/src/devcouncil/indexing/lsp.py +120 -0
- package/src/devcouncil/indexing/repo_mapper.py +208 -204
- package/src/devcouncil/integrations/github.py +35 -35
- package/src/devcouncil/integrations/gitnexus.py +27 -27
- package/src/devcouncil/integrations/graphify.py +34 -34
- package/src/devcouncil/integrations/mcp/server.py +549 -96
- package/src/devcouncil/integrations/pr_comments.py +62 -0
- package/src/devcouncil/live/__init__.py +2 -0
- package/src/devcouncil/live/cards.py +207 -0
- package/src/devcouncil/live/models.py +63 -0
- package/src/devcouncil/live/repair_prompt.py +83 -0
- package/src/devcouncil/live/reviewer.py +70 -0
- package/src/devcouncil/live/signals.py +135 -0
- package/src/devcouncil/live/summary.py +34 -0
- package/src/devcouncil/live/tasks.py +18 -0
- package/src/devcouncil/live/transcripts.py +138 -0
- package/src/devcouncil/llm/__init__.py +1 -1
- package/src/devcouncil/llm/cache.py +38 -38
- package/src/devcouncil/llm/provider.py +146 -125
- package/src/devcouncil/llm/router.py +111 -111
- package/src/devcouncil/planning/__init__.py +1 -1
- package/src/devcouncil/planning/arbiter_service.py +57 -57
- package/src/devcouncil/planning/critique_service.py +66 -66
- package/src/devcouncil/planning/plan_service.py +46 -46
- package/src/devcouncil/planning/prompt_enhancer_service.py +86 -0
- package/src/devcouncil/planning/repair_service.py +39 -39
- package/src/devcouncil/planning/spec_service.py +44 -44
- package/src/devcouncil/reporting/github_check.py +32 -32
- package/src/devcouncil/reporting/json_report.py +20 -17
- package/src/devcouncil/reporting/markdown_report.py +68 -46
- package/src/devcouncil/reporting/report_builder.py +14 -14
- package/src/devcouncil/storage/db.py +66 -66
- package/src/devcouncil/storage/models.py +83 -83
- package/src/devcouncil/storage/repositories.py +299 -222
- package/src/devcouncil/telemetry/cost.py +34 -34
- package/src/devcouncil/telemetry/tracker.py +49 -49
- package/src/devcouncil/ui/__init__.py +1 -0
- package/src/devcouncil/ui/dashboard.py +122 -0
- package/src/devcouncil/utils/__init__.py +1 -1
- package/src/devcouncil/utils/redaction.py +141 -141
- package/src/devcouncil/verification/__init__.py +1 -1
- package/src/devcouncil/verification/implementation_reviewer.py +55 -55
- package/src/devcouncil/verification/verifier.py +319 -302
- package/uv.lock +1 -1
package/README.md
CHANGED
|
@@ -8,25 +8,19 @@
|
|
|
8
8
|
|
|
9
9
|
DevCouncil is a high-integrity command-line orchestration platform for AI-assisted software development. It turns AI implementation from a black-box generation task into a gated engineering workflow where every change is authorized, verified, and traceable back to a requirement.
|
|
10
10
|
|
|
11
|
-
DevCouncil
|
|
11
|
+
DevCouncil does not replace coding agents. It sits beside tools like Codex CLI, Gemini CLI, Claude Code, Cursor, and Aider, then owns the plan, task scope, verification loop, repair prompts, and evidence trail.
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
## Table Of Contents
|
|
13
|
+
## Documentation
|
|
16
14
|
|
|
17
|
-
- [
|
|
18
|
-
- [
|
|
19
|
-
- [
|
|
20
|
-
- [
|
|
21
|
-
- [
|
|
22
|
-
- [
|
|
23
|
-
- [
|
|
24
|
-
- [Project
|
|
25
|
-
- [
|
|
26
|
-
- [Acknowledgements](#acknowledgements)
|
|
27
|
-
- [License](#license)
|
|
28
|
-
|
|
29
|
-
---
|
|
15
|
+
- [Quickstart](docs/quickstart.md): shortest install-to-first-task path.
|
|
16
|
+
- [Daily workflow](docs/workflow.md): manual sidecar loop, verification, repair, and rollback.
|
|
17
|
+
- [Coding CLI integration](docs/coding-cli-integration.md): Codex, Gemini, Claude Code, Cursor, Aider, MCP, hooks, and automated executors.
|
|
18
|
+
- [CLI command reference](docs/cli-reference.md): available `dev` commands.
|
|
19
|
+
- [Architecture](docs/architecture.md): components, artifact graph, state machine, and gated execution.
|
|
20
|
+
- [Live review](docs/live-review.md): `dev watch` session review, cards, signals, and blocking behavior.
|
|
21
|
+
- [Security model](docs/security.md): redaction, permissions, allowlists, and local state.
|
|
22
|
+
- [Project status](docs/project-status.md): current maturity by subsystem.
|
|
23
|
+
- [Roadmap](docs/roadmap.md): planned work.
|
|
30
24
|
|
|
31
25
|
## Why DevCouncil Exists
|
|
32
26
|
|
|
@@ -41,33 +35,11 @@ Standard AI coding agents are good at producing the happy path, but they often f
|
|
|
41
35
|
|
|
42
36
|
It creates a persistent **Requirement -> Task -> Diff -> Evidence** graph, blocks completion when evidence is missing, detects unauthorized changes, and produces a final report that can be reviewed like an engineering artifact.
|
|
43
37
|
|
|
44
|
-
---
|
|
45
|
-
|
|
46
38
|
## Quickstart
|
|
47
39
|
|
|
48
40
|
Run DevCouncil commands in a normal terminal from the root of the repository you want DevCouncil to manage. Do not run these commands inside a coding CLI chat.
|
|
49
41
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
- Terminal at repo root: `dev setup`, `dev plan`, `dev run`, `dev prompt`, `dev verify`.
|
|
53
|
-
- Coding CLI chat: paste only the generated output from `dev prompt TASK-ID`.
|
|
54
|
-
- Different repo path: use `dev setup --project-root path/to/project`.
|
|
55
|
-
|
|
56
|
-
If you are developing DevCouncil itself, install dependencies from this checkout:
|
|
57
|
-
|
|
58
|
-
```bash
|
|
59
|
-
uv sync
|
|
60
|
-
uv run dev setup
|
|
61
|
-
```
|
|
62
|
-
|
|
63
|
-
For normal use from a local checkout, install DevCouncil as a `uv` tool:
|
|
64
|
-
|
|
65
|
-
```bash
|
|
66
|
-
uv tool install --force .
|
|
67
|
-
devcouncil --help
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
If `uv` is missing, install it first:
|
|
42
|
+
Install `uv` first if it is missing:
|
|
71
43
|
|
|
72
44
|
```powershell
|
|
73
45
|
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
|
|
@@ -79,18 +51,19 @@ On macOS or Linux:
|
|
|
79
51
|
curl -LsSf https://astral.sh/uv/install.sh | sh
|
|
80
52
|
```
|
|
81
53
|
|
|
82
|
-
|
|
54
|
+
Install DevCouncil from npm:
|
|
83
55
|
|
|
84
56
|
```bash
|
|
85
|
-
|
|
86
|
-
|
|
57
|
+
npm install -g devcouncil
|
|
58
|
+
devcouncil --help
|
|
59
|
+
dev --help
|
|
87
60
|
```
|
|
88
61
|
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
Start the first gated workflow:
|
|
62
|
+
Start the first gated workflow from your target repository:
|
|
92
63
|
|
|
93
64
|
```bash
|
|
65
|
+
cd path/to/your/project
|
|
66
|
+
dev setup
|
|
94
67
|
dev plan "Describe the implementation goal"
|
|
95
68
|
dev tasks
|
|
96
69
|
dev run TASK-001 --executor manual
|
|
@@ -98,541 +71,87 @@ dev prompt TASK-001
|
|
|
98
71
|
dev verify TASK-001
|
|
99
72
|
```
|
|
100
73
|
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
For the shortest install-to-first-task guide, see [docs/quickstart.md](docs/quickstart.md).
|
|
104
|
-
|
|
105
|
-
---
|
|
106
|
-
|
|
107
|
-
## Daily Workflow
|
|
108
|
-
|
|
109
|
-
DevCouncil's recommended default is **Manual Sidecar Mode**:
|
|
110
|
-
|
|
111
|
-
1. DevCouncil plans the work and creates a task graph.
|
|
112
|
-
2. You ask DevCouncil for one constrained task prompt.
|
|
113
|
-
3. You paste that prompt into your coding CLI or agent.
|
|
114
|
-
4. The agent edits the repository.
|
|
115
|
-
5. DevCouncil verifies the resulting diff against task constraints.
|
|
116
|
-
6. If verification fails, DevCouncil creates a focused repair loop.
|
|
117
|
-
|
|
118
|
-
### 1. Create The Implementation Plan
|
|
119
|
-
|
|
120
|
-
```bash
|
|
121
|
-
dev plan "Add password reset with expiring single-use tokens"
|
|
122
|
-
```
|
|
123
|
-
|
|
124
|
-
DevCouncil maps the repository, drafts requirements, runs planner and critic roles, and stores an approved task graph locally.
|
|
125
|
-
|
|
126
|
-
Inspect the plan:
|
|
127
|
-
|
|
128
|
-
```bash
|
|
129
|
-
dev status
|
|
130
|
-
dev tasks
|
|
131
|
-
dev show TASK-001
|
|
132
|
-
```
|
|
133
|
-
|
|
134
|
-
### 2. Start One Task
|
|
135
|
-
|
|
136
|
-
```bash
|
|
137
|
-
dev run TASK-001 --executor manual
|
|
138
|
-
```
|
|
139
|
-
|
|
140
|
-
This creates a checkpoint and marks the task as running. DevCouncil expects the next repository diff to match this task's allowed files, acceptance criteria, and verification commands.
|
|
141
|
-
|
|
142
|
-
### 3. Generate The Coding Prompt
|
|
143
|
-
|
|
144
|
-
```bash
|
|
145
|
-
dev prompt TASK-001
|
|
146
|
-
```
|
|
147
|
-
|
|
148
|
-
Paste the full output into your coding CLI. The generated prompt includes the task objective, allowed files, constraints, acceptance criteria, and evidence requirements.
|
|
149
|
-
|
|
150
|
-
### 4. Verify The Result
|
|
151
|
-
|
|
152
|
-
After the coding CLI modifies the repository:
|
|
153
|
-
|
|
154
|
-
```bash
|
|
155
|
-
dev verify TASK-001
|
|
156
|
-
```
|
|
157
|
-
|
|
158
|
-
Verification records evidence and marks the task as either `verified` or `blocked`.
|
|
159
|
-
|
|
160
|
-
Inspect the result:
|
|
161
|
-
|
|
162
|
-
```bash
|
|
163
|
-
dev status
|
|
164
|
-
dev report
|
|
165
|
-
dev report --json
|
|
166
|
-
```
|
|
167
|
-
|
|
168
|
-
### 5. Repair Gaps
|
|
169
|
-
|
|
170
|
-
If verification blocks the task, convert the gaps into focused repair work:
|
|
171
|
-
|
|
172
|
-
```bash
|
|
173
|
-
dev repair
|
|
174
|
-
dev tasks
|
|
175
|
-
dev prompt REPAIR-001
|
|
176
|
-
```
|
|
177
|
-
|
|
178
|
-
Paste the repair prompt into the same coding CLI, then verify again:
|
|
179
|
-
|
|
180
|
-
```bash
|
|
181
|
-
dev verify REPAIR-001
|
|
182
|
-
dev verify TASK-001
|
|
183
|
-
```
|
|
184
|
-
|
|
185
|
-
### 6. Continue Task By Task
|
|
186
|
-
|
|
187
|
-
```bash
|
|
188
|
-
dev tasks
|
|
189
|
-
dev show TASK-002
|
|
190
|
-
dev run TASK-002 --executor manual
|
|
191
|
-
dev prompt TASK-002
|
|
192
|
-
dev verify TASK-002
|
|
193
|
-
dev report
|
|
194
|
-
```
|
|
195
|
-
|
|
196
|
-
Recommended working rules:
|
|
197
|
-
|
|
198
|
-
- Run DevCouncil and the coding CLI from the same repository root.
|
|
199
|
-
- Give the coding CLI one DevCouncil task prompt at a time.
|
|
200
|
-
- Do not ask the coding CLI to broaden scope beyond the generated prompt.
|
|
201
|
-
- Run `dev verify TASK-ID` before committing agent-generated changes.
|
|
202
|
-
- Use `dev repair` for follow-up fixes instead of free-form retry prompts.
|
|
203
|
-
- Use `dev rollback TASK-ID` if a task needs to be reverted from its checkpoint.
|
|
204
|
-
- Treat `.devcouncil/` as local project state and the audit trail for the gated run.
|
|
205
|
-
|
|
206
|
-
---
|
|
207
|
-
|
|
208
|
-
## Coding CLI Integration
|
|
209
|
-
|
|
210
|
-
DevCouncil works with any tool that can accept a prompt and edit files in the same repository.
|
|
211
|
-
|
|
212
|
-
### Compatibility Matrix
|
|
213
|
-
|
|
214
|
-
| Tool | Manual sidecar prompts | Headless prompt handoff | DevCouncil MCP tools | Write-blocking hooks |
|
|
215
|
-
| :--- | :---: | :---: | :---: | :---: |
|
|
216
|
-
| **Codex CLI** | Supported | Supported via `codex exec` | Supported via `codex mcp` | Use DevCouncil verification gates |
|
|
217
|
-
| **Gemini CLI** | Supported | Supported via `gemini -p` or stdin | Supported via `gemini mcp` | Use DevCouncil verification gates |
|
|
218
|
-
| **Claude Code** | Supported | Tool-dependent | Manual MCP config only | Starter `dev hook` commands |
|
|
219
|
-
| **Cursor** | Supported | Tool-dependent | Manual MCP config only | Use DevCouncil verification gates |
|
|
220
|
-
| **Aider** | Supported | Prompt/stdin friendly | Not a primary path | Use DevCouncil verification gates |
|
|
221
|
-
|
|
222
|
-
### Fast Integration Setup
|
|
223
|
-
|
|
224
|
-
Preview coding CLI integrations:
|
|
225
|
-
|
|
226
|
-
```bash
|
|
227
|
-
dev setup --integrate
|
|
228
|
-
```
|
|
229
|
-
|
|
230
|
-
Apply supported MCP integrations for installed clients:
|
|
231
|
-
|
|
232
|
-
```bash
|
|
233
|
-
dev setup --integrate --apply
|
|
234
|
-
```
|
|
235
|
-
|
|
236
|
-
Configure every coding CLI with first-party setup support:
|
|
237
|
-
|
|
238
|
-
```bash
|
|
239
|
-
dev integrate all --apply
|
|
240
|
-
```
|
|
241
|
-
|
|
242
|
-
Preview exact setup commands without changing client config:
|
|
243
|
-
|
|
244
|
-
```bash
|
|
245
|
-
dev integrate all
|
|
246
|
-
```
|
|
247
|
-
|
|
248
|
-
Verify that DevCouncil is ready to expose MCP tools:
|
|
249
|
-
|
|
250
|
-
```bash
|
|
251
|
-
dev integrate check
|
|
252
|
-
```
|
|
253
|
-
|
|
254
|
-
Set up one first-party integration at a time:
|
|
255
|
-
|
|
256
|
-
```bash
|
|
257
|
-
dev integrate codex --apply
|
|
258
|
-
dev integrate gemini --apply
|
|
259
|
-
```
|
|
260
|
-
|
|
261
|
-
If a configured MCP client launches tools from a different directory, point it at the target repository:
|
|
262
|
-
|
|
263
|
-
```bash
|
|
264
|
-
dev integrate all --apply --project-root path/to/project
|
|
265
|
-
```
|
|
266
|
-
|
|
267
|
-
### Codex CLI
|
|
268
|
-
|
|
269
|
-
Manual sidecar flow:
|
|
270
|
-
|
|
271
|
-
```bash
|
|
272
|
-
cd path/to/project
|
|
273
|
-
dev run TASK-001 --executor manual
|
|
274
|
-
dev prompt TASK-001
|
|
275
|
-
```
|
|
276
|
-
|
|
277
|
-
Paste the generated prompt into Codex CLI. After Codex finishes:
|
|
278
|
-
|
|
279
|
-
```bash
|
|
280
|
-
dev verify TASK-001
|
|
281
|
-
```
|
|
282
|
-
|
|
283
|
-
Headless handoff:
|
|
284
|
-
|
|
285
|
-
```bash
|
|
286
|
-
dev prompt TASK-001 | codex exec -
|
|
287
|
-
dev verify TASK-001
|
|
288
|
-
```
|
|
289
|
-
|
|
290
|
-
MCP setup:
|
|
291
|
-
|
|
292
|
-
```bash
|
|
293
|
-
dev integrate codex --apply
|
|
294
|
-
```
|
|
295
|
-
|
|
296
|
-
If Codex launches MCP servers outside the target repository root, set `DEVCOUNCIL_PROJECT_ROOT` to the repository path in the MCP server environment.
|
|
297
|
-
|
|
298
|
-
### Gemini CLI
|
|
299
|
-
|
|
300
|
-
Manual sidecar flow:
|
|
301
|
-
|
|
302
|
-
```bash
|
|
303
|
-
cd path/to/project
|
|
304
|
-
dev run TASK-001 --executor manual
|
|
305
|
-
dev prompt TASK-001
|
|
306
|
-
```
|
|
307
|
-
|
|
308
|
-
Paste the prompt into Gemini CLI, then verify:
|
|
309
|
-
|
|
310
|
-
```bash
|
|
311
|
-
dev verify TASK-001
|
|
312
|
-
```
|
|
313
|
-
|
|
314
|
-
Headless handoff:
|
|
315
|
-
|
|
316
|
-
```bash
|
|
317
|
-
dev prompt TASK-001 | gemini
|
|
318
|
-
dev verify TASK-001
|
|
319
|
-
```
|
|
320
|
-
|
|
321
|
-
Or:
|
|
322
|
-
|
|
323
|
-
```bash
|
|
324
|
-
gemini -p "$(dev prompt TASK-001)"
|
|
325
|
-
```
|
|
326
|
-
|
|
327
|
-
MCP setup:
|
|
328
|
-
|
|
329
|
-
```bash
|
|
330
|
-
dev integrate gemini --apply
|
|
331
|
-
```
|
|
332
|
-
|
|
333
|
-
If Gemini launches MCP servers outside the target repository root, configure the server with `DEVCOUNCIL_PROJECT_ROOT` pointing at the repository that contains `.devcouncil/`.
|
|
334
|
-
|
|
335
|
-
### Claude Code
|
|
336
|
-
|
|
337
|
-
Start Claude Code in the same repository, then paste the generated task prompt:
|
|
338
|
-
|
|
339
|
-
```bash
|
|
340
|
-
cd path/to/project
|
|
341
|
-
dev run TASK-001 --executor manual
|
|
342
|
-
dev prompt TASK-001
|
|
343
|
-
```
|
|
344
|
-
|
|
345
|
-
After Claude Code finishes:
|
|
346
|
-
|
|
347
|
-
```bash
|
|
348
|
-
dev verify TASK-001
|
|
349
|
-
```
|
|
350
|
-
|
|
351
|
-
DevCouncil also includes an experimental hook command group:
|
|
352
|
-
|
|
353
|
-
```bash
|
|
354
|
-
dev hook --help
|
|
355
|
-
```
|
|
356
|
-
|
|
357
|
-
The intended hook integration is to call `dev hook pre-tool-use` before file-writing tools and block unauthorized writes with a non-zero exit. Treat this as experimental until your local Claude Code hook JSON shape matches what `dev hook pre-tool-use` expects.
|
|
358
|
-
|
|
359
|
-
### Cursor
|
|
360
|
-
|
|
361
|
-
Use DevCouncil as the planning and verification shell around Cursor:
|
|
362
|
-
|
|
363
|
-
```bash
|
|
364
|
-
dev run TASK-001 --executor manual
|
|
365
|
-
dev prompt TASK-001
|
|
366
|
-
```
|
|
367
|
-
|
|
368
|
-
Paste the prompt into Cursor Chat or Agent mode and instruct Cursor to stay within the prompt's allowed files. When Cursor finishes:
|
|
369
|
-
|
|
370
|
-
```bash
|
|
371
|
-
dev verify TASK-001
|
|
372
|
-
```
|
|
373
|
-
|
|
374
|
-
If Cursor changes files outside the task scope, DevCouncil verification should flag the unauthorized diff.
|
|
375
|
-
|
|
376
|
-
DevCouncil does not currently ship a dedicated `dev integrate cursor` command. Use manual sidecar prompts, or configure Cursor's MCP client manually against `devcouncil mcp-server` with `DEVCOUNCIL_PROJECT_ROOT` set to the target repository.
|
|
377
|
-
|
|
378
|
-
### Aider
|
|
379
|
-
|
|
380
|
-
Start Aider in the target repository:
|
|
381
|
-
|
|
382
|
-
```bash
|
|
383
|
-
cd path/to/project
|
|
384
|
-
aider
|
|
385
|
-
```
|
|
386
|
-
|
|
387
|
-
Paste the output from:
|
|
74
|
+
On a fresh interactive setup, DevCouncil can configure supported coding CLI integrations immediately; pass `--skip-integrations` if you want to defer that step.
|
|
388
75
|
|
|
389
|
-
|
|
390
|
-
dev prompt TASK-001
|
|
391
|
-
```
|
|
76
|
+
Paste only the output from `dev prompt TASK-001` into Codex, Gemini, Claude Code, Cursor, Aider, or another coding tool. Keep `dev setup`, `dev plan`, `dev run`, and `dev verify` in the terminal at the repository root.
|
|
392
77
|
|
|
393
|
-
|
|
78
|
+
For an automated end-to-end run with a supported coding CLI installed:
|
|
394
79
|
|
|
395
80
|
```bash
|
|
396
|
-
dev
|
|
81
|
+
dev e2e "Describe the implementation goal" --executor codex
|
|
82
|
+
dev go "Describe the implementation goal" --executor codex
|
|
397
83
|
```
|
|
398
84
|
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
### Automated Executors
|
|
85
|
+
`dev e2e` is the explicit one-command integration target for coding agents. It initializes local DevCouncil state if needed, plans the goal, runs each approved task through the selected executor, verifies the resulting diff, and prints the final report. If `--executor` is omitted, DevCouncil uses `execution.default_executor` from `.devcouncil/config.yaml`. `dev go` is kept as a shorter alias for the same flow.
|
|
402
86
|
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
DevCouncil also has experimental executor adapters:
|
|
87
|
+
For machine-readable agent handoff, write the final report to a stable file:
|
|
406
88
|
|
|
407
89
|
```bash
|
|
408
|
-
dev
|
|
409
|
-
dev
|
|
410
|
-
dev run TASK-001 --executor native
|
|
90
|
+
dev e2e "Describe the implementation goal" --agent
|
|
91
|
+
dev e2e "Describe the implementation goal" --json --report-file .devcouncil/reports/latest.json
|
|
411
92
|
```
|
|
412
93
|
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
The live executor adapter values are `manual`, `mini`, `openhands`, and `native`.
|
|
416
|
-
|
|
417
|
-
---
|
|
418
|
-
|
|
419
|
-
## Installation
|
|
94
|
+
`--agent` is the lowest-friction integration preset. It enables JSON output and writes `.devcouncil/reports/latest.json`.
|
|
420
95
|
|
|
421
|
-
|
|
96
|
+
See the full [quickstart](docs/quickstart.md) for installation variants, API-key setup, and first-run guidance.
|
|
422
97
|
|
|
423
|
-
|
|
98
|
+
## Core Flow
|
|
424
99
|
|
|
425
|
-
|
|
426
|
-
npm install -g .
|
|
427
|
-
devcouncil --help
|
|
428
|
-
dev --help
|
|
429
|
-
```
|
|
430
|
-
|
|
431
|
-
The npm wrapper delegates to the Python DevCouncil CLI through `uv`, so `uv` must be installed.
|
|
432
|
-
|
|
433
|
-
Check for `uv`:
|
|
434
|
-
|
|
435
|
-
```bash
|
|
436
|
-
uv --version
|
|
437
|
-
```
|
|
438
|
-
|
|
439
|
-
Install `uv` on Windows:
|
|
440
|
-
|
|
441
|
-
```powershell
|
|
442
|
-
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
|
|
443
|
-
```
|
|
444
|
-
|
|
445
|
-
Install `uv` on macOS or Linux:
|
|
100
|
+
DevCouncil's recommended default is **Manual Sidecar Mode**:
|
|
446
101
|
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
102
|
+
1. DevCouncil plans the work and creates a task graph.
|
|
103
|
+
2. You ask DevCouncil for one constrained task prompt.
|
|
104
|
+
3. You paste that prompt into your coding CLI or agent.
|
|
105
|
+
4. The agent edits the repository.
|
|
106
|
+
5. DevCouncil verifies the resulting diff against task constraints.
|
|
107
|
+
6. If verification fails, DevCouncil creates a focused repair loop.
|
|
450
108
|
|
|
451
|
-
|
|
109
|
+
The detailed task-by-task workflow lives in [docs/workflow.md](docs/workflow.md).
|
|
452
110
|
|
|
453
|
-
|
|
454
|
-
npm install -g devcouncil
|
|
455
|
-
devcouncil --help
|
|
456
|
-
```
|
|
111
|
+
## Install From Source
|
|
457
112
|
|
|
458
|
-
For
|
|
113
|
+
For local development inside this checkout:
|
|
459
114
|
|
|
460
115
|
```bash
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
npm publish
|
|
116
|
+
uv sync
|
|
117
|
+
uv run dev --help
|
|
464
118
|
```
|
|
465
119
|
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
From this repository:
|
|
120
|
+
For a global install from this repository:
|
|
469
121
|
|
|
470
122
|
```bash
|
|
471
123
|
uv tool install --force .
|
|
472
|
-
```
|
|
473
|
-
|
|
474
|
-
DevCouncil installs two command aliases:
|
|
475
|
-
|
|
476
|
-
```bash
|
|
477
124
|
dev --help
|
|
478
125
|
devcouncil --help
|
|
479
126
|
```
|
|
480
127
|
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
### Source Development
|
|
484
|
-
|
|
485
|
-
```bash
|
|
486
|
-
git clone https://github.com/bharathvbcr/DevCouncil.git
|
|
487
|
-
cd DevCouncil
|
|
488
|
-
uv sync
|
|
489
|
-
uv run dev --help
|
|
490
|
-
```
|
|
491
|
-
|
|
492
|
-
---
|
|
493
|
-
|
|
494
|
-
## CLI Command Reference
|
|
495
|
-
|
|
496
|
-
```bash
|
|
497
|
-
dev init # Initialize DevCouncil in a repo
|
|
498
|
-
dev setup # Initialize, run doctor, and print next steps
|
|
499
|
-
dev doctor # Check dependencies and environment
|
|
500
|
-
dev version # Display the installed DevCouncil version
|
|
501
|
-
dev map "goal" # Map repo context for a goal
|
|
502
|
-
dev plan "goal" # Run the full planning council debate
|
|
503
|
-
dev status # Show current project state and cost
|
|
504
|
-
dev tasks # List planned tasks and statuses
|
|
505
|
-
dev show TASK-001 # Show task details and constraints
|
|
506
|
-
dev prompt TASK-001 # Generate prompt for an external agent
|
|
507
|
-
dev run TASK-001 # Execute task via selected executor
|
|
508
|
-
dev verify TASK-001 # Verify diff, commands, and evidence
|
|
509
|
-
dev repair # Generate repair tasks from gaps
|
|
510
|
-
dev report # Generate final evidence report
|
|
511
|
-
dev rollback TASK-001 # Revert changes using task checkpoint
|
|
512
|
-
dev mcp-server # Start DevCouncil MCP server over stdio
|
|
513
|
-
dev hook --help # Show experimental Claude Code hook commands
|
|
514
|
-
dev integrate all --apply # Configure supported coding CLI integrations
|
|
515
|
-
dev integrate check # Verify coding CLI and MCP readiness
|
|
516
|
-
dev integrate doctor # Check optional integration tools
|
|
517
|
-
dev trace tail --follow # Tail local DevCouncil trace events
|
|
518
|
-
dev artifacts validate # Validate stored artifact integrity
|
|
519
|
-
dev config # Inspect or update configuration
|
|
520
|
-
```
|
|
521
|
-
|
|
522
|
-
---
|
|
523
|
-
|
|
524
|
-
## Architecture
|
|
128
|
+
## Project Shape
|
|
525
129
|
|
|
526
130
|
DevCouncil implements a 7-phase software-team workflow:
|
|
527
131
|
|
|
528
|
-
1.
|
|
529
|
-
2.
|
|
530
|
-
3.
|
|
531
|
-
4.
|
|
532
|
-
5.
|
|
533
|
-
6.
|
|
534
|
-
7.
|
|
535
|
-
|
|
536
|
-
### Artifact Graph
|
|
537
|
-
|
|
538
|
-
```mermaid
|
|
539
|
-
graph TD;
|
|
540
|
-
Requirement-->AcceptanceCriterion;
|
|
541
|
-
Requirement-->Task;
|
|
542
|
-
Task-->PlannedFile;
|
|
543
|
-
Task-->ChangedFile;
|
|
544
|
-
Task-->TestEvidence;
|
|
545
|
-
Task-->CommandResult;
|
|
546
|
-
Requirement-->Gap;
|
|
547
|
-
Task-->Gap;
|
|
548
|
-
```
|
|
549
|
-
|
|
550
|
-
### Gating State Machine
|
|
551
|
-
|
|
552
|
-
```mermaid
|
|
553
|
-
stateDiagram-v2
|
|
554
|
-
[*] --> NEW
|
|
555
|
-
NEW --> REPO_MAPPED
|
|
556
|
-
REPO_MAPPED --> REQUIREMENTS_DRAFTED
|
|
557
|
-
REQUIREMENTS_DRAFTED --> PLANS_GENERATED
|
|
558
|
-
PLANS_GENERATED --> CRITIQUES_GENERATED
|
|
559
|
-
CRITIQUES_GENERATED --> ARBITRATED
|
|
560
|
-
ARBITRATED --> PLAN_APPROVED
|
|
561
|
-
PLAN_APPROVED --> TASK_READY
|
|
562
|
-
|
|
563
|
-
TASK_READY --> TASK_EXECUTING
|
|
564
|
-
TASK_EXECUTING --> TASK_VERIFYING
|
|
565
|
-
|
|
566
|
-
TASK_VERIFYING --> TASK_VERIFIED: Success
|
|
567
|
-
TASK_VERIFYING --> TASK_BLOCKED: Failure
|
|
568
|
-
|
|
569
|
-
TASK_BLOCKED --> TASK_READY: Repair
|
|
570
|
-
|
|
571
|
-
TASK_VERIFIED --> TASK_READY: Next Task
|
|
572
|
-
TASK_VERIFIED --> PROJECT_DONE: All Done
|
|
573
|
-
|
|
574
|
-
PROJECT_DONE --> [*]
|
|
575
|
-
```
|
|
576
|
-
|
|
577
|
-
### How DevCouncil Differs From Sage
|
|
132
|
+
1. Goal analysis and repository mapping.
|
|
133
|
+
2. Requirements drafting.
|
|
134
|
+
3. Council debate and task arbitration.
|
|
135
|
+
4. Gated execution with scoped files and commands.
|
|
136
|
+
5. Deterministic verification.
|
|
137
|
+
6. Repair-loop generation.
|
|
138
|
+
7. Evidence reporting.
|
|
578
139
|
|
|
579
|
-
|
|
140
|
+
Read [docs/architecture.md](docs/architecture.md) for the artifact graph, gating state machine, and component layout.
|
|
580
141
|
|
|
581
|
-
|
|
142
|
+
## Contributions
|
|
582
143
|
|
|
583
|
-
|
|
584
|
-
- It blocks task completion when required evidence is missing.
|
|
585
|
-
- It detects orphan diffs and unauthorized architectural changes.
|
|
586
|
-
- It produces a deterministic evidence report for the final implementation.
|
|
587
|
-
|
|
588
|
-
Sage asks: "Is this agent response good?" DevCouncil asks: "Can this task prove it satisfied the requirement?"
|
|
589
|
-
|
|
590
|
-
---
|
|
591
|
-
|
|
592
|
-
## Project Status
|
|
593
|
-
|
|
594
|
-
DevCouncil is early-stage and under active development.
|
|
595
|
-
|
|
596
|
-
| Area | Status |
|
|
597
|
-
| :--- | :--- |
|
|
598
|
-
| **CLI & Storage** | Working: SQLite + SQLModel |
|
|
599
|
-
| **Artifact Graph** | Working: coverage engine |
|
|
600
|
-
| **Council Debate** | Working: multi-agent planning |
|
|
601
|
-
| **Manual Executor** | Working: sidecar mode |
|
|
602
|
-
| **Security Scanning** | Working: secret redaction and detection |
|
|
603
|
-
| **Repair Loop** | Working: LLM-driven inference |
|
|
604
|
-
| **Native Executor** | Experimental |
|
|
605
|
-
| **MCP Server** | Experimental / starter |
|
|
606
|
-
| **Claude Code Hooks** | Experimental / starter |
|
|
607
|
-
| **GitHub PR Checks** | Starter: `dev report --github` |
|
|
608
|
-
|
|
609
|
-
---
|
|
610
|
-
|
|
611
|
-
## Security Model
|
|
612
|
-
|
|
613
|
-
DevCouncil is designed to minimize unsafe agent behavior:
|
|
614
|
-
|
|
615
|
-
- **Redaction:** strips secrets and API keys before sending context to LLMs.
|
|
616
|
-
- **Permission guard:** prevents agents from accessing `.git`, `.env`, or sensitive credentials.
|
|
617
|
-
- **Allowlist enforcement:** restricts writes to task-approved files and commands to a safe subset.
|
|
618
|
-
- **Local sovereignty:** stores project state, logs, and artifacts locally in `.devcouncil/`.
|
|
619
|
-
|
|
620
|
-
DevCouncil provides gates and evidence to make risky changes easier to detect. It does not replace human security review.
|
|
621
|
-
|
|
622
|
-
---
|
|
623
|
-
|
|
624
|
-
## Acknowledgements
|
|
625
|
-
|
|
626
|
-
DevCouncil is built on the collective wisdom of the open-source agentic community:
|
|
144
|
+
Project ideas and execution patterns come from the open-source ecosystem:
|
|
627
145
|
|
|
146
|
+
- [Sage](https://github.com/usetig/sage): peer-review-first model for planning and critique.
|
|
628
147
|
- [karpathy/llm-council](https://github.com/karpathy/llm-council): for the multi-LLM peer-review pattern.
|
|
629
|
-
- [GPT Pilot](https://github.com/Pythagora-io/gpt-pilot): for
|
|
630
|
-
- [
|
|
148
|
+
- [GPT Pilot](https://github.com/Pythagora-io/gpt-pilot): for role-based software-team concept.
|
|
149
|
+
- [astral-sh/uv](https://github.com/astral-sh/uv): for reproducible Python package/runtime workflows.
|
|
150
|
+
- [OpenHands](https://github.com/All-Hands-AI/OpenHands): for workspace-aware agent execution patterns.
|
|
631
151
|
- [mini-SWE-agent](https://github.com/SWE-agent/mini-swe-agent): for lightweight execution loop inspiration.
|
|
632
|
-
- [
|
|
633
|
-
- [
|
|
634
|
-
|
|
635
|
-
---
|
|
152
|
+
- [SWE-agent](https://github.com/SWE-agent/SWE-agent): for full-spectrum autonomous SWE-style tasking patterns.
|
|
153
|
+
- [GitNexus](https://github.com/abhigyanpatwari/GitNexus): for structural codebase awareness.
|
|
154
|
+
- [graphify](https://github.com/safishamsi/graphify): for knowledge-graph-based coordination concepts.
|
|
636
155
|
|
|
637
156
|
## License
|
|
638
157
|
|