@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
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: flow-plan
|
|
3
|
-
description: Plan a ready feature, technical, or maintenance work item just in time, resolve consequential local decisions, reconcile cross-work impacts, define gates, and create a dependency-aware task DAG.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Flow Plan
|
|
7
|
-
|
|
8
|
-
## Objective
|
|
9
|
-
|
|
10
|
-
Turn one ready work item into an implementation-ready specification and task DAG while preserving all approved global product and engineering decisions.
|
|
11
|
-
|
|
12
|
-
## Context loading
|
|
13
|
-
|
|
14
|
-
Start with `.flow/STATE.yaml`, `.flow/BACKLOG.yaml`, and `.flow/SUMMARY.md`. Read only the relevant sections of `PRD.md`, `ENGINEERING.md`, `DECISIONS.yaml`, and gates needed for this work item. Do not reload unrelated completed work.
|
|
15
|
-
|
|
16
|
-
## Work item selection
|
|
17
|
-
|
|
18
|
-
Plan a requested work item or the highest-priority ready work item selected by the orchestrator. Mark it `in_progress` with the current `execution_id` before beginning mutating work.
|
|
19
|
-
|
|
20
|
-
Create `.flow/work-items/<sequence-padded><kind-code>-<slug>/SPEC.md` and `TASKS.yaml` from templates.
|
|
21
|
-
|
|
22
|
-
## Just-in-time discovery
|
|
23
|
-
|
|
24
|
-
Ask detailed questions only when answers materially affect this work item's behavior, scope, UX, contracts, data semantics, architecture application, infrastructure interaction, security/reliability, acceptance criteria, or gates.
|
|
25
|
-
|
|
26
|
-
Reuse accepted global decisions. Applying an approved rule is not a new decision.
|
|
27
|
-
|
|
28
|
-
Do not ask trivial implementation questions when a clear language/framework/repository convention or approved engineering rule provides the answer.
|
|
29
|
-
|
|
30
|
-
## Consequential decisions
|
|
31
|
-
|
|
32
|
-
Never silently choose a consequential local or global decision. Use the same six-part decision format as `flow-new`: Decision, Context, Options, Recommended option, Why recommended, Impact.
|
|
33
|
-
|
|
34
|
-
Batch the maximum set of currently-known independent decisions; do not invent speculative future cases to create a larger batch.
|
|
35
|
-
|
|
36
|
-
If a work-item decision establishes or changes a project-wide rule, treat it as a global technical/product decision, obtain developer approval, record it in `DECISIONS.yaml`, update `PRD.md` or `ENGINEERING.md`, and calculate impacted work.
|
|
37
|
-
|
|
38
|
-
## Reconciliation and cross-work impact
|
|
39
|
-
|
|
40
|
-
When a new accepted decision impacts another work item:
|
|
41
|
-
- pending/ready/planned item: mark `needs_reconciliation` when its assumptions/spec may be stale;
|
|
42
|
-
- in-progress item owned by another execution: do not modify its work; record the impact and surface the coordination issue;
|
|
43
|
-
- completed item: create a `maintenance` work item when code/data/config must be reconciled or migrated.
|
|
44
|
-
|
|
45
|
-
Decision impact is not the same as dependency. Use dependencies only for actual execution blockers.
|
|
46
|
-
|
|
47
|
-
## Gates
|
|
48
|
-
|
|
49
|
-
Resolve all global gates applicable to the work item. During planning, propose work-item-specific gates when needed. If a proposed gate establishes a reusable project-wide standard, it requires developer approval and should be promoted to `.flow/gates/`. Keep one-off validation criteria in `SPEC.md`.
|
|
50
|
-
|
|
51
|
-
## Task DAG
|
|
52
|
-
|
|
53
|
-
Each task must include:
|
|
54
|
-
- ID and clear title;
|
|
55
|
-
- status;
|
|
56
|
-
- `depends_on` with only real blockers;
|
|
57
|
-
- affected areas when reasonably predictable;
|
|
58
|
-
- concise acceptance criteria;
|
|
59
|
-
- decision/gate references when relevant;
|
|
60
|
-
- execution ID when claimed.
|
|
61
|
-
|
|
62
|
-
Validate the DAG is acyclic. Do not create explicit waves; execution groups are derived dynamically from the DAG and conflict analysis.
|
|
63
|
-
|
|
64
|
-
## Specification readability
|
|
65
|
-
|
|
66
|
-
`SPEC.md` is the readable lifecycle document for the work item. Use:
|
|
67
|
-
- Overview
|
|
68
|
-
- Goal
|
|
69
|
-
- Scope / Non-Goals
|
|
70
|
-
- Product Decisions
|
|
71
|
-
- Engineering Decisions
|
|
72
|
-
- Requirements
|
|
73
|
-
- Acceptance Criteria
|
|
74
|
-
- Dependencies & Impact
|
|
75
|
-
- Validation Gates
|
|
76
|
-
- Validation Result
|
|
77
|
-
- Delivery Notes
|
|
78
|
-
|
|
79
|
-
Keep it concise. Update `Overview` on completion to reflect what was actually delivered. Do not create a completion-log or separate summary file per work item.
|
|
80
|
-
|
|
81
|
-
## Token-efficiency rules
|
|
82
|
-
|
|
83
|
-
- Inspect only code likely relevant to current decisions/tasks.
|
|
84
|
-
- Reuse global definitions instead of copying them into the spec.
|
|
85
|
-
- Refer to decision/gate IDs instead of duplicating long policies.
|
|
86
|
-
- Avoid research unless current evidence is insufficient for a consequential decision.
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: flow-review
|
|
3
|
-
description: Validate implemented work against its spec and configured gates, create targeted fixes or maintenance work, and close the work item automatically when it passes.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Flow Review
|
|
7
|
-
|
|
8
|
-
## Objective
|
|
9
|
-
|
|
10
|
-
Provide the final safety net after build while avoiding redundant re-analysis already covered by deterministic or approved agentic gates.
|
|
11
|
-
|
|
12
|
-
## Required behavior
|
|
13
|
-
|
|
14
|
-
1. Read the active SPEC/TASKS, relevant diff/commits, applicable gate definitions, and only the global decisions/engineering rules needed to validate them.
|
|
15
|
-
2. Verify every requirement and acceptance criterion.
|
|
16
|
-
3. Run all applicable blocking command gates and targeted checks.
|
|
17
|
-
4. Run applicable agentic gates only for policy that tools cannot determine reliably.
|
|
18
|
-
5. Check cross-task integration, obvious regressions, unexpected scope changes, and contract mismatches.
|
|
19
|
-
6. Produce manual validation steps only where automated/agentic validation cannot establish confidence.
|
|
20
|
-
|
|
21
|
-
## Failure
|
|
22
|
-
|
|
23
|
-
If review fails:
|
|
24
|
-
- create narrow fix tasks with real dependencies;
|
|
25
|
-
- leave the work item `in_progress`;
|
|
26
|
-
- return it to build automatically;
|
|
27
|
-
- create maintenance work instead of reopening completed unrelated items directly.
|
|
28
|
-
|
|
29
|
-
If review exposes a consequential decision, stop the affected path and use the required decision presentation protocol. Never silently resolve it during review.
|
|
30
|
-
|
|
31
|
-
## Success
|
|
32
|
-
|
|
33
|
-
When review passes:
|
|
34
|
-
- mark the work item `done`;
|
|
35
|
-
- update the SPEC `Overview`, `Validation Result`, and concise `Delivery Notes`;
|
|
36
|
-
- update BACKLOG and STATE;
|
|
37
|
-
- synchronize SUMMARY only when project-level understanding materially changed (for example work-item completion, MVP progress, architecture/production model, or key decision change);
|
|
38
|
-
- recompute the ready work graph.
|
|
39
|
-
|
|
40
|
-
Do NOT create `COMPLETION-LOG.md` or a separate per-work-item summary.
|
|
41
|
-
|
|
42
|
-
## Token-efficiency rules
|
|
43
|
-
|
|
44
|
-
- Do not repeat analysis already proven by command gates.
|
|
45
|
-
- Review the smallest relevant diff/contract surface.
|
|
46
|
-
- Avoid general-purpose reviewer subagents when a targeted gate answers the question.
|
|
47
|
-
- Keep review output concise and write only durable information to canonical artifacts.
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: flow-status
|
|
3
|
-
description: Orient a developer or fresh agent from small readable Flow state without rediscovering the repository.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Flow Status
|
|
7
|
-
|
|
8
|
-
## Objective
|
|
9
|
-
|
|
10
|
-
Explain where the project is, what is running, what is blocked, and what can run next with minimal context.
|
|
11
|
-
|
|
12
|
-
## Required behavior
|
|
13
|
-
|
|
14
|
-
1. Read `.flow/SUMMARY.md`, `.flow/STATE.yaml`, and `.flow/BACKLOG.yaml`.
|
|
15
|
-
2. Read active work-item TASKS/SPEC only when needed for active progress details.
|
|
16
|
-
3. Report concisely:
|
|
17
|
-
- project stage and MVP progress;
|
|
18
|
-
- active/in-progress work items and execution IDs;
|
|
19
|
-
- ready work items;
|
|
20
|
-
- pending consequential decisions;
|
|
21
|
-
- blockers/reconciliation work;
|
|
22
|
-
- current effective parallelism if work is active;
|
|
23
|
-
- recommended next action.
|
|
24
|
-
4. Never scan the whole repository just to report status.
|
|
25
|
-
5. Never silently reclaim another execution's in-progress work.
|
|
26
|
-
6. Repair purely mechanical state inconsistencies only when the correct state is provable from canonical artifacts; otherwise surface the exact inconsistency.
|
package/templates/BACKLOG.yaml
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
work_items: []
|
|
2
|
-
|
|
3
|
-
# Work item example:
|
|
4
|
-
# - id: W001
|
|
5
|
-
# sequence: 1
|
|
6
|
-
# kind: feature | technical | maintenance
|
|
7
|
-
# title: Example
|
|
8
|
-
# slug: example
|
|
9
|
-
# folder: 001F-example # F=feature, T=technical, M=maintenance
|
|
10
|
-
# mvp: true
|
|
11
|
-
# priority: high
|
|
12
|
-
# status: pending | ready | in_progress | blocked | needs_reconciliation | done
|
|
13
|
-
# depends_on: []
|
|
14
|
-
# impacted_by: []
|
|
15
|
-
# execution_id: null
|
package/templates/DECISIONS.yaml
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
decisions: []
|
|
2
|
-
|
|
3
|
-
# Consequential decisions only.
|
|
4
|
-
# Lifecycle: candidate -> pending_user -> accepted -> superseded | rejected
|
|
5
|
-
# Recommended fields:
|
|
6
|
-
# - id
|
|
7
|
-
# - kind: product | technical
|
|
8
|
-
# - scope: global | work_item
|
|
9
|
-
# - subject
|
|
10
|
-
# - status
|
|
11
|
-
# - context
|
|
12
|
-
# - options
|
|
13
|
-
# - recommendation
|
|
14
|
-
# - choice
|
|
15
|
-
# - rationale
|
|
16
|
-
# - depends_on
|
|
17
|
-
# - affects
|
|
18
|
-
# - superseded_by
|
package/templates/ENGINEERING.md
DELETED
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
# Engineering Definition
|
|
2
|
-
|
|
3
|
-
## Overview
|
|
4
|
-
|
|
5
|
-
_To be defined by `flow-new` from product requirements, production constraints, existing code, and approved technical decisions._
|
|
6
|
-
|
|
7
|
-
## Production Environment & Constraints
|
|
8
|
-
|
|
9
|
-
## Architecture
|
|
10
|
-
|
|
11
|
-
## Project Structure & Boundaries
|
|
12
|
-
|
|
13
|
-
## Data & Persistence
|
|
14
|
-
|
|
15
|
-
## Integration & Communication Patterns
|
|
16
|
-
|
|
17
|
-
## Infrastructure & Deployment
|
|
18
|
-
|
|
19
|
-
## Security & Privacy Baseline
|
|
20
|
-
|
|
21
|
-
## Observability & Operations
|
|
22
|
-
|
|
23
|
-
## Testing Strategy
|
|
24
|
-
|
|
25
|
-
## Engineering Principles
|
|
26
|
-
|
|
27
|
-
## Naming & Code Conventions
|
|
28
|
-
|
|
29
|
-
Record only conventions that are worth making explicit. Infer trivial ecosystem conventions when a clear language/framework/repository standard exists.
|
|
30
|
-
|
|
31
|
-
## Documentation Standards
|
|
32
|
-
|
|
33
|
-
## Quality Gates
|
|
34
|
-
|
|
35
|
-
## Sources
|
package/templates/PRD.md
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
# Product Definition
|
|
2
|
-
|
|
3
|
-
## Overview
|
|
4
|
-
|
|
5
|
-
_To be defined by `flow-new`._
|
|
6
|
-
|
|
7
|
-
## Problem
|
|
8
|
-
|
|
9
|
-
## Target Users
|
|
10
|
-
|
|
11
|
-
## Product Principles
|
|
12
|
-
|
|
13
|
-
## MVP Outcome
|
|
14
|
-
|
|
15
|
-
## MVP Scope
|
|
16
|
-
|
|
17
|
-
## Post-MVP Scope
|
|
18
|
-
|
|
19
|
-
## Global Product Constraints
|
|
20
|
-
|
|
21
|
-
## Non-Goals
|
|
22
|
-
|
|
23
|
-
## Sources
|
package/templates/STATE.yaml
DELETED
package/templates/SUMMARY.md
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
# Project Overview
|
|
2
|
-
|
|
3
|
-
## What We Are Building
|
|
4
|
-
|
|
5
|
-
_Not defined yet._
|
|
6
|
-
|
|
7
|
-
## MVP
|
|
8
|
-
|
|
9
|
-
_Not defined yet._
|
|
10
|
-
|
|
11
|
-
## Key Product Decisions
|
|
12
|
-
|
|
13
|
-
_None yet._
|
|
14
|
-
|
|
15
|
-
## Key Engineering Decisions
|
|
16
|
-
|
|
17
|
-
_None yet._
|
|
18
|
-
|
|
19
|
-
## Production Model
|
|
20
|
-
|
|
21
|
-
_Not defined yet._
|
|
22
|
-
|
|
23
|
-
## Quality Model
|
|
24
|
-
|
|
25
|
-
_Not defined yet._
|
|
26
|
-
|
|
27
|
-
## Current Progress
|
|
28
|
-
|
|
29
|
-
Project discovery has not been completed.
|
package/templates/TASKS.yaml
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
tasks: []
|
|
2
|
-
|
|
3
|
-
# Task example:
|
|
4
|
-
# - id: T001
|
|
5
|
-
# title: Example
|
|
6
|
-
# status: pending | ready | in_progress | blocked | done
|
|
7
|
-
# depends_on: []
|
|
8
|
-
# affected_areas: []
|
|
9
|
-
# acceptance: []
|
|
10
|
-
# decision_refs: []
|
|
11
|
-
# gate_refs: []
|
|
12
|
-
# execution_id: null
|
|
13
|
-
# commit: null
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
# Work Item
|
|
2
|
-
|
|
3
|
-
## Overview
|
|
4
|
-
|
|
5
|
-
Concise explanation of what this work item changes and why it exists. On completion, update this section to describe what was actually delivered.
|
|
6
|
-
|
|
7
|
-
## Goal
|
|
8
|
-
|
|
9
|
-
## Scope
|
|
10
|
-
|
|
11
|
-
## Non-Goals
|
|
12
|
-
|
|
13
|
-
## Product Decisions
|
|
14
|
-
|
|
15
|
-
## Engineering Decisions
|
|
16
|
-
|
|
17
|
-
## Requirements
|
|
18
|
-
|
|
19
|
-
## Acceptance Criteria
|
|
20
|
-
|
|
21
|
-
## Dependencies & Impact
|
|
22
|
-
|
|
23
|
-
## Validation Gates
|
|
24
|
-
|
|
25
|
-
## Validation Result
|
|
26
|
-
|
|
27
|
-
## Delivery Notes
|
|
28
|
-
|
|
29
|
-
Keep this concise. Git history carries implementation history; do not duplicate it here.
|
package/templates/config.yaml
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
schema_version: 1
|
|
2
|
-
framework_version: 0.2.0
|
|
3
|
-
|
|
4
|
-
workflow:
|
|
5
|
-
autonomous_until:
|
|
6
|
-
- consequential_decision
|
|
7
|
-
- external_approval
|
|
8
|
-
- unrecoverable_blocker
|
|
9
|
-
- no_ready_work
|
|
10
|
-
continue_across_work_items: true
|
|
11
|
-
|
|
12
|
-
parallelism:
|
|
13
|
-
strategy: maximum_safe
|
|
14
|
-
max_concurrent_work_items: auto
|
|
15
|
-
max_concurrent_tasks_per_work_item: auto
|
|
16
|
-
delegation: allowed
|
|
17
|
-
|
|
18
|
-
execution:
|
|
19
|
-
primary_orchestrator: true
|
|
20
|
-
|
|
21
|
-
commands:
|
|
22
|
-
test: null
|
|
23
|
-
lint: null
|
|
24
|
-
typecheck: null
|
|
25
|
-
build: null
|
|
26
|
-
|
|
27
|
-
updates:
|
|
28
|
-
check_on_run: true
|
|
29
|
-
auto_update: false
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
# Quality Gates
|
|
2
|
-
|
|
3
|
-
This directory contains reusable project-wide validation gates created or refined during project discovery and work-item planning.
|
|
4
|
-
|
|
5
|
-
A gate should be concise, readable, and actionable. Prefer deterministic command checks when tools can verify a rule reliably; use agentic policy gates only when judgment is required.
|
|
6
|
-
|
|
7
|
-
Suggested frontmatter:
|
|
8
|
-
|
|
9
|
-
```yaml
|
|
10
|
-
---
|
|
11
|
-
id: architecture-boundaries
|
|
12
|
-
kind: agentic # agentic | command
|
|
13
|
-
blocking: true
|
|
14
|
-
applies_when:
|
|
15
|
-
- architecture_changed
|
|
16
|
-
---
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
A gate may be introduced during a work item. If it establishes a reusable project-wide rule, treat that as a consequential technical decision and obtain developer approval before promoting it to this directory.
|