@flydocs/cli 0.5.0-beta.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 +96 -0
- package/dist/cli.js +2666 -0
- package/package.json +32 -0
- package/template/.claude/CLAUDE.md +90 -0
- package/template/.claude/agents/README.md +19 -0
- package/template/.claude/agents/implementation-agent.md +29 -0
- package/template/.claude/agents/pm-agent.md +29 -0
- package/template/.claude/agents/research-agent.md +25 -0
- package/template/.claude/agents/review-agent.md +29 -0
- package/template/.claude/commands/activate.md +10 -0
- package/template/.claude/commands/attach.md +9 -0
- package/template/.claude/commands/block.md +10 -0
- package/template/.claude/commands/capture.md +10 -0
- package/template/.claude/commands/close.md +10 -0
- package/template/.claude/commands/flydocs-setup.md +598 -0
- package/template/.claude/commands/flydocs-update.md +27 -0
- package/template/.claude/commands/implement.md +10 -0
- package/template/.claude/commands/new-project.md +11 -0
- package/template/.claude/commands/project-update.md +10 -0
- package/template/.claude/commands/refine.md +10 -0
- package/template/.claude/commands/review.md +10 -0
- package/template/.claude/commands/start-session.md +10 -0
- package/template/.claude/commands/status.md +10 -0
- package/template/.claude/commands/validate.md +10 -0
- package/template/.claude/commands/wrap-session.md +10 -0
- package/template/.claude/settings.json +49 -0
- package/template/.claude/skills/README.md +293 -0
- package/template/.claude/skills/flydocs-cloud/SKILL.md +96 -0
- package/template/.claude/skills/flydocs-cloud/cursor-rule.mdc +50 -0
- package/template/.claude/skills/flydocs-cloud/scripts/assign.py +38 -0
- package/template/.claude/skills/flydocs-cloud/scripts/assign_cycle.py +44 -0
- package/template/.claude/skills/flydocs-cloud/scripts/assign_milestone.py +44 -0
- package/template/.claude/skills/flydocs-cloud/scripts/comment.py +39 -0
- package/template/.claude/skills/flydocs-cloud/scripts/create_issue.py +100 -0
- package/template/.claude/skills/flydocs-cloud/scripts/create_milestone.py +46 -0
- package/template/.claude/skills/flydocs-cloud/scripts/create_project.py +40 -0
- package/template/.claude/skills/flydocs-cloud/scripts/estimate.py +38 -0
- package/template/.claude/skills/flydocs-cloud/scripts/flydocs_api.py +277 -0
- package/template/.claude/skills/flydocs-cloud/scripts/get_issue.py +77 -0
- package/template/.claude/skills/flydocs-cloud/scripts/link.py +47 -0
- package/template/.claude/skills/flydocs-cloud/scripts/list_cycles.py +35 -0
- package/template/.claude/skills/flydocs-cloud/scripts/list_issues.py +105 -0
- package/template/.claude/skills/flydocs-cloud/scripts/list_milestones.py +40 -0
- package/template/.claude/skills/flydocs-cloud/scripts/list_projects.py +45 -0
- package/template/.claude/skills/flydocs-cloud/scripts/priority.py +38 -0
- package/template/.claude/skills/flydocs-cloud/scripts/project_update.py +59 -0
- package/template/.claude/skills/flydocs-cloud/scripts/transition.py +67 -0
- package/template/.claude/skills/flydocs-cloud/scripts/update_description.py +47 -0
- package/template/.claude/skills/flydocs-cloud/scripts/update_issue.py +111 -0
- package/template/.claude/skills/flydocs-context-graph/SKILL.md +87 -0
- package/template/.claude/skills/flydocs-context-graph/schema.md +78 -0
- package/template/.claude/skills/flydocs-context-graph/scripts/graph_build.py +299 -0
- package/template/.claude/skills/flydocs-context-graph/scripts/graph_context.py +338 -0
- package/template/.claude/skills/flydocs-context-graph/scripts/graph_query.py +191 -0
- package/template/.claude/skills/flydocs-context-graph/scripts/graph_session.py +161 -0
- package/template/.claude/skills/flydocs-context-graph/scripts/graph_update.py +194 -0
- package/template/.claude/skills/flydocs-context-graph/scripts/graph_utils.py +118 -0
- package/template/.claude/skills/flydocs-estimates/SKILL.md +384 -0
- package/template/.claude/skills/flydocs-estimates/references/provider-costs.md +152 -0
- package/template/.claude/skills/flydocs-figma/SKILL.md +377 -0
- package/template/.claude/skills/flydocs-figma/references/PROMPTING.md +108 -0
- package/template/.claude/skills/flydocs-figma/references/TROUBLESHOOTING.md +112 -0
- package/template/.claude/skills/flydocs-local/SKILL.md +103 -0
- package/template/.claude/skills/flydocs-local/cursor-rule.mdc +43 -0
- package/template/.claude/skills/flydocs-local/scripts/assign.py +20 -0
- package/template/.claude/skills/flydocs-local/scripts/comment.py +27 -0
- package/template/.claude/skills/flydocs-local/scripts/create_issue.py +44 -0
- package/template/.claude/skills/flydocs-local/scripts/estimate.py +37 -0
- package/template/.claude/skills/flydocs-local/scripts/flydocs_api.py +272 -0
- package/template/.claude/skills/flydocs-local/scripts/get_issue.py +20 -0
- package/template/.claude/skills/flydocs-local/scripts/link.py +41 -0
- package/template/.claude/skills/flydocs-local/scripts/list_issues.py +34 -0
- package/template/.claude/skills/flydocs-local/scripts/priority.py +37 -0
- package/template/.claude/skills/flydocs-local/scripts/project_update.py +67 -0
- package/template/.claude/skills/flydocs-local/scripts/status_summary.py +16 -0
- package/template/.claude/skills/flydocs-local/scripts/transition.py +24 -0
- package/template/.claude/skills/flydocs-local/scripts/update_description.py +35 -0
- package/template/.claude/skills/flydocs-local/scripts/update_issue.py +84 -0
- package/template/.claude/skills/flydocs-workflow/SKILL.md +85 -0
- package/template/.claude/skills/flydocs-workflow/cursor-rule.mdc +53 -0
- package/template/.claude/skills/flydocs-workflow/reference/comment-templates.md +131 -0
- package/template/.claude/skills/flydocs-workflow/reference/golden-rules.md +76 -0
- package/template/.claude/skills/flydocs-workflow/reference/priority-estimates.md +28 -0
- package/template/.claude/skills/flydocs-workflow/reference/status-workflow.md +50 -0
- package/template/.claude/skills/flydocs-workflow/session.md +128 -0
- package/template/.claude/skills/flydocs-workflow/stages/activate.md +46 -0
- package/template/.claude/skills/flydocs-workflow/stages/capture.md +50 -0
- package/template/.claude/skills/flydocs-workflow/stages/close.md +32 -0
- package/template/.claude/skills/flydocs-workflow/stages/implement.md +124 -0
- package/template/.claude/skills/flydocs-workflow/stages/refine.md +51 -0
- package/template/.claude/skills/flydocs-workflow/stages/review.md +86 -0
- package/template/.claude/skills/flydocs-workflow/stages/validate.md +90 -0
- package/template/.claude/skills/flydocs-workflow/templates/bug.md +95 -0
- package/template/.claude/skills/flydocs-workflow/templates/chore.md +75 -0
- package/template/.claude/skills/flydocs-workflow/templates/feature.md +93 -0
- package/template/.claude/skills/flydocs-workflow/templates/idea.md +84 -0
- package/template/.cursor/agents/implementation-agent.md +28 -0
- package/template/.cursor/agents/pm-agent.md +27 -0
- package/template/.cursor/agents/research-agent.md +23 -0
- package/template/.cursor/agents/review-agent.md +27 -0
- package/template/.cursor/hooks.json +29 -0
- package/template/.cursor/mcp.json +16 -0
- package/template/.env.example +44 -0
- package/template/.flydocs/config.json +104 -0
- package/template/.flydocs/hooks/auto-approve.py +71 -0
- package/template/.flydocs/hooks/post-edit.py +72 -0
- package/template/.flydocs/hooks/prefer-scripts.py +89 -0
- package/template/.flydocs/hooks/prompt-submit.py +277 -0
- package/template/.flydocs/scripts/generate_manifest.py +287 -0
- package/template/.flydocs/scripts/skill_manager.py +541 -0
- package/template/.flydocs/templates/README.md +46 -0
- package/template/.flydocs/templates/bug.md +166 -0
- package/template/.flydocs/templates/chore.md +110 -0
- package/template/.flydocs/templates/design-system/README.md +27 -0
- package/template/.flydocs/templates/design-system/component-patterns.md +92 -0
- package/template/.flydocs/templates/design-system/token-mapping.md +168 -0
- package/template/.flydocs/templates/feature.md +173 -0
- package/template/.flydocs/templates/idea.md +122 -0
- package/template/.flydocs/templates/instructions.md +228 -0
- package/template/.flydocs/templates/quick-capture.md +35 -0
- package/template/.flydocs/templates/scripts/check-design-system.template.mjs +179 -0
- package/template/.flydocs/version +1 -0
- package/template/AGENTS.md +95 -0
- package/template/CHANGELOG.md +271 -0
- package/template/flydocs/README.md +186 -0
- package/template/flydocs/context/project.md +51 -0
- package/template/flydocs/design-system/README.md +126 -0
- package/template/flydocs/design-system/component-patterns.md +173 -0
- package/template/flydocs/design-system/token-mapping.md +114 -0
- package/template/flydocs/knowledge/INDEX.md +100 -0
- package/template/flydocs/knowledge/README.md +62 -0
- package/template/flydocs/knowledge/product/personas.md +79 -0
- package/template/flydocs/knowledge/product/user-flows.md +88 -0
- package/template/manifest.json +221 -0
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# Activate
|
|
2
|
+
|
|
3
|
+
## Intent
|
|
4
|
+
|
|
5
|
+
Assign work to a person and move the issue to In Progress.
|
|
6
|
+
|
|
7
|
+
## Prerequisites
|
|
8
|
+
|
|
9
|
+
- Issue exists in Ready or Backlog state with a complete spec
|
|
10
|
+
- Issue is not blocked
|
|
11
|
+
|
|
12
|
+
## Steps
|
|
13
|
+
|
|
14
|
+
### Recommendation Mode (no issue specified)
|
|
15
|
+
|
|
16
|
+
When user asks "what should I work on?":
|
|
17
|
+
|
|
18
|
+
1. **Query available issues** — `list_issues.py` for Ready and Backlog states.
|
|
19
|
+
2. **Filter** — Exclude blocked issues and issues assigned to others.
|
|
20
|
+
3. **Rank** — Priority (highest first) → unblocked → smaller estimate.
|
|
21
|
+
4. **Present recommendation** — Show top candidates with reasoning.
|
|
22
|
+
5. **Wait for selection** — Do not activate until user confirms.
|
|
23
|
+
|
|
24
|
+
### Activation (specific issue)
|
|
25
|
+
|
|
26
|
+
1. **Read full issue** — Load description and acceptance criteria.
|
|
27
|
+
2. **Determine assignee** — MANDATORY. Ask "Who should this be assigned to?" if unclear. This is a hard gate.
|
|
28
|
+
3. **Assign** — `assign.py` with user identifier. If assignment fails, STOP. Do not continue.
|
|
29
|
+
4. **Set metadata** — Priority and estimate if not already set.
|
|
30
|
+
5. **Transition** — `transition.py` to Implementing with Activate comment from `reference/comment-templates.md`.
|
|
31
|
+
6. **Verify** — Confirm state = In Progress and assignee set.
|
|
32
|
+
|
|
33
|
+
**Sequence matters:** Assign → metadata → transition. Never transition without an assignee.
|
|
34
|
+
|
|
35
|
+
## Gates
|
|
36
|
+
|
|
37
|
+
- Assignee set (hard gate — no exceptions)
|
|
38
|
+
- State = In Progress
|
|
39
|
+
|
|
40
|
+
## Outputs
|
|
41
|
+
|
|
42
|
+
- Assigned issue in Implementing state with activation comment
|
|
43
|
+
|
|
44
|
+
## Triggers
|
|
45
|
+
|
|
46
|
+
- "activate" / "start work on" / "pick up" / "what should I work on?"
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# Capture
|
|
2
|
+
|
|
3
|
+
## Intent
|
|
4
|
+
|
|
5
|
+
Create a new issue from user input — either a full spec or a quick idea tagged for later refinement.
|
|
6
|
+
|
|
7
|
+
## Prerequisites
|
|
8
|
+
|
|
9
|
+
- Active project configured in `.flydocs/config.json`
|
|
10
|
+
|
|
11
|
+
## Steps
|
|
12
|
+
|
|
13
|
+
### Full Capture
|
|
14
|
+
|
|
15
|
+
When the user has enough context to describe the issue:
|
|
16
|
+
|
|
17
|
+
1. **Determine type** — feature, bug, chore, or idea. Ask if unclear.
|
|
18
|
+
2. **Select project** — Single active project: use it. Multiple: ask user. None: error.
|
|
19
|
+
3. **Fill template** — Read the appropriate template from `templates/`. Extract from user input:
|
|
20
|
+
- **What** — Context or problem description
|
|
21
|
+
- **Why** — User story or business value
|
|
22
|
+
- **How** — Technical notes or approach (if known)
|
|
23
|
+
- **Done when** — Acceptance criteria as checkboxes
|
|
24
|
+
4. **Create issue** — `create_issue.py` with title, type, description, priority, and estimate (if known).
|
|
25
|
+
5. **Add comment** — Use the Capture template from `reference/comment-templates.md`.
|
|
26
|
+
6. **Verify** — Confirm issue identifier returned.
|
|
27
|
+
|
|
28
|
+
### Quick Capture
|
|
29
|
+
|
|
30
|
+
When logging an idea or observation during flow — flesh out later:
|
|
31
|
+
|
|
32
|
+
1. **Determine type** — Default to `idea` if unclear.
|
|
33
|
+
2. **Create issue** — `create_issue.py --triage` with minimal title and brief context.
|
|
34
|
+
Issue receives both the category label and the triage label.
|
|
35
|
+
3. **Add comment** — "**Captured** — Quick capture, needs refinement."
|
|
36
|
+
4. Issue sits in Backlog with triage tag. The Refine stage picks it up later.
|
|
37
|
+
|
|
38
|
+
## Gates
|
|
39
|
+
|
|
40
|
+
- Issue exists with a valid identifier
|
|
41
|
+
- Capture comment posted
|
|
42
|
+
|
|
43
|
+
## Outputs
|
|
44
|
+
|
|
45
|
+
- New issue in Backlog (full or triage-tagged)
|
|
46
|
+
|
|
47
|
+
## Triggers
|
|
48
|
+
|
|
49
|
+
- "capture that" / "add to backlog" / "new issue" / "log this"
|
|
50
|
+
- "quick capture" / "jot this down" / "idea:"
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# Close
|
|
2
|
+
|
|
3
|
+
## Intent
|
|
4
|
+
|
|
5
|
+
Archive verified and completed work.
|
|
6
|
+
|
|
7
|
+
## Prerequisites
|
|
8
|
+
|
|
9
|
+
- QE Approved comment exists on the issue
|
|
10
|
+
|
|
11
|
+
## Steps
|
|
12
|
+
|
|
13
|
+
1. **Verify QE approval** — Check issue comments for a "QE Approved" comment. If not found, do not close — direct to Validate stage first.
|
|
14
|
+
2. **Determine terminal state:**
|
|
15
|
+
- **Done** — Work completed and verified (normal path)
|
|
16
|
+
- **Archived** — Deferring to a later date (not cancelled, may return)
|
|
17
|
+
- **Canceled** — Not pursuing (won't be done)
|
|
18
|
+
3. **Transition** — `transition.py` with the appropriate Close comment from `reference/comment-templates.md`.
|
|
19
|
+
4. **Verify** — Confirm terminal state reached.
|
|
20
|
+
|
|
21
|
+
## Gates
|
|
22
|
+
|
|
23
|
+
- QE approval verified
|
|
24
|
+
- Terminal state reached
|
|
25
|
+
|
|
26
|
+
## Outputs
|
|
27
|
+
|
|
28
|
+
- Issue in terminal state (Done, Archived, or Canceled)
|
|
29
|
+
|
|
30
|
+
## Triggers
|
|
31
|
+
|
|
32
|
+
- "close" / "done" / "archive" / "cancel"
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
# Implement
|
|
2
|
+
|
|
3
|
+
## Intent
|
|
4
|
+
|
|
5
|
+
Build, test, simplify, and hand off to code review.
|
|
6
|
+
|
|
7
|
+
## Prerequisites
|
|
8
|
+
|
|
9
|
+
- Issue assigned and in Implementing state
|
|
10
|
+
- Acceptance criteria defined in issue description
|
|
11
|
+
|
|
12
|
+
## Steps
|
|
13
|
+
|
|
14
|
+
### 1. Load Context
|
|
15
|
+
|
|
16
|
+
- Issue description (full acceptance criteria)
|
|
17
|
+
- `project.md` and `preferences.md` for project standards
|
|
18
|
+
- Installed community skills relevant to the work (check `.claude/skills/` for available patterns)
|
|
19
|
+
|
|
20
|
+
### 2. Show Implementation Checklist
|
|
21
|
+
|
|
22
|
+
Present to the user:
|
|
23
|
+
- Issue ID and title
|
|
24
|
+
- All acceptance criteria
|
|
25
|
+
- Estimate
|
|
26
|
+
|
|
27
|
+
### 3. Implement Incrementally
|
|
28
|
+
|
|
29
|
+
For each acceptance criterion:
|
|
30
|
+
|
|
31
|
+
1. Write the code
|
|
32
|
+
2. Write tests (if applicable for this criterion)
|
|
33
|
+
3. Update the checkbox in the issue description (see Checkbox Protocol below)
|
|
34
|
+
4. Add a progress comment if significant milestone reached
|
|
35
|
+
|
|
36
|
+
### 4. Document Decisions
|
|
37
|
+
|
|
38
|
+
When making non-obvious technical choices, add an issue comment:
|
|
39
|
+
|
|
40
|
+
```
|
|
41
|
+
**Decision: [Title]**
|
|
42
|
+
Context: [Why this decision was needed]
|
|
43
|
+
Decision: [What was decided]
|
|
44
|
+
Rationale: [Why this choice over alternatives]
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
For significant architectural decisions, also create a record in `knowledge/decisions/`.
|
|
48
|
+
|
|
49
|
+
### 5. TODO to Issue
|
|
50
|
+
|
|
51
|
+
When adding a TODO comment in code:
|
|
52
|
+
|
|
53
|
+
1. Write the initial comment: `// TODO: Description`
|
|
54
|
+
2. Create a corresponding issue via `create_issue.py` with type `chore`
|
|
55
|
+
3. Update the comment with the issue ID: `// TODO: Description (ENG-XXX)`
|
|
56
|
+
|
|
57
|
+
Every TODO must have a tracked issue. No orphaned TODOs.
|
|
58
|
+
|
|
59
|
+
### 6. Simplify
|
|
60
|
+
|
|
61
|
+
After implementation is functionally complete, review modified files for:
|
|
62
|
+
|
|
63
|
+
- Unnecessary complexity or abstraction
|
|
64
|
+
- Redundant code
|
|
65
|
+
- Unclear naming
|
|
66
|
+
- Inconsistency with project patterns
|
|
67
|
+
|
|
68
|
+
Apply standards from installed community skills and `preferences.md`. Preserve all functionality.
|
|
69
|
+
|
|
70
|
+
### 7. Self-Review
|
|
71
|
+
|
|
72
|
+
Before handing off:
|
|
73
|
+
|
|
74
|
+
- [ ] All acceptance criteria checked in issue description
|
|
75
|
+
- [ ] Tests written and passing
|
|
76
|
+
- [ ] Code follows project standards
|
|
77
|
+
- [ ] No obvious security issues
|
|
78
|
+
- [ ] No orphaned TODOs
|
|
79
|
+
|
|
80
|
+
### 8. Hand Off to Review
|
|
81
|
+
|
|
82
|
+
Transition to Review via `transition.py` with the "Ready for Review" comment from `reference/comment-templates.md`. Include:
|
|
83
|
+
|
|
84
|
+
- What changed (brief summary)
|
|
85
|
+
- File count
|
|
86
|
+
- How it was tested
|
|
87
|
+
- Criteria completion count
|
|
88
|
+
|
|
89
|
+
## Checkbox Protocol
|
|
90
|
+
|
|
91
|
+
Checkboxes live in the issue description. Never in comments.
|
|
92
|
+
|
|
93
|
+
1. Read current description via `get_issue.py`
|
|
94
|
+
2. Find `- [ ] Criterion text`
|
|
95
|
+
3. Change to `- [x] Criterion text`
|
|
96
|
+
4. Save entire updated description via `update_description.py`
|
|
97
|
+
|
|
98
|
+
**Never** put completion checkmarks in comments. **Never** create new checkboxes in comments.
|
|
99
|
+
|
|
100
|
+
## Blocking
|
|
101
|
+
|
|
102
|
+
If blocked during implementation:
|
|
103
|
+
|
|
104
|
+
1. Document what is blocking and what is needed
|
|
105
|
+
2. Transition via `transition.py` to Blocked with comment from `reference/comment-templates.md`
|
|
106
|
+
3. If blocked by another issue, create a dependency relationship
|
|
107
|
+
|
|
108
|
+
To unblock: transition back to Implementing with an Unblocked comment.
|
|
109
|
+
|
|
110
|
+
## Gates
|
|
111
|
+
|
|
112
|
+
- All acceptance criteria checked in description
|
|
113
|
+
- Tests passing
|
|
114
|
+
- Implementation summary comment posted
|
|
115
|
+
|
|
116
|
+
## Outputs
|
|
117
|
+
|
|
118
|
+
- Issue in Review state with summary comment
|
|
119
|
+
- Code changes ready for review
|
|
120
|
+
|
|
121
|
+
## Triggers
|
|
122
|
+
|
|
123
|
+
- "implement" / "build" / "code this" / "let's work on"
|
|
124
|
+
- "I'm blocked" / "can't proceed" (blocking path)
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# Refine
|
|
2
|
+
|
|
3
|
+
## Intent
|
|
4
|
+
|
|
5
|
+
Triage raw captures and refine issue specs to a "ready" state with complete acceptance criteria.
|
|
6
|
+
|
|
7
|
+
## Prerequisites
|
|
8
|
+
|
|
9
|
+
- Issue exists in Backlog
|
|
10
|
+
|
|
11
|
+
## Steps
|
|
12
|
+
|
|
13
|
+
### Triage Path (issue has triage tag)
|
|
14
|
+
|
|
15
|
+
For quick captures that need classification and structure:
|
|
16
|
+
|
|
17
|
+
1. **Read issue** — Load current content.
|
|
18
|
+
2. **Classify type** — Determine category (feature/bug/chore/idea). Ask if unclear.
|
|
19
|
+
3. **Apply template** — Read appropriate template from `templates/` and restructure the issue content to match.
|
|
20
|
+
4. **Set priority** — P1-P4 based on urgency and impact.
|
|
21
|
+
5. **Update description** — `update_description.py` with templated content.
|
|
22
|
+
6. **Add comment** — Use Triage template from `reference/comment-templates.md`.
|
|
23
|
+
|
|
24
|
+
### Refinement Path (issue already templated)
|
|
25
|
+
|
|
26
|
+
For backlog items that need fleshing out before activation:
|
|
27
|
+
|
|
28
|
+
1. **Load context** — Issue content, `project.md`, `knowledge/INDEX.md`.
|
|
29
|
+
2. **Assess completeness** — Are acceptance criteria specific and testable? Is context clear?
|
|
30
|
+
3. **Identify gaps** — Ask clarifying questions if needed. Don't guess.
|
|
31
|
+
4. **Refine acceptance criteria** — Make each criterion specific, measurable, and testable as a checkbox.
|
|
32
|
+
5. **Add technical notes** — Implementation guidance, dependencies, affected areas.
|
|
33
|
+
6. **Set estimate and priority** — If not already set. See `reference/priority-estimates.md`.
|
|
34
|
+
7. **Check dependencies** — Blocked by other issues? Related work?
|
|
35
|
+
8. **Update description** — `update_description.py` with refined content.
|
|
36
|
+
9. **Transition to Ready** — `transition.py` with Refine comment from `reference/comment-templates.md`.
|
|
37
|
+
|
|
38
|
+
## Gates
|
|
39
|
+
|
|
40
|
+
- Acceptance criteria defined (specific, testable, as checkboxes)
|
|
41
|
+
- Estimate set (1-5)
|
|
42
|
+
- Priority set (1-4)
|
|
43
|
+
|
|
44
|
+
## Outputs
|
|
45
|
+
|
|
46
|
+
- Issue in Ready state with complete spec
|
|
47
|
+
- Or triaged issue with template applied, ready for further refinement
|
|
48
|
+
|
|
49
|
+
## Triggers
|
|
50
|
+
|
|
51
|
+
- "refine" / "triage" / "flesh out this issue"
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
# Review
|
|
2
|
+
|
|
3
|
+
## Intent
|
|
4
|
+
|
|
5
|
+
Validate code quality, standards compliance, and acceptance criteria completion.
|
|
6
|
+
|
|
7
|
+
## Prerequisites
|
|
8
|
+
|
|
9
|
+
- Issue in Review state
|
|
10
|
+
- Implementation summary comment exists on the issue
|
|
11
|
+
|
|
12
|
+
## Steps
|
|
13
|
+
|
|
14
|
+
### 1. Load Context
|
|
15
|
+
|
|
16
|
+
- Issue description (acceptance criteria)
|
|
17
|
+
- Implementation summary comment (what was built)
|
|
18
|
+
- Installed community skills relevant to the code (check `.claude/skills/` for available patterns)
|
|
19
|
+
- Changed files (from git diff or implementation notes)
|
|
20
|
+
|
|
21
|
+
### 2. Verify Acceptance Criteria
|
|
22
|
+
|
|
23
|
+
**Mandatory.** Check each criterion in the issue description:
|
|
24
|
+
|
|
25
|
+
- Is it implemented?
|
|
26
|
+
- Is the checkbox marked `[x]`?
|
|
27
|
+
|
|
28
|
+
If ANY criterion is unchecked or unimplemented, review fails. Document which criteria are incomplete.
|
|
29
|
+
|
|
30
|
+
### 3. Code Quality Analysis
|
|
31
|
+
|
|
32
|
+
Check against project standards and installed community skills:
|
|
33
|
+
|
|
34
|
+
**Structure** — Files in correct locations, naming conventions followed, appropriate separation of concerns.
|
|
35
|
+
|
|
36
|
+
**Patterns** — Consistent with existing codebase and project patterns. No unnecessary abstractions.
|
|
37
|
+
|
|
38
|
+
**Error handling** — Errors handled gracefully, user-facing errors are clear, no silent failures.
|
|
39
|
+
|
|
40
|
+
**Security** — No hardcoded secrets, input validation where needed, no obvious vulnerabilities.
|
|
41
|
+
|
|
42
|
+
**Performance** — No obvious performance issues, appropriate data fetching, no unnecessary re-renders.
|
|
43
|
+
|
|
44
|
+
### 4. Test Coverage
|
|
45
|
+
|
|
46
|
+
- Tests exist for new functionality
|
|
47
|
+
- Tests are meaningful (not just coverage)
|
|
48
|
+
- Edge cases considered
|
|
49
|
+
|
|
50
|
+
### 5. Decision
|
|
51
|
+
|
|
52
|
+
**If approved:**
|
|
53
|
+
|
|
54
|
+
1. Transition to Testing via `transition.py` with "Code Review Passed" comment from `reference/comment-templates.md`.
|
|
55
|
+
|
|
56
|
+
**If changes needed:**
|
|
57
|
+
|
|
58
|
+
1. Document specific issues with file/location details.
|
|
59
|
+
2. Transition to Implementing via `transition.py` with "Code Review: Changes Needed" comment listing each issue.
|
|
60
|
+
|
|
61
|
+
## Review Boundaries
|
|
62
|
+
|
|
63
|
+
The review agent:
|
|
64
|
+
- Analyzes code quality and documents findings
|
|
65
|
+
- Validates against standards and criteria
|
|
66
|
+
- Transitions issue state
|
|
67
|
+
|
|
68
|
+
The review agent does NOT:
|
|
69
|
+
- Edit or write code
|
|
70
|
+
- Fix issues directly
|
|
71
|
+
- Approve incomplete work
|
|
72
|
+
- Skip criteria validation
|
|
73
|
+
|
|
74
|
+
## Gates
|
|
75
|
+
|
|
76
|
+
- All acceptance criteria verified
|
|
77
|
+
- Code quality analysis complete
|
|
78
|
+
|
|
79
|
+
## Outputs
|
|
80
|
+
|
|
81
|
+
- Issue in Testing state (pass) with review comment
|
|
82
|
+
- Or issue in Implementing state (fail) with issues listed
|
|
83
|
+
|
|
84
|
+
## Triggers
|
|
85
|
+
|
|
86
|
+
- "review" / "check the code" / "ready for review"
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
# Validate
|
|
2
|
+
|
|
3
|
+
## Intent
|
|
4
|
+
|
|
5
|
+
Guide the user through acceptance testing and document the results.
|
|
6
|
+
|
|
7
|
+
## Prerequisites
|
|
8
|
+
|
|
9
|
+
- Issue in Testing/QA state
|
|
10
|
+
- Code review passed
|
|
11
|
+
|
|
12
|
+
## Steps
|
|
13
|
+
|
|
14
|
+
### 1. Load Issue
|
|
15
|
+
|
|
16
|
+
Read issue description and acceptance criteria.
|
|
17
|
+
|
|
18
|
+
### 2. Present Testing Session
|
|
19
|
+
|
|
20
|
+
Show each criterion with testing guidance:
|
|
21
|
+
|
|
22
|
+
```
|
|
23
|
+
## QA Testing: [ISSUE-ID]
|
|
24
|
+
Issue: [Title]
|
|
25
|
+
|
|
26
|
+
### Acceptance Criteria to Verify:
|
|
27
|
+
1. [ ] [Criterion 1]
|
|
28
|
+
→ How to test: [guidance]
|
|
29
|
+
2. [ ] [Criterion 2]
|
|
30
|
+
→ How to test: [guidance]
|
|
31
|
+
|
|
32
|
+
Please test each criterion and let me know:
|
|
33
|
+
- "looks good" / "passes" for criteria that work
|
|
34
|
+
- Describe any issues you find
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### 3. Wait for User Feedback
|
|
38
|
+
|
|
39
|
+
### 4. Process Results
|
|
40
|
+
|
|
41
|
+
**On approval** — Recognition phrases: "looks good", "approve", "ship it", "all good", "works for me", "approved", "QE passed"
|
|
42
|
+
|
|
43
|
+
1. Confirm with user: "Confirming QA approval for [ISSUE-ID]?"
|
|
44
|
+
2. Add "QE Approved" comment from `reference/comment-templates.md`
|
|
45
|
+
3. Respond: issue is ready for PM to close via `/close`
|
|
46
|
+
|
|
47
|
+
**On issues found:**
|
|
48
|
+
|
|
49
|
+
1. Document issues clearly. Ask clarifying questions if needed.
|
|
50
|
+
2. Transition to Implementing via `transition.py` with "QE Issues Found" comment listing each issue.
|
|
51
|
+
|
|
52
|
+
**On partial issues:**
|
|
53
|
+
|
|
54
|
+
1. Clarify what passed vs what failed.
|
|
55
|
+
2. Add "QE Partial" comment documenting both.
|
|
56
|
+
3. Transition to Implementing.
|
|
57
|
+
|
|
58
|
+
### 5. Re-Testing (issue returns to QA)
|
|
59
|
+
|
|
60
|
+
1. Note this is a re-test.
|
|
61
|
+
2. Show previous issues from the "QE Issues Found" comment.
|
|
62
|
+
3. Focus re-test on the fixed items.
|
|
63
|
+
4. Continue with normal approval/issues flow.
|
|
64
|
+
|
|
65
|
+
## QE Boundaries
|
|
66
|
+
|
|
67
|
+
The QE agent:
|
|
68
|
+
- Guides user through testing
|
|
69
|
+
- Documents approval or issues
|
|
70
|
+
- Transitions back to Implementing if issues found
|
|
71
|
+
|
|
72
|
+
The QE agent NEVER:
|
|
73
|
+
- Moves issues to Done or closes them
|
|
74
|
+
- Skips documenting results
|
|
75
|
+
- Approves without user confirmation
|
|
76
|
+
|
|
77
|
+
Closing is the PM agent's responsibility via the Close stage.
|
|
78
|
+
|
|
79
|
+
## Gates
|
|
80
|
+
|
|
81
|
+
- User explicitly approves, or issues are documented and returned to Implementing
|
|
82
|
+
|
|
83
|
+
## Outputs
|
|
84
|
+
|
|
85
|
+
- QE Approved comment (pass) — ready for Close stage
|
|
86
|
+
- Or issue back in Implementing (fail) with issues documented
|
|
87
|
+
|
|
88
|
+
## Triggers
|
|
89
|
+
|
|
90
|
+
- "test this" / "QE test" / "validate"
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
## Context
|
|
2
|
+
|
|
3
|
+
**When Discovered:** [Date or event when bug was found]
|
|
4
|
+
**Discovered By:** [User, developer, automated test, etc.]
|
|
5
|
+
**Impact:** [How this affects users - be specific about scope]
|
|
6
|
+
**Frequency:** [Always | Sometimes | Rarely | Under specific conditions]
|
|
7
|
+
|
|
8
|
+
[Additional context about the bug]
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## Bug Description
|
|
13
|
+
|
|
14
|
+
### Expected Behavior
|
|
15
|
+
[Describe what SHOULD happen - the correct behavior]
|
|
16
|
+
|
|
17
|
+
### Actual Behavior
|
|
18
|
+
[Describe what ACTUALLY happens - the broken behavior]
|
|
19
|
+
|
|
20
|
+
### Steps to Reproduce
|
|
21
|
+
1. [First action - be specific]
|
|
22
|
+
2. [Second action - include any data/conditions needed]
|
|
23
|
+
3. [Third action]
|
|
24
|
+
4. [Observe the bug]
|
|
25
|
+
|
|
26
|
+
### Environment
|
|
27
|
+
- **Browser/Platform:** [Chrome, Safari, Mobile, etc.]
|
|
28
|
+
- **OS:** [macOS, Windows, iOS, Android, etc.]
|
|
29
|
+
- **User Role:** [Which user type experiences this]
|
|
30
|
+
- **Data Conditions:** [Specific data state that triggers bug]
|
|
31
|
+
|
|
32
|
+
### Screenshots/Evidence
|
|
33
|
+
<!-- Add as attachments -->
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## Acceptance Criteria
|
|
38
|
+
|
|
39
|
+
### Fix Verification
|
|
40
|
+
- [ ] Bug no longer reproducible using original steps
|
|
41
|
+
- [ ] Expected behavior now works correctly
|
|
42
|
+
- [ ] Fix doesn't break related functionality
|
|
43
|
+
- [ ] No new error messages or console errors
|
|
44
|
+
|
|
45
|
+
### Tests
|
|
46
|
+
- [ ] Regression test added to prevent recurrence
|
|
47
|
+
- [ ] Related edge cases tested
|
|
48
|
+
- [ ] All tests passing
|
|
49
|
+
|
|
50
|
+
### Documentation
|
|
51
|
+
- [ ] Root cause documented (if significant pattern)
|
|
52
|
+
- [ ] Prevention notes added to knowledge base (if applicable)
|
|
53
|
+
- [ ] N/A - No significant documentation needed
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## Technical Notes
|
|
58
|
+
|
|
59
|
+
### Root Cause Analysis
|
|
60
|
+
**Hypothesis:** [What you think is causing the bug]
|
|
61
|
+
|
|
62
|
+
**Investigation Findings:**
|
|
63
|
+
- [Finding 1 from debugging]
|
|
64
|
+
- [Finding 2 from debugging]
|
|
65
|
+
|
|
66
|
+
**Confirmed Cause:** [What's actually wrong - file, function, logic error]
|
|
67
|
+
|
|
68
|
+
### Fix Approach
|
|
69
|
+
[Describe the fix strategy - what needs to change]
|
|
70
|
+
|
|
71
|
+
**Files to Modify:**
|
|
72
|
+
- `path/to/file.tsx` - [What needs to change]
|
|
73
|
+
|
|
74
|
+
**Risk Assessment:**
|
|
75
|
+
- **Regression Risk:** Low | Medium | High
|
|
76
|
+
- **Testing Required:** [What needs to be tested]
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
## Dependencies
|
|
81
|
+
|
|
82
|
+
**Related Systems:**
|
|
83
|
+
- [System or feature where bug occurs]
|
|
84
|
+
|
|
85
|
+
**Blocks:**
|
|
86
|
+
- [Work that can't proceed until bug is fixed]
|
|
87
|
+
- OR: Nothing blocked
|
|
88
|
+
|
|
89
|
+
**Related Bugs:**
|
|
90
|
+
- [Link to related bug if applicable]
|
|
91
|
+
- OR: No related issues
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
_Reported: YYYY-MM-DD_
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
## Context
|
|
2
|
+
|
|
3
|
+
**Why This Matters:**
|
|
4
|
+
[Explanation of the value - cleaner code, better UX, faster performance, etc.]
|
|
5
|
+
|
|
6
|
+
**Scope:**
|
|
7
|
+
[What areas/pages/features does this touch? Be specific enough to stay focused.]
|
|
8
|
+
|
|
9
|
+
**Type:** Ongoing | One-time
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## Task List
|
|
14
|
+
|
|
15
|
+
### Initial Tasks
|
|
16
|
+
- [ ] [Task 1 - be specific]
|
|
17
|
+
- [ ] [Task 2 - be specific]
|
|
18
|
+
- [ ] [Task 3 - be specific]
|
|
19
|
+
|
|
20
|
+
### Added During Work
|
|
21
|
+
<!-- Add new tasks discovered while working -->
|
|
22
|
+
|
|
23
|
+
### Out of Scope
|
|
24
|
+
<!-- Tasks that don't fit - might become new issues -->
|
|
25
|
+
- [Task that's too big or different focus]
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## Acceptance Criteria
|
|
30
|
+
|
|
31
|
+
### Completion
|
|
32
|
+
- [ ] All initial tasks completed (or moved to out of scope)
|
|
33
|
+
- [ ] Code quality acceptable
|
|
34
|
+
- [ ] No regressions introduced
|
|
35
|
+
|
|
36
|
+
### Tests
|
|
37
|
+
- [ ] Tests updated if behavior changed
|
|
38
|
+
- [ ] All tests passing
|
|
39
|
+
- [ ] N/A - No behavior changes
|
|
40
|
+
|
|
41
|
+
### Documentation
|
|
42
|
+
- [ ] Patterns documented (if new approach discovered)
|
|
43
|
+
- [ ] N/A - No significant documentation needed
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## Technical Notes
|
|
48
|
+
|
|
49
|
+
### Approach
|
|
50
|
+
[How you'll tackle this work]
|
|
51
|
+
|
|
52
|
+
### Files to Touch
|
|
53
|
+
- `path/to/file.tsx` - [What changes]
|
|
54
|
+
|
|
55
|
+
### Risk Assessment
|
|
56
|
+
- **Regression Risk:** Low | Medium | High
|
|
57
|
+
- **Related Areas:** [What else might be affected]
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## Completion Criteria
|
|
62
|
+
|
|
63
|
+
**This chore is done when:**
|
|
64
|
+
- [ ] [Completion criterion 1]
|
|
65
|
+
- [ ] [Completion criterion 2]
|
|
66
|
+
- [ ] No obvious improvements remaining in scope
|
|
67
|
+
|
|
68
|
+
**Signs this needs to be split:**
|
|
69
|
+
- Work has been ongoing for 3+ weeks
|
|
70
|
+
- Scope has grown significantly
|
|
71
|
+
- New tasks are unrelated to original purpose
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
_Created: YYYY-MM-DD_
|