@flydocs/cli 0.6.0-alpha.13 → 0.6.0-alpha.20
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/dist/cli.js +281 -256
- package/package.json +1 -1
- package/template/.claude/CLAUDE.md +62 -66
- package/template/.claude/agents/implementation-agent.md +1 -1
- package/template/.claude/agents/pm-agent.md +1 -1
- package/template/.claude/commands/activate.md +1 -1
- package/template/.claude/commands/attach.md +1 -1
- package/template/.claude/commands/block.md +2 -2
- package/template/.claude/commands/capture.md +1 -1
- package/template/.claude/commands/close.md +1 -1
- package/template/.claude/commands/flydocs-setup.md +261 -58
- package/template/.claude/commands/flydocs-upgrade.md +26 -27
- package/template/.claude/commands/implement.md +1 -1
- package/template/.claude/commands/new-project.md +1 -1
- package/template/.claude/commands/onboard.md +275 -0
- package/template/.claude/commands/project-update.md +1 -1
- package/template/.claude/commands/refine.md +1 -1
- package/template/.claude/commands/review.md +1 -1
- package/template/.claude/commands/start-session.md +1 -1
- package/template/.claude/commands/status.md +1 -1
- package/template/.claude/commands/validate.md +1 -1
- package/template/.claude/commands/wrap-session.md +1 -1
- package/template/.claude/hooks/auto-approve.py +132 -0
- package/template/.claude/hooks/post-pr-check.py +108 -0
- package/template/.claude/hooks/post-transition-check.py +94 -0
- package/template/{.flydocs → .claude}/hooks/prompt-submit.py +167 -17
- package/template/.claude/hooks/session-start.py +146 -0
- package/template/.claude/hooks/stop-gate.py +109 -0
- package/template/.claude/settings.json +41 -4
- package/template/.claude/skills/README.md +23 -25
- package/template/.claude/skills/flydocs-workflow/SKILL.md +121 -34
- package/template/.claude/skills/flydocs-workflow/cursor-rule.mdc +9 -8
- package/template/.claude/skills/flydocs-workflow/reference/golden-rules.md +28 -17
- package/template/.claude/skills/flydocs-workflow/reference/graph-schema.md +116 -0
- package/template/.claude/skills/flydocs-workflow/reference/pr-workflow.md +30 -15
- package/template/.claude/skills/flydocs-workflow/reference/priority-estimates.md +1 -1
- package/template/.claude/skills/flydocs-workflow/reference/service-descriptor-schema.md +251 -0
- package/template/.claude/skills/flydocs-workflow/reference/status-workflow.md +26 -26
- package/template/.claude/skills/flydocs-workflow/scripts/_local/__init__.py +0 -0
- package/template/.claude/skills/{flydocs-local/scripts/flydocs_api.py → flydocs-workflow/scripts/_local/file_store.py} +133 -46
- package/template/.claude/skills/flydocs-workflow/scripts/flydocs_api.py +693 -0
- package/template/{.flydocs → .claude/skills/flydocs-workflow}/scripts/generate_manifest.py +4 -4
- package/template/.claude/skills/{flydocs-context-graph → flydocs-workflow}/scripts/graph_build.py +132 -1
- package/template/.claude/skills/{flydocs-context-graph → flydocs-workflow}/scripts/graph_query.py +18 -5
- package/template/.claude/skills/{flydocs-context-graph → flydocs-workflow}/scripts/graph_session.py +1 -1
- package/template/.claude/skills/{flydocs-context-graph → flydocs-workflow}/scripts/graph_update.py +4 -4
- package/template/.claude/skills/{flydocs-context-graph → flydocs-workflow}/scripts/graph_utils.py +2 -1
- package/template/.claude/skills/flydocs-workflow/scripts/issues.py +489 -0
- package/template/.claude/skills/flydocs-workflow/scripts/projects.py +144 -0
- package/template/.claude/skills/flydocs-workflow/scripts/pull_services.py +128 -0
- package/template/.claude/skills/flydocs-workflow/scripts/push_service.py +132 -0
- package/template/.claude/skills/flydocs-workflow/scripts/session.py +54 -0
- package/template/.claude/skills/flydocs-workflow/scripts/workspace.py +860 -0
- package/template/.claude/skills/flydocs-workflow/session.md +16 -11
- package/template/.claude/skills/flydocs-workflow/stages/activate.md +13 -8
- package/template/.claude/skills/flydocs-workflow/stages/capture.md +4 -4
- package/template/.claude/skills/flydocs-workflow/stages/close.md +1 -1
- package/template/.claude/skills/flydocs-workflow/stages/implement.md +7 -7
- package/template/.claude/skills/flydocs-workflow/stages/refine.md +5 -5
- package/template/.claude/skills/flydocs-workflow/stages/review.md +2 -2
- package/template/.claude/skills/flydocs-workflow/stages/validate.md +3 -1
- package/template/.claude/skills/flydocs-workflow/templates/pr/default.md +33 -0
- package/template/.cursor/agents/implementation-agent.md +1 -1
- package/template/.cursor/agents/pm-agent.md +2 -2
- package/template/.cursor/hooks.json +10 -3
- package/template/.env.example +6 -6
- package/template/.flydocs/config.json +2 -1
- package/template/.flydocs/templates/README.md +13 -14
- package/template/.flydocs/templates/quick-capture.md +4 -8
- package/template/.flydocs/version +1 -1
- package/template/AGENTS.md +39 -32
- package/template/flydocs/README.md +1 -3
- package/template/flydocs/context/project.md +6 -3
- package/template/flydocs/design-system/README.md +3 -3
- package/template/manifest.json +17 -19
- package/template/.claude/skills/flydocs-cloud/SKILL.md +0 -138
- package/template/.claude/skills/flydocs-cloud/cursor-rule.mdc +0 -50
- package/template/.claude/skills/flydocs-cloud/scripts/assign.py +0 -28
- package/template/.claude/skills/flydocs-cloud/scripts/assign_cycle.py +0 -28
- package/template/.claude/skills/flydocs-cloud/scripts/assign_milestone.py +0 -22
- package/template/.claude/skills/flydocs-cloud/scripts/comment.py +0 -29
- package/template/.claude/skills/flydocs-cloud/scripts/create_issue.py +0 -83
- package/template/.claude/skills/flydocs-cloud/scripts/create_milestone.py +0 -35
- package/template/.claude/skills/flydocs-cloud/scripts/create_project.py +0 -33
- package/template/.claude/skills/flydocs-cloud/scripts/create_team.py +0 -39
- package/template/.claude/skills/flydocs-cloud/scripts/delete_milestone.py +0 -21
- package/template/.claude/skills/flydocs-cloud/scripts/estimate.py +0 -33
- package/template/.claude/skills/flydocs-cloud/scripts/flydocs_api.py +0 -241
- package/template/.claude/skills/flydocs-cloud/scripts/generate_config.py +0 -125
- package/template/.claude/skills/flydocs-cloud/scripts/get_estimate_scale.py +0 -23
- package/template/.claude/skills/flydocs-cloud/scripts/get_issue.py +0 -24
- package/template/.claude/skills/flydocs-cloud/scripts/get_me.py +0 -103
- package/template/.claude/skills/flydocs-cloud/scripts/link.py +0 -28
- package/template/.claude/skills/flydocs-cloud/scripts/list_cycles.py +0 -28
- package/template/.claude/skills/flydocs-cloud/scripts/list_issues.py +0 -44
- package/template/.claude/skills/flydocs-cloud/scripts/list_labels.py +0 -19
- package/template/.claude/skills/flydocs-cloud/scripts/list_milestones.py +0 -28
- package/template/.claude/skills/flydocs-cloud/scripts/list_projects.py +0 -31
- package/template/.claude/skills/flydocs-cloud/scripts/list_providers.py +0 -19
- package/template/.claude/skills/flydocs-cloud/scripts/list_statuses.py +0 -19
- package/template/.claude/skills/flydocs-cloud/scripts/list_teams.py +0 -19
- package/template/.claude/skills/flydocs-cloud/scripts/priority.py +0 -29
- package/template/.claude/skills/flydocs-cloud/scripts/project_update.py +0 -45
- package/template/.claude/skills/flydocs-cloud/scripts/refresh_labels.py +0 -87
- package/template/.claude/skills/flydocs-cloud/scripts/set_identity.py +0 -54
- package/template/.claude/skills/flydocs-cloud/scripts/set_labels.py +0 -54
- package/template/.claude/skills/flydocs-cloud/scripts/set_preferences.py +0 -49
- package/template/.claude/skills/flydocs-cloud/scripts/set_provider.py +0 -31
- package/template/.claude/skills/flydocs-cloud/scripts/set_status_mapping.py +0 -57
- package/template/.claude/skills/flydocs-cloud/scripts/set_team.py +0 -28
- package/template/.claude/skills/flydocs-cloud/scripts/transition.py +0 -26
- package/template/.claude/skills/flydocs-cloud/scripts/update_description.py +0 -36
- package/template/.claude/skills/flydocs-cloud/scripts/update_issue.py +0 -100
- package/template/.claude/skills/flydocs-cloud/scripts/update_milestone.py +0 -42
- package/template/.claude/skills/flydocs-cloud/scripts/validate_setup.py +0 -120
- package/template/.claude/skills/flydocs-context-graph/SKILL.md +0 -94
- package/template/.claude/skills/flydocs-context-graph/schema.md +0 -78
- package/template/.claude/skills/flydocs-context-graph/scripts/graph_context.py +0 -338
- package/template/.claude/skills/flydocs-context7/SKILL.md +0 -105
- package/template/.claude/skills/flydocs-context7/cursor-rule.mdc +0 -49
- package/template/.claude/skills/flydocs-context7/scripts/context7.py +0 -293
- package/template/.claude/skills/flydocs-estimates/SKILL.md +0 -384
- package/template/.claude/skills/flydocs-figma/SKILL.md +0 -377
- package/template/.claude/skills/flydocs-figma/references/PROMPTING.md +0 -108
- package/template/.claude/skills/flydocs-figma/references/TROUBLESHOOTING.md +0 -112
- package/template/.claude/skills/flydocs-local/SKILL.md +0 -103
- package/template/.claude/skills/flydocs-local/cursor-rule.mdc +0 -43
- package/template/.claude/skills/flydocs-local/scripts/assign.py +0 -29
- package/template/.claude/skills/flydocs-local/scripts/comment.py +0 -27
- package/template/.claude/skills/flydocs-local/scripts/create_issue.py +0 -44
- package/template/.claude/skills/flydocs-local/scripts/estimate.py +0 -37
- package/template/.claude/skills/flydocs-local/scripts/get_issue.py +0 -20
- package/template/.claude/skills/flydocs-local/scripts/link.py +0 -41
- package/template/.claude/skills/flydocs-local/scripts/list_issues.py +0 -50
- package/template/.claude/skills/flydocs-local/scripts/priority.py +0 -37
- package/template/.claude/skills/flydocs-local/scripts/project_update.py +0 -67
- package/template/.claude/skills/flydocs-local/scripts/status_summary.py +0 -16
- package/template/.claude/skills/flydocs-local/scripts/transition.py +0 -24
- package/template/.claude/skills/flydocs-local/scripts/update_description.py +0 -35
- package/template/.claude/skills/flydocs-local/scripts/update_issue.py +0 -84
- package/template/.flydocs/hooks/auto-approve.py +0 -71
- package/template/.flydocs/scripts/skill_manager.py +0 -541
- package/template/.flydocs/templates/bug.md +0 -166
- package/template/.flydocs/templates/chore.md +0 -110
- package/template/.flydocs/templates/feature.md +0 -173
- package/template/.flydocs/templates/idea.md +0 -122
- /package/template/{.flydocs → .claude}/hooks/post-edit.py +0 -0
- /package/template/.claude/skills/{flydocs-estimates/references → flydocs-workflow/reference}/provider-costs.md +0 -0
- /package/template/.claude/skills/flydocs-workflow/templates/{bug.md → issues/bug.md} +0 -0
- /package/template/.claude/skills/flydocs-workflow/templates/{chore.md → issues/chore.md} +0 -0
- /package/template/.claude/skills/flydocs-workflow/templates/{feature.md → issues/feature.md} +0 -0
- /package/template/.claude/skills/flydocs-workflow/templates/{idea.md → issues/idea.md} +0 -0
|
@@ -7,29 +7,34 @@ When a conversation begins or the user returns after a gap:
|
|
|
7
7
|
1. **Query graph for issue context** (if an issue ID is known from the prompt or last session) —
|
|
8
8
|
|
|
9
9
|
```
|
|
10
|
-
python3 .claude/skills/flydocs-
|
|
10
|
+
python3 .claude/skills/flydocs-workflow/scripts/graph_query.py --node <issue-id> --depth 2
|
|
11
11
|
```
|
|
12
12
|
|
|
13
13
|
This surfaces related decisions, blocking relationships, and recent session activity.
|
|
14
14
|
Skip silently if the script is not installed or the graph has not been built.
|
|
15
15
|
|
|
16
|
-
2. **
|
|
16
|
+
2. **Check workspace context** — If `flydocs/context/service.json` exists, note the
|
|
17
|
+
repo's topology and dependencies. For multi-repo workspaces (topology type 3 or 4),
|
|
18
|
+
briefly mention which sibling repos exist and any active cross-repo dependencies.
|
|
19
|
+
This helps the user orient when switching between repos.
|
|
20
|
+
|
|
21
|
+
3. **Fetch all product issues in one call** — Run `issues.py list --active --limit 100`.
|
|
17
22
|
This is auto-scoped by the product cascade: `activeProjects` → `product.labelIds` → team-wide.
|
|
18
23
|
Issues outside the product scope are never shown.
|
|
19
24
|
|
|
20
|
-
|
|
25
|
+
4. **Identify the active project** — Read `workspace.activeProjects` from config.
|
|
21
26
|
Separate issues into two buckets:
|
|
22
27
|
- **Active project issues** — issues whose `projectId` matches an active project
|
|
23
28
|
- **Other product issues** — issues in the product scope but in a different project
|
|
24
29
|
|
|
25
|
-
|
|
30
|
+
5. **Group active project issues by milestone** — Use the `milestone` and `milestoneSortOrder`
|
|
26
31
|
fields returned by the script. Sort milestones by `milestoneSortOrder` (lowest first = earliest).
|
|
27
32
|
Within each milestone, group by status.
|
|
28
33
|
|
|
29
|
-
|
|
34
|
+
6. **Identify the current milestone** — The first milestone (by sort order) that still has
|
|
30
35
|
open issues. This is where work should focus.
|
|
31
36
|
|
|
32
|
-
|
|
37
|
+
7. **Present the dashboard:**
|
|
33
38
|
|
|
34
39
|
```
|
|
35
40
|
Welcome back! [Product Name] status:
|
|
@@ -52,21 +57,21 @@ When a conversation begins or the user returns after a gap:
|
|
|
52
57
|
Suggested starting point: [ISSUE-ID] — [reason: highest priority in current milestone / unblocks others / due soon]
|
|
53
58
|
```
|
|
54
59
|
|
|
55
|
-
|
|
60
|
+
8. **Suggest where to start** — Use this priority cascade:
|
|
56
61
|
- Blocked issues that need unblocking (always surface first)
|
|
57
62
|
- In-progress issues (continue existing work)
|
|
58
63
|
- Due date approaching (within 7 days)
|
|
59
64
|
- Highest priority in the current milestone
|
|
60
65
|
- Issues that unblock downstream milestones
|
|
61
66
|
|
|
62
|
-
|
|
67
|
+
9. **Surface other product issues briefly** — If there are issues in the product scope
|
|
63
68
|
but outside the active project, mention the count with a one-line summary:
|
|
64
69
|
|
|
65
70
|
```
|
|
66
71
|
Also in [Product Name]: [N] issues across other projects (use --all to see)
|
|
67
72
|
```
|
|
68
73
|
|
|
69
|
-
|
|
74
|
+
10. **Check for stale issues** — Flag issues exceeding staleness thresholds (see below).
|
|
70
75
|
|
|
71
76
|
**Important:** Do NOT make separate API calls per status or per milestone. One call returns
|
|
72
77
|
all issues with their status and milestone fields — group them in your response.
|
|
@@ -87,7 +92,7 @@ When the user indicates they're done for the session:
|
|
|
87
92
|
If yes, prompt the user: "This session involved [specific discovery]. Should we capture it in a knowledge doc before wrapping?" Use `/knowledge` if they agree.
|
|
88
93
|
3. **Compose summary** using the template below.
|
|
89
94
|
4. **Determine health status** — See health table.
|
|
90
|
-
5. **Post project update** — `
|
|
95
|
+
5. **Post project update** — `session.py project-update` with health and summary body.
|
|
91
96
|
6. **Write last-summary.json** — Write `.flydocs/session/last-summary.json` for cross-session continuity.
|
|
92
97
|
Create the directory if it doesn't exist. Structure:
|
|
93
98
|
|
|
@@ -106,7 +111,7 @@ When the user indicates they're done for the session:
|
|
|
106
111
|
|
|
107
112
|
7. **Record session in context graph** — Call `graph_session.py` with summary and issues worked on:
|
|
108
113
|
```
|
|
109
|
-
python3 .claude/skills/flydocs-
|
|
114
|
+
python3 .claude/skills/flydocs-workflow/scripts/graph_session.py \
|
|
110
115
|
--summary "Brief summary of session outcomes" \
|
|
111
116
|
--issue ISSUE-ID [--issue ISSUE-ID2] \
|
|
112
117
|
[--decision NNN]
|
|
@@ -15,7 +15,7 @@ Assign work to a person and move the issue to In Progress.
|
|
|
15
15
|
|
|
16
16
|
When user asks "what should I work on?":
|
|
17
17
|
|
|
18
|
-
1. **Query available issues** — `
|
|
18
|
+
1. **Query available issues** — `issues.py list` for Ready and Backlog states.
|
|
19
19
|
2. **Filter** — Exclude blocked issues and issues assigned to others.
|
|
20
20
|
3. **Rank** — Priority (highest first) → unblocked → smaller estimate.
|
|
21
21
|
4. **Present recommendation** — Show top candidates with reasoning.
|
|
@@ -25,16 +25,21 @@ When user asks "what should I work on?":
|
|
|
25
25
|
|
|
26
26
|
1. **Query graph for blocking relationships** — Check for blockers before proceeding:
|
|
27
27
|
```
|
|
28
|
-
python3 .claude/skills/flydocs-
|
|
28
|
+
python3 .claude/skills/flydocs-workflow/scripts/graph_query.py --node <issue-id> --relationships BLOCKS,BLOCKED_BY
|
|
29
29
|
```
|
|
30
30
|
If blocking relationships exist, surface them to the user before continuing.
|
|
31
31
|
Skip silently if the script is not installed or the graph has not been built.
|
|
32
|
-
2. **
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
32
|
+
2. **Check cross-repo impact** — If `flydocs/context/service.json` exists and the issue
|
|
33
|
+
description references API changes, endpoint modifications, or interface updates,
|
|
34
|
+
check if the affected APIs appear in the descriptor's `apis` section. If so, note
|
|
35
|
+
which sibling repos may be affected (they CONSUME this interface). This is a
|
|
36
|
+
heads-up, not a gate — just surface it for awareness.
|
|
37
|
+
3. **Read full issue** — Load description and acceptance criteria.
|
|
38
|
+
4. **Determine assignee** — MANDATORY. Ask "Who should this be assigned to?" if unclear. This is a hard gate.
|
|
39
|
+
5. **Assign** — `issues.py assign` with user identifier. If assignment fails, STOP. Do not continue.
|
|
40
|
+
6. **Set metadata** — Priority and estimate if not already set.
|
|
41
|
+
7. **Transition** — `issues.py transition` to Implementing with Activate comment from `reference/comment-templates.md`.
|
|
42
|
+
8. **Verify** — Confirm state = In Progress and assignee set.
|
|
38
43
|
|
|
39
44
|
**Sequence matters:** Assign → metadata → transition. Never transition without an assignee.
|
|
40
45
|
|
|
@@ -16,7 +16,7 @@ When the user has enough context to describe the issue:
|
|
|
16
16
|
|
|
17
17
|
1. **Determine type** — feature, bug, chore, or idea. Ask if unclear.
|
|
18
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:
|
|
19
|
+
3. **Fill template** — Read the appropriate template from `templates/issues/`. Extract from user input:
|
|
20
20
|
- **What** — Context or problem description
|
|
21
21
|
- **Why** — User story or business value
|
|
22
22
|
- **How** — Technical notes or approach (if known)
|
|
@@ -24,9 +24,9 @@ When the user has enough context to describe the issue:
|
|
|
24
24
|
4. **Apply labels** — Include appropriate labels from config:
|
|
25
25
|
- **Category label**: Automatic from issue type (feature, bug, chore, idea) via `issueLabels.category` in config
|
|
26
26
|
- **Repo label**: If multi-repo workspace, apply the repo label from `issueLabels.repo` in config
|
|
27
|
-
- **Product labels**: Applied automatically by the
|
|
27
|
+
- **Product labels**: Applied automatically by the workflow scripts from `workspace.product.labelIds`
|
|
28
28
|
- **Ad-hoc labels**: Only if explicitly relevant (e.g., "accessibility", "performance")
|
|
29
|
-
5. **Create issue** — `
|
|
29
|
+
5. **Create issue** — `issues.py create` with title, type, description, priority, estimate (if known), and labels.
|
|
30
30
|
6. **Add comment** — Use the Capture template from `reference/comment-templates.md`.
|
|
31
31
|
7. **Verify** — Confirm issue identifier returned.
|
|
32
32
|
|
|
@@ -35,7 +35,7 @@ When the user has enough context to describe the issue:
|
|
|
35
35
|
When logging an idea or observation during flow — flesh out later:
|
|
36
36
|
|
|
37
37
|
1. **Determine type** — Default to `idea` if unclear.
|
|
38
|
-
2. **Create issue** — `
|
|
38
|
+
2. **Create issue** — `issues.py create --triage` with minimal title and brief context.
|
|
39
39
|
Issue receives both the category label and the triage label.
|
|
40
40
|
3. **Add comment** — "**Captured** — Quick capture, needs refinement."
|
|
41
41
|
4. Issue sits in Backlog with triage tag. The Refine stage picks it up later.
|
|
@@ -16,7 +16,7 @@ Archive verified and completed work.
|
|
|
16
16
|
- **Done** — Work completed and verified (normal path)
|
|
17
17
|
- **Archived** — Deferring to a later date (not cancelled, may return)
|
|
18
18
|
- **Canceled** — Not pursuing (won't be done)
|
|
19
|
-
4. **Transition** — `
|
|
19
|
+
4. **Transition** — `issues.py transition` with the appropriate Close comment from `reference/comment-templates.md`.
|
|
20
20
|
5. **Verify** — Confirm terminal state reached.
|
|
21
21
|
|
|
22
22
|
## Gates
|
|
@@ -63,7 +63,7 @@ If yes, prompt the user: "Should we capture this in a knowledge doc?" Use `/know
|
|
|
63
63
|
When adding a TODO comment in code:
|
|
64
64
|
|
|
65
65
|
1. Write the initial comment: `// TODO: Description`
|
|
66
|
-
2. Create a corresponding issue via `
|
|
66
|
+
2. Create a corresponding issue via `issues.py create` with type `chore`
|
|
67
67
|
3. Update the comment with the issue ID: `// TODO: Description (ENG-XXX)`
|
|
68
68
|
|
|
69
69
|
Every TODO must have a tracked issue. No orphaned TODOs.
|
|
@@ -96,13 +96,13 @@ See `reference/pr-workflow.md` for full conventions. If changes warrant a PR:
|
|
|
96
96
|
1. Create branch: `git checkout -b <type>/<ref>-<slug>`
|
|
97
97
|
2. Stage and commit with a descriptive message: `<type>: <description> (<ref>)`
|
|
98
98
|
3. Push: `git push -u origin <branch>`
|
|
99
|
-
4. Create PR
|
|
99
|
+
4. Create PR: `python3 .claude/skills/flydocs-workflow/scripts/issues.py pr --issue <ref>`
|
|
100
100
|
|
|
101
|
-
If the user requested a direct commit or changes are trivial, skip the PR and commit directly.
|
|
101
|
+
The PR dispatcher auto-populates the description from the issue context and links the PR back via comment. If the user requested a direct commit or changes are trivial, skip the PR and commit directly.
|
|
102
102
|
|
|
103
103
|
### 10. Hand Off to Review
|
|
104
104
|
|
|
105
|
-
Transition to Review via `
|
|
105
|
+
Transition to Review via `issues.py transition` with the "Ready for Review" comment from `reference/comment-templates.md`. Include:
|
|
106
106
|
|
|
107
107
|
- What changed (brief summary)
|
|
108
108
|
- File count
|
|
@@ -114,10 +114,10 @@ Transition to Review via `transition.py` with the "Ready for Review" comment fro
|
|
|
114
114
|
|
|
115
115
|
Checkboxes live in the issue description. Never in comments.
|
|
116
116
|
|
|
117
|
-
1. Read current description via `
|
|
117
|
+
1. Read current description via `issues.py get`
|
|
118
118
|
2. Find `- [ ] Criterion text`
|
|
119
119
|
3. Change to `- [x] Criterion text`
|
|
120
|
-
4. Save entire updated description via `
|
|
120
|
+
4. Save entire updated description via `issues.py description`
|
|
121
121
|
|
|
122
122
|
**Never** put completion checkmarks in comments. **Never** create new checkboxes in comments.
|
|
123
123
|
|
|
@@ -126,7 +126,7 @@ Checkboxes live in the issue description. Never in comments.
|
|
|
126
126
|
If blocked during implementation:
|
|
127
127
|
|
|
128
128
|
1. Document what is blocking and what is needed
|
|
129
|
-
2. Transition via `
|
|
129
|
+
2. Transition via `issues.py transition` to Blocked with comment from `reference/comment-templates.md`
|
|
130
130
|
3. If blocked by another issue, create a dependency relationship
|
|
131
131
|
|
|
132
132
|
To unblock: transition back to Implementing with an Unblocked comment.
|
|
@@ -16,9 +16,9 @@ For quick captures that need classification and structure:
|
|
|
16
16
|
|
|
17
17
|
1. **Read issue** — Load current content.
|
|
18
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.
|
|
19
|
+
3. **Apply template** — Read appropriate template from `templates/issues/` and restructure the issue content to match.
|
|
20
20
|
4. **Set priority** — P1-P4 based on urgency and impact.
|
|
21
|
-
5. **Update description** — `
|
|
21
|
+
5. **Update description** — `issues.py description` with templated content.
|
|
22
22
|
6. **Add comment** — Use Triage template from `reference/comment-templates.md`.
|
|
23
23
|
|
|
24
24
|
### Refinement Path (issue already templated)
|
|
@@ -32,8 +32,8 @@ For backlog items that need fleshing out before activation:
|
|
|
32
32
|
5. **Add technical notes** — Implementation guidance, dependencies, affected areas.
|
|
33
33
|
6. **Set estimate and priority** — If not already set. See `reference/priority-estimates.md`.
|
|
34
34
|
7. **Check dependencies** — Blocked by other issues? Related work?
|
|
35
|
-
8. **Assign milestone** — If the issue fits a current or upcoming milestone, assign it via `--milestone` on `
|
|
36
|
-
9. **Update description** — `
|
|
35
|
+
8. **Assign milestone** — If the issue fits a current or upcoming milestone, assign it via `--milestone` on `issues.py update`. If no milestone is appropriate, leave unassigned but note it.
|
|
36
|
+
9. **Update description** — `issues.py description` with refined content.
|
|
37
37
|
10. **Quality gate check** — Verify all criteria pass before transitioning:
|
|
38
38
|
|
|
39
39
|
| Gate | Check | Required |
|
|
@@ -48,7 +48,7 @@ For backlog items that need fleshing out before activation:
|
|
|
48
48
|
|
|
49
49
|
If any required gate fails, address it before transitioning.
|
|
50
50
|
|
|
51
|
-
11. **Transition to Ready** — `
|
|
51
|
+
11. **Transition to Ready** — `issues.py transition` with Refine comment from `reference/comment-templates.md`.
|
|
52
52
|
|
|
53
53
|
## Gates
|
|
54
54
|
|
|
@@ -61,12 +61,12 @@ This is a soft gate — not all issues require knowledge docs. Flag only when im
|
|
|
61
61
|
|
|
62
62
|
**If approved:**
|
|
63
63
|
|
|
64
|
-
1. Transition to Testing via `
|
|
64
|
+
1. Transition to Testing via `issues.py transition` with "Code Review Passed" comment from `reference/comment-templates.md`.
|
|
65
65
|
|
|
66
66
|
**If changes needed:**
|
|
67
67
|
|
|
68
68
|
1. Document specific issues with file/location details.
|
|
69
|
-
2. Transition to Implementing via `
|
|
69
|
+
2. Transition to Implementing via `issues.py transition` with "Code Review: Changes Needed" comment listing each issue.
|
|
70
70
|
|
|
71
71
|
## Review Boundaries
|
|
72
72
|
|
|
@@ -47,7 +47,7 @@ Please test each criterion and let me know:
|
|
|
47
47
|
**On issues found:**
|
|
48
48
|
|
|
49
49
|
1. Document issues clearly. Ask clarifying questions if needed.
|
|
50
|
-
2. Transition to Implementing via `
|
|
50
|
+
2. Transition to Implementing via `issues.py transition` with "QE Issues Found" comment listing each issue.
|
|
51
51
|
|
|
52
52
|
**On partial issues:**
|
|
53
53
|
|
|
@@ -65,11 +65,13 @@ Please test each criterion and let me know:
|
|
|
65
65
|
## QE Boundaries
|
|
66
66
|
|
|
67
67
|
The QE agent:
|
|
68
|
+
|
|
68
69
|
- Guides user through testing
|
|
69
70
|
- Documents approval or issues
|
|
70
71
|
- Transitions back to Implementing if issues found
|
|
71
72
|
|
|
72
73
|
The QE agent NEVER:
|
|
74
|
+
|
|
73
75
|
- Moves issues to Done or closes them
|
|
74
76
|
- Skips documenting results
|
|
75
77
|
- Approves without user confirmation
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
## Summary
|
|
2
|
+
|
|
3
|
+
<!-- What changed and why. Reference the issue. -->
|
|
4
|
+
|
|
5
|
+
Resolves {ISSUE_REF}
|
|
6
|
+
|
|
7
|
+
{ISSUE_SUMMARY}
|
|
8
|
+
|
|
9
|
+
## Changes
|
|
10
|
+
|
|
11
|
+
<!-- Key changes, grouped logically. -->
|
|
12
|
+
|
|
13
|
+
- {CHANGE_1}
|
|
14
|
+
- {CHANGE_2}
|
|
15
|
+
|
|
16
|
+
## Test Plan
|
|
17
|
+
|
|
18
|
+
<!-- How to verify this works. Be specific. -->
|
|
19
|
+
|
|
20
|
+
- [ ] {TEST_1}
|
|
21
|
+
- [ ] {TEST_2}
|
|
22
|
+
|
|
23
|
+
## Acceptance Criteria
|
|
24
|
+
|
|
25
|
+
<!-- Pulled from issue description. -->
|
|
26
|
+
|
|
27
|
+
{ACCEPTANCE_CRITERIA}
|
|
28
|
+
|
|
29
|
+
## Notes
|
|
30
|
+
|
|
31
|
+
<!-- Anything reviewers should know: trade-offs, follow-up work, risks. -->
|
|
32
|
+
|
|
33
|
+
{NOTES}
|
|
@@ -20,7 +20,7 @@ Implementation agent for FlyDocs spec-driven development.
|
|
|
20
20
|
|
|
21
21
|
## Constraints
|
|
22
22
|
|
|
23
|
-
- **Scripts for issue updates** — use
|
|
23
|
+
- **Scripts for issue updates** — use workflow dispatcher scripts for progress comments and transitions
|
|
24
24
|
- Follow installed community skills for code quality patterns
|
|
25
25
|
- Keep changes focused on the spec — don't over-engineer
|
|
26
26
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: pm-agent
|
|
3
3
|
description: "Specs, workflow, issue management. Invoke for capturing, refining, activating, reviewing, closing, or session management."
|
|
4
4
|
model: inherit
|
|
5
|
-
readonly:
|
|
5
|
+
readonly: true
|
|
6
6
|
is_background: false
|
|
7
7
|
---
|
|
8
8
|
|
|
@@ -20,7 +20,7 @@ Product management agent for FlyDocs spec-driven workflow.
|
|
|
20
20
|
## Constraints
|
|
21
21
|
|
|
22
22
|
- **Do not modify code files** — this agent handles workflow, not implementation
|
|
23
|
-
- **Scripts for all issue ops** —
|
|
23
|
+
- **Scripts for all issue ops** — use workflow dispatcher scripts (`issues.py`, `projects.py`, etc.) for all operations
|
|
24
24
|
- Defer technical decisions to implementation agent
|
|
25
25
|
|
|
26
26
|
Read `.claude/skills/flydocs-workflow/SKILL.md` for lifecycle and stage procedures.
|
|
@@ -4,19 +4,26 @@
|
|
|
4
4
|
"preToolUse": [
|
|
5
5
|
{
|
|
6
6
|
"matcher": "Bash",
|
|
7
|
-
"command": "python3 ./.
|
|
7
|
+
"command": "python3 ./.claude/hooks/auto-approve.py",
|
|
8
8
|
"timeout": 5
|
|
9
9
|
}
|
|
10
10
|
],
|
|
11
11
|
"afterFileEdit": [
|
|
12
12
|
{
|
|
13
|
-
"command": "python3 ./.
|
|
13
|
+
"command": "python3 ./.claude/hooks/post-edit.py",
|
|
14
14
|
"timeout": 30
|
|
15
15
|
}
|
|
16
16
|
],
|
|
17
|
+
"afterToolUse": [
|
|
18
|
+
{
|
|
19
|
+
"matcher": "Bash",
|
|
20
|
+
"command": "python3 ./.claude/hooks/post-pr-check.py",
|
|
21
|
+
"timeout": 10
|
|
22
|
+
}
|
|
23
|
+
],
|
|
17
24
|
"beforeSubmitPrompt": [
|
|
18
25
|
{
|
|
19
|
-
"command": "python3 ./.
|
|
26
|
+
"command": "python3 ./.claude/hooks/prompt-submit.py",
|
|
20
27
|
"timeout": 10
|
|
21
28
|
}
|
|
22
29
|
]
|
package/template/.env.example
CHANGED
|
@@ -31,18 +31,18 @@
|
|
|
31
31
|
FLYDOCS_API_KEY=
|
|
32
32
|
|
|
33
33
|
# ===========================================
|
|
34
|
-
# CLOUD TIER: Direct
|
|
34
|
+
# CLOUD TIER: Direct Provider API Key (Legacy)
|
|
35
35
|
# ===========================================
|
|
36
|
-
# Use this ONLY if connecting directly to
|
|
37
|
-
# Get from
|
|
38
|
-
#
|
|
39
|
-
LINEAR_API_KEY=
|
|
36
|
+
# Use this ONLY if connecting directly to your provider without the relay.
|
|
37
|
+
# For Linear: Get from Linear → Settings → API → Personal API Keys (format: lin_api_...)
|
|
38
|
+
# For Jira: Get from Atlassian → API Tokens (format: ATATT...)
|
|
39
|
+
# LINEAR_API_KEY=
|
|
40
40
|
|
|
41
41
|
# ===========================================
|
|
42
42
|
# OPTIONAL: Figma Access Token
|
|
43
43
|
# ===========================================
|
|
44
44
|
# Get from: Figma → Settings → Personal Access Tokens
|
|
45
|
-
# Only needed if using
|
|
45
|
+
# Only needed if using Figma design integration
|
|
46
46
|
FIGMA_ACCESS_TOKEN=
|
|
47
47
|
|
|
48
48
|
# ===========================================
|
|
@@ -1,31 +1,33 @@
|
|
|
1
1
|
# Issue Templates
|
|
2
2
|
|
|
3
|
-
This folder contains templates for creating and refining
|
|
3
|
+
This folder contains templates for creating and refining issues. Each template includes agent instructions to ensure consistent, high-quality issue structure.
|
|
4
4
|
|
|
5
5
|
## Template Usage
|
|
6
6
|
|
|
7
7
|
**Agents use these templates when:**
|
|
8
|
+
|
|
8
9
|
- Creating new issues via `/capture`
|
|
9
10
|
- Refining issues via `/refine`
|
|
10
11
|
- Triaging quick captures with `triage` label
|
|
11
12
|
|
|
12
|
-
**Humans use `quick-capture.md` in
|
|
13
|
+
**Humans use `quick-capture.md` in their issue tracker** as the default template for fast idea/bug capture.
|
|
13
14
|
|
|
14
15
|
## Available Templates
|
|
15
16
|
|
|
16
|
-
| Template
|
|
17
|
-
|
|
18
|
-
| `feature.md`
|
|
19
|
-
| `bug.md`
|
|
20
|
-
| `chore.md`
|
|
21
|
-
| `idea.md`
|
|
22
|
-
| `quick-capture.md` | Fast capture
|
|
17
|
+
| Template | Purpose | When to Use |
|
|
18
|
+
| ------------------ | ------------------- | ----------------------------------------------- |
|
|
19
|
+
| `feature.md` | New functionality | Building something new with user story |
|
|
20
|
+
| `bug.md` | Fix defects | Something is broken |
|
|
21
|
+
| `chore.md` | Maintenance/cleanup | Refactoring, polish, improvements |
|
|
22
|
+
| `idea.md` | Capture concepts | Rough ideas for future exploration |
|
|
23
|
+
| `quick-capture.md` | Fast capture | Human entry in issue tracker (default template) |
|
|
23
24
|
|
|
24
25
|
## Agent Instructions
|
|
25
26
|
|
|
26
|
-
Each template contains `<!-- AGENT: ... -->` comments that guide the AI when filling out sections. These instructions are removed from the final issue in
|
|
27
|
+
Each template contains `<!-- AGENT: ... -->` comments that guide the AI when filling out sections. These instructions are removed from the final issue in your provider.
|
|
27
28
|
|
|
28
29
|
**Key principles:**
|
|
30
|
+
|
|
29
31
|
1. Fill all `[bracketed]` sections with specific content
|
|
30
32
|
2. Don't remove sections - mark as "N/A" if not applicable
|
|
31
33
|
3. Be specific in acceptance criteria (testable, measurable)
|
|
@@ -35,12 +37,9 @@ Each template contains `<!-- AGENT: ... -->` comments that guide the AI when fil
|
|
|
35
37
|
## Template Evolution
|
|
36
38
|
|
|
37
39
|
Update these templates as your workflow evolves:
|
|
40
|
+
|
|
38
41
|
- Add sections that are consistently needed
|
|
39
42
|
- Remove sections that are never used
|
|
40
43
|
- Improve agent instructions based on what works
|
|
41
44
|
|
|
42
45
|
Changes here apply to all future issues.
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
<!--
|
|
2
|
-
|
|
1
|
+
<!--
|
|
2
|
+
PROVIDER DEFAULT TEMPLATE
|
|
3
3
|
========================
|
|
4
|
-
Copy this to
|
|
5
|
-
This is the ONLY template humans need in
|
|
4
|
+
Copy this to your issue tracker as the default issue template.
|
|
5
|
+
This is the ONLY template humans need in their issue tracker.
|
|
6
6
|
Agents apply full templates via /refine.
|
|
7
7
|
-->
|
|
8
8
|
|
|
@@ -29,7 +29,3 @@ Agents apply full templates via /refine.
|
|
|
29
29
|
---
|
|
30
30
|
|
|
31
31
|
_Add `triage` label. Agent will classify and structure via `/refine`._
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
@@ -1 +1 @@
|
|
|
1
|
-
0.6.0-alpha.
|
|
1
|
+
0.6.0-alpha.20
|
package/template/AGENTS.md
CHANGED
|
@@ -1,17 +1,24 @@
|
|
|
1
1
|
# FlyDocs Agent Instructions
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
When performing workflow, issue management, or process tasks, consult the
|
|
5
|
-
relevant documentation files before acting.
|
|
3
|
+
## Automatic Workflow Behavior
|
|
6
4
|
|
|
7
|
-
|
|
5
|
+
These behaviors are **always on**. Execute them automatically as part of doing
|
|
6
|
+
the work — do not wait for explicit commands.
|
|
8
7
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
8
|
+
- **Starting work on an issue** → transition to In Progress (assign first if needed)
|
|
9
|
+
- **Completing implementation** → transition to Review with summary
|
|
10
|
+
- **Closing** → verify acceptance criteria, transition to Complete
|
|
11
|
+
- **Every transition gets a comment** — no silent moves, no exceptions
|
|
12
|
+
- **Checkboxes in description, never comments** — update AC as you go
|
|
13
|
+
- **Session wrap posts a summary** via `session.py project-update`
|
|
14
|
+
|
|
15
|
+
Use dispatcher scripts for all issue operations — execute, don't describe.
|
|
16
|
+
|
|
17
|
+
## Efficiency
|
|
18
|
+
|
|
19
|
+
Do NOT read skill files or workflow documentation before writing code.
|
|
20
|
+
The rules above are already in your context. For general coding, research,
|
|
21
|
+
and building features — just do the work.
|
|
15
22
|
|
|
16
23
|
## Workflow
|
|
17
24
|
|
|
@@ -37,16 +44,20 @@ Detailed procedures: `.claude/skills/flydocs-workflow/`
|
|
|
37
44
|
|
|
38
45
|
Scripts handle all issue management. The active backend (local files or cloud provider) determines the implementation.
|
|
39
46
|
|
|
40
|
-
**Available operations:** create issue, transition status, add comment, list issues, get issue details, assign, update description, status summary.
|
|
47
|
+
**Available operations:** create issue, transition status, add comment, list issues, get issue details, assign, update description, estimate, priority, link, block, project update, status summary.
|
|
41
48
|
|
|
42
|
-
|
|
49
|
+
Scripts use grouped dispatchers in `.claude/skills/flydocs-workflow/scripts/`:
|
|
43
50
|
|
|
44
|
-
|
|
51
|
+
| Dispatcher | Operations |
|
|
52
|
+
| ---------------- | ------------------------------------------------------------ |
|
|
53
|
+
| `issues.py` | create, get, list, transition, assign, update, comment, etc. |
|
|
54
|
+
| `projects.py` | list-projects, create-project, milestones, cycles |
|
|
55
|
+
| `workspace.py` | validate, labels, statuses, teams, config, identity |
|
|
56
|
+
| `session.py` | project-update, status-summary |
|
|
57
|
+
| `graph_*.py` | build, query, update, session recording |
|
|
58
|
+
| `push/pull_*.py` | Service descriptor sync (cloud tier) |
|
|
45
59
|
|
|
46
|
-
|
|
47
|
-
| ----------------- | ----------------------------------------------------------------------- |
|
|
48
|
-
| Figma Integration | `.claude/skills/flydocs-figma/` — design extraction, token mapping |
|
|
49
|
-
| Cost Estimation | `.claude/skills/flydocs-estimates/` — AI token/labor estimates (opt-in) |
|
|
60
|
+
The unified client auto-detects tier (cloud vs local) — scripts never check tier directly.
|
|
50
61
|
|
|
51
62
|
## Writing Style
|
|
52
63
|
|
|
@@ -80,26 +91,22 @@ Follow these rules in every response for consistent, scannable output.
|
|
|
80
91
|
|
|
81
92
|
## Project Context
|
|
82
93
|
|
|
83
|
-
| File
|
|
84
|
-
|
|
|
85
|
-
| `flydocs/context/project.md`
|
|
86
|
-
|
|
|
94
|
+
| File | Purpose |
|
|
95
|
+
| ------------------------------ | ------------------------------------------------- |
|
|
96
|
+
| `flydocs/context/project.md` | Product scope, tech stack, active priorities |
|
|
97
|
+
| `flydocs/context/service.json` | Service descriptor, topology, cross-repo context |
|
|
98
|
+
| `.flydocs/config.json` | Tier, provider, labels, active projects, topology |
|
|
87
99
|
|
|
88
100
|
<!-- flydocs:skills-manifest:start -->
|
|
89
101
|
|
|
90
102
|
## Skills Index
|
|
91
103
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
| Skill
|
|
96
|
-
|
|
|
97
|
-
| flydocs-
|
|
98
|
-
| flydocs-context7 | context7, library docs, documentation lookup, framework docs, package docs, API reference | .claude/skills/flydocs-context7/SKILL.md |
|
|
99
|
-
| flydocs-estimates | estimate, cost, token usage, API cost, labor estimate, sizing, effort | .claude/skills/flydocs-estimates/SKILL.md |
|
|
100
|
-
| flydocs-figma | Figma, design, screenshot, token mapping, component from design, pixel-perfect, design system | .claude/skills/flydocs-figma/SKILL.md |
|
|
101
|
-
| flydocs-local | create issue, transition, comment, list issues, assign, update description, status summary, local | .claude/skills/flydocs-local/SKILL.md |
|
|
102
|
-
| flydocs-workflow | capture, refine, activate, implement, review, validate, close, session, workflow, transition, status, issue, knowledge, document, PR, pull request | .claude/skills/flydocs-workflow/SKILL.md |
|
|
104
|
+
Consult the workflow skill for **issue operations and status transitions only**.
|
|
105
|
+
For general coding tasks, skip this — just write code.
|
|
106
|
+
|
|
107
|
+
| Skill | Triggers | Entry |
|
|
108
|
+
| ---------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------- |
|
|
109
|
+
| flydocs-workflow | create issue, capture issue, log a bug, add to backlog, transition, move to, mark as, set status, assign issue, close issue, start session, wrap session, project update, status update, add comment, set priority, set estimate | .claude/skills/flydocs-workflow/SKILL.md |
|
|
103
110
|
|
|
104
111
|
<!-- flydocs:skills-manifest:end -->
|
|
105
112
|
|
|
@@ -30,8 +30,6 @@ FlyDocs will **never overwrite** these files during updates - they're yours to m
|
|
|
30
30
|
├── config.json # Tier, provider settings, workspace config
|
|
31
31
|
├── version # For upgrade detection
|
|
32
32
|
├── rules/ # Workflow rules
|
|
33
|
-
├── scripts/ # Automation scripts
|
|
34
|
-
├── hooks/ # Workflow hooks
|
|
35
33
|
└── templates/ # Issue templates (source)
|
|
36
34
|
|
|
37
35
|
flydocs/ # PROJECT CONTENT (evolves with project)
|
|
@@ -153,7 +151,7 @@ See `.flydocs/config.json` for:
|
|
|
153
151
|
- FlyDocs version
|
|
154
152
|
- `tier` - "local" (free) or "cloud" (connected to provider)
|
|
155
153
|
- `paths.content` - This folder name (default: "flydocs")
|
|
156
|
-
- `provider.type` - Issue tracker provider (null for local, "linear" for cloud)
|
|
154
|
+
- `provider.type` - Issue tracker provider (null for local, e.g. "linear", "jira" for cloud)
|
|
157
155
|
- `workspace.activeProjects` - Array of active project IDs (cloud tier)
|
|
158
156
|
- `workspace.product` - Product identity (name, labelIds, icon, color)
|
|
159
157
|
- `statusMapping` - Workflow state names
|