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.
Files changed (128) hide show
  1. package/LICENSE +201 -201
  2. package/README.md +62 -543
  3. package/package.json +1 -1
  4. package/pyproject.toml +29 -26
  5. package/src/devcouncil/__main__.py +4 -4
  6. package/src/devcouncil/app/__init__.py +28 -28
  7. package/src/devcouncil/app/config.py +135 -108
  8. package/src/devcouncil/app/errors.py +23 -23
  9. package/src/devcouncil/app/events.py +44 -44
  10. package/src/devcouncil/app/orchestrator.py +67 -67
  11. package/src/devcouncil/app/project_status.py +29 -0
  12. package/src/devcouncil/app/run_context.py +39 -39
  13. package/src/devcouncil/app/state_machine.py +108 -108
  14. package/src/devcouncil/artifacts/__init__.py +1 -1
  15. package/src/devcouncil/artifacts/coverage.py +96 -96
  16. package/src/devcouncil/artifacts/graph.py +143 -143
  17. package/src/devcouncil/artifacts/migrations.py +20 -20
  18. package/src/devcouncil/artifacts/schemas.py +23 -23
  19. package/src/devcouncil/artifacts/serializer.py +21 -21
  20. package/src/devcouncil/artifacts/validators.py +27 -27
  21. package/src/devcouncil/cli/commands/artifacts.py +51 -48
  22. package/src/devcouncil/cli/commands/ast.py +22 -0
  23. package/src/devcouncil/cli/commands/baseline.py +35 -32
  24. package/src/devcouncil/cli/commands/config.py +76 -54
  25. package/src/devcouncil/cli/commands/dashboard.py +26 -0
  26. package/src/devcouncil/cli/commands/doctor.py +86 -42
  27. package/src/devcouncil/cli/commands/go.py +237 -0
  28. package/src/devcouncil/cli/commands/hook.py +96 -29
  29. package/src/devcouncil/cli/commands/init.py +67 -56
  30. package/src/devcouncil/cli/commands/integrate.py +320 -14
  31. package/src/devcouncil/cli/commands/lsp.py +20 -0
  32. package/src/devcouncil/cli/commands/map.py +25 -21
  33. package/src/devcouncil/cli/commands/plan.py +257 -206
  34. package/src/devcouncil/cli/commands/prompt.py +36 -33
  35. package/src/devcouncil/cli/commands/repair.py +72 -69
  36. package/src/devcouncil/cli/commands/report.py +112 -54
  37. package/src/devcouncil/cli/commands/reset_demo_state.py +31 -28
  38. package/src/devcouncil/cli/commands/rollback.py +49 -47
  39. package/src/devcouncil/cli/commands/run.py +252 -207
  40. package/src/devcouncil/cli/commands/setup.py +159 -18
  41. package/src/devcouncil/cli/commands/show.py +76 -57
  42. package/src/devcouncil/cli/commands/status.py +117 -105
  43. package/src/devcouncil/cli/commands/tasks.py +55 -41
  44. package/src/devcouncil/cli/commands/trace.py +2 -1
  45. package/src/devcouncil/cli/commands/verify.py +158 -128
  46. package/src/devcouncil/cli/commands/version.py +20 -20
  47. package/src/devcouncil/cli/commands/watch.py +574 -0
  48. package/src/devcouncil/cli/main.py +42 -24
  49. package/src/devcouncil/council/prompts/arbiter.md +19 -19
  50. package/src/devcouncil/council/prompts/critic_a.md +10 -10
  51. package/src/devcouncil/council/prompts/critic_b.md +10 -10
  52. package/src/devcouncil/council/prompts/implementation_reviewer.md +16 -16
  53. package/src/devcouncil/council/prompts/planner_a.md +16 -16
  54. package/src/devcouncil/council/prompts/planner_b.md +16 -16
  55. package/src/devcouncil/council/prompts/rebuttal.md +10 -10
  56. package/src/devcouncil/council/prompts/spec_writer.md +12 -12
  57. package/src/devcouncil/domain/assumption.py +17 -17
  58. package/src/devcouncil/domain/critique.py +32 -32
  59. package/src/devcouncil/domain/evidence.py +27 -27
  60. package/src/devcouncil/domain/gap.py +26 -26
  61. package/src/devcouncil/domain/requirement.py +22 -22
  62. package/src/devcouncil/domain/task.py +26 -26
  63. package/src/devcouncil/execution/__init__.py +1 -1
  64. package/src/devcouncil/execution/context_builder.py +54 -54
  65. package/src/devcouncil/execution/executor.py +15 -15
  66. package/src/devcouncil/execution/hook_policy.py +24 -3
  67. package/src/devcouncil/execution/patch.py +28 -28
  68. package/src/devcouncil/execution/permissions.py +44 -44
  69. package/src/devcouncil/execution/prompt_builder.py +23 -23
  70. package/src/devcouncil/execution/task_runner.py +63 -63
  71. package/src/devcouncil/executors/__init__.py +1 -1
  72. package/src/devcouncil/executors/coding_cli.py +112 -0
  73. package/src/devcouncil/executors/mini_swe.py +63 -63
  74. package/src/devcouncil/executors/native/agent.py +81 -81
  75. package/src/devcouncil/executors/openhands.py +56 -56
  76. package/src/devcouncil/gating/__init__.py +1 -1
  77. package/src/devcouncil/gating/checks/clean_git.py +50 -45
  78. package/src/devcouncil/gating/checks/planned_files_check.py +32 -32
  79. package/src/devcouncil/gating/checks/requirement_coverage.py +26 -26
  80. package/src/devcouncil/gating/checks/secret_scan_check.py +34 -34
  81. package/src/devcouncil/gating/policy.py +157 -157
  82. package/src/devcouncil/indexing/__init__.py +1 -1
  83. package/src/devcouncil/indexing/ast_matcher.py +168 -0
  84. package/src/devcouncil/indexing/graph_index.py +48 -48
  85. package/src/devcouncil/indexing/lsp.py +120 -0
  86. package/src/devcouncil/indexing/repo_mapper.py +208 -204
  87. package/src/devcouncil/integrations/github.py +35 -35
  88. package/src/devcouncil/integrations/gitnexus.py +27 -27
  89. package/src/devcouncil/integrations/graphify.py +34 -34
  90. package/src/devcouncil/integrations/mcp/server.py +549 -96
  91. package/src/devcouncil/integrations/pr_comments.py +62 -0
  92. package/src/devcouncil/live/__init__.py +2 -0
  93. package/src/devcouncil/live/cards.py +207 -0
  94. package/src/devcouncil/live/models.py +63 -0
  95. package/src/devcouncil/live/repair_prompt.py +83 -0
  96. package/src/devcouncil/live/reviewer.py +70 -0
  97. package/src/devcouncil/live/signals.py +135 -0
  98. package/src/devcouncil/live/summary.py +34 -0
  99. package/src/devcouncil/live/tasks.py +18 -0
  100. package/src/devcouncil/live/transcripts.py +138 -0
  101. package/src/devcouncil/llm/__init__.py +1 -1
  102. package/src/devcouncil/llm/cache.py +38 -38
  103. package/src/devcouncil/llm/provider.py +146 -125
  104. package/src/devcouncil/llm/router.py +111 -111
  105. package/src/devcouncil/planning/__init__.py +1 -1
  106. package/src/devcouncil/planning/arbiter_service.py +57 -57
  107. package/src/devcouncil/planning/critique_service.py +66 -66
  108. package/src/devcouncil/planning/plan_service.py +46 -46
  109. package/src/devcouncil/planning/prompt_enhancer_service.py +86 -0
  110. package/src/devcouncil/planning/repair_service.py +39 -39
  111. package/src/devcouncil/planning/spec_service.py +44 -44
  112. package/src/devcouncil/reporting/github_check.py +32 -32
  113. package/src/devcouncil/reporting/json_report.py +20 -17
  114. package/src/devcouncil/reporting/markdown_report.py +68 -46
  115. package/src/devcouncil/reporting/report_builder.py +14 -14
  116. package/src/devcouncil/storage/db.py +66 -66
  117. package/src/devcouncil/storage/models.py +83 -83
  118. package/src/devcouncil/storage/repositories.py +299 -222
  119. package/src/devcouncil/telemetry/cost.py +34 -34
  120. package/src/devcouncil/telemetry/tracker.py +49 -49
  121. package/src/devcouncil/ui/__init__.py +1 -0
  122. package/src/devcouncil/ui/dashboard.py +122 -0
  123. package/src/devcouncil/utils/__init__.py +1 -1
  124. package/src/devcouncil/utils/redaction.py +141 -141
  125. package/src/devcouncil/verification/__init__.py +1 -1
  126. package/src/devcouncil/verification/implementation_reviewer.py +55 -55
  127. package/src/devcouncil/verification/verifier.py +319 -302
  128. 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 is not trying to 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.
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
- - [Why DevCouncil Exists](#why-devcouncil-exists)
18
- - [Quickstart](#quickstart)
19
- - [Daily Workflow](#daily-workflow)
20
- - [Coding CLI Integration](#coding-cli-integration)
21
- - [Installation](#installation)
22
- - [CLI Command Reference](#cli-command-reference)
23
- - [Architecture](#architecture)
24
- - [Project Status](#project-status)
25
- - [Security Model](#security-model)
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
- **Where to run what:**
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
- After installing DevCouncil globally, initialize it in a target repository:
54
+ Install DevCouncil from npm:
83
55
 
84
56
  ```bash
85
- cd path/to/your/project
86
- dev setup
57
+ npm install -g devcouncil
58
+ devcouncil --help
59
+ dev --help
87
60
  ```
88
61
 
89
- `dev setup` creates `.devcouncil/` if needed, runs the environment doctor, and prints the next commands for planning, prompting, and verification.
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
- 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.
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
- ```bash
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
- After Aider commits or leaves a working-tree diff:
78
+ For an automated end-to-end run with a supported coding CLI installed:
394
79
 
395
80
  ```bash
396
- dev verify TASK-001
81
+ dev e2e "Describe the implementation goal" --executor codex
82
+ dev go "Describe the implementation goal" --executor codex
397
83
  ```
398
84
 
399
- If you want DevCouncil to inspect the live working tree before committing, verify before creating the final commit.
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
- Manual sidecar mode is the recommended default because it works with any coding CLI and keeps the human in control of the agent session.
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 run TASK-001 --executor mini
409
- dev run TASK-001 --executor openhands
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
- Use these only when the target executor is installed and configured locally. Automated executor mode lets DevCouncil launch the implementation loop itself, capture the post-run diff, and verify the task automatically.
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
- ### npm Wrapper
96
+ See the full [quickstart](docs/quickstart.md) for installation variants, API-key setup, and first-run guidance.
422
97
 
423
- The npm wrapper is included for local testing and future registry publishing. Until the package is published to npm, install the wrapper from this checkout:
98
+ ## Core Flow
424
99
 
425
- ```bash
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
- ```bash
448
- curl -LsSf https://astral.sh/uv/install.sh | sh
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
- After publishing the package to npm, users can install the registry package:
109
+ The detailed task-by-task workflow lives in [docs/workflow.md](docs/workflow.md).
452
110
 
453
- ```bash
454
- npm install -g devcouncil
455
- devcouncil --help
456
- ```
111
+ ## Install From Source
457
112
 
458
- For maintainers publishing the npm wrapper:
113
+ For local development inside this checkout:
459
114
 
460
115
  ```bash
461
- npm login
462
- npm run pack:check
463
- npm publish
116
+ uv sync
117
+ uv run dev --help
464
118
  ```
465
119
 
466
- ### uv Global Install
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
- Use `devcouncil` when another tool already owns the `dev` command.
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. **Goal analysis:** deterministic repository mapping and relevant context selection.
529
- 2. **Requirements drafting:** extraction of functional requirements and acceptance criteria.
530
- 3. **Council debate:** planner roles critique each other and an arbiter compiles a unified task graph.
531
- 4. **Gated execution:** tasks are scoped with allowed files and authorized commands.
532
- 5. **Deterministic verification:** the audit engine checks side effects, command evidence, and secret leaks.
533
- 6. **Repair loop:** blocking gaps are converted into focused repair tasks.
534
- 7. **Evidence reporting:** a final release-ready matrix proves requirement coverage.
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
- **Sage** reviews an active coding-agent session and provides critique cards to help the developer course-correct.
140
+ Read [docs/architecture.md](docs/architecture.md) for the artifact graph, gating state machine, and component layout.
580
141
 
581
- **DevCouncil** focuses on gated execution:
142
+ ## Contributions
582
143
 
583
- - It creates a persistent requirement, task, diff, and evidence graph.
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 the software-team role-based concept.
630
- - [OpenHands](https://github.com/All-Hands-AI/OpenHands): for robust agent workspace and tool-loop management.
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
- - [abhigyanpatwari/GitNexus](https://github.com/abhigyanpatwari/GitNexus): for structural codebase awareness.
633
- - [safishamsi/graphify](https://github.com/safishamsi/graphify): for knowledge graph and multi-agent coordination.
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
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "devcouncil",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "Gated orchestrator for AI-assisted software development",
5
5
  "license": "Apache-2.0",
6
6
  "homepage": "https://github.com/bharathvbcr/DevCouncil#readme",