@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.
Files changed (74) hide show
  1. package/README.md +6 -0
  2. package/dist/cli.js +1553 -414
  3. package/package.json +1 -1
  4. package/template/.claude/CLAUDE.md +11 -9
  5. package/template/.claude/agents/implementation-agent.md +0 -1
  6. package/template/.claude/agents/pm-agent.md +0 -1
  7. package/template/.claude/agents/research-agent.md +0 -1
  8. package/template/.claude/agents/review-agent.md +0 -1
  9. package/template/.claude/commands/flydocs-setup.md +202 -35
  10. package/template/.claude/commands/flydocs-upgrade.md +342 -0
  11. package/template/.claude/commands/knowledge.md +61 -0
  12. package/template/.claude/skills/flydocs-cloud/SKILL.md +66 -39
  13. package/template/.claude/skills/flydocs-cloud/cursor-rule.mdc +5 -5
  14. package/template/.claude/skills/flydocs-cloud/scripts/assign.py +17 -27
  15. package/template/.claude/skills/flydocs-cloud/scripts/assign_cycle.py +14 -30
  16. package/template/.claude/skills/flydocs-cloud/scripts/assign_milestone.py +10 -32
  17. package/template/.claude/skills/flydocs-cloud/scripts/comment.py +15 -25
  18. package/template/.claude/skills/flydocs-cloud/scripts/create_issue.py +42 -59
  19. package/template/.claude/skills/flydocs-cloud/scripts/create_milestone.py +26 -37
  20. package/template/.claude/skills/flydocs-cloud/scripts/create_project.py +24 -31
  21. package/template/.claude/skills/flydocs-cloud/scripts/create_team.py +39 -0
  22. package/template/.claude/skills/flydocs-cloud/scripts/delete_milestone.py +21 -0
  23. package/template/.claude/skills/flydocs-cloud/scripts/estimate.py +17 -22
  24. package/template/.claude/skills/flydocs-cloud/scripts/flydocs_api.py +113 -169
  25. package/template/.claude/skills/flydocs-cloud/scripts/get_estimate_scale.py +23 -0
  26. package/template/.claude/skills/flydocs-cloud/scripts/get_issue.py +6 -59
  27. package/template/.claude/skills/flydocs-cloud/scripts/link.py +16 -35
  28. package/template/.claude/skills/flydocs-cloud/scripts/list_cycles.py +21 -28
  29. package/template/.claude/skills/flydocs-cloud/scripts/list_issues.py +16 -77
  30. package/template/.claude/skills/flydocs-cloud/scripts/list_labels.py +19 -0
  31. package/template/.claude/skills/flydocs-cloud/scripts/list_milestones.py +21 -33
  32. package/template/.claude/skills/flydocs-cloud/scripts/list_projects.py +24 -38
  33. package/template/.claude/skills/flydocs-cloud/scripts/list_providers.py +19 -0
  34. package/template/.claude/skills/flydocs-cloud/scripts/list_statuses.py +19 -0
  35. package/template/.claude/skills/flydocs-cloud/scripts/list_teams.py +19 -0
  36. package/template/.claude/skills/flydocs-cloud/scripts/priority.py +10 -19
  37. package/template/.claude/skills/flydocs-cloud/scripts/project_update.py +36 -50
  38. package/template/.claude/skills/flydocs-cloud/scripts/refresh_labels.py +87 -0
  39. package/template/.claude/skills/flydocs-cloud/scripts/set_identity.py +38 -0
  40. package/template/.claude/skills/flydocs-cloud/scripts/set_labels.py +68 -0
  41. package/template/.claude/skills/flydocs-cloud/scripts/set_preferences.py +49 -0
  42. package/template/.claude/skills/flydocs-cloud/scripts/set_provider.py +46 -0
  43. package/template/.claude/skills/flydocs-cloud/scripts/set_status_mapping.py +69 -0
  44. package/template/.claude/skills/flydocs-cloud/scripts/set_team.py +42 -0
  45. package/template/.claude/skills/flydocs-cloud/scripts/transition.py +11 -52
  46. package/template/.claude/skills/flydocs-cloud/scripts/update_description.py +16 -27
  47. package/template/.claude/skills/flydocs-cloud/scripts/update_issue.py +43 -54
  48. package/template/.claude/skills/flydocs-cloud/scripts/update_milestone.py +42 -0
  49. package/template/.claude/skills/flydocs-cloud/scripts/validate_setup.py +139 -0
  50. package/template/.claude/skills/flydocs-local/SKILL.md +1 -1
  51. package/template/.claude/skills/flydocs-local/scripts/assign.py +13 -4
  52. package/template/.claude/skills/flydocs-local/scripts/flydocs_api.py +5 -2
  53. package/template/.claude/skills/flydocs-workflow/SKILL.md +23 -18
  54. package/template/.claude/skills/flydocs-workflow/reference/comment-templates.md +1 -0
  55. package/template/.claude/skills/flydocs-workflow/reference/pr-workflow.md +105 -0
  56. package/template/.claude/skills/flydocs-workflow/reference/priority-estimates.md +37 -15
  57. package/template/.claude/skills/flydocs-workflow/session.md +24 -16
  58. package/template/.claude/skills/flydocs-workflow/stages/capture.md +8 -3
  59. package/template/.claude/skills/flydocs-workflow/stages/close.md +4 -3
  60. package/template/.claude/skills/flydocs-workflow/stages/implement.md +28 -4
  61. package/template/.claude/skills/flydocs-workflow/stages/refine.md +20 -4
  62. package/template/.claude/skills/flydocs-workflow/stages/review.md +14 -2
  63. package/template/.env.example +16 -7
  64. package/template/.flydocs/config.json +4 -18
  65. package/template/.flydocs/hooks/prompt-submit.py +27 -4
  66. package/template/.flydocs/version +1 -1
  67. package/template/AGENTS.md +8 -8
  68. package/template/CHANGELOG.md +183 -0
  69. package/template/flydocs/knowledge/INDEX.md +38 -53
  70. package/template/flydocs/knowledge/README.md +60 -9
  71. package/template/flydocs/knowledge/templates/decision.md +47 -0
  72. package/template/flydocs/knowledge/templates/feature.md +35 -0
  73. package/template/flydocs/knowledge/templates/note.md +25 -0
  74. package/template/manifest.json +12 -4
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flydocs/cli",
3
- "version": "0.5.0-beta.9",
3
+ "version": "0.6.0-alpha.10",
4
4
  "type": "module",
