open-codev-workflow 0.1.0__py3-none-any.whl
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.
- codev_workflow/__init__.py +5 -0
- codev_workflow/__main__.py +4 -0
- codev_workflow/bundle/.agents/skills/build-change/SKILL.md +96 -0
- codev_workflow/bundle/.agents/skills/build-change/agents/openai.yaml +4 -0
- codev_workflow/bundle/.agents/skills/build-change/assets/implementation-plan.template.md +51 -0
- codev_workflow/bundle/.agents/skills/define-product/SKILL.md +79 -0
- codev_workflow/bundle/.agents/skills/define-product/agents/openai.yaml +4 -0
- codev_workflow/bundle/.agents/skills/define-product/assets/brief.template.md +50 -0
- codev_workflow/bundle/.agents/skills/design-solution/SKILL.md +75 -0
- codev_workflow/bundle/.agents/skills/design-solution/agents/openai.yaml +4 -0
- codev_workflow/bundle/.agents/skills/design-solution/assets/decision.template.md +26 -0
- codev_workflow/bundle/.agents/skills/design-solution/assets/design.template.md +76 -0
- codev_workflow/bundle/.agents/skills/launch-product/SKILL.md +66 -0
- codev_workflow/bundle/.agents/skills/launch-product/agents/openai.yaml +4 -0
- codev_workflow/bundle/.agents/skills/launch-product/assets/launch-plan.template.md +48 -0
- codev_workflow/bundle/.agents/skills/plan-delivery/SKILL.md +140 -0
- codev_workflow/bundle/.agents/skills/plan-delivery/agents/openai.yaml +4 -0
- codev_workflow/bundle/.agents/skills/plan-delivery/assets/delivery-plan.template.md +41 -0
- codev_workflow/bundle/.agents/skills/review-change/SKILL.md +48 -0
- codev_workflow/bundle/.agents/skills/review-change/agents/openai.yaml +4 -0
- codev_workflow/bundle/.agents/skills/specify-project/SKILL.md +205 -0
- codev_workflow/bundle/.agents/skills/specify-project/agents/openai.yaml +4 -0
- codev_workflow/bundle/.agents/skills/specify-project/assets/specification.template.md +151 -0
- codev_workflow/bundle/.agents/skills/specify-project/references/interview-coverage.md +303 -0
- codev_workflow/bundle/.agents/skills/specify-project/scripts/validate_specification.py +143 -0
- codev_workflow/bundle/.opencode/agents/builder.md +54 -0
- codev_workflow/bundle/.opencode/agents/orchestrator.md +72 -0
- codev_workflow/bundle/.opencode/agents/reviewer.md +35 -0
- codev_workflow/bundle/AGENTS.md +23 -0
- codev_workflow/bundle/docs/AI-WORKFLOW-PROMPTS.md +318 -0
- codev_workflow/bundle/docs/WORKFLOW-COOKBOOK.md +419 -0
- codev_workflow/bundle/docs/WORKFLOW-HUMAN.md +212 -0
- codev_workflow/bundle/docs/for-ai/WORKFLOW-AGENTS.md +171 -0
- codev_workflow/bundle/docs/handbooks/IDEA-TO-PRODUCTION-HANDBOOK.md +1190 -0
- codev_workflow/bundle/docs/handbooks/LANGUAGE-AGNOSTIC-PROJECT-HANDBOOK.md +745 -0
- codev_workflow/bundle/docs/handbooks/PYTHON-PROJECT-HANDBOOK.md +960 -0
- codev_workflow/bundle/evals/development-workflow/scenarios.json +132 -0
- codev_workflow/bundle/scripts/evaluate-development-workflow.py +352 -0
- codev_workflow/bundle/scripts/validate-development-workflow.py +213 -0
- codev_workflow/cli.py +140 -0
- codev_workflow/installer.py +891 -0
- open_codev_workflow-0.1.0.dist-info/METADATA +150 -0
- open_codev_workflow-0.1.0.dist-info/RECORD +47 -0
- open_codev_workflow-0.1.0.dist-info/WHEEL +5 -0
- open_codev_workflow-0.1.0.dist-info/entry_points.txt +2 -0
- open_codev_workflow-0.1.0.dist-info/licenses/LICENSE +28 -0
- open_codev_workflow-0.1.0.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,419 @@
|
|
|
1
|
+
# Human-AI Development Workflow Cookbook
|
|
2
|
+
|
|
3
|
+
This cookbook gives copyable starting recipes for the four most common kinds of
|
|
4
|
+
software work. It assumes the repository policy in [AGENTS.md](../AGENTS.md) and
|
|
5
|
+
the [Product Development Workflow](WORKFLOW-HUMAN.md).
|
|
6
|
+
|
|
7
|
+
The recipes are starting points, not substitutes for judgment. Risk overrides
|
|
8
|
+
change size: security, privacy, permissions, public contracts, persistent data,
|
|
9
|
+
billing, compliance, destructive behavior, or difficult rollback require
|
|
10
|
+
explicit design and independent review.
|
|
11
|
+
|
|
12
|
+
## Quick routing table
|
|
13
|
+
|
|
14
|
+
You can state any of these requests in normal language. The table explains the
|
|
15
|
+
AI's internal routing; it is not a list of commands the developer must memorize.
|
|
16
|
+
|
|
17
|
+
| Situation | Start with | Normal artifact |
|
|
18
|
+
|---|---|---|
|
|
19
|
+
| New greenfield project | `specify-project` | accepted `SPECIFICATION.md` |
|
|
20
|
+
| Single brownfield feature | `define-product` | feature brief; design if material |
|
|
21
|
+
| New product version with several developers | `define-product` or accepted product specification, then `design-solution` and `plan-delivery` | release brief/design plus delivery plan |
|
|
22
|
+
| Small local bug fix | `build-change` | issue plus code/tests |
|
|
23
|
+
|
|
24
|
+
All implementation eventually uses `build-change`, independent human review,
|
|
25
|
+
and proportionate validation. Use `review-change` as a fresh AI review for normal
|
|
26
|
+
or higher-risk work, and `launch-product` for material production exposure.
|
|
27
|
+
|
|
28
|
+
## Recipe 1: Create a greenfield project
|
|
29
|
+
|
|
30
|
+
### Use this recipe when
|
|
31
|
+
|
|
32
|
+
There is a product idea but no accepted product frame, architecture, or
|
|
33
|
+
repository implementation. The desired outcome is one coherent project
|
|
34
|
+
blueprint created through a guided discussion.
|
|
35
|
+
|
|
36
|
+
Do not use this recipe for a one-feature addition to an established product.
|
|
37
|
+
|
|
38
|
+
### Result
|
|
39
|
+
|
|
40
|
+
```text
|
|
41
|
+
Idea
|
|
42
|
+
-> one-question-at-a-time specification interview
|
|
43
|
+
-> accepted product frame
|
|
44
|
+
-> accepted technical design
|
|
45
|
+
-> canonical SPECIFICATION.md
|
|
46
|
+
-> delivery plan for the first milestone
|
|
47
|
+
-> repository bootstrap and small implementation slices
|
|
48
|
+
-> staged launch and learning
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### Step 1: begin the interview
|
|
52
|
+
|
|
53
|
+
Give the AI any existing notes, research, constraints, sketches, or policies.
|
|
54
|
+
Then use:
|
|
55
|
+
|
|
56
|
+
```text
|
|
57
|
+
Use $specify-project for this greenfield product. Interview me exactly one
|
|
58
|
+
question at a time and include your recommended default with every question.
|
|
59
|
+
Challenge unsafe or vague answers. Accept the product frame before designing the
|
|
60
|
+
technical system, then create one canonical SPECIFICATION.md. Do not create an
|
|
61
|
+
implementation roadmap, task list, or code.
|
|
62
|
+
|
|
63
|
+
The initial idea is: <describe the problem or opportunity>.
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
The AI should first settle the user problem, evidence, outcome, measures, V1
|
|
67
|
+
scope, non-goals, constraints, and assumptions. A technology such as Python,
|
|
68
|
+
Kubernetes, or an LLM is not by itself a product problem.
|
|
69
|
+
|
|
70
|
+
### Step 2: accept the product frame
|
|
71
|
+
|
|
72
|
+
Expect a concise summary and one explicit acceptance question. Check:
|
|
73
|
+
|
|
74
|
+
- users and problem are specific;
|
|
75
|
+
- evidence and assumptions are distinguished;
|
|
76
|
+
- success measures have a baseline or baseline plan;
|
|
77
|
+
- V1 is a complete, bounded outcome;
|
|
78
|
+
- non-goals block likely scope creep;
|
|
79
|
+
- safety, accessibility, legal, cost, and platform constraints are visible.
|
|
80
|
+
|
|
81
|
+
Say “yes” only if this is the product you want designed. Otherwise correct the
|
|
82
|
+
one material issue and continue the interview.
|
|
83
|
+
|
|
84
|
+
### Step 3: design the technical blueprint
|
|
85
|
+
|
|
86
|
+
The same interview now covers applicable architecture, data, contracts, clients,
|
|
87
|
+
security/privacy, failure modes, capacity, deployment, operations, testing,
|
|
88
|
+
migration, rollout, rollback, and alternatives.
|
|
89
|
+
|
|
90
|
+
The AI should recommend defaults but must not invent scale, policies, targets, or
|
|
91
|
+
organizational constraints. Ask for specialist human review where required.
|
|
92
|
+
|
|
93
|
+
### Step 4: accept and validate the specification
|
|
94
|
+
|
|
95
|
+
For a single-product repository, use `SPECIFICATION.md` at the root. For a
|
|
96
|
+
monorepo, use `docs/product/<slug>/SPECIFICATION.md` or its established
|
|
97
|
+
convention.
|
|
98
|
+
|
|
99
|
+
Before marking it Accepted:
|
|
100
|
+
|
|
101
|
+
- both `Product frame` and `Technical design` are Accepted;
|
|
102
|
+
- no blocking decision remains;
|
|
103
|
+
- every non-blocking unknown has an owner, evidence action, and decision point;
|
|
104
|
+
- components and contracts have owners;
|
|
105
|
+
- acceptance behavior traces to test and rollout evidence;
|
|
106
|
+
- required domain reviewers completed their review;
|
|
107
|
+
- the responsible human accepts planning against the exact file.
|
|
108
|
+
|
|
109
|
+
Run:
|
|
110
|
+
|
|
111
|
+
```text
|
|
112
|
+
python .agents/skills/specify-project/scripts/validate_specification.py SPECIFICATION.md
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
The validator checks structure, not whether the architecture is correct.
|
|
116
|
+
|
|
117
|
+
### Step 5: plan only the next delivery wave
|
|
118
|
+
|
|
119
|
+
```text
|
|
120
|
+
Use $plan-delivery with the accepted SPECIFICATION.md. Create outcome-based
|
|
121
|
+
milestones for the whole product, but decompose only the first milestone into
|
|
122
|
+
Ready work. Name owners, independent reviewers, contracts, simple dependencies,
|
|
123
|
+
integration checkpoints, and validation evidence.
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
### Step 6: bootstrap and build
|
|
127
|
+
|
|
128
|
+
Use the appropriate repository handbook:
|
|
129
|
+
|
|
130
|
+
- [Python Project Handbook](handbooks/PYTHON-PROJECT-HANDBOOK.md)
|
|
131
|
+
- [Language-Agnostic Project Handbook](handbooks/LANGUAGE-AGNOSTIC-PROJECT-HANDBOOK.md)
|
|
132
|
+
|
|
133
|
+
Then take one Ready item at a time:
|
|
134
|
+
|
|
135
|
+
```text
|
|
136
|
+
Use $build-change for <work-item>. Inspect the repository before planning, pair
|
|
137
|
+
with me on one reviewable vertical slice, run the documented validation, and
|
|
138
|
+
stop for any material decision not settled by SPECIFICATION.md.
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
Use a fresh `review-change` pass and an independent human reviewer. Do not ask AI
|
|
142
|
+
to implement the full specification in one pass.
|
|
143
|
+
|
|
144
|
+
### Step 7: launch and learn
|
|
145
|
+
|
|
146
|
+
```text
|
|
147
|
+
Use $launch-product to assess the exact release candidate against
|
|
148
|
+
SPECIFICATION.md. Build a readiness evidence table, rollout stages, success and
|
|
149
|
+
guardrail thresholds, observation windows, rollback, ownership, and cleanup.
|
|
150
|
+
Do not deploy or expand exposure without human authorization.
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
Review product outcomes after exposure. Keep, improve, roll back, or stop based
|
|
154
|
+
on evidence.
|
|
155
|
+
|
|
156
|
+
## Recipe 2: Add one feature to a brownfield project
|
|
157
|
+
|
|
158
|
+
### Use this recipe when
|
|
159
|
+
|
|
160
|
+
An existing product and repository already work, and the goal is one bounded
|
|
161
|
+
user-visible capability. Existing architecture, conventions, ownership, and
|
|
162
|
+
production behavior constrain the solution.
|
|
163
|
+
|
|
164
|
+
### Result
|
|
165
|
+
|
|
166
|
+
```text
|
|
167
|
+
Repository inspection
|
|
168
|
+
-> accepted feature brief
|
|
169
|
+
-> optional feature design
|
|
170
|
+
-> one or more small build/review loops
|
|
171
|
+
-> proportionate rollout
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
### Step 1: frame the feature
|
|
175
|
+
|
|
176
|
+
```text
|
|
177
|
+
Use $define-product for this brownfield feature. Read the existing product and
|
|
178
|
+
repository documentation first. Produce a bounded feature brief with users,
|
|
179
|
+
outcome, acceptance scenarios, measures, first-release scope, non-goals,
|
|
180
|
+
constraints, assumptions, and risk. Do not design or implement it yet.
|
|
181
|
+
|
|
182
|
+
Feature request: <describe the requested behavior>.
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
Save the accepted brief at `docs/features/<slug>/brief.md` or the repository's
|
|
186
|
+
existing location.
|
|
187
|
+
|
|
188
|
+
### Step 2: decide whether a design is necessary
|
|
189
|
+
|
|
190
|
+
Skip a separate design when the implementation is local, reversible, and uses an
|
|
191
|
+
existing pattern without a material contract or risk decision.
|
|
192
|
+
|
|
193
|
+
Use `design-solution` when the feature changes:
|
|
194
|
+
|
|
195
|
+
- public or shared APIs;
|
|
196
|
+
- persistent data or migration;
|
|
197
|
+
- authentication, permissions, privacy, or abuse controls;
|
|
198
|
+
- cross-component ownership or orchestration;
|
|
199
|
+
- dependency, deployment, capacity, reliability, or rollback behavior.
|
|
200
|
+
|
|
201
|
+
Prompt:
|
|
202
|
+
|
|
203
|
+
```text
|
|
204
|
+
Use $design-solution for the accepted feature brief. Inspect current components,
|
|
205
|
+
callers, schemas, tests, deployment, ownership, and comparable code before
|
|
206
|
+
proposing a solution. Recommend the smallest compatible design, compare real
|
|
207
|
+
alternatives, and stop for material API, data, security, cost, or ownership
|
|
208
|
+
decisions.
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
### Step 3: plan or start the first change
|
|
212
|
+
|
|
213
|
+
For one developer and a small feature, proceed directly to a bounded work item.
|
|
214
|
+
For several developers or components, use `plan-delivery` first.
|
|
215
|
+
|
|
216
|
+
```text
|
|
217
|
+
Use $build-change for the first accepted feature slice. Ground the plan in the
|
|
218
|
+
current repository and accepted brief/design, keep the change reviewable, put
|
|
219
|
+
tests with behavior, and run proportionate validation.
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
### Step 4: review the exact change
|
|
223
|
+
|
|
224
|
+
```text
|
|
225
|
+
Use $review-change on the exact current diff against the accepted feature brief
|
|
226
|
+
and design. Do not modify files. Check correctness, failures, security/privacy,
|
|
227
|
+
compatibility, tests, architecture, maintainability, and rollout. Report only
|
|
228
|
+
actionable evidence-based findings.
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
An independent human reviews the complete diff and decides whether it may merge.
|
|
232
|
+
Re-run required checks after updating the target branch.
|
|
233
|
+
|
|
234
|
+
### Step 5: release proportionately
|
|
235
|
+
|
|
236
|
+
A low-risk internal feature may use the ordinary release path. User-facing,
|
|
237
|
+
stateful, permission-sensitive, or hard-to-reverse changes need `launch-product`
|
|
238
|
+
with flags or staged cohorts, defined evidence, and tested rollback.
|
|
239
|
+
|
|
240
|
+
Do not create a whole-project `SPECIFICATION.md` merely for this feature unless
|
|
241
|
+
the work actually changes the whole product blueprint.
|
|
242
|
+
|
|
243
|
+
## Recipe 3: Deliver a new version with multiple developers
|
|
244
|
+
|
|
245
|
+
### Use this recipe when
|
|
246
|
+
|
|
247
|
+
An established product is preparing a substantial release or new major version
|
|
248
|
+
with several developers, multiple components, shared contracts, migration, or
|
|
249
|
+
coordinated rollout.
|
|
250
|
+
|
|
251
|
+
Do not create a long-lived “version branch” by default. Prefer small compatible
|
|
252
|
+
changes integrated into protected `main`, with inactive flags or safe migration
|
|
253
|
+
states until exposure.
|
|
254
|
+
|
|
255
|
+
### Result
|
|
256
|
+
|
|
257
|
+
```text
|
|
258
|
+
Accepted release outcome
|
|
259
|
+
-> accepted design/contracts
|
|
260
|
+
-> outcome milestones and next wave of Ready work
|
|
261
|
+
-> parallel work against stable contracts
|
|
262
|
+
-> frequent integration and independent review
|
|
263
|
+
-> release-candidate evidence
|
|
264
|
+
-> staged migration and rollout
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
### Step 1: establish the release outcome
|
|
268
|
+
|
|
269
|
+
If the current product specification already covers the new version, reference
|
|
270
|
+
it and create a bounded release or feature brief for what changes. If the new
|
|
271
|
+
version is a whole-product redesign, revise it with `specify-project` and obtain
|
|
272
|
+
both acceptance checkpoints again.
|
|
273
|
+
|
|
274
|
+
Normal prompt:
|
|
275
|
+
|
|
276
|
+
```text
|
|
277
|
+
Use $define-product for version <version>. Inspect the current product documents
|
|
278
|
+
and production evidence. Define the changed outcome, users, acceptance,
|
|
279
|
+
compatibility promise, migration constraints, success measures, non-goals, and
|
|
280
|
+
release guardrails. Do not create implementation tasks.
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
### Step 2: accept shared design and contracts
|
|
284
|
+
|
|
285
|
+
```text
|
|
286
|
+
Use $design-solution for the accepted version brief. Inspect the current system
|
|
287
|
+
and define the minimum architecture changes, component ownership, APIs/schemas,
|
|
288
|
+
compatible intermediate states, contract fixtures, failure behavior,
|
|
289
|
+
observability, migration ordering, rollout, rollback, and cleanup.
|
|
290
|
+
```
|
|
291
|
+
|
|
292
|
+
Agree shared interfaces before parallel work. Each contract needs one owner,
|
|
293
|
+
consumer reviewers, a schema or signature, compatibility rules, and an
|
|
294
|
+
independently runnable fixture or contract test.
|
|
295
|
+
|
|
296
|
+
### Step 3: create the delivery plan
|
|
297
|
+
|
|
298
|
+
```text
|
|
299
|
+
Use $plan-delivery for version <version> with <developer names or teams>. Create
|
|
300
|
+
outcome-based milestones and only the next wave of Ready work. Give every item
|
|
301
|
+
one owner and a different reviewer. Record Blocked by, Integrates with, or Lands
|
|
302
|
+
after only when it changes action. Name integration checkpoints and an
|
|
303
|
+
integration owner where streams meet. Default to one active item per developer.
|
|
304
|
+
```
|
|
305
|
+
|
|
306
|
+
Good milestones demonstrate integrated user/system behavior. “Backend complete”
|
|
307
|
+
or “all components coded” are not outcome milestones.
|
|
308
|
+
|
|
309
|
+
### Step 4: run the team loop
|
|
310
|
+
|
|
311
|
+
For each developer:
|
|
312
|
+
|
|
313
|
+
1. Pull one Ready item.
|
|
314
|
+
2. Use `build-change` to inspect, plan, implement, and validate one small slice.
|
|
315
|
+
3. Use a fresh `review-change` pass for normal or higher risk.
|
|
316
|
+
4. Request the named independent human reviewer.
|
|
317
|
+
5. Update from `main`, revalidate, merge, and confirm postsubmit remains green.
|
|
318
|
+
6. Integrate against the accepted contract at the named checkpoint.
|
|
319
|
+
7. Pull the next item only when review and integration capacity exists.
|
|
320
|
+
|
|
321
|
+
Coordinate shared schemas, generated files, migrations, lockfiles, and registries
|
|
322
|
+
with one temporary owner or explicit landing order. Never resolve a semantic
|
|
323
|
+
conflict mechanically.
|
|
324
|
+
|
|
325
|
+
### Step 5: demonstrate and plan the next wave
|
|
326
|
+
|
|
327
|
+
At each milestone:
|
|
328
|
+
|
|
329
|
+
- show the real integrated behavior;
|
|
330
|
+
- compare it with acceptance and guardrails;
|
|
331
|
+
- review defects, operational evidence, and changed assumptions;
|
|
332
|
+
- update the canonical design only when reality changed;
|
|
333
|
+
- prepare the next wave of Ready items;
|
|
334
|
+
- stop work whose premise failed.
|
|
335
|
+
|
|
336
|
+
### Step 6: prepare and launch the version
|
|
337
|
+
|
|
338
|
+
```text
|
|
339
|
+
Use $launch-product for the exact version <version> release candidate. Verify
|
|
340
|
+
functional, contract, migration, security/privacy, performance, operability,
|
|
341
|
+
artifact, support, and rollback evidence. Define internal, canary, and expansion
|
|
342
|
+
stages with thresholds, observation windows, decision owners, and cleanup. Do
|
|
343
|
+
not deploy, migrate, or expand exposure without human authorization.
|
|
344
|
+
```
|
|
345
|
+
|
|
346
|
+
Build once from a known green commit and promote the same immutable artifact.
|
|
347
|
+
Rehearse migration and rollback at representative fidelity. Complete the release
|
|
348
|
+
only after production and product evidence meet the accepted decision rules.
|
|
349
|
+
|
|
350
|
+
## Recipe 4: Fix a small bug
|
|
351
|
+
|
|
352
|
+
### Use this recipe when
|
|
353
|
+
|
|
354
|
+
The defect is local, understood or reproducible, reversible, and does not require
|
|
355
|
+
a material product, API, data, security, privacy, or architecture decision.
|
|
356
|
+
|
|
357
|
+
### Result
|
|
358
|
+
|
|
359
|
+
```text
|
|
360
|
+
Issue -> reproduce -> failing regression test -> minimal fix
|
|
361
|
+
-> focused and broader validation -> human review -> merge
|
|
362
|
+
```
|
|
363
|
+
|
|
364
|
+
### Step 1: write the issue
|
|
365
|
+
|
|
366
|
+
Record:
|
|
367
|
+
|
|
368
|
+
- observed behavior;
|
|
369
|
+
- expected behavior;
|
|
370
|
+
- reproduction steps and environment;
|
|
371
|
+
- impact and affected versions;
|
|
372
|
+
- logs or screenshots with sensitive data removed;
|
|
373
|
+
- a concise non-goal;
|
|
374
|
+
- rollback or disable mechanism if production is currently affected.
|
|
375
|
+
|
|
376
|
+
Do not write a product brief or specification for an ordinary bug.
|
|
377
|
+
|
|
378
|
+
### Step 2: diagnose and fix interactively
|
|
379
|
+
|
|
380
|
+
```text
|
|
381
|
+
Use $build-change for this bug. Inspect the repository and current Git state,
|
|
382
|
+
reproduce the failure, identify the root cause, add a regression test that fails
|
|
383
|
+
for the bug when practical, implement the smallest coherent fix, run affected
|
|
384
|
+
and proportionate broader checks, and inspect the complete diff. Stop if the bug
|
|
385
|
+
reveals a material product, API, data, security, or architecture decision.
|
|
386
|
+
```
|
|
387
|
+
|
|
388
|
+
The regression test should assert externally meaningful behavior, not merely the
|
|
389
|
+
chosen implementation. Preserve unrelated local changes.
|
|
390
|
+
|
|
391
|
+
### Step 3: review
|
|
392
|
+
|
|
393
|
+
Every code change receives independent human review. Use `review-change` when
|
|
394
|
+
the bug is normal or higher risk, the root cause is subtle, concurrency or
|
|
395
|
+
security is involved, or a second AI pass would materially improve confidence:
|
|
396
|
+
|
|
397
|
+
```text
|
|
398
|
+
Use $review-change on the exact bug-fix diff. Do not modify code. Verify the root
|
|
399
|
+
cause, regression coverage, failure paths, compatibility, and absence of
|
|
400
|
+
unrelated change.
|
|
401
|
+
```
|
|
402
|
+
|
|
403
|
+
### Step 4: merge and verify
|
|
404
|
+
|
|
405
|
+
- update from the target branch and rerun required checks;
|
|
406
|
+
- merge through the protected path;
|
|
407
|
+
- confirm postsubmit is green;
|
|
408
|
+
- verify the repaired behavior in the appropriate environment;
|
|
409
|
+
- use the existing release or hotfix procedure;
|
|
410
|
+
- monitor the original failure signal.
|
|
411
|
+
|
|
412
|
+
If the fix needs a risky migration or user-exposure decision, stop treating it as
|
|
413
|
+
a small bug and use `design-solution` plus `launch-product` controls.
|
|
414
|
+
|
|
415
|
+
## Final rule
|
|
416
|
+
|
|
417
|
+
The safest workflow is not the one with the most documents. It is the lightest
|
|
418
|
+
workflow that makes intent, risk, evidence, ownership, review, and release
|
|
419
|
+
authority explicit for the change being made.
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
# Product Development Workflow
|
|
2
|
+
|
|
3
|
+
This workflow helps developers and AI build software together. Humans remain
|
|
4
|
+
accountable for product intent, material design decisions, code acceptance, and
|
|
5
|
+
release authorization. AI investigates, proposes, implements, validates, and
|
|
6
|
+
reviews bounded work with frequent human checkpoints.
|
|
7
|
+
|
|
8
|
+
The workflow uses familiar engineering artifacts and scales with risk. It is not
|
|
9
|
+
an autonomous coding loop and it does not require every change to produce every
|
|
10
|
+
document.
|
|
11
|
+
|
|
12
|
+
For complete setup and operating guidance, use the companion handbooks:
|
|
13
|
+
|
|
14
|
+
- [Google-inspired Python project setup](handbooks/PYTHON-PROJECT-HANDBOOK.md)
|
|
15
|
+
- [Google-inspired language-agnostic project setup](handbooks/LANGUAGE-AGNOSTIC-PROJECT-HANDBOOK.md)
|
|
16
|
+
- [Idea-to-production human-AI delivery](handbooks/IDEA-TO-PRODUCTION-HANDBOOK.md)
|
|
17
|
+
- [Four common workflow recipes](WORKFLOW-COOKBOOK.md)
|
|
18
|
+
- [Ready-to-use workflow prompts](AI-WORKFLOW-PROMPTS.md)
|
|
19
|
+
|
|
20
|
+
## Start here: four steps
|
|
21
|
+
|
|
22
|
+
Developers do not need to learn or select the skills below. Describe the change
|
|
23
|
+
in normal language; the AI routes it and explains why any design or planning is
|
|
24
|
+
needed.
|
|
25
|
+
|
|
26
|
+
1. **Understand:** agree on the outcome. Resolve material architecture and team
|
|
27
|
+
coordination only when the change needs them.
|
|
28
|
+
2. **Build:** implement and validate one bounded, reviewable change.
|
|
29
|
+
3. **Review:** independently inspect the exact change and its evidence.
|
|
30
|
+
4. **Ship:** authorize controlled exposure, observe it, and learn.
|
|
31
|
+
|
|
32
|
+
Small fixes can move directly from Understand to Build. Design and delivery
|
|
33
|
+
planning deepen Understand; they are not mandatory extra stages.
|
|
34
|
+
|
|
35
|
+
## Choose the lightest safe path
|
|
36
|
+
|
|
37
|
+
| Path | Use for | Flow |
|
|
38
|
+
|---|---|---|
|
|
39
|
+
| Quick change | Local, reversible, low-risk fixes or refactors | Issue -> build -> review -> merge |
|
|
40
|
+
| Feature | Bounded user-visible or cross-file behavior | Feature brief -> optional design -> build/review loops -> rollout |
|
|
41
|
+
| Product, modular | New products, cross-team systems, migrations, or high-risk work | Product brief -> design -> delivery plan -> build/review loops -> launch |
|
|
42
|
+
| Product, guided | Greenfield or whole-product blueprint where one continuous interview is helpful | `SPECIFICATION.md` with product/design checkpoints -> delivery plan -> build/review loops -> launch |
|
|
43
|
+
|
|
44
|
+
Security, privacy, permissions, public APIs, persistent data, billing,
|
|
45
|
+
compliance, and destructive behavior always require explicit design and review,
|
|
46
|
+
even when the diff is small.
|
|
47
|
+
|
|
48
|
+
## Lifecycle and skills
|
|
49
|
+
|
|
50
|
+
```text
|
|
51
|
+
Idea
|
|
52
|
+
-> specify-project Optional guided facade: product frame + design in one specification
|
|
53
|
+
OR
|
|
54
|
+
-> define-product Modular path: why, users, outcome, scope, success
|
|
55
|
+
-> design-solution Modular path: architecture, APIs, trade-offs, risk
|
|
56
|
+
-> plan-delivery Milestones, work items, owners, dependencies
|
|
57
|
+
-> build-change Interactive plan, implementation, validation
|
|
58
|
+
-> review-change Independent evidence-based review
|
|
59
|
+
-> launch-product Readiness, staged rollout, measurement, learning
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
`specify-project` combines the first two forms of thinking for a new or
|
|
63
|
+
whole-product blueprint; it does not add a lifecycle stage. It asks one
|
|
64
|
+
recommendation-led question at a time, accepts the product frame before the
|
|
65
|
+
technical design, and creates one canonical `SPECIFICATION.md`. Do not also
|
|
66
|
+
create a brief and design containing the same facts.
|
|
67
|
+
|
|
68
|
+
Small work may enter at `build-change`. A feature may skip `design-solution`
|
|
69
|
+
when there is no material technical decision. A product uses either the guided
|
|
70
|
+
specification or the modular brief/design path, and only the current milestone
|
|
71
|
+
is planned in detail.
|
|
72
|
+
|
|
73
|
+
## Canonical artifacts
|
|
74
|
+
|
|
75
|
+
| Artifact | Purpose | When needed |
|
|
76
|
+
|---|---|---|
|
|
77
|
+
| Project specification | Combined product frame and high-level technical blueprint with separate acceptance checkpoints | Optional guided path for greenfield or whole-product definition |
|
|
78
|
+
| Product or feature brief | Outcome, users, success, scope, non-goals | Features and products |
|
|
79
|
+
| Design document | Architecture, ownership, APIs, trade-offs, quality and rollout | Material or risky technical change |
|
|
80
|
+
| Delivery plan or project tracker | Milestones, ready work, owners, reviewers, dependencies, status | Multi-developer work |
|
|
81
|
+
| Implementation plan | Repository-grounded steps and validation for one work item | Complex, risky, or cross-session changes |
|
|
82
|
+
| Pull request/change | Small implementation plus tests | Every code change |
|
|
83
|
+
| Launch plan | Readiness, exposure stages, thresholds, rollback, learning | Material releases |
|
|
84
|
+
|
|
85
|
+
Git history is the revision record. Use `Draft`, `Accepted`, `Active`, and
|
|
86
|
+
`Superseded` for document state. Version APIs and schemas when consumers need a
|
|
87
|
+
compatibility contract; do not invent a second revision system for planning
|
|
88
|
+
documents.
|
|
89
|
+
|
|
90
|
+
## How a developer works with AI
|
|
91
|
+
|
|
92
|
+
For each work item:
|
|
93
|
+
|
|
94
|
+
1. **Frame:** agree on the outcome, acceptance criteria, non-goals, and risk.
|
|
95
|
+
2. **Inspect:** AI reads the current repository, relevant design, tests, and
|
|
96
|
+
conventions. It separates verified facts from assumptions.
|
|
97
|
+
3. **Plan:** AI proposes the smallest coherent change and validation. The human
|
|
98
|
+
decides any product, API, data, security, dependency, or architecture choice.
|
|
99
|
+
4. **Build:** AI edits one reviewable slice and shares concise progress at
|
|
100
|
+
meaningful boundaries.
|
|
101
|
+
5. **Verify:** AI runs formatting, static checks, affected tests, and
|
|
102
|
+
proportionate broader tests, then inspects the complete diff.
|
|
103
|
+
6. **Review:** an independent human reviews every change. A fresh AI review is
|
|
104
|
+
recommended for normal or higher-risk changes.
|
|
105
|
+
7. **Accept:** the human inspects the exact diff and authorizes commit or merge
|
|
106
|
+
according to repository policy.
|
|
107
|
+
|
|
108
|
+
The AI stops when required behavior conflicts, a material decision is missing,
|
|
109
|
+
the base changed unexpectedly, concurrent work collides, or required evidence
|
|
110
|
+
cannot be produced. It gives facts, a recommendation, and one precise question.
|
|
111
|
+
|
|
112
|
+
Immediately before editing, the AI presents a short focus card: change,
|
|
113
|
+
observable success, non-goals, allowed scope, validation, stop conditions, and
|
|
114
|
+
whether the work remains interactive pairing or is safe for bounded delegation.
|
|
115
|
+
When implementation finishes, it returns an evidence receipt containing what
|
|
116
|
+
changed, validation actually run, acceptance evidence, deviations, limitations,
|
|
117
|
+
and review state. Neither requires a separate document for ordinary work.
|
|
118
|
+
|
|
119
|
+
On a subagent-capable platform, the developer stays in one orchestrator
|
|
120
|
+
conversation. The orchestrator creates the plan, sends it to a bounded editing
|
|
121
|
+
builder, sends the exact resulting snapshot and evidence to a fresh read-only
|
|
122
|
+
reviewer, and routes findings back automatically. The human does not copy
|
|
123
|
+
messages between agents, but still approves delegation, material plan changes,
|
|
124
|
+
merge, and release. Use separate branches/worktrees and orchestrator sessions
|
|
125
|
+
for concurrently executing work items.
|
|
126
|
+
|
|
127
|
+
## Multi-developer rules
|
|
128
|
+
|
|
129
|
+
### Own components and APIs
|
|
130
|
+
|
|
131
|
+
Each important component or API has a team or person responsible for design,
|
|
132
|
+
review, compatibility, and operation. Describe these in the design document or
|
|
133
|
+
repository ownership configuration; do not maintain a separate ownership graph
|
|
134
|
+
unless it provides independent value.
|
|
135
|
+
|
|
136
|
+
### Agree on contracts before parallel work
|
|
137
|
+
|
|
138
|
+
Two developers may work concurrently when they share an accepted API/schema and
|
|
139
|
+
a contract fixture or test. Record ordinary relations in the tracker:
|
|
140
|
+
|
|
141
|
+
- **Blocked by:** work cannot begin safely.
|
|
142
|
+
- **Integrates with:** work proceeds against a contract; integration occurs at a
|
|
143
|
+
named checkpoint.
|
|
144
|
+
- **Lands after:** merge or migration order matters.
|
|
145
|
+
|
|
146
|
+
### Keep work and branches small
|
|
147
|
+
|
|
148
|
+
Prefer short-lived branches and one-purpose pull requests. Incomplete behavior
|
|
149
|
+
may merge behind a feature flag when the intermediate state is safe. Revalidate
|
|
150
|
+
after updating the target branch. Shared migrations, generated files, schemas,
|
|
151
|
+
and other hotspots need one named coordination rule.
|
|
152
|
+
|
|
153
|
+
### Limit work in progress
|
|
154
|
+
|
|
155
|
+
Default to one implementation item per developer. Queue additional work instead
|
|
156
|
+
of opening several half-finished changes. The owner and reviewer must differ.
|
|
157
|
+
Name an integration owner only where several work items meet.
|
|
158
|
+
|
|
159
|
+
## Team operating rhythm
|
|
160
|
+
|
|
161
|
+
- Review outcomes, the current milestone, and major risks weekly.
|
|
162
|
+
- Review architecture and API changes when they arise, not in recurring ritual
|
|
163
|
+
meetings without a decision.
|
|
164
|
+
- Select one ready work item per developer.
|
|
165
|
+
- Merge small validated changes continuously.
|
|
166
|
+
- Demonstrate working behavior at every milestone.
|
|
167
|
+
- Plan the next wave using evidence from the demonstration and production.
|
|
168
|
+
- Treat launch as a measured learning cycle, not a finish line.
|
|
169
|
+
|
|
170
|
+
## Quality and approval
|
|
171
|
+
|
|
172
|
+
Automation supplies evidence; it does not approve work. The implementing AI
|
|
173
|
+
cannot approve its own change. Reviewer readiness does not authorize merge.
|
|
174
|
+
Merge, deployment, data migration, publication, and rollout expansion require
|
|
175
|
+
the responsible human action or the repository's established approval policy.
|
|
176
|
+
|
|
177
|
+
High- and critical-risk work may additionally require security/privacy review,
|
|
178
|
+
two-person approval, immutable test suites, restricted tool permissions,
|
|
179
|
+
staging, canaries, and tested rollback.
|
|
180
|
+
|
|
181
|
+
## Maintenance rule
|
|
182
|
+
|
|
183
|
+
Every fact has one owner:
|
|
184
|
+
|
|
185
|
+
- outcome and scope live in the brief, or in the accepted specification when
|
|
186
|
+
using the guided path;
|
|
187
|
+
- architecture and contracts live in the design/API source, or in that same
|
|
188
|
+
accepted specification;
|
|
189
|
+
- assignment and status live in the tracker;
|
|
190
|
+
- code behavior lives in code and tests;
|
|
191
|
+
- durable rationale lives in a design decision;
|
|
192
|
+
- rollout state and evidence live in the launch record and observability system.
|
|
193
|
+
|
|
194
|
+
Link to facts instead of copying them. Add process only when it prevents a named
|
|
195
|
+
failure and cannot be enforced by existing code, tests, CI, ownership, or
|
|
196
|
+
deployment tooling.
|
|
197
|
+
|
|
198
|
+
Workflow rules are also software behavior. Changes to `AGENTS.md`, skills, or AI
|
|
199
|
+
workflow policy should be exercised against the repository's behavioral
|
|
200
|
+
scenarios. An external harness, human, or independent AI records observable
|
|
201
|
+
actions and evidence; the agent being evaluated does not score itself, and
|
|
202
|
+
private reasoning is never required.
|
|
203
|
+
|
|
204
|
+
```text
|
|
205
|
+
python scripts/evaluate-development-workflow.py
|
|
206
|
+
python scripts/evaluate-development-workflow.py --write-template <results.json>
|
|
207
|
+
python scripts/evaluate-development-workflow.py --results <results.json>
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
The first command validates the six-scenario catalog. The second creates an
|
|
211
|
+
observation record for an evaluation run; the third scores the completed record
|
|
212
|
+
and fails when a required behavior lacks evidence.
|