@caiqueoak/flow 0.2.1 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +38 -100
- package/package.json +1 -2
- package/skills/flow/SKILL.md +147 -0
- package/skills/flow/references/build.md +7 -0
- package/skills/flow/references/discovery.md +15 -0
- package/skills/flow/references/planning.md +7 -0
- package/skills/flow/references/reconcile.md +5 -0
- package/skills/flow/references/review.md +5 -0
- package/src/cli.mjs +234 -75
- package/skills/flow-build/SKILL.md +0 -73
- package/skills/flow-new/SKILL.md +0 -104
- package/skills/flow-next/SKILL.md +0 -55
- package/skills/flow-plan/SKILL.md +0 -86
- package/skills/flow-review/SKILL.md +0 -47
- package/skills/flow-status/SKILL.md +0 -26
- package/templates/BACKLOG.yaml +0 -15
- package/templates/DECISIONS.yaml +0 -18
- package/templates/ENGINEERING.md +0 -35
- package/templates/PRD.md +0 -23
- package/templates/STATE.yaml +0 -11
- package/templates/SUMMARY.md +0 -29
- package/templates/TASKS.yaml +0 -13
- package/templates/WORK_ITEM_SPEC.md +0 -29
- package/templates/config.yaml +0 -29
- package/templates/gates/README.md +0 -19
package/README.md
CHANGED
|
@@ -1,134 +1,72 @@
|
|
|
1
1
|
# Flow
|
|
2
2
|
|
|
3
|
-
Flow is a readability-first, agent-agnostic software
|
|
3
|
+
Flow is a readability-first, agent-agnostic software delivery workflow for coding agents. It maximizes autonomous execution while keeping consequential product and engineering decisions under developer control.
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## Install
|
|
6
6
|
|
|
7
|
-
```
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
global discovery
|
|
11
|
-
(product + engineering + production constraints)
|
|
12
|
-
↓
|
|
13
|
-
independent consequential decisions, batched for approval
|
|
14
|
-
↓
|
|
15
|
-
production-capable MVP
|
|
16
|
-
↓
|
|
17
|
-
work DAG (feature + technical + maintenance)
|
|
18
|
-
↓
|
|
19
|
-
/flow-next
|
|
20
|
-
↓
|
|
21
|
-
plan → build → gates → review → fixes → done
|
|
22
|
-
↓
|
|
23
|
-
next safe work item automatically
|
|
7
|
+
```bash
|
|
8
|
+
npm install --save-dev @caiqueoak/flow
|
|
9
|
+
npx flow init
|
|
24
10
|
```
|
|
25
11
|
|
|
26
|
-
|
|
12
|
+
`flow init` is interactive, or use `--runtime codex,claude` in automation. Built-in adapters install the public `/flow` skill in `.codex/skills/flow/` or `.claude/skills/flow/`; a custom project-local skills directory is also available interactively.
|
|
27
13
|
|
|
28
|
-
|
|
14
|
+
Skills are always installed inside the current project. Runtime integration directories never contain project state. If `.flow/` already exists, `flow init` only adds missing coding-agent integrations and updates `.flow/config.yaml`. If all built-in integrations are already configured, it exits without prompting. It does not modify canonical project artifacts.
|
|
29
15
|
|
|
30
|
-
|
|
31
|
-
.flow/
|
|
32
|
-
├── config.yaml
|
|
33
|
-
├── PRD.md
|
|
34
|
-
├── ENGINEERING.md
|
|
35
|
-
├── SUMMARY.md
|
|
36
|
-
├── DECISIONS.yaml
|
|
37
|
-
├── BACKLOG.yaml
|
|
38
|
-
├── STATE.yaml
|
|
39
|
-
├── gates/
|
|
40
|
-
└── work-items/
|
|
41
|
-
├── 001F-user-profile/
|
|
42
|
-
│ ├── SPEC.md
|
|
43
|
-
│ └── TASKS.yaml
|
|
44
|
-
├── 002T-production-baseline/
|
|
45
|
-
│ ├── SPEC.md
|
|
46
|
-
│ └── TASKS.yaml
|
|
47
|
-
└── 003M-auth-reconciliation/
|
|
48
|
-
├── SPEC.md
|
|
49
|
-
└── TASKS.yaml
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
`F`, `T`, and `M` mean **feature**, **technical**, and **maintenance**. The numeric prefix is a stable readable sequence, not execution order. Dependencies determine execution. `work-items` is intentionally generic enough to cover all three kinds while remaining explicit to readers.
|
|
53
|
-
|
|
54
|
-
## CLI
|
|
16
|
+
## Project bootstrap
|
|
55
17
|
|
|
56
|
-
|
|
18
|
+
`flow init` creates only:
|
|
57
19
|
|
|
58
|
-
```
|
|
59
|
-
flow
|
|
60
|
-
|
|
61
|
-
flow update
|
|
20
|
+
```text
|
|
21
|
+
.flow/
|
|
22
|
+
└── config.yaml
|
|
62
23
|
```
|
|
63
24
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
Flow requires Node.js 18 or newer.
|
|
67
|
-
|
|
68
|
-
- `flow init` creates `.flow/`.
|
|
69
|
-
- `flow install` installs the bundled skills into a coding-agent skill directory.
|
|
70
|
-
- `flow update` fetches the latest published Flow package and replaces the installed Flow skills.
|
|
71
|
-
|
|
72
|
-
The CLI does **not** plan work, schedule tasks, invoke models, or orchestrate subagents. Those responsibilities stay in the skills and coding-agent runtime.
|
|
73
|
-
|
|
74
|
-
Use an explicit skill directory when needed:
|
|
25
|
+
It does not create a PRD, engineering guide, backlog, graph, state, decisions, work items, gates, or templates. During `/flow`, new project documents and artifacts are created only when the developer explicitly requests or authorizes them. Flow updates existing approved artifacts instead of inventing ad-hoc progress, summary, handoff, or status documents.
|
|
75
26
|
|
|
76
|
-
|
|
77
|
-
flow install --target .agents/skills
|
|
78
|
-
flow update --target .agents/skills
|
|
79
|
-
```
|
|
27
|
+
## Workflow
|
|
80
28
|
|
|
81
|
-
|
|
29
|
+
There is one public skill:
|
|
82
30
|
|
|
83
31
|
```text
|
|
84
|
-
/flow
|
|
32
|
+
/flow
|
|
85
33
|
```
|
|
86
34
|
|
|
87
|
-
|
|
35
|
+
Use `/flow <intent>` to start or change work, for example `/flow I want to build a diet app`. Use `/flow` with no extra input to continue from `.flow/STATE.md`.
|
|
88
36
|
|
|
89
|
-
|
|
90
|
-
/flow-next
|
|
91
|
-
```
|
|
37
|
+
Flow internally loads only the guidance needed for discovery, planning, build, review, or reconciliation. It asks only for consequential decisions and uses the largest safe degree of parallelism. Once execution is underway, it does not stop merely to announce completed tasks, progress, or next steps; it continues automatically until developer input, external approval, an unrecoverable blocker, or no ready work requires a real stop.
|
|
92
38
|
|
|
93
|
-
|
|
39
|
+
When authorized, Flow keeps a concise artifact model: product truth in `PRD.md`, engineering truth in `ENGINEERING.md`, decisions in `DECISIONS.md`, execution context in `STATE.md`, the canonical work-item DAG in `BACKLOG.yaml`, and a human-readable derived projection in `GRAPH.md`. Work items use `SPEC.md` plus `TASKS.yaml`. `SUMMARY.md` is not part of the model.
|
|
94
40
|
|
|
95
|
-
|
|
96
|
-
parallelism:
|
|
97
|
-
strategy: maximum_safe
|
|
98
|
-
max_concurrent_work_items: auto
|
|
99
|
-
max_concurrent_tasks_per_work_item: auto
|
|
100
|
-
delegation: allowed
|
|
101
|
-
```
|
|
41
|
+
In `GRAPH.md`, work-item states are consistent: complete is green, in progress is blue, blocked is red when unfinished dependencies remain, and pending is yellow when all dependencies are complete and the item is ready to execute.
|
|
102
42
|
|
|
103
|
-
|
|
43
|
+
## Update
|
|
104
44
|
|
|
105
|
-
|
|
45
|
+
Updates are explicit:
|
|
106
46
|
|
|
107
|
-
|
|
47
|
+
```bash
|
|
48
|
+
flow update
|
|
49
|
+
```
|
|
108
50
|
|
|
109
|
-
|
|
51
|
+
`flow update` detects how the active Flow CLI is installed. If the project contains `@caiqueoak/flow`, it updates that project dependency; if the CLI is globally installed, it updates the global package instead. It then refreshes `/flow` for every coding agent configured in `.flow/config.yaml` without modifying canonical project state.
|
|
110
52
|
|
|
111
|
-
|
|
53
|
+
On Windows, npm is invoked through the command shell so `npm.cmd` can be executed correctly. When Flow is installed as a project dependency, `npx flow update` is equivalent.
|
|
112
54
|
|
|
113
|
-
|
|
55
|
+
There is no background update check or automatic update mechanism.
|
|
114
56
|
|
|
115
|
-
|
|
116
|
-
updates:
|
|
117
|
-
check_on_run: true
|
|
118
|
-
auto_update: false
|
|
119
|
-
```
|
|
57
|
+
## Releases
|
|
120
58
|
|
|
121
|
-
|
|
59
|
+
Merges to `main` are released automatically after the test matrix passes. The release pipeline uses npm Trusted Publishing (OIDC), creates a signed npm provenance record, and tags the release; no npm token or manual version bump is needed.
|
|
122
60
|
|
|
123
|
-
|
|
61
|
+
Use Conventional Commit prefixes in the PR title (and retained commits): `fix:` produces a patch, `feat:` a minor, and `feat!:` or a `BREAKING CHANGE:` footer a major release. `docs:`, `test:`, `chore:`, and `ci:` do not publish a package.
|
|
124
62
|
|
|
125
|
-
|
|
63
|
+
## CLI
|
|
126
64
|
|
|
127
|
-
```
|
|
128
|
-
|
|
129
|
-
|
|
65
|
+
```text
|
|
66
|
+
flow init
|
|
67
|
+
flow update
|
|
68
|
+
flow --version
|
|
69
|
+
flow --help
|
|
130
70
|
```
|
|
131
71
|
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
Flow follows [Semantic Versioning](https://semver.org/). A merge to `main` publishes only when the version in `package.json` does not already exist on npm. GitHub Actions runs the test and packaging checks, then publishes the package with provenance. Release PRs must update both `package.json` and `package-lock.json`.
|
|
72
|
+
The CLI bootstraps project-local integrations and configuration. The coding agent plus `/flow` owns discovery, planning, scheduling, delegation, build, gates, review, reconciliation, and state synchronization.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@caiqueoak/flow",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.1",
|
|
4
4
|
"description": "Readability-first, agent-agnostic software development workflow for coding agents.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"scripts": {
|
|
@@ -13,7 +13,6 @@
|
|
|
13
13
|
"files": [
|
|
14
14
|
"src",
|
|
15
15
|
"skills",
|
|
16
|
-
"templates",
|
|
17
16
|
"README.md",
|
|
18
17
|
"LICENSE"
|
|
19
18
|
],
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: flow
|
|
3
|
+
description: Autonomous, readability-first software delivery workflow. Continue from project state or incorporate new intent, ask only for consequential decisions, then plan, build, validate, reconcile, and continue as far as safely possible.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Flow
|
|
7
|
+
|
|
8
|
+
## Public contract
|
|
9
|
+
|
|
10
|
+
`/flow` is the only public workflow skill.
|
|
11
|
+
|
|
12
|
+
- `/flow` with no additional intent continues from `.flow/STATE.md` as far as safely possible.
|
|
13
|
+
- `/flow <freeform intent>` incorporates the intent into current project context and continues appropriately.
|
|
14
|
+
- If `.flow/STATE.md` does not exist, begin global discovery using the idea, repository, or source documents supplied.
|
|
15
|
+
|
|
16
|
+
Do not require the developer to know or invoke internal workflow phases.
|
|
17
|
+
|
|
18
|
+
## Core principles
|
|
19
|
+
|
|
20
|
+
1. **Readability first.** Canonical artifacts must be understandable without Flow internals.
|
|
21
|
+
2. **Decision ownership.** The developer owns consequential product and engineering decisions; the agent executes within approved rules and obvious conventions.
|
|
22
|
+
3. **Autonomy by default.** Continue until a consequential decision requiring developer input, external approval, unrecoverable blocker, or no-ready-work condition.
|
|
23
|
+
4. **Just-in-time detail.** Resolve global decisions during discovery and work-item detail only when that item becomes active.
|
|
24
|
+
5. **Production-aware MVP.** MVP includes product capability plus the technical, infrastructure, quality, deployment, and operational work needed to run it.
|
|
25
|
+
6. **Parallelism first.** Execute the largest safe independent set while preserving correctness and token efficiency.
|
|
26
|
+
7. **Automatic synchronization.** Keep state, decisions, PRD, engineering definition, backlog, graph, specs, and tasks aligned.
|
|
27
|
+
8. **Artifact restraint.** Never create a new project document or artifact unless the developer explicitly requests or authorizes it. Update existing approved artifacts instead whenever possible.
|
|
28
|
+
9. **Execution continuity.** Do not pause execution merely to report progress, completion, or next steps. Continue automatically while ready work exists. Surface status only when execution has actually stopped or when developer input is required.
|
|
29
|
+
|
|
30
|
+
## Canonical project artifacts
|
|
31
|
+
|
|
32
|
+
Create artifacts only when they become valid and only when the developer has explicitly requested or authorized their creation. `flow init` creates only `.flow/config.yaml`.
|
|
33
|
+
|
|
34
|
+
Developer-facing knowledge is Markdown:
|
|
35
|
+
|
|
36
|
+
- `.flow/PRD.md` - current global product truth and MVP boundary.
|
|
37
|
+
- `.flow/ENGINEERING.md` - global engineering truth.
|
|
38
|
+
- `.flow/DECISIONS.md` - consequential decision record and rationale.
|
|
39
|
+
- `.flow/STATE.md` - concise current execution/navigation checkpoint and resume context.
|
|
40
|
+
- `.flow/GRAPH.md` - human-readable derived projection of the work-item dependency graph and current readiness state.
|
|
41
|
+
- `.flow/work-items/<folder>/SPEC.md` - readable lifecycle/specification of one work item.
|
|
42
|
+
|
|
43
|
+
Graph/control data is YAML:
|
|
44
|
+
|
|
45
|
+
- `.flow/BACKLOG.yaml` - canonical work-item DAG and work-item state.
|
|
46
|
+
- `.flow/work-items/<folder>/TASKS.yaml` - task DAG and execution ownership.
|
|
47
|
+
|
|
48
|
+
Do not create `SUMMARY.md`, completion logs, ad-hoc progress documents, handoff documents, reports, or any other new project artifact unless the developer explicitly requests or authorizes them. Completed `SPEC.md` files retain concise Overview and Validation sections.
|
|
49
|
+
|
|
50
|
+
`GRAPH.md` is derived only. It must never become an independent source of truth and must be reconciled whenever work-item existence, dependencies, or status change. Preserve its established visual style and conventions while updating it.
|
|
51
|
+
|
|
52
|
+
## Work item model
|
|
53
|
+
|
|
54
|
+
- `feature` (`F`) - product/user capability.
|
|
55
|
+
- `technical` (`T`) - architecture, infrastructure, platform, quality, deployment, or enabling work.
|
|
56
|
+
- `maintenance` (`M`) - reconciliation, migration, refactor, or corrective work.
|
|
57
|
+
|
|
58
|
+
Folder format is `<three-digit-sequence><kind-code>-<slug>` (for example, `001F-user-profile`). The sequence is a stable readability aid, never execution order. Dependencies determine readiness.
|
|
59
|
+
|
|
60
|
+
Work-item states are derived consistently:
|
|
61
|
+
|
|
62
|
+
- `complete` (`✅`, green) - the item is completed.
|
|
63
|
+
- `in_progress` (`🔵`, blue) - the item has active execution.
|
|
64
|
+
- `blocked` (`🔴`, red) - the item is neither complete nor in progress and at least one work-item dependency is not complete.
|
|
65
|
+
- `pending` (`🟡`, yellow) - the item is neither complete nor in progress and every work-item dependency is complete; it is ready to execute.
|
|
66
|
+
|
|
67
|
+
The graph must use these meanings consistently for nodes and outgoing dependency-line styling.
|
|
68
|
+
|
|
69
|
+
## Decision authority
|
|
70
|
+
|
|
71
|
+
Apply low-impact and conventional choices automatically. A decision requires developer approval when materially different choices affect product behavior or scope; architecture/public contracts; production infrastructure or cost; persistent data; security/privacy; testing strategy or gates; project-wide conventions; or other work-item assumptions.
|
|
72
|
+
|
|
73
|
+
## Decision presentation protocol
|
|
74
|
+
|
|
75
|
+
Every requested decision must use this readable structure:
|
|
76
|
+
|
|
77
|
+
### Decision
|
|
78
|
+
|
|
79
|
+
What needs to be chosen.
|
|
80
|
+
|
|
81
|
+
### Problem
|
|
82
|
+
|
|
83
|
+
The concrete uncertainty.
|
|
84
|
+
|
|
85
|
+
### Context
|
|
86
|
+
|
|
87
|
+
Relevant product, engineering, production, and existing-decision context.
|
|
88
|
+
|
|
89
|
+
### Options
|
|
90
|
+
|
|
91
|
+
Realistic alternatives and trade-offs.
|
|
92
|
+
|
|
93
|
+
### Recommended option
|
|
94
|
+
|
|
95
|
+
Exactly one recommendation when evidence permits.
|
|
96
|
+
|
|
97
|
+
### Why recommended
|
|
98
|
+
|
|
99
|
+
Concise justification grounded in current goals and constraints.
|
|
100
|
+
|
|
101
|
+
### Approach
|
|
102
|
+
|
|
103
|
+
The high-level direction following the recommendation.
|
|
104
|
+
|
|
105
|
+
### Impact
|
|
106
|
+
|
|
107
|
+
Affected definitions, rules, gates, work items, tasks, or implementation.
|
|
108
|
+
|
|
109
|
+
Never hide a consequential choice inside an implementation plan. Batch the largest currently-known set of independent decisions; do not invent hypothetical questions.
|
|
110
|
+
|
|
111
|
+
## Decision lifecycle and impact
|
|
112
|
+
|
|
113
|
+
Decision states are `candidate`, `pending_user`, `accepted`, `rejected`, and `superseded`. Preserve the rationale in `DECISIONS.md`. Reconcile pending work before execution, stop only affected in-progress paths, and create maintenance work rather than rewriting completed history.
|
|
114
|
+
|
|
115
|
+
## Internal workflow routing
|
|
116
|
+
|
|
117
|
+
Load only the reference needed for current state:
|
|
118
|
+
|
|
119
|
+
- Missing state or global definition: `references/discovery.md`
|
|
120
|
+
- Ready/unplanned work: `references/planning.md`
|
|
121
|
+
- Ready planned tasks: `references/build.md`
|
|
122
|
+
- Completed implementation awaiting validation: `references/review.md`
|
|
123
|
+
- Decision impact or inconsistent artifacts: `references/reconcile.md`
|
|
124
|
+
|
|
125
|
+
## Orchestration loop
|
|
126
|
+
|
|
127
|
+
1. Read `.flow/config.yaml`.
|
|
128
|
+
2. Read only the minimum navigation context from `.flow/STATE.md` when present.
|
|
129
|
+
3. Classify new intent and its impact on canonical truth, backlog, active work, or execution detail.
|
|
130
|
+
4. Respect work/tasks already `in_progress` under another execution ID.
|
|
131
|
+
5. Route to the minimal internal reference.
|
|
132
|
+
6. Claim selected work before parallel execution.
|
|
133
|
+
7. Continue planning, build, gates, review, fixes/reconciliation, and completion without another invocation.
|
|
134
|
+
8. Recompute work-item states and readiness after every meaningful transition, synchronize `BACKLOG.yaml`, `STATE.md`, and `GRAPH.md`, and continue if ready work exists.
|
|
135
|
+
9. Do not stop or return control merely to announce that a task/work item completed or to describe the next step. Stop only when developer input is required for a consequential decision, an external approval is required, an unrecoverable blocker prevents useful progress, or no ready work remains.
|
|
136
|
+
|
|
137
|
+
When execution stops, report the stopping reason and the smallest relevant status summary. During uninterrupted execution, avoid progress-only messages.
|
|
138
|
+
|
|
139
|
+
## Parallelism and gates
|
|
140
|
+
|
|
141
|
+
`auto` means the largest safe concurrency the orchestrator can reliably coordinate, considering dependencies, shared decisions/files/contracts, integration risk, available capacity, context complexity, and token overhead. It is not unlimited. Prefer one primary orchestrator and delegate only where independent substantial work justifies it.
|
|
142
|
+
|
|
143
|
+
Gates may be deterministic commands or agentic policy checks. Define/refine them during discovery or planning when relevant. Build agents know applicable gates before implementation; review validates requirements, integration, and blocking gates.
|
|
144
|
+
|
|
145
|
+
## Git and token efficiency
|
|
146
|
+
|
|
147
|
+
Follow the approved Git strategy in `ENGINEERING.md`; by default create one atomic commit per completed task. Read the minimum relevant canonical context, avoid repeated large-document ingestion and duplicate prose, reuse accepted decisions, prefer deterministic checks, and delegate only with narrow ownership/context packets.
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
# Build
|
|
2
|
+
|
|
3
|
+
Compute ready tasks, exclude claims by another execution ID, select the largest safe set, and mark it `in_progress` before editing or delegating. Load only relevant specs, decisions, code, and gates. Follow approved conventions, avoid unrelated refactors, run the cheapest relevant deterministic checks, make atomic commits, and mark tasks complete only after acceptance checks pass.
|
|
4
|
+
|
|
5
|
+
Synchronize `TASKS.yaml`, `BACKLOG.yaml`, `STATE.md`, `GRAPH.md`, and other affected approved canonical artifacts at each meaningful transition. Never create a new document or artifact unless the developer explicitly requested or authorized it. If a consequential new choice emerges, stop only the affected path and present the decision while independent paths continue when safe.
|
|
6
|
+
|
|
7
|
+
Do not pause or return control merely to report that a task or work item completed, to announce progress, or to state the next step. Recompute readiness and continue automatically while useful ready work exists. Surface execution status only when developer input is required or execution has actually stopped.
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# Global Discovery
|
|
2
|
+
|
|
3
|
+
## Goal
|
|
4
|
+
|
|
5
|
+
Define the smallest coherent, production-capable MVP and the global product/engineering rules required to plan it. Do not specify work-item detail prematurely.
|
|
6
|
+
|
|
7
|
+
## Scope
|
|
8
|
+
|
|
9
|
+
Resolve only consequential global decisions affecting the problem, users, MVP, business constraints, production environment, deployment, architecture, persistence, integrations, security, observability, testing, conventions, documentation, Git strategy, and reusable gates. Infer trivial conventions from the existing codebase or chosen ecosystem.
|
|
10
|
+
|
|
11
|
+
## Outputs
|
|
12
|
+
|
|
13
|
+
Update valid canonical artifacts when their truth changes. Create `PRD.md`, `ENGINEERING.md`, `DECISIONS.md`, `BACKLOG.yaml`, `STATE.md`, `GRAPH.md`, work-item artifacts, or gate definitions only when the developer explicitly requested or authorized creation of that artifact class. Never create substitute, progress, summary, handoff, or ad-hoc documents to capture information that belongs in an existing approved artifact.
|
|
14
|
+
|
|
15
|
+
`GRAPH.md` is a derived human-readable projection of `BACKLOG.yaml`, not an independent source of truth. Discovery ends when no unresolved global decision is needed for a coherent production-capable MVP and initial work-item DAG.
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
# Work-item Planning
|
|
2
|
+
|
|
3
|
+
Read only relevant global decisions, backlog context, existing spec/tasks, and source. Ask consequential work-item decisions only when viable answers materially change behavior, contracts, data semantics, technical boundaries, security, UX, or gates.
|
|
4
|
+
|
|
5
|
+
For an already authorized work-item artifact class, create or update `.flow/work-items/<id>/SPEC.md` with goal, scope/non-goals, relevant decisions, approach, requirements, acceptance criteria, gates, dependencies/impacts, and validation. Create or update `TASKS.yaml` with bounded, testable, independently executable tasks, real blocking dependencies only, and concise acceptance/validation expectations.
|
|
6
|
+
|
|
7
|
+
If the required `SPEC.md` or `TASKS.yaml` does not yet exist and the developer has not explicitly requested or authorized creation of that artifact class, request authorization before creating it. Do not create substitute planning documents. After planning, continue automatically into ready execution instead of stopping to report the plan unless a consequential developer decision is required.
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
# Reconciliation
|
|
2
|
+
|
|
3
|
+
Keep canonical truth and active plans aligned when new intent or accepted decisions affect work. Reconcile pending/planned work before execution, preserve unaffected in-progress work, and create maintenance work for completed work that must change. Preserve superseded decisions with links to their replacements. Update only approved artifacts whose current truth changed, including the derived `GRAPH.md` whenever work-item existence, dependencies, or status change.
|
|
4
|
+
|
|
5
|
+
Never create a new document or artifact during reconciliation unless the developer explicitly requested or authorized it. After reconciliation, recompute readiness and continue execution automatically when safe rather than pausing to report status.
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
# Review
|
|
2
|
+
|
|
3
|
+
Verify completed work against its spec and applicable gates: inspect task completion and diff, validate requirements and acceptance criteria, run deterministic blocking gates, then applicable agentic gates, and check integration/regressions. Create targeted fix tasks within approved scope; request a decision only for consequential new choices. On success, update the spec Overview and Validation, then synchronize `BACKLOG.yaml`, `STATE.md`, `GRAPH.md`, and other affected approved canonical artifacts.
|
|
4
|
+
|
|
5
|
+
Never create a new document or artifact during review unless the developer explicitly requested or authorized it. Do not stop merely to announce successful validation or the next ready work item; return to orchestration and continue while useful ready work exists.
|