5
5
  "description": "FlyDocs AI CLI — install, setup, and manage FlyDocs projects",
6
6
  "bin": {
@@ -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` | Linear GraphQL API |
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 | Entry |
117
- | ----------------- | ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------- |
118
- | flydocs-cloud | create issue, transition, comment, list issues, assign, update description, update issue, project update, Linear, cloud | .claude/skills/flydocs-cloud/SKILL.md |
119
- | flydocs-context7 | context7, library docs, documentation lookup, framework docs, package docs, API reference | .claude/skills/flydocs-context7/SKILL.md |
120
- | flydocs-estimates | estimate, cost, token usage, API cost, labor estimate, sizing, effort | .claude/skills/flydocs-estimates/SKILL.md |
121
- | flydocs-figma | Figma, design, screenshot, token mapping, component from design, pixel-perfect, design system | .claude/skills/flydocs-figma/SKILL.md |
122
- | flydocs-local | create issue, transition, comment, list issues, assign, update description, status summary, local | .claude/skills/flydocs-local/SKILL.md |
123
- | flydocs-workflow | capture, refine, activate, implement, review, validate, close, session, workflow, transition, status, issue | .claude/skills/flydocs-workflow/SKILL.md |
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: implementation-agent
3
3
  description: "Builds features, fixes bugs, writes code. Invoke for implementation, coding, or technical work."
4
- model: opus
5
4
  tools: [Read, Glob, Grep, Bash, Write, Edit, WebFetch, WebSearch]
6
5
  skills:
7
6
  - flydocs-workflow
@@ -1,7 +1,6 @@
1
1
  ---
2
2
  name: pm-agent
3
3
  description: "Specs, workflow, issue management. Invoke for capturing, refining, activating, reviewing, closing, or session management."
4
- model: opus
5
4
  tools: [Read, Glob, Grep, Bash, WebFetch]
6
5
  disallowedTools: [Write, Edit]
7
6
  skills:
@@ -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:
@@ -1,7 +1,6 @@
1
1
  ---
2
2
  name: review-agent
3
3
  description: "Code review and quality analysis. Invoke for reviewing implementations, checking quality, or validating acceptance criteria."
4
- model: sonnet
5
4
  tools: [Read, Glob, Grep, Bash]
6
5
  disallowedTools: [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 to Linear:
291
+ For cloud tier, connect via the FlyDocs Relay API:
266
292
 
267
293
  **Step 1: Verify API key.**
268
294
 
269
- Check that `LINEAR_API_KEY` is set in the environment (from `.env` or
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
- LINEAR_API_KEY is not set. Add it to your .env file:
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: Select team.**
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/list_projects.py --all
337
+ python3 .claude/skills/flydocs-cloud/scripts/list_teams.py
287
338
  ```
288
339
 
289
- Present the teams to the user. Let them select. If only one team exists,
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
- **Step 3: Get or create project.**
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 4: Configure product identity.**
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
- Ask about product metadata for Linear:
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
- - **Product name** how it appears in Linear (default: project name from
312
- project.md)
313
- - **Labels** — auto-create category labels (feature, bug, chore, idea) and
314
- role labels (design, development, operations) if they don't exist
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 5: Save to config.**
473
+ **Step 8: Save to config.**
318
474
 
319
475
  Update `.flydocs/config.json`:
320
476
 
321
- - `provider.teamId` — selected team ID
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 (cloud only).**
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
- - Linear project URL (if available from create_project response)
552
- - Recommend reviewing milestones in Linear's UI for timeline view
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: Beta CTA
743
+ ### Step 5: Community CTA
580
744
 
581
- Always end with the beta call-to-action:
745
+ Always end with the community call-to-action:
582
746
 
583
747
  ```
584
748
  ─────────────────────────────────────────────────────
585
749
 
586
- FlyDocs is in active development. Premium features coming soon:
587
- Cloud sync with Linear, Jira, and more
588
- AI-powered skills and automation
589
- Team analytics and cost intelligence
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
- Join the beta for early access and updates:
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
- `LINEAR_API_KEY`. Guide the user to set it up.
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