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,140 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: plan-delivery
|
|
3
|
+
description: Turn an accepted product or feature brief and any required design into a lightweight, team-profile-aware multi-developer delivery plan. Use when a team needs outcome-based milestones, unassigned capability lanes or ready work items, owners, independent reviewers, simple dependencies, integration checkpoints, WIP limits, risks, or rolling-wave planning. Do not create a separate architecture or capacity bureaucracy.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Plan Delivery
|
|
7
|
+
|
|
8
|
+
Create a plan that helps a team choose the next useful work, not a prediction of
|
|
9
|
+
every future edit. Use `assets/delivery-plan.template.md` when the repository
|
|
10
|
+
has no external project tracker.
|
|
11
|
+
|
|
12
|
+
## 1. Verify planning inputs
|
|
13
|
+
|
|
14
|
+
Read the accepted brief and applicable design. Confirm the next outcome, fixed
|
|
15
|
+
contracts, important risks, current commitments, and required reviewers. Return
|
|
16
|
+
unresolved product questions to `define-product` and architectural questions to
|
|
17
|
+
`design-solution`.
|
|
18
|
+
|
|
19
|
+
Classify uncertain facts before planning:
|
|
20
|
+
|
|
21
|
+
- **fixed:** accepted product or architectural decisions;
|
|
22
|
+
- **hard blocker:** a missing decision or contract that prevents a specific item
|
|
23
|
+
from starting safely;
|
|
24
|
+
- **risk track:** evidence that can be retired independently without blocking
|
|
25
|
+
unrelated work;
|
|
26
|
+
- **staffing input:** capability, capacity, ownership, or reviewer information;
|
|
27
|
+
and
|
|
28
|
+
- **deferred:** a decision that is not needed for the current milestone.
|
|
29
|
+
|
|
30
|
+
Do not call a risk track, staffing input, or deferred decision a blocker unless
|
|
31
|
+
it actually prevents the named work from starting.
|
|
32
|
+
|
|
33
|
+
### Team-profile gate
|
|
34
|
+
|
|
35
|
+
Headcount is not a delivery profile. Do not infer a developer's skills,
|
|
36
|
+
availability, component ownership, review authority, or security/domain
|
|
37
|
+
qualification from a team size, title, or anonymous label.
|
|
38
|
+
|
|
39
|
+
Before assigning ready work, establish the smallest useful profile for each
|
|
40
|
+
developer: stable name or label, relevant strengths, current capacity or WIP,
|
|
41
|
+
component/API ownership, and independent-review restrictions. Inspect existing
|
|
42
|
+
ownership and tracker facts first; ask only for missing information.
|
|
43
|
+
|
|
44
|
+
If profiles are incomplete:
|
|
45
|
+
|
|
46
|
+
1. recommend the next milestone and show **unassigned capability lanes**, not
|
|
47
|
+
`Developer 1`, `Developer 2`, or similar placeholders;
|
|
48
|
+
2. show only candidate concurrency, conditional on named contracts or fixtures;
|
|
49
|
+
3. do not claim that work items are ready or assign reviewers; and
|
|
50
|
+
4. ask exactly one recommendation-led question for the missing team profile.
|
|
51
|
+
|
|
52
|
+
When the human explicitly asks for an initial milestone framing first, provide
|
|
53
|
+
that framing as an unassigned planning brief, then make the team profile the
|
|
54
|
+
single remaining input before producing assignments.
|
|
55
|
+
|
|
56
|
+
## 2. Define outcome milestones
|
|
57
|
+
|
|
58
|
+
Each milestone must demonstrate observable value or retire a named risk, such as
|
|
59
|
+
"internal user completes the primary workflow." Avoid component-completion
|
|
60
|
+
milestones such as "backend done."
|
|
61
|
+
|
|
62
|
+
For a requested first **useful product** milestone, name the target user, the
|
|
63
|
+
observable action, and the durable result. A foundation-only milestone is valid
|
|
64
|
+
when it retires a named risk, but label it as an enabling or risk-retirement
|
|
65
|
+
milestone rather than presenting it as user value. Include the smallest
|
|
66
|
+
in-scope product object when that is necessary to make the demonstration useful.
|
|
67
|
+
|
|
68
|
+
Plan the current milestone in detail. Keep later milestones coarse and revise
|
|
69
|
+
them using evidence from working software.
|
|
70
|
+
|
|
71
|
+
## 3. Create reviewable work items
|
|
72
|
+
|
|
73
|
+
Before team profiles are available, create only capability lanes. For every lane
|
|
74
|
+
that could proceed concurrently, name the accepted API, schema, decision, or
|
|
75
|
+
contract fixture that makes it safe. If no such authority exists, state
|
|
76
|
+
**Blocked by** the missing contract; do not imply parallelism from technical
|
|
77
|
+
layer names alone.
|
|
78
|
+
|
|
79
|
+
Each current work item must include:
|
|
80
|
+
|
|
81
|
+
- outcome and acceptance criteria;
|
|
82
|
+
- relevant design/API links;
|
|
83
|
+
- owner and independent reviewer;
|
|
84
|
+
- dependencies and integration checkpoint;
|
|
85
|
+
- risk level: low, normal, high, or critical;
|
|
86
|
+
- expected validation; and
|
|
87
|
+
- status: discovery, ready, in progress, review, blocked, or done.
|
|
88
|
+
|
|
89
|
+
A work item should normally produce one small pull request or a short stack of
|
|
90
|
+
independently valid pull requests. Split by behavior, not by technical layer.
|
|
91
|
+
Use a bounded discovery item when a needed contract cannot be resolved from
|
|
92
|
+
accepted authority. Never turn an unresolved decision into an implementation
|
|
93
|
+
assignment.
|
|
94
|
+
|
|
95
|
+
Use only ordinary dependency language:
|
|
96
|
+
|
|
97
|
+
- **Blocked by:** work cannot begin safely.
|
|
98
|
+
- **Integrates with:** work can proceed against an agreed contract or fixture;
|
|
99
|
+
integration happens later.
|
|
100
|
+
- **Lands after:** source-control or migration order matters.
|
|
101
|
+
|
|
102
|
+
## 4. Coordinate the team
|
|
103
|
+
|
|
104
|
+
Default maximum work in progress to one implementation item per developer.
|
|
105
|
+
Assign only after the team-profile gate passes. Map by relevant capability,
|
|
106
|
+
capacity, ownership, and support needs, not title or headcount. Ensure owners do
|
|
107
|
+
not approve their own changes. Name an integration owner only for milestones
|
|
108
|
+
that cross ownership boundaries.
|
|
109
|
+
|
|
110
|
+
Treat review capacity as real work. Confirm reviewer availability before an item
|
|
111
|
+
becomes ready and define a small review queue limit (default two active reviews
|
|
112
|
+
per reviewer unless the team chooses otherwise). For high- or critical-risk
|
|
113
|
+
work, separately name any policy-authorized security, privacy, compliance, or
|
|
114
|
+
operations approver; never assume an ordinary code reviewer has that authority.
|
|
115
|
+
|
|
116
|
+
Track changing assignments, availability, and status in the existing project
|
|
117
|
+
tracker. Do not version them as architecture.
|
|
118
|
+
|
|
119
|
+
## 5. Check readiness
|
|
120
|
+
|
|
121
|
+
An item is ready only when its outcome, acceptance, required design decisions,
|
|
122
|
+
dependencies, owner, reviewer, and test environment are known. Use a bounded
|
|
123
|
+
discovery item when evidence is missing. Never disguise uncertainty as an
|
|
124
|
+
implementation task.
|
|
125
|
+
|
|
126
|
+
Do not assign an item merely because there are idle developers. Keep it
|
|
127
|
+
unassigned or blocked until its contract, owner, and independent reviewer are
|
|
128
|
+
known. If the plan is still awaiting team profiles, report it as an unassigned
|
|
129
|
+
planning brief rather than a ready delivery plan.
|
|
130
|
+
|
|
131
|
+
Review the plan with the team in one pass: current milestone, ready work,
|
|
132
|
+
parallel work, blockers, integration points, and risks. Update routine status
|
|
133
|
+
without formal approval; seek human decisions only for scope, priority, risk,
|
|
134
|
+
ownership conflicts, or commitments.
|
|
135
|
+
|
|
136
|
+
## Handoff
|
|
137
|
+
|
|
138
|
+
Give each developer only their work item, relevant brief/design/API links,
|
|
139
|
+
integration constraints, and acceptance criteria. Start `build-change` for the
|
|
140
|
+
next ready item.
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# [Product or Feature] Delivery Plan
|
|
2
|
+
|
|
3
|
+
**Status:** Active
|
|
4
|
+
**Owner:** [delivery owner]
|
|
5
|
+
**Brief:** [link]
|
|
6
|
+
**Design:** [link or Not needed]
|
|
7
|
+
**Last reviewed:** [YYYY-MM-DD]
|
|
8
|
+
|
|
9
|
+
## Current milestone
|
|
10
|
+
|
|
11
|
+
**Outcome:** [Demonstrable user/system outcome]
|
|
12
|
+
**Evidence:** [How the team will prove it]
|
|
13
|
+
**Target:** [Date/range or Not committed]
|
|
14
|
+
|
|
15
|
+
## Current work
|
|
16
|
+
|
|
17
|
+
| ID | Work item and acceptance | Owner | Reviewer | Risk | Status | Blocked by | Integrates with / lands after | Validation |
|
|
18
|
+
|---|---|---|---|---|---|---|---|---|
|
|
19
|
+
| W-01 | [bounded outcome] | [owner] | [reviewer] | [level] | Ready | — | [relation] | [checks] |
|
|
20
|
+
|
|
21
|
+
## Integration checkpoints
|
|
22
|
+
|
|
23
|
+
| Checkpoint | Participating work | Owner | Entry evidence | Completion evidence |
|
|
24
|
+
|---|---|---|---|---|
|
|
25
|
+
| [checkpoint] | [IDs] | [owner] | [conditions] | [test/demo] |
|
|
26
|
+
|
|
27
|
+
## Risks and discovery
|
|
28
|
+
|
|
29
|
+
| Risk or unknown | Impact | Evidence-producing action | Owner | Decision point |
|
|
30
|
+
|---|---|---|---|---|
|
|
31
|
+
| [risk] | [impact] | [action] | [owner] | [when] |
|
|
32
|
+
|
|
33
|
+
## Later milestones
|
|
34
|
+
|
|
35
|
+
- **[Outcome]:** [coarse scope; refine after current evidence]
|
|
36
|
+
|
|
37
|
+
## Team agreements
|
|
38
|
+
|
|
39
|
+
- Default implementation WIP: one item per developer.
|
|
40
|
+
- Owners do not approve their own changes.
|
|
41
|
+
- Status and availability live here or in the linked project tracker, not in architecture documents.
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: review-change
|
|
3
|
+
description: Independently review a pull request, commit, patch, or working-tree diff for correctness, regressions, security, test quality, maintainability, scope, and conformance to an accepted brief or design. Use when a developer requests code review, a second AI pass, pre-merge assurance, or an evidence-based quality gate. Review only the exact supplied snapshot and do not modify code unless explicitly asked afterward.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Review Change
|
|
7
|
+
|
|
8
|
+
Act as an independent reviewer, not a second implementer. Review the exact
|
|
9
|
+
base-to-head snapshot and state the snapshot when possible.
|
|
10
|
+
|
|
11
|
+
## Preconditions
|
|
12
|
+
|
|
13
|
+
Read the issue or work item, acceptance criteria, relevant brief/design/API,
|
|
14
|
+
repository instructions, complete diff, and validation evidence. Inspect enough
|
|
15
|
+
surrounding code to understand behavior. If the target or evidence is ambiguous,
|
|
16
|
+
identify the limitation instead of guessing.
|
|
17
|
+
|
|
18
|
+
## Review order
|
|
19
|
+
|
|
20
|
+
Prioritize:
|
|
21
|
+
|
|
22
|
+
1. incorrect or missing required behavior;
|
|
23
|
+
2. security, privacy, permission, data-loss, concurrency, and compatibility risk;
|
|
24
|
+
3. error handling and edge cases;
|
|
25
|
+
4. test quality, missing tests, and weakened or misleading tests;
|
|
26
|
+
5. architecture/API conformance and unnecessary scope;
|
|
27
|
+
6. maintainability, clarity, documentation, and repository conventions; and
|
|
28
|
+
7. rollout, monitoring, migration, and rollback concerns.
|
|
29
|
+
|
|
30
|
+
Passing checks are evidence, not proof. Rerun proportionate checks when useful
|
|
31
|
+
and authorized. Do not invent requirements or block on personal style.
|
|
32
|
+
|
|
33
|
+
## Findings
|
|
34
|
+
|
|
35
|
+
Lead with actionable findings, ordered by severity:
|
|
36
|
+
|
|
37
|
+
- **P0:** immediate security, data-loss, or production-critical defect.
|
|
38
|
+
- **P1:** incorrect behavior or likely serious regression; blocks merge.
|
|
39
|
+
- **P2:** material maintainability, test, or edge-case problem; normally fix.
|
|
40
|
+
- **P3:** optional improvement; never disguise it as a blocker.
|
|
41
|
+
|
|
42
|
+
For each finding give the location, observed evidence, impact, and a precise
|
|
43
|
+
testable correction. Keep line ranges tight. If no actionable finding exists,
|
|
44
|
+
say so and list residual risks or validation gaps.
|
|
45
|
+
|
|
46
|
+
End with one recommendation: `READY FOR HUMAN APPROVAL`, `CHANGES REQUIRED`, or
|
|
47
|
+
`BLOCKED BY MISSING EVIDENCE`. Reviewer readiness never authorizes merge or
|
|
48
|
+
release.
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: specify-project
|
|
3
|
+
description: Interview a developer one question at a time to create or revise a canonical SPECIFICATION.md that combines an accepted product frame with a high-level technical blueprint. Use for a new greenfield product, a whole-product redesign, or an explicit request for a comprehensive project specification. Do not use for a bounded feature, implementation plan, roadmap, task breakdown, or code change.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Specify Project
|
|
7
|
+
|
|
8
|
+
Guide a developer through one continuous, recommendation-led interview while
|
|
9
|
+
preserving two internal decisions: first accept the product frame, then accept
|
|
10
|
+
the technical design. Produce one canonical `SPECIFICATION.md`; do not also copy
|
|
11
|
+
the same facts into a separate brief and design.
|
|
12
|
+
|
|
13
|
+
Read `references/interview-coverage.md` completely before beginning the
|
|
14
|
+
interview. Read `assets/specification.template.md` completely before creating or
|
|
15
|
+
revising the artifact.
|
|
16
|
+
|
|
17
|
+
## 1. Confirm this is the right path
|
|
18
|
+
|
|
19
|
+
Use this skill for a new product or whole-system blueprint where the user wants
|
|
20
|
+
a thorough guided interview and one combined specification.
|
|
21
|
+
|
|
22
|
+
Redirect instead when:
|
|
23
|
+
|
|
24
|
+
- a bounded brownfield feature needs `define-product` and, if material,
|
|
25
|
+
`design-solution`;
|
|
26
|
+
- a local fix or refactor can start with `build-change`;
|
|
27
|
+
- an accepted specification needs milestones and work items from
|
|
28
|
+
`plan-delivery`; or
|
|
29
|
+
- the request is to implement code.
|
|
30
|
+
|
|
31
|
+
Risk overrides apparent size. Do not use the combined format to avoid required
|
|
32
|
+
security, privacy, data, reliability, accessibility, or domain review.
|
|
33
|
+
|
|
34
|
+
## 2. Establish the working context
|
|
35
|
+
|
|
36
|
+
Read all supplied source material. If a repository exists, inspect its
|
|
37
|
+
instructions, current architecture, code, interfaces, schemas, tests, build,
|
|
38
|
+
deployment, ownership, and prior decisions before asking technical questions.
|
|
39
|
+
Do not ask the developer for discoverable repository facts.
|
|
40
|
+
|
|
41
|
+
Choose one canonical artifact location:
|
|
42
|
+
|
|
43
|
+
- single-product repository: `SPECIFICATION.md` at the repository root;
|
|
44
|
+
- monorepo or multi-product repository:
|
|
45
|
+
`docs/product/<slug>/SPECIFICATION.md`; or
|
|
46
|
+
- an established repository convention when one already exists.
|
|
47
|
+
|
|
48
|
+
State the proposed location early. Do not overwrite an unrelated specification.
|
|
49
|
+
Use Git as revision history; do not invent document revision identifiers.
|
|
50
|
+
|
|
51
|
+
Maintain a decision ledger during the interview with four categories:
|
|
52
|
+
|
|
53
|
+
- **Verified:** supported by repository or authoritative evidence;
|
|
54
|
+
- **Decision:** explicitly accepted by the responsible human;
|
|
55
|
+
- **Assumption:** plausible but not yet supported;
|
|
56
|
+
- **Open:** unresolved and either blocking or non-blocking.
|
|
57
|
+
|
|
58
|
+
## 3. Follow the interview contract
|
|
59
|
+
|
|
60
|
+
During discovery, ask exactly one targeted question per response. End the
|
|
61
|
+
response with one interrogative sentence and avoid other question marks.
|
|
62
|
+
|
|
63
|
+
Use this response shape:
|
|
64
|
+
|
|
65
|
+
```markdown
|
|
66
|
+
**Current understanding:** [one short synthesis]
|
|
67
|
+
|
|
68
|
+
**Recommendation:** [one concrete default and why]
|
|
69
|
+
|
|
70
|
+
**Trade-offs:** [only for a material choice; two or three real alternatives]
|
|
71
|
+
|
|
72
|
+
**Question:** [exactly one question]
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
Apply these rules:
|
|
76
|
+
|
|
77
|
+
- Ask the highest-impact unresolved question, not a fixed questionnaire.
|
|
78
|
+
- Include a recommendation the developer can accept with "yes".
|
|
79
|
+
- Ground the recommendation in known constraints and label uncertainty.
|
|
80
|
+
- Challenge vague, contradictory, unsafe, or non-viable answers respectfully.
|
|
81
|
+
- Do not invent users, evidence, numerical targets, scale, policy, or constraints.
|
|
82
|
+
- Do not force irrelevant topics, technologies, agents, services, or APIs into
|
|
83
|
+
the design.
|
|
84
|
+
- Answer a user's side question before continuing with one next interview
|
|
85
|
+
question.
|
|
86
|
+
- Briefly summarize progress every five to eight answers without adding another
|
|
87
|
+
question.
|
|
88
|
+
- Revisit an accepted decision only when new evidence creates a material conflict.
|
|
89
|
+
|
|
90
|
+
The one-question rule governs the interview, not the final artifact handoff or a
|
|
91
|
+
requested read-only status summary.
|
|
92
|
+
|
|
93
|
+
## 4. Accept the product frame first
|
|
94
|
+
|
|
95
|
+
Establish the product half before selecting architecture:
|
|
96
|
+
|
|
97
|
+
- problem, evidence, target users, and affected stakeholders;
|
|
98
|
+
- desired outcome, measures, guardrails, and baseline plan;
|
|
99
|
+
- essential user and failure scenarios;
|
|
100
|
+
- first-release scope, explicit non-goals, and plausible later work;
|
|
101
|
+
- business, legal, safety, privacy, accessibility, platform, cost, and timing
|
|
102
|
+
constraints; and
|
|
103
|
+
- assumptions that need evidence.
|
|
104
|
+
|
|
105
|
+
Prefer a bounded discovery experiment if the central user, problem, or outcome
|
|
106
|
+
is not supported. Never turn a proposed technology into the product problem.
|
|
107
|
+
|
|
108
|
+
When the product frame is coherent, summarize it, recommend acceptance, and ask
|
|
109
|
+
the human for one explicit acceptance decision. Record `Product frame: Accepted`
|
|
110
|
+
only after confirmation. Do not begin detailed architecture while a blocking
|
|
111
|
+
product decision remains open.
|
|
112
|
+
|
|
113
|
+
## 5. Design the high-level system
|
|
114
|
+
|
|
115
|
+
After product-frame acceptance, settle only technical decisions that must be
|
|
116
|
+
shared before delivery planning or parallel implementation. Cover applicable
|
|
117
|
+
areas from `references/interview-coverage.md`, including:
|
|
118
|
+
|
|
119
|
+
- system context, components, responsibilities, ownership, and dependencies;
|
|
120
|
+
- domain model, state transitions, data lifecycle, schemas, and auditability;
|
|
121
|
+
- public and internal contracts, clients, protocols, errors, and compatibility;
|
|
122
|
+
- trust boundaries, identity, permissions, privacy, abuse, and secrets;
|
|
123
|
+
- failure isolation, timeouts, retries, idempotency, recovery, and degradation;
|
|
124
|
+
- concurrency, capacity, performance, availability, and cost;
|
|
125
|
+
- configuration, environments, deployment topology, and operations;
|
|
126
|
+
- observability, test/evaluation strategy, migration, rollout, rollback, and
|
|
127
|
+
cleanup; and
|
|
128
|
+
- credible alternatives and consequences.
|
|
129
|
+
|
|
130
|
+
For each cross-component contract define its owner, consumers, behavior,
|
|
131
|
+
validation, errors/timeouts, compatibility, and contract evidence. Do not
|
|
132
|
+
prescribe private classes, file layouts, algorithms, sprint work, or code unless
|
|
133
|
+
they are genuinely part of the external architectural contract.
|
|
134
|
+
|
|
135
|
+
Use text, ASCII, or Mermaid diagrams according to repository convention. Explain
|
|
136
|
+
the important paths and boundaries in prose; a diagram is not a specification by
|
|
137
|
+
itself.
|
|
138
|
+
|
|
139
|
+
## 6. Determine completeness honestly
|
|
140
|
+
|
|
141
|
+
Do not claim that every possible unknown is resolved. The specification is ready
|
|
142
|
+
for acceptance only when:
|
|
143
|
+
|
|
144
|
+
- the product outcome, V1 scope, and non-goals are accepted;
|
|
145
|
+
- interfaces, data, ownership, security, failure behavior, and deployment are
|
|
146
|
+
precise enough for delivery planning;
|
|
147
|
+
- acceptance scenarios trace to components, contracts, tests, and rollout
|
|
148
|
+
evidence;
|
|
149
|
+
- no open decision blocks safe planning;
|
|
150
|
+
- every remaining non-blocking unknown has an owner, evidence-producing action,
|
|
151
|
+
and decision point; and
|
|
152
|
+
- required domain reviewers are named.
|
|
153
|
+
|
|
154
|
+
Run a consistency pass before acceptance. Identify contradictions, unsupported
|
|
155
|
+
claims, orphan components, unowned contracts, untestable requirements, unsafe
|
|
156
|
+
migrations, and rollback paths that cannot restore a supported state.
|
|
157
|
+
|
|
158
|
+
## 7. Create and accept `SPECIFICATION.md`
|
|
159
|
+
|
|
160
|
+
Use `assets/specification.template.md`. Adapt headings only when a section is
|
|
161
|
+
genuinely inapplicable; say why rather than silently omitting a production
|
|
162
|
+
concern.
|
|
163
|
+
|
|
164
|
+
Set the document and both checkpoints to `Draft` initially. Mark the product
|
|
165
|
+
frame and technical design separately as `Accepted` after their human decisions.
|
|
166
|
+
Set the document `Status: Accepted` only when both checkpoints are accepted,
|
|
167
|
+
blocking decisions are closed, required reviews are complete, and the accountable
|
|
168
|
+
human approves planning against the exact file.
|
|
169
|
+
|
|
170
|
+
For a substantive specification, run:
|
|
171
|
+
|
|
172
|
+
```bash
|
|
173
|
+
python .agents/skills/specify-project/scripts/validate_specification.py <path>
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
The validator checks structure, not architectural correctness. Report its exact
|
|
177
|
+
result and any limitations.
|
|
178
|
+
|
|
179
|
+
## 8. Handoff without implementation planning
|
|
180
|
+
|
|
181
|
+
Conclude with:
|
|
182
|
+
|
|
183
|
+
- artifact path and status;
|
|
184
|
+
- accepted product and technical checkpoints;
|
|
185
|
+
- important decisions and non-blocking unknowns;
|
|
186
|
+
- required follow-up evidence and domain reviews; and
|
|
187
|
+
- the recommended next action.
|
|
188
|
+
|
|
189
|
+
For multi-developer or multi-milestone work, hand the accepted specification to
|
|
190
|
+
`plan-delivery`. For a single bounded first slice, hand it to `build-change`.
|
|
191
|
+
Do not generate a roadmap, sprint plan, staffing allocation, task checklist, or
|
|
192
|
+
code while using this skill.
|
|
193
|
+
|
|
194
|
+
## Stop conditions
|
|
195
|
+
|
|
196
|
+
Stop with verified facts, a recommendation, and one precise question when:
|
|
197
|
+
|
|
198
|
+
- product answers conflict or the central outcome lacks evidence;
|
|
199
|
+
- a material API, data, security, cost, ownership, or architecture decision has
|
|
200
|
+
no accountable human;
|
|
201
|
+
- the repository contradicts the proposed design;
|
|
202
|
+
- required specialist input is unavailable;
|
|
203
|
+
- the specification would describe an unsafe or unverifiable system; or
|
|
204
|
+
- the user asks to proceed to implementation before the required acceptance
|
|
205
|
+
checkpoint.
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
# [Project Name] Specification
|
|
2
|
+
|
|
3
|
+
**Status:** Draft
|
|
4
|
+
**Product frame:** Draft
|
|
5
|
+
**Technical design:** Draft
|
|
6
|
+
**Product owner:** [name or team]
|
|
7
|
+
**Technical owner:** [name or team]
|
|
8
|
+
**Required reviewers:** [technical and specialist reviewers]
|
|
9
|
+
**Last reviewed:** [YYYY-MM-DD]
|
|
10
|
+
|
|
11
|
+
## Executive summary
|
|
12
|
+
|
|
13
|
+
<!-- State the user problem, intended outcome, and recommended system in plain language. -->
|
|
14
|
+
|
|
15
|
+
## Problem, users, and evidence
|
|
16
|
+
|
|
17
|
+
<!-- Identify users, current problem, supporting evidence, and affected stakeholders. -->
|
|
18
|
+
|
|
19
|
+
## Product vision and desired outcomes
|
|
20
|
+
|
|
21
|
+
<!-- Describe changed user or system behavior, not shipped components. -->
|
|
22
|
+
|
|
23
|
+
## Success measures and guardrails
|
|
24
|
+
|
|
25
|
+
| Measure | Baseline or baseline plan | Target/decision rule | Window | Source | Owner |
|
|
26
|
+
|---|---|---|---|---|---|
|
|
27
|
+
| [measure] | [baseline] | [target] | [window] | [source] | [owner] |
|
|
28
|
+
|
|
29
|
+
## Essential scenarios
|
|
30
|
+
|
|
31
|
+
- <!-- Primary end-to-end user behavior. -->
|
|
32
|
+
- <!-- Important failure, denial, or recovery behavior. -->
|
|
33
|
+
|
|
34
|
+
## V1 scope
|
|
35
|
+
|
|
36
|
+
### Included
|
|
37
|
+
|
|
38
|
+
- <!-- Smallest complete first-release outcome. -->
|
|
39
|
+
|
|
40
|
+
### Later possibilities
|
|
41
|
+
|
|
42
|
+
- <!-- Plausible follow-up; not committed. -->
|
|
43
|
+
|
|
44
|
+
## Non-goals
|
|
45
|
+
|
|
46
|
+
- <!-- Explicitly excluded behavior, client, abstraction, or operational promise. -->
|
|
47
|
+
|
|
48
|
+
## Constraints
|
|
49
|
+
|
|
50
|
+
- <!-- Business, legal, safety, privacy, accessibility, platform, cost, or timing constraint. -->
|
|
51
|
+
|
|
52
|
+
## Assumptions and unresolved questions
|
|
53
|
+
|
|
54
|
+
| Item | Classification | Blocking | Owner | Evidence/action | Decision point |
|
|
55
|
+
|---|---|---|---|---|---|
|
|
56
|
+
| [item] | [assumption/open] | [yes/no] | [owner] | [evidence] | [point] |
|
|
57
|
+
|
|
58
|
+
## Architectural context
|
|
59
|
+
|
|
60
|
+
<!-- Describe existing systems, external actors, constraints, and verified sources. -->
|
|
61
|
+
|
|
62
|
+
## System architecture
|
|
63
|
+
|
|
64
|
+
<!-- Show the major components and important data/control flows using text, ASCII, or Mermaid. -->
|
|
65
|
+
|
|
66
|
+
## Components and ownership
|
|
67
|
+
|
|
68
|
+
| Component | Responsibility | Owner | Inputs | Outputs | Dependencies |
|
|
69
|
+
|---|---|---|---|---|---|
|
|
70
|
+
| [component] | [responsibility] | [owner] | [inputs] | [outputs] | [dependencies] |
|
|
71
|
+
|
|
72
|
+
## Domain model and state transitions
|
|
73
|
+
|
|
74
|
+
<!-- Define important entities/value types, invariants, relationships, lifecycle, and transitions. -->
|
|
75
|
+
|
|
76
|
+
## Data lifecycle and retention
|
|
77
|
+
|
|
78
|
+
<!-- Define creation, validation, storage, classification, access, audit, retention, export, and deletion. -->
|
|
79
|
+
|
|
80
|
+
## APIs, protocols, and contracts
|
|
81
|
+
|
|
82
|
+
| Contract | Owner | Consumers | Shape/reference | Guarantees | Validation/errors/timeouts | Compatibility | Test/fixture |
|
|
83
|
+
|---|---|---|---|---|---|---|---|
|
|
84
|
+
| [contract] | [owner] | [consumers] | [shape] | [guarantees] | [behavior] | [policy] | [evidence] |
|
|
85
|
+
|
|
86
|
+
## Supported clients and interfaces
|
|
87
|
+
|
|
88
|
+
<!-- Specify applicable web, mobile, desktop, CLI, API, event, tool, or AI interfaces. -->
|
|
89
|
+
|
|
90
|
+
## Component orchestration rules
|
|
91
|
+
|
|
92
|
+
<!-- Define sequencing, isolation, coordination, authority, cancellation, and duplicate handling. -->
|
|
93
|
+
|
|
94
|
+
## Security, privacy, and abuse controls
|
|
95
|
+
|
|
96
|
+
<!-- Define trust boundaries, identity, permissions, input/output handling, secrets, sensitive data, and abuse controls. -->
|
|
97
|
+
|
|
98
|
+
## Failure modes and resilience
|
|
99
|
+
|
|
100
|
+
| Failure | User/system effect | Detection | Containment/fallback | Recovery | Owner |
|
|
101
|
+
|---|---|---|---|---|---|
|
|
102
|
+
| [failure] | [effect] | [signal] | [behavior] | [recovery] | [owner] |
|
|
103
|
+
|
|
104
|
+
## Concurrency, capacity, performance, and cost
|
|
105
|
+
|
|
106
|
+
<!-- Define only justified limits, targets, resource bounds, and scale assumptions. -->
|
|
107
|
+
|
|
108
|
+
## Configuration and deployment topology
|
|
109
|
+
|
|
110
|
+
<!-- Define configuration precedence, secrets, environments, processes/containers, state, regions, and dependencies. -->
|
|
111
|
+
|
|
112
|
+
## Observability and operations
|
|
113
|
+
|
|
114
|
+
<!-- Define logs, metrics, traces, dashboards, alerts, SLOs, support/on-call, backup, restore, and runbooks. -->
|
|
115
|
+
|
|
116
|
+
## Test and evaluation strategy
|
|
117
|
+
|
|
118
|
+
<!-- Trace unit, contract, integration, end-to-end, performance, resilience, security, and acceptance evidence. -->
|
|
119
|
+
|
|
120
|
+
## Compatibility and migration
|
|
121
|
+
|
|
122
|
+
<!-- Define schema/API versioning, old/new coexistence, migration ordering, validation, and cleanup. -->
|
|
123
|
+
|
|
124
|
+
## Rollout, rollback, and cleanup
|
|
125
|
+
|
|
126
|
+
<!-- Define flags, stages, success/guardrail thresholds, observation, rollback, and temporary-code removal. -->
|
|
127
|
+
|
|
128
|
+
## Alternatives and trade-offs
|
|
129
|
+
|
|
130
|
+
| Option | Benefits | Costs/risks | Decision and evidence |
|
|
131
|
+
|---|---|---|---|
|
|
132
|
+
| [option] | [benefits] | [costs] | [chosen/rejected and why] |
|
|
133
|
+
|
|
134
|
+
## Risks and open decisions
|
|
135
|
+
|
|
136
|
+
| Risk/decision | Impact | Blocking | Owner | Mitigation/evidence | Due/decision point |
|
|
137
|
+
|---|---|---|---|---|---|
|
|
138
|
+
| [risk] | [impact] | [yes/no] | [owner] | [action] | [point] |
|
|
139
|
+
|
|
140
|
+
## Source references
|
|
141
|
+
|
|
142
|
+
- <!-- Link canonical product evidence, repository facts, policies, designs, or external standards. -->
|
|
143
|
+
|
|
144
|
+
## Acceptance
|
|
145
|
+
|
|
146
|
+
- [ ] Product frame accepted by the accountable product owner.
|
|
147
|
+
- [ ] Material technical decisions resolved.
|
|
148
|
+
- [ ] Required technical and specialist reviews complete.
|
|
149
|
+
- [ ] No blocking unknown or decision remains.
|
|
150
|
+
- [ ] Acceptance scenarios trace to contracts, tests, and rollout evidence.
|
|
151
|
+
- [ ] Accountable human accepts delivery planning against this specification.
|