flight-rules 0.5.9 → 0.9.0

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 CHANGED
@@ -89,6 +89,28 @@ Two core flows:
89
89
 
90
90
  Agents don't start these flows on their own; you explicitly invoke them.
91
91
 
92
+ ### Available Commands
93
+
94
+ Flight Rules provides workflow commands that agents can execute:
95
+
96
+ | Command | Purpose |
97
+ |---------|---------|
98
+ | `/dev-session.start` | Begin a structured coding session with goals and plan |
99
+ | `/dev-session.end` | End session, summarize work, update progress |
100
+ | `/prd.create` | Create a Product Requirements Document |
101
+ | `/prd.clarify` | Refine specific sections of an existing PRD |
102
+ | `/impl.outline` | Create implementation area structure |
103
+ | `/impl.create` | Add detailed tasks to implementation specs |
104
+ | `/feature.add` | Add a new feature to PRD and implementation docs |
105
+ | `/test.add` | Add tests for specific functionality |
106
+ | `/test.assess-current` | Analyze existing test coverage |
107
+ | `/prompt.refine` | Iteratively improve a prompt |
108
+ | `/readme.create` | Generate README from PRD and project state |
109
+ | `/readme.reconcile` | Update README to reflect recent changes |
110
+ | `/prd.reconcile` | Update PRD based on what was actually built |
111
+ | `/impl.reconcile` | Update implementation docs with status changes |
112
+ | `/docs.reconcile` | Run all reconcile commands + consistency check |
113
+
92
114
  ### Versioning
93
115
 
94
116
  Each project tracks which Flight Rules version it uses:
@@ -126,11 +148,22 @@ your-project/
126
148
  │ ├── session-log.md
127
149
  │ └── implementation/
128
150
  │ └── overview.md
129
- ├── commands/
151
+ ├── commands/ # Workflow commands
130
152
  │ ├── dev-session.start.md
131
153
  │ ├── dev-session.end.md
154
+ │ ├── prd.create.md
155
+ │ ├── prd.clarify.md
156
+ │ ├── impl.outline.md
157
+ │ ├── impl.create.md
158
+ │ ├── feature.add.md
132
159
  │ ├── test.add.md
133
- └── test.assess-current.md
160
+ ├── test.assess-current.md
161
+ │ ├── prompt.refine.md
162
+ │ ├── readme.create.md
163
+ │ ├── readme.reconcile.md
164
+ │ ├── prd.reconcile.md
165
+ │ ├── impl.reconcile.md
166
+ │ └── docs.reconcile.md
134
167
  └── prompts/ # Reusable prompt templates
