docs: establish staged feature planning workflow
This commit is contained in:
25
AGENTS.md
25
AGENTS.md
@@ -33,6 +33,8 @@ remotes.
|
|||||||
## Sources of Truth
|
## Sources of Truth
|
||||||
|
|
||||||
- `docs/roadmap/mvp.md`: settled MVP scope, architecture, and open design work.
|
- `docs/roadmap/mvp.md`: settled MVP scope, architecture, and open design work.
|
||||||
|
- `docs/roadmap/features/`: durable scope and target state for selected units
|
||||||
|
of work.
|
||||||
- `docs/status.md`: current cross-repository progress and next work.
|
- `docs/status.md`: current cross-repository progress and next work.
|
||||||
- `docs/decisions/`: durable rationale for significant architectural choices.
|
- `docs/decisions/`: durable rationale for significant architectural choices.
|
||||||
- `docs/plans/`: temporary implementation plans for substantial work.
|
- `docs/plans/`: temporary implementation plans for substantial work.
|
||||||
@@ -68,10 +70,27 @@ link and a concise deployment consequence are sufficient.
|
|||||||
|
|
||||||
- Update `docs/roadmap/mvp.md` when a design question becomes a settled scope
|
- Update `docs/roadmap/mvp.md` when a design question becomes a settled scope
|
||||||
or architecture decision.
|
or architecture decision.
|
||||||
|
- Discuss and select the next unit of work before planning implementation.
|
||||||
|
- Give each selected feature a four-digit identifier and matching documents at
|
||||||
|
`docs/roadmap/features/<id>-<slug>.md` and
|
||||||
|
`docs/plans/<id>-<slug>.md`. Add the same identifier to `docs/status.md`.
|
||||||
|
- Write and agree on the feature roadmap before writing its implementation
|
||||||
|
plan. The roadmap owns scope, target end state, rationale, constraints, and
|
||||||
|
acceptance criteria.
|
||||||
|
- Write implementation plans as dependency-ordered stages suitable for
|
||||||
|
GPT-5.6-Terra to execute sequentially. Number stages with consecutive
|
||||||
|
integers beginning with `Stage 1`; do not skip numbers or use nested stage
|
||||||
|
numbering. Each stage must identify its repository, preconditions, required
|
||||||
|
behavior, validation, completion criteria, and expected commit.
|
||||||
|
- Resolve architectural choices during roadmap and plan review. Do not leave
|
||||||
|
unresolved design judgment to the implementation agent.
|
||||||
- Update `docs/status.md` when cross-repository work starts, becomes blocked,
|
- Update `docs/status.md` when cross-repository work starts, becomes blocked,
|
||||||
or is completed. Completed items must point to concrete evidence.
|
or is completed. Completed items must point to concrete evidence.
|
||||||
- Create a file in `docs/plans/` only for work spanning multiple meaningful
|
- Out-of-band implementation should commit each completed stage when that
|
||||||
steps or repositories. Remove or archive stale execution detail after the
|
stage leaves its owning repository valid. Review the implementation and its
|
||||||
work is complete; durable rationale belongs in `docs/decisions/`.
|
validation evidence before marking the feature complete.
|
||||||
|
- Retain feature roadmaps as durable records. Remove or archive obsolete
|
||||||
|
implementation detail after completion; durable architectural rationale
|
||||||
|
belongs in `docs/decisions/`.
|
||||||
- Use the status values `proposed`, `ready`, `in_progress`, `blocked`, `done`,
|
- Use the status values `proposed`, `ready`, `in_progress`, `blocked`, `done`,
|
||||||
and `deferred`.
|
and `deferred`.
|
||||||
|
|||||||
@@ -13,7 +13,11 @@ only workspace documentation, planning, and shared development utilities.
|
|||||||
development.
|
development.
|
||||||
- [`docs/roadmap/mvp.md`](docs/roadmap/mvp.md) records settled MVP decisions
|
- [`docs/roadmap/mvp.md`](docs/roadmap/mvp.md) records settled MVP decisions
|
||||||
and open design work.
|
and open design work.
|
||||||
|
- [`docs/roadmap/features/`](docs/roadmap/features/) contains durable feature
|
||||||
|
roadmaps for selected units of work.
|
||||||
- [`docs/status.md`](docs/status.md) records current cross-repository progress.
|
- [`docs/status.md`](docs/status.md) records current cross-repository progress.
|
||||||
|
- [`docs/plans/template.md`](docs/plans/template.md) defines the staged format
|
||||||
|
used for out-of-band implementation.
|
||||||
|
|
||||||
Run `./scripts/status` to see the branch and working-tree state of every
|
Run `./scripts/status` to see the branch and working-tree state of every
|
||||||
repository in the workspace manifest.
|
repository in the workspace manifest.
|
||||||
|
|||||||
@@ -1,37 +1,98 @@
|
|||||||
# Plan: <Title>
|
# Implementation Plan <ID>: <Title>
|
||||||
|
|
||||||
Status: proposed
|
Status: proposed
|
||||||
|
|
||||||
## Goal
|
Target executor: GPT-5.6-Terra
|
||||||
|
|
||||||
State the outcome this plan must achieve.
|
Feature roadmap: `docs/roadmap/features/<id>-<slug>.md`
|
||||||
|
|
||||||
## Non-goals
|
## Objective
|
||||||
|
|
||||||
List adjacent work that is intentionally outside this plan.
|
Summarize the implementation outcome. The feature roadmap remains authoritative
|
||||||
|
for scope, rationale, target end state, and acceptance criteria.
|
||||||
|
|
||||||
## Owning Repositories
|
## Execution Rules
|
||||||
|
|
||||||
List every repository this work may change and what each repository owns.
|
- Execute stages in numeric order.
|
||||||
|
- Number stages with consecutive integers beginning with `Stage 1`. Do not use
|
||||||
|
zero-based, decimal, nested, or nonsequential stage identifiers.
|
||||||
|
- Before each stage, confirm its preconditions and the working-tree state of
|
||||||
|
its owning repository.
|
||||||
|
- Preserve unrelated and pre-existing changes.
|
||||||
|
- Do not make unresolved product or architecture decisions during execution;
|
||||||
|
stop and report the decision required.
|
||||||
|
- Run every stage's validation before committing it.
|
||||||
|
- Commit each completed stage when it leaves the repository in a valid state,
|
||||||
|
using the commit intent specified by that stage.
|
||||||
|
- Do not begin a dependent stage after an earlier stage fails validation.
|
||||||
|
|
||||||
## Dependencies and Settled Decisions
|
## Starting State and Preconditions
|
||||||
|
|
||||||
Link applicable roadmap sections and decision records. Record prerequisites
|
- List required branches, revisions, tools, dependencies, and prior features.
|
||||||
that constrain implementation.
|
- Identify expected clean or intentionally dirty working trees.
|
||||||
|
|
||||||
## Acceptance Criteria
|
## Repository Scope
|
||||||
|
|
||||||
- Define observable conditions for completion.
|
- List every repository that may change and the changes it owns.
|
||||||
|
- List repositories that may be inspected but must remain unchanged.
|
||||||
|
|
||||||
## Implementation Sequence
|
## Stage 1: <Independently Verifiable Outcome>
|
||||||
|
|
||||||
1. Describe the first independently verifiable step.
|
### Objective
|
||||||
|
|
||||||
## Validation
|
State the single outcome delivered by this stage.
|
||||||
|
|
||||||
List the commands, tests, or inspections that demonstrate completion.
|
### Preconditions
|
||||||
|
|
||||||
## Progress
|
- List facts that must be true before editing begins.
|
||||||
|
|
||||||
Keep only concise current state and blockers here. Git history should preserve
|
### Owning Repository
|
||||||
obsolete execution detail.
|
|
||||||
|
`<repository path>`
|
||||||
|
|
||||||
|
### Required Changes
|
||||||
|
|
||||||
|
1. Describe concrete behavior to implement, including relevant files or
|
||||||
|
components where known.
|
||||||
|
2. State invariants, compatibility requirements, and explicit exclusions.
|
||||||
|
|
||||||
|
### Validation
|
||||||
|
|
||||||
|
Run:
|
||||||
|
|
||||||
|
```text
|
||||||
|
<exact validation command>
|
||||||
|
```
|
||||||
|
|
||||||
|
Expected result: describe the required observable outcome, not merely a zero
|
||||||
|
exit code.
|
||||||
|
|
||||||
|
### Completion Criteria
|
||||||
|
|
||||||
|
- List the evidence required before this stage is complete.
|
||||||
|
|
||||||
|
### Commit
|
||||||
|
|
||||||
|
Commit intent: `<type and concise purpose>`
|
||||||
|
|
||||||
|
## Stage 2: <Next Independently Verifiable Outcome>
|
||||||
|
|
||||||
|
Repeat the complete stage structure above. Add, remove, or split stages so
|
||||||
|
each is ordered by dependency, reviewable on its own, and small enough to
|
||||||
|
diagnose without repeating unrelated work. Continue with `Stage 3`, `Stage 4`,
|
||||||
|
and subsequent consecutive integers as needed.
|
||||||
|
|
||||||
|
## Final Validation and Handoff
|
||||||
|
|
||||||
|
- Run cross-stage and cross-repository validation required by the feature
|
||||||
|
roadmap.
|
||||||
|
- Confirm every changed repository is clean and identify all resulting commit
|
||||||
|
hashes.
|
||||||
|
- Summarize deviations from this plan, unresolved findings, and deferred work.
|
||||||
|
- Do not mark the feature `done`; implementation results require review first.
|
||||||
|
|
||||||
|
## Progress Notes
|
||||||
|
|
||||||
|
Keep only concise current state, completed stage references, and blockers here.
|
||||||
|
Git history and implementation commits should preserve detailed execution
|
||||||
|
evidence.
|
||||||
|
|||||||
49
docs/roadmap/features/template.md
Normal file
49
docs/roadmap/features/template.md
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
# Feature <ID>: <Title>
|
||||||
|
|
||||||
|
Status: proposed
|
||||||
|
|
||||||
|
## Summary
|
||||||
|
|
||||||
|
State the selected unit of work and the outcome it enables.
|
||||||
|
|
||||||
|
## Problem or Opportunity
|
||||||
|
|
||||||
|
Describe why this feature is needed and the current limitation it addresses.
|
||||||
|
|
||||||
|
## Scope
|
||||||
|
|
||||||
|
- List behavior and deliverables included in this feature.
|
||||||
|
|
||||||
|
## Non-goals
|
||||||
|
|
||||||
|
- List adjacent behavior intentionally excluded from this feature.
|
||||||
|
|
||||||
|
## Target End State
|
||||||
|
|
||||||
|
Describe the observable repository, deployment, and operator state after the
|
||||||
|
feature is complete. Keep this independent of the implementation sequence.
|
||||||
|
|
||||||
|
## Repository Ownership
|
||||||
|
|
||||||
|
Identify every repository involved and the durable responsibility each one
|
||||||
|
owns. Distinguish repositories that will change from read-only sources of
|
||||||
|
application contracts.
|
||||||
|
|
||||||
|
## Constraints and Settled Decisions
|
||||||
|
|
||||||
|
Link the MVP roadmap and applicable decision records. Record technical or
|
||||||
|
operational constraints that implementations must preserve.
|
||||||
|
|
||||||
|
## Rationale and Alternatives
|
||||||
|
|
||||||
|
Explain material tradeoffs and why the selected end state is preferred. Omit
|
||||||
|
this section when the choice is mechanical and needs no durable rationale.
|
||||||
|
|
||||||
|
## Acceptance Criteria
|
||||||
|
|
||||||
|
- Define observable, testable conditions required for feature completion.
|
||||||
|
|
||||||
|
## Dependencies and Follow-up Work
|
||||||
|
|
||||||
|
List prerequisites and explicitly deferred work without expanding this
|
||||||
|
feature's scope.
|
||||||
Reference in New Issue
Block a user