@flydocs/cli 0.5.0-beta.6 → 0.5.0-beta.7
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 +295 -237
- package/package.json +1 -1
- package/template/.claude/agents/implementation-agent.md +1 -1
- package/template/.claude/agents/research-agent.md +1 -1
- package/template/.claude/commands/flydocs-setup.md +3 -3
- package/template/.claude/commands/flydocs-update.md +3 -4
- package/template/.claude/settings.json +0 -10
- package/template/.claude/skills/README.md +35 -41
- package/template/.cursor/hooks.json +0 -5
- package/template/.env.example +2 -1
- package/template/.flydocs/config.json +3 -8
- package/template/.flydocs/hooks/auto-approve.py +2 -2
- package/template/.flydocs/hooks/post-edit.py +13 -0
- package/template/.flydocs/templates/instructions.md +17 -69
- package/template/.flydocs/version +1 -1
- package/template/flydocs/README.md +36 -55
- package/template/flydocs/design-system/README.md +21 -13
- package/template/manifest.json +4 -17
- package/template/.cursor/mcp.json +0 -16
- package/template/.flydocs/hooks/prefer-scripts.py +0 -89
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: implementation-agent
|
|
3
3
|
description: "Builds features, fixes bugs, writes code. Invoke for implementation, coding, or technical work."
|
|
4
4
|
model: opus
|
|
5
|
-
tools: [Read, Glob, Grep, Bash, Write, Edit, WebFetch, WebSearch
|
|
5
|
+
tools: [Read, Glob, Grep, Bash, Write, Edit, WebFetch, WebSearch]
|
|
6
6
|
skills:
|
|
7
7
|
- flydocs-workflow
|
|
8
8
|
---
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: research-agent
|
|
3
3
|
description: "Codebase exploration and research. Invoke for understanding code structure, finding patterns, or gathering technical context."
|
|
4
4
|
model: sonnet
|
|
5
|
-
tools: [Read, Glob, Grep, WebFetch, WebSearch
|
|
5
|
+
tools: [Read, Glob, Grep, WebFetch, WebSearch]
|
|
6
6
|
disallowedTools: [Bash, Write, Edit]
|
|
7
7
|
skills:
|
|
8
8
|
- flydocs-workflow
|
|
@@ -177,7 +177,7 @@ offer updates.
|
|
|
177
177
|
**Step 0: Check for legacy context files.**
|
|
178
178
|
|
|
179
179
|
Before reading project.md, check if `flydocs/context/legacy/` exists. This
|
|
180
|
-
directory is created by
|
|
180
|
+
directory is created by the installer when it finds pre-v1.0 separate context
|
|
181
181
|
files (`overview.md`, `stack.md`, `standards.md`) and moves them there for
|
|
182
182
|
safe migration.
|
|
183
183
|
|
|
@@ -191,7 +191,7 @@ Consolidate into project.md using the same mapping as Phase 1M Step 2.
|
|
|
191
191
|
Show the user the merged result and confirm before writing.
|
|
192
192
|
|
|
193
193
|
After successful migration, delete the files from `legacy/` so the next
|
|
194
|
-
`
|
|
194
|
+
`flydocs update` run will clean up the empty directory.
|
|
195
195
|
|
|
196
196
|
**Step 1: Show what's new in this version.**
|
|
197
197
|
|
|
@@ -203,7 +203,7 @@ update:
|
|
|
203
203
|
```
|
|
204
204
|
Updated to FlyDocs v0.2.0. Here's what changed:
|
|
205
205
|
- Scenario-aware setup command with proactive doc scanning
|
|
206
|
-
- Deprecated file cleanup in
|
|
206
|
+
- Deprecated file cleanup in the installer
|
|
207
207
|
- Legacy context migration for pre-v1.0 projects
|
|
208
208
|
- Changelog and version tracking
|
|
209
209
|
```
|
|
@@ -7,10 +7,9 @@ Check for and apply FlyDocs updates to this project.
|
|
|
7
7
|
1. **Check current version** — read `.flydocs/version` and report it.
|
|
8
8
|
2. **Show changelog** — read `.flydocs/CHANGELOG.md` and summarize recent changes
|
|
9
9
|
since the installed version.
|
|
10
|
-
3. **Run update** — execute `flydocs update`
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
and user config in `.flydocs/config.json`.
|
|
10
|
+
3. **Run update** — execute `flydocs update` to update skills, commands, hooks,
|
|
11
|
+
and config to the latest version. Preserves project-specific content in
|
|
12
|
+
`flydocs/context/project.md` and user config in `.flydocs/config.json`.
|
|
14
13
|
4. **Post-update** — if version changed, suggest running `/flydocs-setup` to review
|
|
15
14
|
any new config options or migrate legacy content.
|
|
16
15
|
5. **Beta reminder** — always end with:
|
|
@@ -10,16 +10,6 @@
|
|
|
10
10
|
"timeout": 5
|
|
11
11
|
}
|
|
12
12
|
]
|
|
13
|
-
},
|
|
14
|
-
{
|
|
15
|
-
"matcher": "mcp__linear.*",
|
|
16
|
-
"hooks": [
|
|
17
|
-
{
|
|
18
|
-
"type": "command",
|
|
19
|
-
"command": "python3 \"$CLAUDE_PROJECT_DIR\"/.flydocs/hooks/prefer-scripts.py",
|
|
20
|
-
"timeout": 5
|
|
21
|
-
}
|
|
22
|
-
]
|
|
23
13
|
}
|
|
24
14
|
],
|
|
25
15
|
"PostToolUse": [
|
|
@@ -11,24 +11,16 @@
|
|
|
11
11
|
Owned and maintained by FlyDocs. May include executable scripts and premium
|
|
12
12
|
functionality gated via API relay.
|
|
13
13
|
|
|
14
|
-
| Skill
|
|
15
|
-
|
|
16
|
-
| `flydocs-workflow`
|
|
17
|
-
| `flydocs-local`
|
|
18
|
-
| `flydocs-cloud`
|
|
19
|
-
| `flydocs-figma`
|
|
20
|
-
| `flydocs-estimates` | Premium
|
|
14
|
+
| Skill | Category | Purpose |
|
|
15
|
+
| ------------------- | ---------------- | ------------------------------------------------------- |
|
|
16
|
+
| `flydocs-workflow` | Core | Lifecycle stages, session management, comment templates |
|
|
17
|
+
| `flydocs-local` | Mechanism (free) | File-based issue management |
|
|
18
|
+
| `flydocs-cloud` | Mechanism (paid) | Linear/provider issue management via API |
|
|
19
|
+
| `flydocs-figma` | Premium | Design extraction from Figma |
|
|
20
|
+
| `flydocs-estimates` | Premium | AI token/labor cost estimation |
|
|
21
21
|
|
|
22
22
|
Only one mechanism skill is active at a time. Determined by `tier` in `.flydocs/config.json`.
|
|
23
23
|
|
|
24
|
-
Supporting workflow skills (bundled, invoked via commands):
|
|
25
|
-
|
|
26
|
-
| Skill | Purpose | Trigger |
|
|
27
|
-
|-------|---------|---------|
|
|
28
|
-
| `implementation-flow` | Implementation procedure | `/implement` |
|
|
29
|
-
| `review-workflow` | Code review analysis | `/review` |
|
|
30
|
-
| `spec-templates` | Issue specification templates | `/capture`, `/refine` |
|
|
31
|
-
|
|
32
24
|
### Unprefixed — Community Skills
|
|
33
25
|
|
|
34
26
|
Stack-detected or manually installed. Pure guidance (markdown only, no scripts).
|
|
@@ -87,17 +79,17 @@ triggers:
|
|
|
87
79
|
|
|
88
80
|
**Required fields:**
|
|
89
81
|
|
|
90
|
-
| Field
|
|
91
|
-
|
|
92
|
-
| `name`
|
|
82
|
+
| Field | Type | Purpose |
|
|
83
|
+
| ------------- | ------ | ----------------------------------------------------------------------------------------------------------------- |
|
|
84
|
+
| `name` | string | Skill identifier, matches directory name |
|
|
93
85
|
| `description` | string | What the skill does and when to use it. Agents use this for auto-selection. Be specific about trigger conditions. |
|
|
94
86
|
|
|
95
87
|
**Optional fields:**
|
|
96
88
|
|
|
97
|
-
| Field
|
|
98
|
-
|
|
89
|
+
| Field | Type | Purpose |
|
|
90
|
+
| ---------- | -------- | ------------------------------------------------------------------------------------------------------------------------- |
|
|
99
91
|
| `triggers` | string[] | Keywords/phrases for manifest indexing. Used by skill discovery to build the always-present index in CLAUDE.md/AGENTS.md. |
|
|
100
|
-
| `tools`
|
|
92
|
+
| `tools` | string | Comma-separated tools the skill uses (e.g., `WebFetch`, `Bash`) |
|
|
101
93
|
|
|
102
94
|
### SKILL.md Body
|
|
103
95
|
|
|
@@ -112,13 +104,14 @@ IMPORTANT: Prefer skill-led reasoning over pre-training reasoning for
|
|
|
112
104
|
[domain]. Read the relevant section before acting.
|
|
113
105
|
|
|
114
106
|
## Key Rules (always apply)
|
|
107
|
+
|
|
115
108
|
1. Rule one
|
|
116
109
|
2. Rule two
|
|
117
110
|
|
|
118
111
|
## Section Index
|
|
119
112
|
|
|
120
|
-
| Topic
|
|
121
|
-
|
|
113
|
+
| Topic | File | When to Read |
|
|
114
|
+
| ------- | -------------------- | ------------ |
|
|
122
115
|
| Topic A | reference/topic-a.md | When doing X |
|
|
123
116
|
| Topic B | reference/topic-b.md | When doing Y |
|
|
124
117
|
|
|
@@ -154,11 +147,11 @@ This keeps context usage minimal while ensuring agents can always find relevant
|
|
|
154
147
|
|
|
155
148
|
**Line budgets:**
|
|
156
149
|
|
|
157
|
-
| File
|
|
158
|
-
|
|
159
|
-
| SKILL.md
|
|
150
|
+
| File | Target | Max |
|
|
151
|
+
| ---------------- | ---------------- | --------- |
|
|
152
|
+
| SKILL.md | 100-150 lines | 200 lines |
|
|
160
153
|
| reference/ files | 50-80 lines each | 120 lines |
|
|
161
|
-
| cursor-rule.mdc
|
|
154
|
+
| cursor-rule.mdc | 30-50 lines | 70 lines |
|
|
162
155
|
|
|
163
156
|
### Cursor Rules (cursor-rule.mdc)
|
|
164
157
|
|
|
@@ -171,16 +164,15 @@ description: Short description of what this rule covers
|
|
|
171
164
|
globs: "*.ts,*.tsx"
|
|
172
165
|
alwaysApply: false
|
|
173
166
|
---
|
|
174
|
-
|
|
175
167
|
<!-- Condensed from SKILL.md — update both when changing patterns -->
|
|
176
168
|
```
|
|
177
169
|
|
|
178
170
|
**Frontmatter fields:**
|
|
179
171
|
|
|
180
|
-
| Field
|
|
181
|
-
|
|
182
|
-
| `description` | string
|
|
183
|
-
| `globs`
|
|
172
|
+
| Field | Type | Notes |
|
|
173
|
+
| ------------- | ------- | ------------------------------------------------------- |
|
|
174
|
+
| `description` | string | Required. What the rule covers. |
|
|
175
|
+
| `globs` | string | File patterns that trigger the rule. Comma-separated. |
|
|
184
176
|
| `alwaysApply` | boolean | If `true`, rule loads for every prompt (use sparingly). |
|
|
185
177
|
|
|
186
178
|
Use `alwaysApply: true` only for workflow/process rules. Pattern skills should
|
|
@@ -195,14 +187,16 @@ CLAUDE.md and AGENTS.md between markers:
|
|
|
195
187
|
|
|
196
188
|
```markdown
|
|
197
189
|
<!-- flydocs:skills-manifest:start -->
|
|
190
|
+
|
|
198
191
|
## Skills Index
|
|
199
192
|
|
|
200
193
|
IMPORTANT: Prefer skill-led reasoning over pre-training reasoning.
|
|
201
194
|
|
|
202
|
-
| Skill
|
|
203
|
-
|
|
204
|
-
| flydocs-workflow
|
|
205
|
-
| typescript-strict | TypeScript, type error, any type
|
|
195
|
+
| Skill | Triggers | Entry |
|
|
196
|
+
| ----------------- | ---------------------------------- | ----------------------------------------- |
|
|
197
|
+
| flydocs-workflow | capture, refine, implement, review | .claude/skills/flydocs-workflow/SKILL.md |
|
|
198
|
+
| typescript-strict | TypeScript, type error, any type | .claude/skills/typescript-strict/SKILL.md |
|
|
199
|
+
|
|
206
200
|
<!-- flydocs:skills-manifest:end -->
|
|
207
201
|
```
|
|
208
202
|
|
|
@@ -278,11 +272,11 @@ script interface, making the backend swap transparent:
|
|
|
278
272
|
|
|
279
273
|
## Platform Support
|
|
280
274
|
|
|
281
|
-
| Platform
|
|
282
|
-
|
|
283
|
-
| Claude Code
|
|
284
|
-
| Cursor
|
|
285
|
-
| Codex / Others | `AGENTS.md`
|
|
275
|
+
| Platform | Skill Location | Notes |
|
|
276
|
+
| -------------- | --------------------- | -------------------------------- |
|
|
277
|
+
| Claude Code | `.claude/skills/` | Native support |
|
|
278
|
+
| Cursor | `.cursor/rules/*.mdc` | Generated from `cursor-rule.mdc` |
|
|
279
|
+
| Codex / Others | `AGENTS.md` | Universal layer via manifest |
|
|
286
280
|
|
|
287
281
|
---
|
|
288
282
|
|
package/template/.env.example
CHANGED
|
@@ -22,8 +22,9 @@
|
|
|
22
22
|
#
|
|
23
23
|
|
|
24
24
|
# ===========================================
|
|
25
|
-
#
|
|
25
|
+
# CLOUD TIER ONLY: Linear API Key
|
|
26
26
|
# ===========================================
|
|
27
|
+
# Only needed if you use cloud tier (tier: "cloud" in .flydocs/config.json)
|
|
27
28
|
# Get from: Linear → Settings → API → Personal API Keys
|
|
28
29
|
# Format: lin_api_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
|
29
30
|
LINEAR_API_KEY=
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "0.5.0-beta.
|
|
2
|
+
"version": "0.5.0-beta.7",
|
|
3
3
|
"sourceRepo": "github.com/plastrlab/flydocs-core",
|
|
4
|
-
"tier": "
|
|
4
|
+
"tier": "local",
|
|
5
5
|
"setupComplete": false,
|
|
6
6
|
"paths": {
|
|
7
7
|
"content": "flydocs"
|
|
8
8
|
},
|
|
9
9
|
"provider": {
|
|
10
|
-
"type":
|
|
10
|
+
"type": null,
|
|
11
11
|
"teamId": null
|
|
12
12
|
},
|
|
13
13
|
"workspace": {
|
|
@@ -46,11 +46,6 @@
|
|
|
46
46
|
"auth": [],
|
|
47
47
|
"styling": []
|
|
48
48
|
},
|
|
49
|
-
"mcp": {
|
|
50
|
-
"preferred": [],
|
|
51
|
-
"fallbackOnly": ["linear"],
|
|
52
|
-
"stackSpecific": {}
|
|
53
|
-
},
|
|
54
49
|
"skills": {
|
|
55
50
|
"installed": [],
|
|
56
51
|
"custom": []
|
|
@@ -19,9 +19,9 @@ import re
|
|
|
19
19
|
|
|
20
20
|
|
|
21
21
|
# Pattern matches any flydocs skill scripts directory
|
|
22
|
-
# Covers: flydocs-local, flydocs-cloud, flydocs-workflow
|
|
22
|
+
# Covers: flydocs-local, flydocs-cloud, flydocs-workflow, flydocs-context-graph
|
|
23
23
|
APPROVED_PATTERN = re.compile(
|
|
24
|
-
r'
|
|
24
|
+
r'python3?\s+(?:["\']?(?:\$CLAUDE_PROJECT_DIR|\$\{CLAUDE_PROJECT_DIR\}|\.)["\']?/)?\.?claude/skills/flydocs-(?:local|cloud|workflow|context-graph)/scripts/\w+\.py'
|
|
25
25
|
)
|
|
26
26
|
|
|
27
27
|
|
|
@@ -11,6 +11,7 @@ Exit codes:
|
|
|
11
11
|
"""
|
|
12
12
|
|
|
13
13
|
import json
|
|
14
|
+
import os
|
|
14
15
|
import subprocess
|
|
15
16
|
import sys
|
|
16
17
|
from pathlib import Path
|
|
@@ -59,6 +60,18 @@ def main() -> None:
|
|
|
59
60
|
print('{}')
|
|
60
61
|
sys.exit(0)
|
|
61
62
|
|
|
63
|
+
# Validate file_path is within project directory
|
|
64
|
+
project_dir = os.environ.get('CLAUDE_PROJECT_DIR', os.getcwd())
|
|
65
|
+
try:
|
|
66
|
+
resolved = os.path.realpath(file_path)
|
|
67
|
+
project_resolved = os.path.realpath(project_dir)
|
|
68
|
+
if not resolved.startswith(project_resolved + os.sep) and resolved != project_resolved:
|
|
69
|
+
print('{}')
|
|
70
|
+
sys.exit(0)
|
|
71
|
+
except (OSError, ValueError):
|
|
72
|
+
print('{}')
|
|
73
|
+
sys.exit(0)
|
|
74
|
+
|
|
62
75
|
# Get file extension and format
|
|
63
76
|
ext = get_file_extension(file_path)
|
|
64
77
|
format_file(file_path, ext)
|
|
@@ -22,8 +22,9 @@
|
|
|
22
22
|
<!-- Skills installed based on detected stack -->
|
|
23
23
|
|
|
24
24
|
{{#each skills}}
|
|
25
|
+
|
|
25
26
|
- `{{this}}` - See `.claude/skills/{{this}}/SKILL.md`
|
|
26
|
-
{{/each}}
|
|
27
|
+
{{/each}}
|
|
27
28
|
|
|
28
29
|
---
|
|
29
30
|
|
|
@@ -72,10 +73,10 @@ src/
|
|
|
72
73
|
|
|
73
74
|
<!-- Link to ADRs or explain key architectural choices -->
|
|
74
75
|
|
|
75
|
-
| Decision
|
|
76
|
-
|
|
76
|
+
| Decision | Rationale | Date |
|
|
77
|
+
| -------------------------------- | ---------------------------------------- | -------- |
|
|
77
78
|
| Use Server Components by default | Better performance, simpler mental model | {{date}} |
|
|
78
|
-
| Convex for real-time
|
|
79
|
+
| Convex for real-time | Built-in subscriptions, type safety | {{date}} |
|
|
79
80
|
|
|
80
81
|
---
|
|
81
82
|
|
|
@@ -105,59 +106,6 @@ async function Page() {
|
|
|
105
106
|
|
|
106
107
|
---
|
|
107
108
|
|
|
108
|
-
## MCP Configuration
|
|
109
|
-
|
|
110
|
-
<!-- Stack-specific MCP preferences for this project -->
|
|
111
|
-
|
|
112
|
-
### MCP Strategy
|
|
113
|
-
|
|
114
|
-
Configure in `.flydocs/config.json`:
|
|
115
|
-
|
|
116
|
-
```json
|
|
117
|
-
{
|
|
118
|
-
"mcp": {
|
|
119
|
-
"preferred": ["context7", "figma"],
|
|
120
|
-
"fallbackOnly": ["linear"],
|
|
121
|
-
"stackSpecific": {
|
|
122
|
-
"convex": {
|
|
123
|
-
"note": "Use Context7 for docs, CLI for schema changes"
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
```
|
|
129
|
-
|
|
130
|
-
- **preferred**: MCPs to use proactively (unique capabilities like Figma visuals, Context7 docs)
|
|
131
|
-
- **fallbackOnly**: MCPs with script alternatives (use scripts first, MCP if script fails)
|
|
132
|
-
- **stackSpecific**: Per-stack notes and usage guidance
|
|
133
|
-
|
|
134
|
-
### Stack-Specific MCP Notes
|
|
135
|
-
|
|
136
|
-
<!-- Uncomment and customize for your stack -->
|
|
137
|
-
|
|
138
|
-
<!--
|
|
139
|
-
#### Convex
|
|
140
|
-
- Use Context7 MCP for Convex API documentation
|
|
141
|
-
- Prefer `convex dev` CLI for schema changes over direct mutations
|
|
142
|
-
- Query patterns: Use `.collect()` for small datasets, pagination for large
|
|
143
|
-
-->
|
|
144
|
-
|
|
145
|
-
<!--
|
|
146
|
-
#### Supabase
|
|
147
|
-
- Use Supabase MCP for database operations when available
|
|
148
|
-
- Prefer RLS policies over application-level auth checks
|
|
149
|
-
- Use database functions for complex operations
|
|
150
|
-
-->
|
|
151
|
-
|
|
152
|
-
<!--
|
|
153
|
-
#### Firebase
|
|
154
|
-
- Use Firebase MCP for Firestore operations
|
|
155
|
-
- Prefer security rules over client-side validation
|
|
156
|
-
- Use batch operations for multiple writes
|
|
157
|
-
-->
|
|
158
|
-
|
|
159
|
-
---
|
|
160
|
-
|
|
161
109
|
## Skill Overrides
|
|
162
110
|
|
|
163
111
|
<!-- Override specific skill recommendations for this project -->
|
|
@@ -168,7 +116,7 @@ Configure in `.flydocs/config.json`:
|
|
|
168
116
|
|
|
169
117
|
```typescript
|
|
170
118
|
// This project uses shorter cache times due to real-time requirements
|
|
171
|
-
cacheLife(
|
|
119
|
+
cacheLife("seconds"); // Instead of skill default 'hours'
|
|
172
120
|
```
|
|
173
121
|
|
|
174
122
|
### convex
|
|
@@ -181,7 +129,7 @@ defineTable({
|
|
|
181
129
|
// ... fields
|
|
182
130
|
createdAt: v.number(),
|
|
183
131
|
updatedAt: v.number(),
|
|
184
|
-
createdBy: v.optional(v.id(
|
|
132
|
+
createdBy: v.optional(v.id("users")),
|
|
185
133
|
});
|
|
186
134
|
```
|
|
187
135
|
|
|
@@ -191,11 +139,11 @@ defineTable({
|
|
|
191
139
|
|
|
192
140
|
<!-- Document required env vars for this project -->
|
|
193
141
|
|
|
194
|
-
| Variable
|
|
195
|
-
|
|
196
|
-
| `DATABASE_URL`
|
|
197
|
-
| `NEXT_PUBLIC_API_URL` | Public API endpoint
|
|
198
|
-
| `AUTH_SECRET`
|
|
142
|
+
| Variable | Purpose | Required |
|
|
143
|
+
| --------------------- | ----------------------- | -------- |
|
|
144
|
+
| `DATABASE_URL` | Database connection | Yes |
|
|
145
|
+
| `NEXT_PUBLIC_API_URL` | Public API endpoint | Yes |
|
|
146
|
+
| `AUTH_SECRET` | Auth session encryption | Yes |
|
|
199
147
|
|
|
200
148
|
---
|
|
201
149
|
|
|
@@ -208,10 +156,10 @@ defineTable({
|
|
|
208
156
|
// Test location: Co-located with source files
|
|
209
157
|
|
|
210
158
|
// Example test structure
|
|
211
|
-
describe(
|
|
212
|
-
it(
|
|
159
|
+
describe("UserService", () => {
|
|
160
|
+
it("creates a user with valid data", async () => {
|
|
213
161
|
// Arrange
|
|
214
|
-
const input = { name:
|
|
162
|
+
const input = { name: "Test", email: "test@example.com" };
|
|
215
163
|
|
|
216
164
|
// Act
|
|
217
165
|
const result = await createUser(input);
|
|
@@ -224,5 +172,5 @@ describe('UserService', () => {
|
|
|
224
172
|
|
|
225
173
|
---
|
|
226
174
|
|
|
227
|
-
|
|
228
|
-
|
|
175
|
+
_Last updated: {{date}}_
|
|
176
|
+
_FlyDocs version: 6.3.0_
|
|
@@ -1 +1 @@
|
|
|
1
|
-
0.5.0-beta.
|
|
1
|
+
0.5.0-beta.7
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
# FlyDocs
|
|
1
|
+
# FlyDocs
|
|
2
2
|
|
|
3
|
-
This project uses FlyDocs
|
|
4
|
-
|
|
3
|
+
This project uses FlyDocs - a hybrid workflow where:
|
|
4
|
+
|
|
5
|
+
- **Work items (specs)** live in your issue tracker (local files or cloud provider)
|
|
5
6
|
- **Project understanding** lives locally in this directory
|
|
6
7
|
- **Framework config, rules & templates** live in `.flydocs/`
|
|
7
8
|
|
|
@@ -12,6 +13,7 @@ This project uses FlyDocs Cloud - a hybrid workflow where:
|
|
|
12
13
|
**This `flydocs/` directory is your project's evolving knowledge base.**
|
|
13
14
|
|
|
14
15
|
It grows alongside your project:
|
|
16
|
+
|
|
15
17
|
- Update `context/` as your vision, stack, and standards evolve
|
|
16
18
|
- Add to `knowledge/` as you make decisions and learn things
|
|
17
19
|
- Expand `patterns/` as you discover project-specific conventions
|
|
@@ -25,7 +27,7 @@ FlyDocs will **never overwrite** these files during updates - they're yours to m
|
|
|
25
27
|
|
|
26
28
|
```
|
|
27
29
|
.flydocs/ # FRAMEWORK (replaced on FlyDocs update)
|
|
28
|
-
├── config.json #
|
|
30
|
+
├── config.json # Tier, provider settings, workspace config
|
|
29
31
|
├── version # For upgrade detection
|
|
30
32
|
├── rules/ # Workflow rules
|
|
31
33
|
├── scripts/ # Automation scripts
|
|
@@ -34,9 +36,7 @@ FlyDocs will **never overwrite** these files during updates - they're yours to m
|
|
|
34
36
|
|
|
35
37
|
flydocs/ # PROJECT CONTENT (evolves with project)
|
|
36
38
|
├── context/ # Project fundamentals
|
|
37
|
-
│ ├──
|
|
38
|
-
│ ├── stack.md # Tech stack, architecture (update as it changes)
|
|
39
|
-
│ ├── standards.md # Code conventions (update as they mature)
|
|
39
|
+
│ ├── project.md # Vision, stack, scope (update as it evolves)
|
|
40
40
|
│ └── patterns/ # Project-specific patterns (grow over time)
|
|
41
41
|
│
|
|
42
42
|
├── design-system/ # Design tokens (if using /design-setup)
|
|
@@ -59,19 +59,11 @@ flydocs/ # PROJECT CONTENT (evolves with project)
|
|
|
59
59
|
└── hooks.json # Cursor hooks
|
|
60
60
|
|
|
61
61
|
.claude/ # Claude Code integration
|
|
62
|
+
├── CLAUDE.md # Claude Code instructions
|
|
62
63
|
├── agents/ # Subagent definitions
|
|
63
64
|
├── skills/ # Workflow skills
|
|
65
|
+
├── commands/ # Slash commands
|
|
64
66
|
└── settings.json # Claude hooks
|
|
65
|
-
│ ├── pm-agent/RULE.md # Planning triggers
|
|
66
|
-
│ ├── implementation-agent/RULE.md # Build triggers
|
|
67
|
-
│ ├── qe-agent/RULE.md # Testing triggers
|
|
68
|
-
│ ├── linear-integration/RULE.md
|
|
69
|
-
│ └── ...
|
|
70
|
-
└── commands/ # Slash commands
|
|
71
|
-
|
|
72
|
-
.claude/
|
|
73
|
-
├── CLAUDE.md # Claude Code instructions
|
|
74
|
-
└── commands/ # Symlinks to .cursor/commands/
|
|
75
67
|
```
|
|
76
68
|
|
|
77
69
|
**Note:** Content folder name is configurable via `paths.content` in `.flydocs/config.json`.
|
|
@@ -82,51 +74,38 @@ flydocs/ # PROJECT CONTENT (evolves with project)
|
|
|
82
74
|
|
|
83
75
|
### LOCAL (This Directory)
|
|
84
76
|
|
|
85
|
-
| Content
|
|
86
|
-
|
|
87
|
-
| Project overview | `context/
|
|
88
|
-
|
|
|
89
|
-
|
|
|
90
|
-
|
|
|
91
|
-
|
|
|
92
|
-
| Notes | `knowledge/notes/` | Learnings, gotchas |
|
|
93
|
-
| Product docs | `knowledge/product/` | Personas, user flows |
|
|
77
|
+
| Content | Location | Purpose |
|
|
78
|
+
| ---------------- | ---------------------- | -------------------- |
|
|
79
|
+
| Project overview | `context/project.md` | Vision, goals, scope |
|
|
80
|
+
| ADRs | `knowledge/decisions/` | Why we made choices |
|
|
81
|
+
| Feature docs | `knowledge/features/` | How features work |
|
|
82
|
+
| Notes | `knowledge/notes/` | Learnings, gotchas |
|
|
83
|
+
| Product docs | `knowledge/product/` | Personas, user flows |
|
|
94
84
|
|
|
95
85
|
**Why local?** Agent needs instant access, changes with code, developers need it in IDE.
|
|
96
86
|
|
|
97
|
-
###
|
|
87
|
+
### ISSUE TRACKER (Local or Cloud)
|
|
98
88
|
|
|
99
|
-
| Content
|
|
100
|
-
|
|
101
|
-
| Specs
|
|
102
|
-
| Status
|
|
103
|
-
| Priorities
|
|
104
|
-
| Assignments |
|
|
105
|
-
|
|
|
106
|
-
| Progress | Comments | Decision log, impl notes |
|
|
89
|
+
| Content | Purpose |
|
|
90
|
+
| ----------- | ---------------------------------- |
|
|
91
|
+
| Specs | Features, bugs, chores, ideas |
|
|
92
|
+
| Status | BACKLOG → DONE progression |
|
|
93
|
+
| Priorities | Urgent, High, Medium, Low |
|
|
94
|
+
| Assignments | Who's working on what |
|
|
95
|
+
| Progress | Decision log, implementation notes |
|
|
107
96
|
|
|
108
|
-
**
|
|
109
|
-
|
|
110
|
-
---
|
|
111
|
-
|
|
112
|
-
## No Longer Exists
|
|
113
|
-
|
|
114
|
-
These are **replaced by Linear**:
|
|
115
|
-
|
|
116
|
-
- ~~`flydocs/specs/`~~ → Linear issues
|
|
117
|
-
- ~~`flydocs/INDEX.md`~~ → Linear issue list
|
|
118
|
-
- ~~`flydocs/ACTIVE.md`~~ → Linear "In Progress" view
|
|
119
|
-
- ~~`flydocs/specs/assets/`~~ → Linear attachments
|
|
97
|
+
**Local tier:** Issues stored as files in `flydocs/issues/`.
|
|
98
|
+
**Cloud tier:** Issues stored in your provider (e.g., Linear). Enables team collaboration, stakeholder visibility, and AI agent integration.
|
|
120
99
|
|
|
121
100
|
---
|
|
122
101
|
|
|
123
102
|
## Quick Commands
|
|
124
103
|
|
|
125
104
|
```
|
|
126
|
-
/start-session - Check
|
|
127
|
-
/capture - Create new
|
|
128
|
-
/new-project - Create project with product label/icon
|
|
129
|
-
/implement - Pick up issue
|
|
105
|
+
/start-session - Check issue status, plan work
|
|
106
|
+
/capture - Create new issue
|
|
107
|
+
/new-project - Create project with product label/icon (cloud tier)
|
|
108
|
+
/implement - Pick up issue for implementation
|
|
130
109
|
/validate - Test implementation
|
|
131
110
|
/close - Move issue to Done
|
|
132
111
|
/flydocs-update - Sync rules from source repo
|
|
@@ -144,10 +123,12 @@ If you have a Figma design system with tokens, run `/design-setup` to enable enh
|
|
|
144
123
|
```
|
|
145
124
|
|
|
146
125
|
This creates:
|
|
126
|
+
|
|
147
127
|
- `flydocs/design-system/token-mapping.md` - Your Figma → code translations
|
|
148
128
|
- `flydocs/design-system/component-patterns.md` - Your reusable components
|
|
149
129
|
|
|
150
130
|
And updates `.flydocs/config.json` with:
|
|
131
|
+
|
|
151
132
|
```json
|
|
152
133
|
{
|
|
153
134
|
"designSystem": {
|
|
@@ -168,15 +149,15 @@ And updates `.flydocs/config.json` with:
|
|
|
168
149
|
## Configuration
|
|
169
150
|
|
|
170
151
|
See `.flydocs/config.json` for:
|
|
152
|
+
|
|
171
153
|
- FlyDocs version
|
|
154
|
+
- `tier` - "local" (free) or "cloud" (connected to provider)
|
|
172
155
|
- `paths.content` - This folder name (default: "flydocs")
|
|
173
|
-
- `provider.
|
|
174
|
-
- `workspace.activeProjects` - Array of active project IDs
|
|
156
|
+
- `provider.type` - Issue tracker provider (null for local, "linear" for cloud)
|
|
157
|
+
- `workspace.activeProjects` - Array of active project IDs (cloud tier)
|
|
175
158
|
- `workspace.product` - Product identity (name, labelIds, icon, color)
|
|
176
159
|
- `statusMapping` - Workflow state names
|
|
177
160
|
|
|
178
|
-
See `.cursor/mcp.json` for MCP server configuration.
|
|
179
|
-
|
|
180
161
|
---
|
|
181
162
|
|
|
182
163
|
## More Information
|