135
168
  ```
136
169
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "flight-rules",
3
- "version": "0.5.9",
3
+ "version": "0.9.0",
4
4
  "description": "An opinionated framework for AI-assisted software development",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
package/payload/AGENTS.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Flight Rules – Agent Guidelines
2
2
 
3
- flight_rules_version: 0.5.9
3
+ flight_rules_version: 0.9.0
4
4
 
5
5
  This file defines how agents (Claude Code, Cursor, etc.) should work on software projects using the Flight Rules system.
6
6
 
@@ -0,0 +1,242 @@
1
+ # Reconcile All Documentation
2
+
3
+ When the user invokes "docs.reconcile", run all reconciliation commands in sequence and then perform a cross-document consistency check.
4
+
5
+ Adopt the persona of a documentation auditor who ensures all project docs tell a consistent story. You orchestrate the individual reconcile commands and then analyze the entire documentation set for internal consistency.
6
+
7
+ ## 1. Determine Scope
8
+
9
+ ### One-shot mode with explicit scope:
10
+
11
+ If the user provided a scope argument, it applies to all reconcile commands:
12
+ - `/docs.reconcile since v0.5.0`
13
+ - `/docs.reconcile last 10 commits`
14
+ - `/docs.reconcile since 2026-01-15`
15
+ - `/docs.reconcile check-only` — Skip reconciliation, only run cross-check
16
+
17
+ ### Default scope detection:
18
+
19
+ If no scope provided:
20
+
21
+ 1. Read `docs/progress.md` to find the last documented session
22
+ 2. Extract the date from the most recent session log entry
23
+ 3. Find commits since that date
24
+
25
+ Present the detected scope:
26
+
27
+ > "I found your last documented session was on [date]. I'll analyze the [N] commits since then across all documentation.
28
+ >
29
+ > This will run:
30
+ > 1. `/readme.reconcile` — Update README
31
+ > 2. `/prd.reconcile` — Update PRD
32
+ > 3. `/impl.reconcile` — Update implementation docs
33
+ > 4. **Cross-check** — Verify consistency across all docs
34
+ >
35
+ > Does this scope look right, or would you like to adjust it?"
36
+
37
+ ### Check-only mode:
38
+
39
+ If user specified `check-only`:
40
+
41
+ > "Running consistency check only (no reconciliation).
42
+ >
43
+ > I'll analyze README, PRD, and implementation docs for internal consistency without looking at git history."
44
+
45
+ Skip to Step 5 (Cross-Check).
46
+
47
+ ## 2. Run README Reconcile
48
+
49
+ Execute the `/readme.reconcile` workflow with the determined scope.
50
+
51
+ After completion, summarize:
52
+
53
+ > **README Reconciliation Complete**
54
+ > - [Summary of changes made or "No changes needed"]
55
+ >
56
+ > Proceeding to PRD reconciliation...
57
+
58
+ ## 3. Run PRD Reconcile
59
+
60
+ Execute the `/prd.reconcile` workflow with the determined scope.
61
+
62
+ After completion, summarize:
63
+
64
+ > **PRD Reconciliation Complete**
65
+ > - [Summary of changes made or "No changes needed"]
66
+ >
67
+ > Proceeding to implementation docs reconciliation...
68
+
69
+ ## 4. Run Implementation Reconcile
70
+
71
+ Execute the `/impl.reconcile` workflow with the determined scope.
72
+
73
+ After completion, summarize:
74
+
75
+ > **Implementation Docs Reconciliation Complete**
76
+ > - [Summary of changes made or "No changes needed"]
77
+ >
78
+ > Proceeding to cross-document consistency check...
79
+
80
+ ## 5. Cross-Document Consistency Check
81
+
82
+ Read all documentation files and analyze for consistency:
83
+
84
+ ### 5.1 README ↔ PRD Consistency
85
+
86
+ Check:
87
+ - Features mentioned in README exist as PRD goals
88
+ - PRD overview matches README overview
89
+ - Installation/usage in README matches constraints in PRD
90
+
91
+ Flag inconsistencies:
92
+ - README mentions feature X, but PRD has no corresponding goal
93
+ - PRD goal Y is marked complete, but README doesn't mention it
94
+ - README claims capability Z, but PRD lists it as a non-goal
95
+
96
+ ### 5.2 PRD ↔ Implementation Consistency
97
+
98
+ Check:
99
+ - Each PRD goal maps to at least one implementation area
100
+ - Implementation areas reference valid PRD goals
101
+ - Non-goals aren't being implemented
102
+
103
+ Flag inconsistencies:
104
+ - PRD goal N has no corresponding implementation area
105
+ - Implementation area X doesn't map to any PRD goal
106
+ - Work in area Y appears to violate non-goal Z
107
+
108
+ ### 5.3 Implementation Internal Consistency
109
+
110
+ Check:
111
+ - Overview status matches area status
112
+ - Area status matches task group statuses
113
+ - Dependencies are satisfied (required tasks complete before dependent tasks)
114
+
115
+ Flag inconsistencies:
116
+ - Overview says area is ✅ Complete, but tasks are 🔵 Planned
117
+ - Task X depends on Task Y, but Y is not complete
118
+ - Task group marked complete but contains incomplete tasks
119
+
120
+ ### 5.4 Status Alignment
121
+
122
+ Check:
123
+ - PRD success criteria alignment with task completion
124
+ - Goals marked as achieved have supporting evidence
125
+ - No orphaned tasks (tasks without parent goals)
126
+
127
+ ## 6. Present Consistency Report
128
+
129
+ > **Documentation Consistency Report**
130
+ >
131
+ > ---
132
+ >
133
+ > **README ↔ PRD**
134
+ >
135
+ > | Issue | Severity | Details | Suggestion |
136
+ > |-------|----------|---------|------------|
137
+ > | [Issue type] | [High/Medium/Low] | [Description] | [How to fix] |
138
+ >
139
+ > ---
140
+ >
141
+ > **PRD ↔ Implementation**
142
+ >
143
+ > | Issue | Severity | Details | Suggestion |
144
+ > |-------|----------|---------|------------|
145
+ > | [Issue type] | [High/Medium/Low] | [Description] | [How to fix] |
146
+ >
147
+ > ---
148
+ >
149
+ > **Implementation Internal**
150
+ >
151
+ > | Issue | Severity | Details | Suggestion |
152
+ > |-------|----------|---------|------------|
153
+ > | [Issue type] | [High/Medium/Low] | [Description] | [How to fix] |
154
+ >
155
+ > ---
156
+ >
157
+ > **Summary:**
158
+ > - [N] high-severity issues
159
+ > - [N] medium-severity issues
160
+ > - [N] low-severity issues
161
+ >
162
+ > Would you like me to fix any of these issues?
163
+
164
+ ### Severity levels:
165
+
166
+ - **High**: Contradictory information (README says X, PRD says not-X)
167
+ - **Medium**: Missing information (goal exists but no implementation)
168
+ - **Low**: Stale information (outdated but not contradictory)
169
+
170
+ ## 7. Fix Consistency Issues
171
+
172
+ If user wants fixes applied:
173
+
174
+ For each issue, propose the specific fix:
175
+
176
+ > **Fixing: [Issue description]**
177
+ >
178
+ > **Option 1**: Update [File A] to match [File B]
179
+ > ```
180
+ > [Proposed change]
181
+ > ```
182
+ >
183
+ > **Option 2**: Update [File B] to match [File A]
184
+ > ```
185
+ > [Proposed change]
186
+ > ```
187
+ >
188
+ > Which option, or skip this issue?
189
+
190
+ Apply fixes as confirmed.
191
+
192
+ ## 8. Final Report
193
+
194
+ > **Documentation Reconciliation Complete**
195
+ >
196
+ > ---
197
+ >
198
+ > **Reconciliation Summary:**
199
+ >
200
+ > | Document | Changes | Status |
201
+ > |----------|---------|--------|
202
+ > | README.md | [N changes / No changes] | ✅ |
203
+ > | docs/prd.md | [N changes / No changes] | ✅ |
204
+ > | docs/implementation/ | [N changes / No changes] | ✅ |
205
+ >
206
+ > ---
207
+ >
208
+ > **Consistency Check:**
209
+ >
210
+ > | Check | Issues Found | Fixed |
211
+ > |-------|--------------|-------|
212
+ > | README ↔ PRD | [N] | [N] |
213
+ > | PRD ↔ Implementation | [N] | [N] |
214
+ > | Implementation Internal | [N] | [N] |
215
+ >
216
+ > ---
217
+ >
218
+ > **Overall Status:** [All docs consistent / N issues remaining]
219
+ >
220
+ > ---
221
+ >
222
+ > **Based on:**
223
+ > - [N] commits analyzed
224
+ > - Scope: [date range or version range]
225
+ >
226
+ > **Next steps:**
227
+ > - [If issues remain: List what still needs attention]
228
+ > - Run `/dev-session.start` to continue development
229
+ > - Run `/docs.reconcile check-only` periodically to maintain consistency
230
+
231
+ ## Key Behaviors
232
+
233
+ Throughout this command:
234
+
235
+ - **Orchestrate cleanly** — Run each command to completion before moving on
236
+ - **Aggregate results** — Present a unified summary, not disjointed reports
237
+ - **Prioritize by severity** — High-severity issues first
238
+ - **Offer choices** — For consistency fixes, let user decide which doc to update
239
+ - **Don't over-fix** — Flag issues, don't automatically resolve ambiguities
240
+ - **Support check-only** — Allow running just the consistency check
241
+ - **Be thorough** — Check all document relationships, not just obvious ones
242
+ - **Explain the "why"** — Each inconsistency should have clear impact explained
@@ -0,0 +1,319 @@
1
+ # Add Feature
2
+
3
+ When the user invokes "feature.add", help them incorporate a new feature into an existing project's PRD and implementation documentation. This command supports two modes: conversational (default) and one-shot (when the user provides a feature description).
4
+
5
+ Adopt the persona of a thoughtful feature architect who understands both product requirements and implementation structure. You carefully consider how new features fit into existing plans, watch for conflicts with non-goals, and ensure consistency across documentation.
6
+
7
+ ## 1. Check Prerequisites
8
+
9
+ ### Required: PRD Must Exist
10
+
11
+ Read `docs/prd.md`. If it doesn't exist or is empty:
12
+
13
+ > "I couldn't find an existing PRD at `docs/prd.md`. The PRD is needed to understand the project's goals and constraints before adding a feature.
14
+ >
15
+ > Would you like me to create one first with `/prd.create`?"
16
+
17
+ Stop and wait for the user's response.
18
+
19
+ ### Recommended: Implementation Outline Should Exist
20
+
21
+ Check if `docs/implementation/overview.md` exists with substantive content.
22
+
23
+ If it doesn't exist:
24
+
25
+ > "I found a PRD, but no implementation outline exists yet. Adding a feature works best when I can see how it fits into the existing implementation structure.
26
+ >
27
+ > Would you like to:
28
+ > 1. **Create an outline first** — Run `/impl.outline` to establish the structure
29
+ > 2. **Proceed anyway** — I'll propose both PRD updates and a new implementation area
30
+ >
31
+ > Which would you prefer?"
32
+
33
+ Wait for the user's response.
34
+
35
+ ## 2. Gather Context
36
+
37
+ Read the following files to understand the current project state:
38
+
39
+ - `docs/prd.md` — Goals, non-goals, user stories, constraints
40
+ - `docs/implementation/overview.md` — Existing areas and their status
41
+ - Each `docs/implementation/{N}-{area}/index.md` — Area goals and scope
42
+ - `docs/progress.md` — Recent work (if exists)
43
+
44
+ Note the key elements:
45
+ - Current goals and how they're numbered
46
+ - Existing non-goals that might conflict with new features
47
+ - Current implementation areas and their scope
48
+ - Dependencies between areas
49
+
50
+ ## 3. Determine Mode
51
+
52
+ **One-shot mode:** If the user provided a feature description with the command (e.g., "/feature.add dark mode toggle for the settings page"), proceed to Step 4 with that description as context.
53
+
54
+ **Conversational mode:** If the user invoked the command without a description:
55
+
56
+ > "I'm going to help you add a new feature to this project. I've reviewed the current PRD and implementation structure.
57
+ >
58
+ > What feature would you like to add? Give me a brief description and I'll help you figure out where it fits."
59
+
60
+ Wait for the user's response before proceeding.
61
+
62
+ ## 4. Understand the Feature
63
+
64
+ ### 4.1 Initial Analysis
65
+
66
+ Based on the user's description, analyze:
67
+ - What problem does this feature solve?
68
+ - Who is the target user?
69
+ - How does it relate to existing goals?
70
+
71
+ ### 4.2 Ask Clarifying Questions
72
+
73
+ Ask 2-4 targeted questions to fully understand the feature. Examples:
74
+
75
+ - "What specific user problem does this solve?"
76
+ - "Is this a new capability, or an enhancement to something that already exists?"
77
+ - "Are there specific constraints or requirements for how this should work?"
78
+ - "How important is this relative to the existing goals?"
79
+
80
+ ### 4.3 Check for Conflicts
81
+
82
+ Compare the feature against existing PRD content:
83
+
84
+ **Against Non-Goals:**
85
+ If the feature conflicts with a non-goal:
86
+
87
+ > "I noticed a potential conflict: the PRD lists '[non-goal]' as explicitly out of scope. This feature seems related.
88
+ >
89
+ > Should we:
90
+ > 1. **Proceed anyway** — Remove or modify that non-goal
91
+ > 2. **Scope differently** — Adjust this feature to avoid the conflict
92
+ > 3. **Reconsider** — Maybe this feature shouldn't be added right now
93
+ >
94
+ > Which would you prefer?"
95
+
96
+ **Against Constraints:**
97
+ If the feature may violate constraints:
98
+
99
+ > "This feature might be affected by the constraint: '[constraint]'. How should we handle this?"
100
+
101
+ **Against Existing Goals:**
102
+ If the feature duplicates or overlaps with existing goals:
103
+
104
+ > "This seems related to existing Goal [N]: '[goal]'. Is this an extension of that goal, or something distinct?"
105
+
106
+ Wait for user resolution before proceeding.
107
+
108
+ ## 5. Determine Placement
109
+
110
+ Analyze where the feature fits in the existing implementation structure.
111
+
112
+ ### 5.1 Existing Area Assessment
113
+
114
+ For each existing area, consider:
115
+ - Does the feature naturally extend this area's scope?
116
+ - Would adding it here keep the area cohesive?
117
+ - Are there dependency implications?
118
+
119
+ ### 5.2 Present Recommendation
120
+
121
+ **If feature fits in an existing area:**
122
+
123
+ > "Based on my analysis, this feature fits best in:
124
+ >
125
+ > **Area [N]: [Area Name]**
126
+ > - This area already covers [related scope]
127
+ > - Adding the feature here maintains cohesion
128
+ >
129
+ > I recommend adding a new task group `[N].[M]-[feature-name].md` within this area.
130
+ >
131
+ > Does this placement make sense, or would you prefer a different approach?"
132
+
133
+ **If feature requires a new area:**
134
+
135
+ > "This feature doesn't fit cleanly into existing areas. I recommend creating a new area:
136
+ >
137
+ > **Area [N]: [Proposed Area Name]**
138
+ > - Scope: [what this area would cover]
139
+ > - Relationship to existing areas: [dependencies, if any]
140
+ >
141
+ > This would be added to `docs/implementation/overview.md` and get its own directory.
142
+ >
143
+ > Does this make sense, or should we try fitting it into an existing area?"
144
+
145
+ Wait for user confirmation on placement before proceeding.
146
+
147
+ ## 6. Propose PRD Updates
148
+
149
+ Based on the feature and placement decision, draft updates to the PRD.
150
+
151
+ ### 6.1 Draft Additions
152
+
153
+ Present proposed additions to each relevant section:
154
+
155
+ > **Proposed PRD Updates:**
156
+ >
157
+ > **Goals** (adding after Goal [N]):
158
+ > - [N+1]. [New goal statement — specific and measurable]
159
+ >
160
+ > **User Stories** (adding):
161
+ > - As a [user type], I want [feature goal] so that [benefit]
162
+ >
163
+ > **Success Criteria** (adding):
164
+ > - [Measurable criterion for this feature]
165
+ >
166
+ > **Non-Goals** (changes, if any):
167
+ > - [Remove/modify if needed, with reason]
168
+ >
169
+ > **Constraints** (additions, if any):
170
+ > - [New constraint if relevant]
171
+
172
+ ### 6.2 Show Preview
173
+
174
+ > **Preview of changes to `docs/prd.md`:**
175
+ >
176
+ > [Show the specific text that will be added, with surrounding context]
177
+ >
178
+ > Does this accurately capture the feature? Would you like to adjust anything before I apply these changes?
179
+
180
+ **Do not update the PRD until the user confirms.**
181
+
182
+ ## 7. Propose Implementation Updates
183
+
184
+ ### 7.1 For New Area
185
+
186
+ If creating a new area, propose:
187
+
188
+ > **Proposed Implementation Updates:**
189
+ >
190
+ > **New entry in `docs/implementation/overview.md`:**
191
+ > ```
192
+ > [N]. **[Area Name]** — [Brief description]
193
+ > - Status: 🔵 Planned
194
+ > - See: `[N]-[kebab-name]/`
195
+ > ```
196
+ >
197
+ > **New directory:** `docs/implementation/[N]-[kebab-name]/`
198
+ >
199
+ > **New `index.md`:**
200
+ > ```markdown
201
+ > # [N]. [Area Name]
202
+ >
203
+ > [Description of what this area accomplishes]
204
+ >
205
+ > ## Goals
206
+ > - [Goal 1]
207
+ > - [Goal 2]
208
+ >
209
+ > ## Key Considerations
210
+ > - [Constraints or decisions]
211
+ > - [Dependencies on other areas]
212
+ >
213
+ > ## Task Groups
214
+ >
215
+ > _Task groups will be defined when this area is detailed. Run `/impl.create [N]-[area-name]` to add detail._
216
+ > ```
217
+ >
218
+ > Would you like me to also propose initial tasks, or just create the area structure?
219
+
220
+ ### 7.2 For Existing Area
221
+
222
+ If adding to an existing area, propose:
223
+
224
+ > **Proposed Implementation Updates:**
225
+ >
226
+ > **Update to `docs/implementation/[N]-[area]/index.md`:**
227
+ > Adding to Task Groups section:
228
+ > ```
229
+ > - **[[N].[M] [Task Group Name]](./ [N].[M]-[kebab-name].md)** — [Brief description]
230
+ > ```
231
+ >
232
+ > **New file:** `docs/implementation/[N]-[area]/[N].[M]-[feature-name].md`
233
+ >
234
+ > ```markdown
235
+ > # [N].[M] [Task Group Name]
236
+ >
237
+ > [Description of what this task group covers]
238
+ >
239
+ > ## Goals
240
+ > - [How this relates to PRD goals]
241
+ >
242
+ > ## Constraints
243
+ > - [Technical limitations or requirements]
244
+ >
245
+ > ## Dependencies
246
+ > - **Requires**: [Any prerequisite task groups]
247
+ > - **Enables**: [Any dependent task groups]
248
+ >
249
+ > ---
250
+ >
251
+ > ## [N].[M].1. [First Task Name]
252
+ >
253
+ > **Goal**: [What this task accomplishes]
254
+ >
255
+ > **Approach**: [High-level technical approach]
256
+ >
257
+ > **Acceptance Criteria**:
258
+ > - [Testable criterion]
259
+ > - [Testable criterion]
260
+ >
261
+ > **Status**: 🔵 Planned
262
+ > ```
263
+ >
264
+ > Does this structure make sense? Would you like to adjust the scope or breakdown?
265
+
266
+ ### 7.3 Get Confirmation
267
+
268
+ > **Summary of implementation changes:**
269
+ >
270
+ > Files to create/update:
271
+ > - [List each file with brief description]
272
+ >
273
+ > Ready to apply these changes?
274
+
275
+ **Do not update implementation files until the user confirms.**
276
+
277
+ ## 8. Apply Changes
278
+
279
+ Once the user confirms both PRD and implementation proposals:
280
+
281
+ 1. Update `docs/prd.md` with the approved additions
282
+ 2. Update `docs/implementation/overview.md` if adding a new area
283
+ 3. Create/update area `index.md` as needed
284
+ 4. Create new task group file(s) as proposed
285
+
286
+ ## 9. Summarize and Handoff
287
+
288
+ After applying changes:
289
+
290
+ > **Feature Added Successfully**
291
+ >
292
+ > **PRD Updates (`docs/prd.md`):**
293
+ > - Added Goal [N]: [brief description]
294
+ > - Added [X] user stories
295
+ > - Added [X] success criteria
296
+ >
297
+ > **Implementation Updates:**
298
+ > - [Created new area / Extended area [N]]
299
+ > - Created task group: `[path to task group file]`
300
+ > - Defined [X] initial tasks (all 🔵 Planned)
301
+ >
302
+ > **Next Steps:**
303
+ > - Run `/impl.create [area]` to add more detail to the tasks
304
+ > - Run `/dev-session.start` to begin implementing this feature
305
+ > - Run `/feature.add` to add another feature
306
+
307
+ ## Key Behaviors
308
+
309
+ Throughout this command, maintain these behaviors:
310
+
311
+ - **Understand before proposing** — Gather enough context to make informed recommendations
312
+ - **Check for conflicts** — Compare against non-goals, constraints, and existing scope
313
+ - **Recommend placement** — Make a clear recommendation, but accept user override
314
+ - **Show previews before changes** — Never modify files without explicit confirmation
315
+ - **Keep PRD and implementation in sync** — Features should be reflected in both
316
+ - **Right-size the scope** — Don't over-engineer; start with minimum viable structure
317
+ - **Preserve existing numbering** — Add new goals/areas at the end to avoid breaking references
318
+ - **Note dependencies** — If the feature depends on or enables other work, document it
319
+ - **Guide to next steps** — Always end with clear options for what to do next