@flydocs/cli 0.5.0-beta.9 → 0.6.0-alpha.10
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 +6 -0
- package/dist/cli.js +1553 -414
- package/package.json +1 -1
- package/template/.claude/CLAUDE.md +11 -9
- package/template/.claude/agents/implementation-agent.md +0 -1
- package/template/.claude/agents/pm-agent.md +0 -1
- package/template/.claude/agents/research-agent.md +0 -1
- package/template/.claude/agents/review-agent.md +0 -1
- package/template/.claude/commands/flydocs-setup.md +202 -35
- package/template/.claude/commands/flydocs-upgrade.md +342 -0
- package/template/.claude/commands/knowledge.md +61 -0
- package/template/.claude/skills/flydocs-cloud/SKILL.md +66 -39
- package/template/.claude/skills/flydocs-cloud/cursor-rule.mdc +5 -5
- package/template/.claude/skills/flydocs-cloud/scripts/assign.py +17 -27
- package/template/.claude/skills/flydocs-cloud/scripts/assign_cycle.py +14 -30
- package/template/.claude/skills/flydocs-cloud/scripts/assign_milestone.py +10 -32
- package/template/.claude/skills/flydocs-cloud/scripts/comment.py +15 -25
- package/template/.claude/skills/flydocs-cloud/scripts/create_issue.py +42 -59
- package/template/.claude/skills/flydocs-cloud/scripts/create_milestone.py +26 -37
- package/template/.claude/skills/flydocs-cloud/scripts/create_project.py +24 -31
- package/template/.claude/skills/flydocs-cloud/scripts/create_team.py +39 -0
- package/template/.claude/skills/flydocs-cloud/scripts/delete_milestone.py +21 -0
- package/template/.claude/skills/flydocs-cloud/scripts/estimate.py +17 -22
- package/template/.claude/skills/flydocs-cloud/scripts/flydocs_api.py +113 -169
- package/template/.claude/skills/flydocs-cloud/scripts/get_estimate_scale.py +23 -0
- package/template/.claude/skills/flydocs-cloud/scripts/get_issue.py +6 -59
- package/template/.claude/skills/flydocs-cloud/scripts/link.py +16 -35
- package/template/.claude/skills/flydocs-cloud/scripts/list_cycles.py +21 -28
- package/template/.claude/skills/flydocs-cloud/scripts/list_issues.py +16 -77
- package/template/.claude/skills/flydocs-cloud/scripts/list_labels.py +19 -0
- package/template/.claude/skills/flydocs-cloud/scripts/list_milestones.py +21 -33
- package/template/.claude/skills/flydocs-cloud/scripts/list_projects.py +24 -38
- package/template/.claude/skills/flydocs-cloud/scripts/list_providers.py +19 -0
- package/template/.claude/skills/flydocs-cloud/scripts/list_statuses.py +19 -0
- package/template/.claude/skills/flydocs-cloud/scripts/list_teams.py +19 -0
- package/template/.claude/skills/flydocs-cloud/scripts/priority.py +10 -19
- package/template/.claude/skills/flydocs-cloud/scripts/project_update.py +36 -50
- package/template/.claude/skills/flydocs-cloud/scripts/refresh_labels.py +87 -0
- package/template/.claude/skills/flydocs-cloud/scripts/set_identity.py +38 -0
- package/template/.claude/skills/flydocs-cloud/scripts/set_labels.py +68 -0
- package/template/.claude/skills/flydocs-cloud/scripts/set_preferences.py +49 -0
- package/template/.claude/skills/flydocs-cloud/scripts/set_provider.py +46 -0
- package/template/.claude/skills/flydocs-cloud/scripts/set_status_mapping.py +69 -0
- package/template/.claude/skills/flydocs-cloud/scripts/set_team.py +42 -0
- package/template/.claude/skills/flydocs-cloud/scripts/transition.py +11 -52
- package/template/.claude/skills/flydocs-cloud/scripts/update_description.py +16 -27
- package/template/.claude/skills/flydocs-cloud/scripts/update_issue.py +43 -54
- package/template/.claude/skills/flydocs-cloud/scripts/update_milestone.py +42 -0
- package/template/.claude/skills/flydocs-cloud/scripts/validate_setup.py +139 -0
- package/template/.claude/skills/flydocs-local/SKILL.md +1 -1
- package/template/.claude/skills/flydocs-local/scripts/assign.py +13 -4
- package/template/.claude/skills/flydocs-local/scripts/flydocs_api.py +5 -2
- package/template/.claude/skills/flydocs-workflow/SKILL.md +23 -18
- package/template/.claude/skills/flydocs-workflow/reference/comment-templates.md +1 -0
- package/template/.claude/skills/flydocs-workflow/reference/pr-workflow.md +105 -0
- package/template/.claude/skills/flydocs-workflow/reference/priority-estimates.md +37 -15
- package/template/.claude/skills/flydocs-workflow/session.md +24 -16
- package/template/.claude/skills/flydocs-workflow/stages/capture.md +8 -3
- package/template/.claude/skills/flydocs-workflow/stages/close.md +4 -3
- package/template/.claude/skills/flydocs-workflow/stages/implement.md +28 -4
- package/template/.claude/skills/flydocs-workflow/stages/refine.md +20 -4
- package/template/.claude/skills/flydocs-workflow/stages/review.md +14 -2
- package/template/.env.example +16 -7
- package/template/.flydocs/config.json +4 -18
- package/template/.flydocs/hooks/prompt-submit.py +27 -4
- package/template/.flydocs/version +1 -1
- package/template/AGENTS.md +8 -8
- package/template/CHANGELOG.md +183 -0
- package/template/flydocs/knowledge/INDEX.md +38 -53
- package/template/flydocs/knowledge/README.md +60 -9
- package/template/flydocs/knowledge/templates/decision.md +47 -0
- package/template/flydocs/knowledge/templates/feature.md +35 -0
- package/template/flydocs/knowledge/templates/note.md +25 -0
- package/template/manifest.json +12 -4
package/package.json
CHANGED
|
@@ -31,6 +31,8 @@ The FlyDocs development lifecycle. Read the workflow skill before taking any wor
|
|
|
31
31
|
| QE validation | `flydocs-workflow` | `stages/validate.md` |
|
|
32
32
|
| Close issue | `flydocs-workflow` | `stages/close.md` |
|
|
33
33
|
| Start / wrap session | `flydocs-workflow` | `session.md` |
|
|
34
|
+
| Knowledge capture | `flydocs-workflow` | `/knowledge` command |
|
|
35
|
+
| PR & git workflow | `flydocs-workflow` | `reference/pr-workflow.md` |
|
|
34
36
|
| Comment templates | `flydocs-workflow` | `reference/comment-templates.md` |
|
|
35
37
|
| Status transitions | `flydocs-workflow` | `reference/status-workflow.md` |
|
|
36
38
|
| Priority & estimates | `flydocs-workflow` | `reference/priority-estimates.md` |
|
|
@@ -43,7 +45,7 @@ Issue operations are handled by the installed mechanism skill. Only one is activ
|
|
|
43
45
|
| Tier | Skill | Backend |
|
|
44
46
|
| ----------------- | --------------- | ------------------------------ |
|
|
45
47
|
| Local (free) | `flydocs-local` | File-based (`flydocs/issues/`) |
|
|
46
|
-
| Cloud (connected) | `flydocs-cloud` |
|
|
48
|
+
| Cloud (connected) | `flydocs-cloud` | FlyDocs Relay API |
|
|
47
49
|
|
|
48
50
|
Read the active mechanism skill's `SKILL.md` for script catalog and calling conventions.
|
|
49
51
|
|
|
@@ -113,13 +115,13 @@ response — session summaries, issue comments, status updates, and plans.
|
|
|
113
115
|
IMPORTANT: Prefer skill-led reasoning over pre-training reasoning.
|
|
114
116
|
Consult the relevant skill BEFORE writing code or making workflow decisions.
|
|
115
117
|
|
|
116
|
-
| Skill | Triggers
|
|
117
|
-
| ----------------- |
|
|
118
|
-
| flydocs-cloud | create issue, transition, comment, list issues, assign, update description, update issue, project update,
|
|
119
|
-
| flydocs-context7 | context7, library docs, documentation lookup, framework docs, package docs, API reference
|
|
120
|
-
| flydocs-estimates | estimate, cost, token usage, API cost, labor estimate, sizing, effort
|
|
121
|
-
| flydocs-figma | Figma, design, screenshot, token mapping, component from design, pixel-perfect, design system
|
|
122
|
-
| flydocs-local | create issue, transition, comment, list issues, assign, update description, status summary, local
|
|
123
|
-
| flydocs-workflow | capture, refine, activate, implement, review, validate, close, session, workflow, transition, status, issue
|
|
118
|
+
| Skill | Triggers | Entry |
|
|
119
|
+
| ----------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------- |
|
|
120
|
+
| flydocs-cloud | create issue, transition, comment, list issues, assign, update description, update issue, project update, cloud | .claude/skills/flydocs-cloud/SKILL.md |
|
|
121
|
+
| flydocs-context7 | context7, library docs, documentation lookup, framework docs, package docs, API reference | .claude/skills/flydocs-context7/SKILL.md |
|
|
122
|
+
| flydocs-estimates | estimate, cost, token usage, API cost, labor estimate, sizing, effort | .claude/skills/flydocs-estimates/SKILL.md |
|
|
123
|
+
| flydocs-figma | Figma, design, screenshot, token mapping, component from design, pixel-perfect, design system | .claude/skills/flydocs-figma/SKILL.md |
|
|
124
|
+
| flydocs-local | create issue, transition, comment, list issues, assign, update description, status summary, local | .claude/skills/flydocs-local/SKILL.md |
|
|
125
|
+
| 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 |
|
|
124
126
|
|
|
125
127
|
<!-- flydocs:skills-manifest:end -->
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: research-agent
|
|
3
3
|
description: "Codebase exploration and research. Invoke for understanding code structure, finding patterns, or gathering technical context."
|
|
4
|
-
model: sonnet
|
|
5
4
|
tools: [Read, Glob, Grep, WebFetch, WebSearch]
|
|
6
5
|
disallowedTools: [Bash, Write, Edit]
|
|
7
6
|
skills:
|
|
@@ -54,6 +54,32 @@ Ready to begin?
|
|
|
54
54
|
|
|
55
55
|
---
|
|
56
56
|
|
|
57
|
+
## Phase 0b: Import Previous Configuration (if applicable)
|
|
58
|
+
|
|
59
|
+
After detecting the scenario, check if `.flydocs/backup-originals/` exists.
|
|
60
|
+
This directory is created by the installer when it finds pre-existing config
|
|
61
|
+
files (`.claude/CLAUDE.md`, `.claude/settings.json`, `.cursor/hooks.json`,
|
|
62
|
+
`AGENTS.md`) before overwriting them with FlyDocs versions.
|
|
63
|
+
|
|
64
|
+
If the directory exists and contains files:
|
|
65
|
+
|
|
66
|
+
1. List the backed-up files and tell the user what was preserved.
|
|
67
|
+
2. Read the backed-up `.claude/CLAUDE.md` (if present).
|
|
68
|
+
3. Summarize what custom instructions, rules, or project-specific context it
|
|
69
|
+
contained.
|
|
70
|
+
4. Identify which rules are still relevant and worth preserving alongside
|
|
71
|
+
FlyDocs — focus on project-specific conventions, team standards, and custom
|
|
72
|
+
tool configurations.
|
|
73
|
+
5. Offer to add relevant rules to `flydocs/context/project.md` (Standards
|
|
74
|
+
section) or note them for the user to review.
|
|
75
|
+
6. Skip rules that conflict with or duplicate FlyDocs workflow rules (e.g.,
|
|
76
|
+
skill-led reasoning, mechanism scripts, session management).
|
|
77
|
+
|
|
78
|
+
This is agent-guided — review and suggest, let the user confirm. No automated
|
|
79
|
+
merging. If no backup directory exists, skip this phase silently.
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
57
83
|
## Phase 1: Project Definition
|
|
58
84
|
|
|
59
85
|
The goal is to fill every section of `flydocs/context/project.md` with real
|
|
@@ -262,34 +288,89 @@ may be useful:
|
|
|
262
288
|
> **Local tier:** Skip this phase entirely. Print: "Local tier — no provider
|
|
263
289
|
> setup needed. Issues will be stored in `flydocs/issues/`."
|
|
264
290
|
|
|
265
|
-
For cloud tier, connect
|
|
291
|
+
For cloud tier, connect via the FlyDocs Relay API:
|
|
266
292
|
|
|
267
293
|
**Step 1: Verify API key.**
|
|
268
294
|
|
|
269
|
-
Check that `
|
|
295
|
+
Check that `FLYDOCS_API_KEY` is set in the environment (from `.env` or
|
|
270
296
|
`.env.local`). If not:
|
|
271
297
|
|
|
272
298
|
```
|
|
273
|
-
|
|
274
|
-
LINEAR_API_KEY=lin_api_xxxxx
|
|
275
|
-
|
|
276
|
-
Get your key from: Linear → Settings → API → Personal API keys
|
|
299
|
+
FLYDOCS_API_KEY is not set. Run `flydocs connect` first to set up your API key.
|
|
277
300
|
```
|
|
278
301
|
|
|
279
302
|
Do not proceed until the key is available.
|
|
280
303
|
|
|
281
|
-
**Step 2:
|
|
304
|
+
**Step 2: Detect or select provider.**
|
|
305
|
+
|
|
306
|
+
Query connected providers:
|
|
307
|
+
|
|
308
|
+
```bash
|
|
309
|
+
python3 .claude/skills/flydocs-cloud/scripts/list_providers.py
|
|
310
|
+
```
|
|
311
|
+
|
|
312
|
+
This returns `[{type, name, connected}]`. Handle based on results:
|
|
313
|
+
|
|
314
|
+
- **One connected provider** — auto-select it and confirm with the user.
|
|
315
|
+
- **Multiple connected providers** — present a numbered list, let the user
|
|
316
|
+
choose which to use for this project.
|
|
317
|
+
- **No connected providers** — error: "No providers connected. Connect Linear
|
|
318
|
+
or Jira at app.flydocs.ai before running setup."
|
|
319
|
+
|
|
320
|
+
After selection, store the preference:
|
|
321
|
+
|
|
322
|
+
```bash
|
|
323
|
+
python3 .claude/skills/flydocs-cloud/scripts/set_provider.py <provider_type>
|
|
324
|
+
```
|
|
325
|
+
|
|
326
|
+
This stores the provider type on the relay (for routing) and updates
|
|
327
|
+
`provider.type` in local config.
|
|
328
|
+
|
|
329
|
+
**Step 3: Select or create team/project.**
|
|
330
|
+
|
|
331
|
+
> For Linear, this selects a team. For Jira, this selects a project. The relay
|
|
332
|
+
> normalizes both as "teams" in the API.
|
|
282
333
|
|
|
283
334
|
If `provider.teamId` in config is null, discover available teams:
|
|
284
335
|
|
|
285
336
|
```bash
|
|
286
|
-
python3 .claude/skills/flydocs-cloud/scripts/
|
|
337
|
+
python3 .claude/skills/flydocs-cloud/scripts/list_teams.py
|
|
287
338
|
```
|
|
288
339
|
|
|
289
|
-
Present the teams to the user
|
|
340
|
+
Present the teams to the user as a numbered list showing name and key.
|
|
341
|
+
Add a final option: **"Create a new team/project"**. If only one team exists,
|
|
290
342
|
confirm it.
|
|
291
343
|
|
|
292
|
-
|
|
344
|
+
If the user selects **"Create a new team/project"**:
|
|
345
|
+
|
|
346
|
+
1. Ask for team name (required) and key (optional — auto-generated if omitted)
|
|
347
|
+
2. **Linear only:** Ask if this should be a sub-team under an existing team
|
|
348
|
+
(show the list again for parent selection, or "None — top-level team").
|
|
349
|
+
For Jira, skip the parent option — Jira projects do not have a parent
|
|
350
|
+
hierarchy.
|
|
351
|
+
3. Create via:
|
|
352
|
+
|
|
353
|
+
```bash
|
|
354
|
+
python3 .claude/skills/flydocs-cloud/scripts/create_team.py --name "Team Name" [--key KEY] [--parent <parent_team_id>]
|
|
355
|
+
```
|
|
356
|
+
|
|
357
|
+
> The `--parent` flag is Linear-only (sub-teams). Omit for Jira.
|
|
358
|
+
|
|
359
|
+
After selection or creation, store the preference on the relay and in local
|
|
360
|
+
config:
|
|
361
|
+
|
|
362
|
+
```bash
|
|
363
|
+
python3 .claude/skills/flydocs-cloud/scripts/set_team.py <team_id>
|
|
364
|
+
```
|
|
365
|
+
|
|
366
|
+
This stores the team preference server-side (the relay uses it for all
|
|
367
|
+
team-scoped operations) and updates `provider.teamId` in local config.
|
|
368
|
+
For Jira, this sets the active Jira project.
|
|
369
|
+
|
|
370
|
+
**Step 4: Get or create project (Linear only).**
|
|
371
|
+
|
|
372
|
+
> **Jira provider:** Skip this step. Jira organizes issues directly within
|
|
373
|
+
> projects (selected in Step 3). There is no secondary project container.
|
|
293
374
|
|
|
294
375
|
Query existing projects:
|
|
295
376
|
|
|
@@ -304,30 +385,109 @@ create a new project:
|
|
|
304
385
|
python3 .claude/skills/flydocs-cloud/scripts/create_project.py --name "Project Name"
|
|
305
386
|
```
|
|
306
387
|
|
|
307
|
-
**Step
|
|
388
|
+
**Step 5: Configure labels.**
|
|
389
|
+
|
|
390
|
+
Fetch available labels from the provider:
|
|
391
|
+
|
|
392
|
+
```bash
|
|
393
|
+
python3 .claude/skills/flydocs-cloud/scripts/list_labels.py
|
|
394
|
+
```
|
|
395
|
+
|
|
396
|
+
**Auto-detect type mapping:** Scan the returned labels for common names
|
|
397
|
+
(case-insensitive match):
|
|
398
|
+
|
|
399
|
+
- "Feature" → `feature`
|
|
400
|
+
- "Bug" → `bug`
|
|
401
|
+
- "Chore" → `chore`
|
|
402
|
+
- "Improvement" → `idea`
|
|
403
|
+
|
|
404
|
+
Build a `typeMap` from the matches. Show the user the proposed mapping and
|
|
405
|
+
let them adjust. If no matches found, ask the user to map manually from the
|
|
406
|
+
available labels.
|
|
407
|
+
|
|
408
|
+
**Default labels:** Ask if there are labels that should be applied to every
|
|
409
|
+
new issue (e.g., a project-scope label like "app" or "core"). Present the
|
|
410
|
+
available labels as options.
|
|
411
|
+
|
|
412
|
+
Store the configuration on the relay:
|
|
413
|
+
|
|
414
|
+
```bash
|
|
415
|
+
python3 .claude/skills/flydocs-cloud/scripts/set_labels.py \
|
|
416
|
+
--defaults '["app"]' \
|
|
417
|
+
--type-map '{"feature":["Feature"],"bug":["Bug"],"chore":["Chore"],"idea":["Improvement"]}'
|
|
418
|
+
```
|
|
419
|
+
|
|
420
|
+
If the relay returns `LABELS_NOT_FOUND`, show the invalid names and ask the
|
|
421
|
+
user to correct them.
|
|
422
|
+
|
|
423
|
+
**Step 6: Configure status mapping.**
|
|
424
|
+
|
|
425
|
+
Map provider workflow states to FlyDocs statuses. Run auto-mapping first:
|
|
426
|
+
|
|
427
|
+
```bash
|
|
428
|
+
python3 .claude/skills/flydocs-cloud/scripts/set_status_mapping.py --auto
|
|
429
|
+
```
|
|
308
430
|
|
|
309
|
-
|
|
431
|
+
The relay auto-maps by case-insensitive name matching (e.g., "In Progress"
|
|
432
|
+
maps to `IMPLEMENTING`, "Done" maps to `COMPLETE`, "Backlog" maps to
|
|
433
|
+
`BACKLOG`).
|
|
310
434
|
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
435
|
+
**Review the result:** The response includes `matched` (number of statuses
|
|
436
|
+
successfully mapped) and `total` (total FlyDocs statuses). Show the user
|
|
437
|
+
the `mapping` object:
|
|
438
|
+
|
|
439
|
+
```
|
|
440
|
+
Status mapping (matched 6/10):
|
|
441
|
+
BACKLOG -> Backlog
|
|
442
|
+
READY -> Ready
|
|
443
|
+
IMPLEMENTING -> In Progress
|
|
444
|
+
REVIEW -> In Review
|
|
445
|
+
COMPLETE -> Done
|
|
446
|
+
CANCELED -> Canceled
|
|
447
|
+
```
|
|
448
|
+
|
|
449
|
+
If `matched < total`, some statuses are unmapped — **warn but don't block**.
|
|
450
|
+
Transitions for unmapped statuses will fall back to provider name matching.
|
|
451
|
+
If the user wants to fix unmapped statuses, fetch available provider states
|
|
452
|
+
and let them map manually:
|
|
453
|
+
|
|
454
|
+
```bash
|
|
455
|
+
python3 .claude/skills/flydocs-cloud/scripts/list_statuses.py
|
|
456
|
+
```
|
|
457
|
+
|
|
458
|
+
Then store the corrected mapping:
|
|
459
|
+
|
|
460
|
+
```bash
|
|
461
|
+
python3 .claude/skills/flydocs-cloud/scripts/set_status_mapping.py \
|
|
462
|
+
--mapping '{"BACKLOG":"Backlog","IMPLEMENTING":"In Progress","BLOCKED":"On Hold",...}'
|
|
463
|
+
```
|
|
464
|
+
|
|
465
|
+
**Step 7: Configure product identity.**
|
|
466
|
+
|
|
467
|
+
Ask about product metadata:
|
|
468
|
+
|
|
469
|
+
- **Product name** — how it appears in the provider (default: project name
|
|
470
|
+
from project.md)
|
|
315
471
|
- **Icon and color** — optional, ask if they have preferences
|
|
316
472
|
|
|
317
|
-
**Step
|
|
473
|
+
**Step 8: Save to config.**
|
|
318
474
|
|
|
319
475
|
Update `.flydocs/config.json`:
|
|
320
476
|
|
|
321
|
-
- `provider.
|
|
477
|
+
- `provider.type` — set by `set_provider.py`
|
|
478
|
+
- `provider.teamId` — selected team ID (set by `set_team.py`)
|
|
479
|
+
- `labels.defaults` — default label names (set by `set_labels.py`)
|
|
480
|
+
- `labels.typeMap` — type-to-label mapping (set by `set_labels.py`)
|
|
481
|
+
- `statusMapping` — FlyDocs-to-provider status mapping (set by `set_status_mapping.py`)
|
|
322
482
|
- `workspace.activeProjects` — add the project ID
|
|
323
483
|
- `workspace.product.name` — product name
|
|
324
|
-
- `issueLabels` — map label IDs if created
|
|
325
484
|
|
|
326
485
|
---
|
|
327
486
|
|
|
328
487
|
## Phase 3: Milestones — Cloud Only
|
|
329
488
|
|
|
330
489
|
> **Local tier:** Skip this phase entirely.
|
|
490
|
+
> **Jira provider:** Skip this phase. Milestone support for Jira is planned for a future release.
|
|
331
491
|
> **FlyDocs Update:** Skip if milestones already exist.
|
|
332
492
|
|
|
333
493
|
**Step 1: Check existing milestones.**
|
|
@@ -356,11 +516,11 @@ Let the user customize names, descriptions, and target dates.
|
|
|
356
516
|
|
|
357
517
|
**Step 4: Create milestones.**
|
|
358
518
|
|
|
359
|
-
For each approved milestone:
|
|
519
|
+
For each approved milestone, pass the project ID from Phase 2 Step 3:
|
|
360
520
|
|
|
361
521
|
```bash
|
|
362
522
|
python3 .claude/skills/flydocs-cloud/scripts/create_milestone.py \
|
|
363
|
-
--name "Phase 1: Foundation" --target-date YYYY-MM-DD
|
|
523
|
+
--name "Phase 1: Foundation" --project <project_id> --target-date YYYY-MM-DD
|
|
364
524
|
```
|
|
365
525
|
|
|
366
526
|
Record the milestone IDs for use in Phase 4.
|
|
@@ -388,16 +548,20 @@ For each work item, follow the capture procedure from
|
|
|
388
548
|
`.claude/skills/flydocs-workflow/stages/capture.md`:
|
|
389
549
|
|
|
390
550
|
- Determine type (feature, bug, chore, idea)
|
|
391
|
-
- Create via the mechanism script:
|
|
551
|
+
- Create via the mechanism script (cloud: pass `--project` from Phase 2 for
|
|
552
|
+
Linear; omit `--project` for Jira — issues are scoped to the team/project
|
|
553
|
+
selected in Phase 2 Step 3):
|
|
392
554
|
```bash
|
|
393
555
|
python3 .claude/skills/flydocs-{tier}/scripts/create_issue.py \
|
|
394
|
-
--title "Issue title" --type feature --priority 3 --estimate 2
|
|
556
|
+
--title "Issue title" --type feature --priority 3 --estimate 2 \
|
|
557
|
+
--project <project_id>
|
|
395
558
|
```
|
|
396
559
|
- For quick ideas, use `--triage` flag
|
|
397
560
|
|
|
398
|
-
**Step 3: Milestone assignment (
|
|
561
|
+
**Step 3: Milestone assignment (Linear only).**
|
|
399
562
|
|
|
400
563
|
> **Local tier:** Skip this step.
|
|
564
|
+
> **Jira provider:** Skip this step.
|
|
401
565
|
|
|
402
566
|
After creating issues, assign them to milestones:
|
|
403
567
|
|
|
@@ -548,8 +712,8 @@ Wrapping up:
|
|
|
548
712
|
|
|
549
713
|
**For cloud tier:**
|
|
550
714
|
|
|
551
|
-
-
|
|
552
|
-
-
|
|
715
|
+
- Provider project URL (if available from create_project response)
|
|
716
|
+
- For Linear: recommend reviewing milestones in Linear's UI for timeline view
|
|
553
717
|
|
|
554
718
|
**For local tier:**
|
|
555
719
|
|
|
@@ -576,20 +740,23 @@ Stage all new and modified FlyDocs files (`.flydocs/`, `.claude/`, `.cursor/`,
|
|
|
576
740
|
If the user declines, remind them to commit before starting work:
|
|
577
741
|
"No problem — just remember to commit these files before your first session."
|
|
578
742
|
|
|
579
|
-
### Step 5:
|
|
743
|
+
### Step 5: Community CTA
|
|
580
744
|
|
|
581
|
-
Always end with the
|
|
745
|
+
Always end with the community call-to-action:
|
|
582
746
|
|
|
583
747
|
```
|
|
584
748
|
─────────────────────────────────────────────────────
|
|
585
749
|
|
|
586
|
-
|
|
587
|
-
→
|
|
588
|
-
→
|
|
589
|
-
→
|
|
750
|
+
What's coming next:
|
|
751
|
+
→ Project management tool sync — Linear, Jira, and more
|
|
752
|
+
→ Web portal — project setup, team visibility, session analytics
|
|
753
|
+
→ Cost intelligence — AI usage tracking and spend analysis
|
|
754
|
+
|
|
755
|
+
Join the Discord for upcoming features, support, and early access to what's next.
|
|
756
|
+
Invite link:
|
|
757
|
+
https://discord.com/invite/YAkjePmZTQ
|
|
590
758
|
|
|
591
|
-
|
|
592
|
-
https://www.flydocs.ai?utm_source=cli&utm_medium=setup&utm_campaign=beta
|
|
759
|
+
Docs and updates: https://www.flydocs.ai
|
|
593
760
|
|
|
594
761
|
─────────────────────────────────────────────────────
|
|
595
762
|
```
|
|
@@ -604,7 +771,7 @@ Throughout the setup flow:
|
|
|
604
771
|
error message from stderr and ask the user how to proceed. Do not retry
|
|
605
772
|
silently.
|
|
606
773
|
- **Missing API key** — For cloud tier, cannot proceed past Phase 2 without
|
|
607
|
-
`
|
|
774
|
+
`FLYDOCS_API_KEY`. Guide the user to set it up.
|
|
608
775
|
- **Missing config** — If `.flydocs/config.json` doesn't exist, the user
|
|
609
776
|
likely needs to run `flydocs` (install) first. Advise them accordingly.
|
|
610
777
|
- **Partial completion** — If the user needs to stop mid-setup, note which
|