@flydocs/cli 0.5.0-beta.6 → 0.5.0-beta.8

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.
@@ -7,9 +7,62 @@ Versioning: [Semantic Versioning](https://semver.org/).
7
7
 
8
8
  ---
9
9
 
10
+ ## [0.5.0-beta.8] — 2026-02-22
11
+
12
+ ### Added
13
+
14
+ - **Context7 documentation skill** (`flydocs-context7`) — stdlib-only Python script
15
+ that calls the Context7 REST API to fetch up-to-date library documentation.
16
+ Replaces the removed Context7 MCP with a skill+script pattern.
17
+ - `context7.py search <library> [query]` — resolve library name to Context7 ID
18
+ - `context7.py docs <library_id> <query>` — fetch relevant documentation snippets
19
+ - Works without API key (anonymous, ~1,000 calls/month); optional
20
+ `CONTEXT7_API_KEY` in `.env` for higher rate limits
21
+ - Auto-approved by hook for seamless agent invocation
22
+ - Cursor rule included for cross-IDE support
23
+ - **Context7 API key** in `.env.example` — optional configuration for higher rate limits
24
+
25
+ ### Fixed
26
+
27
+ - `.env.example` — corrected "Figma MCP" reference to "flydocs-figma skill"
28
+
29
+ ## [0.5.0-beta.7] — 2026-02-22
30
+
31
+ ### Removed
32
+
33
+ - **All MCP references** — removed `.cursor/mcp.json`, `prefer-scripts.py` hook,
34
+ MCP config preservation in update flow, MCP section in instructions template.
35
+ Skills fully replace MCPs as the FlyDocs architecture.
36
+ - **Phantom skills** — removed references to `implementation-flow`, `review-workflow`,
37
+ `spec-templates` skills that were never shipped.
38
+
39
+ ### Fixed
40
+
41
+ - **Command injection** (`connect.ts`) — replaced `execSync` subprocess with native
42
+ `fetch()` for Linear API key validation.
43
+ - **Version comparison** — pre-release versions (e.g. `0.5.0-beta.3`) now compare
44
+ correctly instead of returning NaN.
45
+ - **Auto-approve hook** — tightened regex to anchor script paths, preventing potential
46
+ pattern-matching bypasses.
47
+ - **Post-edit hook** — added path traversal validation using `os.path.realpath()`.
48
+ - **Post-install scripts** — switched from `execSync` to `execFileSync` for subprocess safety.
49
+
50
+ ### Changed
51
+
52
+ - **Stack detection** — now reads `flydocs/context/project.md` in addition to
53
+ `package.json` for declared stack frameworks.
54
+ - **Community skills on update** — filters already-installed skills before prompting.
55
+ - **Cloud exposure** — `.env.example` marked as cloud tier only, `flydocs/README.md`
56
+ rewritten as tier-generic, config defaults changed to `tier: "local"`.
57
+ - **Deprecated cleanup** — `.cursor/mcp.json` and `prefer-scripts.py` added to
58
+ deprecated files list for automatic cleanup on update.
59
+
60
+ ---
61
+
10
62
  ## [0.4.0] — 2026-02-18
11
63
 
12
64
  ### Added
65
+
13
66
  - **Context Graph skill** (`flydocs-context-graph`) — relationship-aware knowledge
14
67
  graph that connects skills, ADRs, issues, modules, and sessions. Implemented as
15
68
  ADR-006 across five phases:
@@ -32,12 +85,14 @@ Versioning: [Semantic Versioning](https://semver.org/).
32
85
  graph automatically.
33
86
 
34
87
  ### Changed
88
+
35
89
  - **Session wrap procedure** — `session.md` now includes a step to record session
36
90
  outcomes in the context graph via `graph_session.py`. Skips silently if not installed.
37
91
  - **Session staleness policy** — session nodes within 7 days get full weight, linear
38
92
  decay to 30 days, then excluded from context.
39
93
 
40
94
  ### Migration
95
+
41
96
  - **`.gitignore` update** — `flydocs/context/graph.json` is automatically added to
42
97
  `.gitignore` during update if missing. The graph is gitignored because it contains
43
98
  session-specific data and can be rebuilt from sources.
@@ -47,6 +102,7 @@ Versioning: [Semantic Versioning](https://semver.org/).
47
102
  ## [0.3.10] — 2026-02-17
48
103
 
49
104
  ### Fixed
105
+
50
106
  - **API null data crash** (FLY-178) — `flydocs_api.py` now normalizes `null` data
51
107
  responses to empty dict before returning. Fixes `AttributeError` crashes in all
52
108
  20+ scripts when Linear returns API errors. `create_issue.py` also retries without
@@ -65,6 +121,7 @@ Versioning: [Semantic Versioning](https://semver.org/).
65
121
  ## [0.3.9] — 2026-02-17
66
122
 
67
123
  ### Added
124
+
68
125
  - **Skill search and install CLI** (ENG-443) — `flydocs skills` subcommand with
69
126
  `search`, `add`, `remove`, and `list` operations. Search the curated community
70
127
  skills catalog, install from known names or GitHub repo references, and manage
@@ -81,6 +138,7 @@ Versioning: [Semantic Versioning](https://semver.org/).
81
138
  ## [0.3.8] — 2026-02-14
82
139
 
83
140
  ### Added
141
+
84
142
  - **`create_issue.py --description-file` and stdin** — both cloud and local tiers now
85
143
  accept `--description-file PATH` or piped stdin for issue descriptions. Eliminates
86
144
  the two-step create + update_description workaround for long descriptions.
@@ -92,6 +150,7 @@ Versioning: [Semantic Versioning](https://semver.org/).
92
150
  ## [0.3.7] — 2026-02-11
93
151
 
94
152
  ### Added
153
+
95
154
  - **Skill manifest generator** (ENG-442) — `generate_manifest.py` scans SKILL.md
96
155
  frontmatter and produces a compressed skills index table. Injected into CLAUDE.md
97
156
  and AGENTS.md between `<!-- flydocs:skills-manifest -->` markers. Bridges skill
@@ -104,12 +163,14 @@ Versioning: [Semantic Versioning](https://semver.org/).
104
163
  ## [0.3.6] — 2026-02-10
105
164
 
106
165
  ### Added
166
+
107
167
  - **Milestone, project, and dueDate in issue output** — `list_issues.py` now returns
108
168
  `milestone`, `milestoneId`, `milestoneSortOrder`, `project`, `projectId`, and `dueDate`
109
169
  for every issue. `get_issue.py` returns the same fields (minus `milestoneSortOrder`).
110
170
  Enables milestone-grouped dashboards and priority-based session planning.
111
171
 
112
172
  ### Changed
173
+
113
174
  - **Session start workflow rewritten** — `session.md` now instructs agents to group issues
114
175
  by milestone (in milestone order), identify the current milestone, suggest a starting point
115
176
  based on priority cascade (blocked → in-progress → due soon → highest priority in current
@@ -117,6 +178,7 @@ Versioning: [Semantic Versioning](https://semver.org/).
117
178
  the product scope.
118
179
 
119
180
  ### Fixed
181
+
120
182
  - **`create_milestone.py` missing projectId** — `ProjectMilestoneCreateInput` requires a
121
183
  `projectId`. Script now defaults to first `activeProject` from config, with `--project`
122
184
  flag to override.
@@ -126,10 +188,12 @@ Versioning: [Semantic Versioning](https://semver.org/).
126
188
  ## [0.3.5] — 2026-02-10
127
189
 
128
190
  ### Added
191
+
129
192
  - **`list_projects.py` product scope** (ENG-475) — now respects `workspace.activeProjects`
130
193
  config. `--all` bypasses product scope to show all team projects.
131
194
 
132
195
  ### Fixed
196
+
133
197
  - **`list_projects.py` 400 error** (ENG-474) — state filter was using nested
134
198
  `{type: {nin: [...]}}` instead of direct `StringComparator` `{nin: [...]}`.
135
199
  Both `--active` (started only) and default (excludes completed/canceled) now work.
@@ -143,6 +207,7 @@ Versioning: [Semantic Versioning](https://semver.org/).
143
207
  ## [0.3.4] — 2026-02-10
144
208
 
145
209
  ### Added
210
+
146
211
  - **`list_issues.py --milestone` filter** — filter issues by project milestone ID.
147
212
  Get milestone IDs from `list_milestones.py`, then pass to `list_issues.py --milestone <ID>`
148
213
  to see all issues within a specific milestone.
@@ -152,6 +217,7 @@ Versioning: [Semantic Versioning](https://semver.org/).
152
217
  ## [0.3.3] — 2026-02-10
153
218
 
154
219
  ### Fixed
220
+
155
221
  - **Shell escaping in `update_description.py`** — descriptions with apostrophes,
156
222
  parentheses, quotes, and other shell metacharacters no longer break when passed
157
223
  via `--text`. Scripts now accept stdin as input, allowing safe heredoc piping:
@@ -164,6 +230,7 @@ Versioning: [Semantic Versioning](https://semver.org/).
164
230
  ## [0.3.2] — 2026-02-09
165
231
 
166
232
  ### Fixed
233
+
167
234
  - **API connection reliability** — reduced socket timeout from 30s to 10s and increased
168
235
  max retries from 3 to 5. Resolves intermittent hangs caused by DNS returning unreachable
169
236
  Cloudflare edge IPs. Scripts now fail over to a working IP within seconds instead of
@@ -176,11 +243,13 @@ Versioning: [Semantic Versioning](https://semver.org/).
176
243
  ## [0.3.1] — 2026-02-08
177
244
 
178
245
  ### Fixed
246
+
179
247
  - **`list_issues.py` product scope** — scoping via `activeProjects` and `product.labelIds`
180
248
  now applies regardless of `--active` or `--status` flags. Previously, these flags
181
249
  bypassed product scope entirely, returning all team issues.
182
250
 
183
251
  ### Added
252
+
184
253
  - **`build_product_scope()` API helper** — new method on `FlyDocsClient` implements the
185
254
  product scope cascade: `activeProjects` → `product.labelIds` → team-wide.
186
255
  - **Multiple `activeProjects` support** — `list_issues.py` now uses OR logic when
@@ -193,6 +262,7 @@ Versioning: [Semantic Versioning](https://semver.org/).
193
262
  ## [0.3.0] — 2026-02-08
194
263
 
195
264
  ### Added
265
+
196
266
  - **`update_issue.py` bulk update script** — set multiple fields (priority, estimate,
197
267
  assignee, state, description, comment) in a single API call instead of separate scripts.
198
268
  - **`list_issues.py --active` flag** — returns all non-terminal issues (excludes Done,
@@ -204,12 +274,14 @@ Versioning: [Semantic Versioning](https://semver.org/).
204
274
  cached within each script invocation to reduce redundant API calls.
205
275
 
206
276
  ### Changed
277
+
207
278
  - **`transition.py` optimized** — combined state update and cycle assignment into a
208
279
  single `issueUpdate` mutation (was two separate calls for IMPLEMENTING transitions).
209
280
  - **Session start efficiency** — single `list_issues.py --active` call replaces
210
281
  per-status queries. Issues grouped by status in response.
211
282
 
212
283
  ### Removed
284
+
213
285
  - **`status_summary.py`** — retired from cloud mechanism. Use `list_issues.py --active`
214
286
  and group results by the status field instead.
215
287
 
@@ -218,6 +290,7 @@ Versioning: [Semantic Versioning](https://semver.org/).
218
290
  ## [0.2.1] — 2026-02-07
219
291
 
220
292
  ### Fixed
293
+
221
294
  - **Commands not fully populating** — changed from additive `cp` to clear-then-copy
222
295
  for `.claude/commands/` and `.cursor/commands/` directories.
223
296
  - **`docflow-core.mdc` not cleaned up** — added to deprecated cursor rules list.
@@ -227,6 +300,7 @@ Versioning: [Semantic Versioning](https://semver.org/).
227
300
  synced with version file.
228
301
 
229
302
  ### Added
303
+
230
304
  - **`--force` flag** — force update even when versions match.
231
305
  - **Old cursor rule directories and commands** added to deprecated cleanup.
232
306
 
@@ -235,6 +309,7 @@ Versioning: [Semantic Versioning](https://semver.org/).
235
309
  ## [0.2.0] — 2026-02-06
236
310
 
237
311
  ### Added
312
+
238
313
  - **Scenario-aware setup command** — `/flydocs-setup` rewritten as a comprehensive
239
314
  agent prompt handling three scenarios: New Project, DocFlow Migration, FlyDocs Update.
240
315
  Includes proactive repo scanning for PRDs and existing documentation.
@@ -247,10 +322,12 @@ Versioning: [Semantic Versioning](https://semver.org/).
247
322
  pre-v1.0 artifacts: old skills, rules, hooks, and cursor rules.
248
323
 
249
324
  ### Changed
325
+
250
326
  - **Version file synced with manifest** — `.flydocs/version` now matches
251
327
  `manifest.json` version field (was out of sync in 0.1.0).
252
328
 
253
329
  ### Removed
330
+
254
331
  - Orphaned hook scripts: `session-end.py`, `linear-auto-approve.py`
255
332
 
256
333
  ---
@@ -258,6 +335,7 @@ Versioning: [Semantic Versioning](https://semver.org/).
258
335
  ## [0.1.0] — 2026-01-15
259
336
 
260
337
  ### Added
338
+
261
339
  - Initial release of FlyDocs Core
262
340
  - Workflow skill (`flydocs-workflow`) with full lifecycle stages
263
341
  - Mechanism skills: `flydocs-cloud` (Linear API) and `flydocs-local` (file-based)
@@ -1,7 +1,8 @@
1
- # FlyDocs Cloud
1
+ # FlyDocs
2
2
 
3
- This project uses FlyDocs Cloud - a hybrid workflow where:
4
- - **Work items (specs)** live in Linear
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 # Provider settings, workspace config
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
- │ ├── overview.md # Vision, goals, scope (update as it evolves)
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 | Location | Purpose |
86
- |---------|----------|---------|
87
- | Project overview | `context/overview.md` | Vision, goals, scope |
88
- | Tech stack | `context/stack.md` | Architecture, dependencies |
89
- | Code standards | `context/standards.md` | Conventions, patterns |
90
- | ADRs | `knowledge/decisions/` | Why we made choices |
91
- | Feature docs | `knowledge/features/` | How features work |
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
- ### LINEAR (Cloud)
87
+ ### ISSUE TRACKER (Local or Cloud)
98
88
 
99
- | Content | Linear Location | Purpose |
100
- |---------|-----------------|---------|
101
- | Specs | Issues | Features, bugs, chores, ideas |
102
- | Status | Workflow states | BACKLOG → DONE progression |
103
- | Priorities | Priority field | Urgent, High, Medium, Low |
104
- | Assignments | Assignee | Who's working on what |
105
- | Assets | Attachments | Figma links, screenshots |
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
- **Why cloud?** Team collaboration, stakeholder visibility, AI agent integration.
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 Linear status, plan work
127
- /capture - Create new Linear issue
128
- /new-project - Create project with product label/icon
129
- /implement - Pick up issue from Linear
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.teamId` - Linear team ID
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
@@ -19,7 +19,8 @@ When using the `flydocs-figma` skill to extract designs, the AI needs to know:
19
19
  ### 1. Run /design-setup
20
20
 
21
21
  The `/design-setup` command will:
22
- - Connect to your Figma file via MCP
22
+
23
+ - Connect to your Figma file via the Figma skill
23
24
  - Extract design tokens
24
25
  - Generate initial mappings
25
26
  - Create component pattern documentation
@@ -31,8 +32,8 @@ Edit `token-mapping.md` to define how Figma tokens translate to your code:
31
32
  ```markdown
32
33
  ## Colors
33
34
 
34
- | Figma Token | CSS Variable | Tailwind Class |
35
- |-------------|--------------|----------------|
35
+ | Figma Token | CSS Variable | Tailwind Class |
36
+ | ----------- | ------------------- | -------------- |
36
37
  | Primary/500 | --color-primary-500 | bg-primary-500 |
37
38
  | Neutral/100 | --color-neutral-100 | bg-neutral-100 |
38
39
  ```
@@ -41,22 +42,26 @@ Edit `token-mapping.md` to define how Figma tokens translate to your code:
41
42
 
42
43
  Edit `component-patterns.md` to map Figma components to code:
43
44
 
44
- ```markdown
45
+ ````markdown
45
46
  ## Button
46
47
 
47
48
  **Figma Component:** `Components/Button/Primary`
48
49
 
49
50
  **Code Pattern:**
51
+
50
52
  ```tsx
51
53
  <Button variant="primary" size="md">
52
54
  {children}
53
55
  </Button>
54
56
  ```
57
+ ````
55
58
 
56
59
  **Variants:**
60
+
57
61
  - Primary → variant="primary"
58
62
  - Secondary → variant="secondary"
59
63
  - Ghost → variant="ghost"
64
+
60
65
  ```
61
66
 
62
67
  ---
@@ -64,15 +69,17 @@ Edit `component-patterns.md` to map Figma components to code:
64
69
  ## File Structure
65
70
 
66
71
  ```
72
+
67
73
  flydocs/design-system/
68
- ├── README.md # This file
69
- ├── token-mapping.md # Figma token → code mapping
70
- ├── component-patterns.md # Figma component → code mapping
71
- └── tokens/ # Optional: extracted token JSON
72
- ├── colors.json
73
- ├── spacing.json
74
- └── typography.json
75
- ```
74
+ ├── README.md # This file
75
+ ├── token-mapping.md # Figma token → code mapping
76
+ ├── component-patterns.md # Figma component → code mapping
77
+ └── tokens/ # Optional: extracted token JSON
78
+ ├── colors.json
79
+ ├── spacing.json
80
+ └── typography.json
81
+
82
+ ````
76
83
 
77
84
  ---
78
85
 
@@ -115,12 +122,13 @@ Add version notes to track design system evolution:
115
122
 
116
123
  ### v1.0 (2023-06)
117
124
  - Initial design system
118
- ```
125
+ ````
119
126
 
120
127
  ---
121
128
 
122
129
  ## Templates
123
130
 
124
131
  See `.flydocs/templates/design-system/` for:
132
+
125
133
  - `token-mapping.md` - Template for token documentation
126
134
  - `component-patterns.md` - Template for component documentation
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.5.0-beta.6",
2
+ "version": "0.5.0-beta.8",
3
3
  "description": "FlyDocs Core - Manifest of all managed files",
4
4
  "repository": "github.com/plastrlab/flydocs-core",
5
5
 
@@ -18,9 +18,7 @@
18
18
  ".claude/skills/flydocs-figma",
19
19
  ".claude/skills/flydocs-estimates",
20
20
  ".claude/skills/flydocs-context-graph",
21
- ".claude/skills/implementation-flow",
22
- ".claude/skills/review-workflow",
23
- ".claude/skills/spec-templates",
21
+ ".claude/skills/flydocs-context7",
24
22
  ".flydocs/scripts",
25
23
  ".cursor/agents"
26
24
  ]
@@ -60,7 +58,6 @@
60
58
  "paths": [
61
59
  ".env",
62
60
  ".env.local",
63
- ".cursor/mcp.json",
64
61
  "flydocs/context/project.md",
65
62
  "flydocs/knowledge/**",
66
63
  "flydocs/design-system/**"
@@ -80,7 +77,6 @@
80
77
  "issueLabels",
81
78
  "statusMapping",
82
79
  "detectedStack",
83
- "mcp",
84
80
  "skills",
85
81
  "designSystem",
86
82
  "aiLabor"
@@ -151,13 +147,11 @@
151
147
  "flydocs-figma": ["SKILL.md", "references/"],
152
148
  "flydocs-estimates": ["SKILL.md", "references/"],
153
149
  "flydocs-context-graph": ["SKILL.md", "schema.md", "scripts/"],
154
- "implementation-flow": ["SKILL.md"],
155
- "review-workflow": ["SKILL.md"],
156
- "spec-templates": ["SKILL.md"]
150
+ "flydocs-context7": ["SKILL.md", "cursor-rule.mdc", "scripts/"]
157
151
  }
158
152
  },
159
153
  ".cursor": {
160
- "root": ["hooks.json", "mcp.json"],
154
+ "root": ["hooks.json"],
161
155
  "agents": [
162
156
  "pm-agent.md",
163
157
  "implementation-agent.md",
@@ -168,12 +162,7 @@
168
162
  ".flydocs": {
169
163
  "root": ["config.json", "version", "CHANGELOG.md"],
170
164
  "scripts": ["generate_manifest.py", "skill_manager.py"],
171
- "hooks": [
172
- "auto-approve.py",
173
- "prefer-scripts.py",
174
- "post-edit.py",
175
- "prompt-submit.py"
176
- ],
165
+ "hooks": ["auto-approve.py", "post-edit.py", "prompt-submit.py"],
177
166
  "templates": ["bug.md", "chore.md", "feature.md", "idea.md"]
178
167
  },
179
168
  "flydocs": {
@@ -1,16 +0,0 @@
1
- {
2
- "$schema": "https://cursor.sh/schemas/mcp.json",
3
- "mcpServers": {
4
- "linear": {
5
- "command": "npx",
6
- "args": ["-y", "@linear/mcp-server"],
7
- "env": {
8
- "LINEAR_API_KEY": "${LINEAR_API_KEY}"
9
- }
10
- },
11
- "context7": {
12
- "command": "npx",
13
- "args": ["-y", "@anthropics/context7-mcp"]
14
- }
15
- }
16
- }
@@ -1,89 +0,0 @@
1
- #!/usr/bin/env python3
2
- """
3
- PreToolUse Hook: Guide AI to prefer scripts over MCP
4
-
5
- Triggers before mcp__linear tool calls and provides guidance
6
- to use the bundled Python scripts instead.
7
-
8
- Soft guidance — doesn't block the MCP call, but reminds the AI
9
- that scripts exist and are preferred.
10
-
11
- Exit codes:
12
- - 0 with JSON: Continue with guidance message
13
- - 0 with no output: No opinion, continue normally
14
- - 2: Block (not used)
15
- """
16
-
17
- import sys
18
- import json
19
-
20
-
21
- # Mapping of MCP operations to equivalent mechanism scripts
22
- SCRIPT_ALTERNATIVES = {
23
- "create_issue": "create_issue.py --title '...' --type feature",
24
- "update_issue": "transition.py ISSUE_ID STATUS 'comment'",
25
- "get_issue": "get_issue.py ISSUE_ID",
26
- "list_issues": "list_issues.py --status STATUS",
27
- "create_comment": "comment.py ISSUE_ID 'message'",
28
- "update_issue_state": "transition.py ISSUE_ID STATUS 'comment'",
29
- "list_projects": "list_projects.py --active",
30
- "create_project": "create_project.py --name '...'",
31
- "list_workflow_states": "list_states.py",
32
- "list_labels": "list_labels.py",
33
- "assign_issue": "assign.py ISSUE_ID 'email'",
34
- "set_issue_priority": "priority.py ISSUE_ID LEVEL",
35
- "set_issue_estimate": "estimate.py ISSUE_ID POINTS",
36
- }
37
-
38
-
39
- def get_script_suggestion(tool_name: str) -> str | None:
40
- """Get the equivalent script for an MCP operation."""
41
- operation = tool_name.replace("mcp__linear__", "").replace("mcp__linear.", "")
42
- return SCRIPT_ALTERNATIVES.get(operation)
43
-
44
-
45
- def main():
46
- try:
47
- input_data = json.load(sys.stdin)
48
- except (json.JSONDecodeError, EOFError):
49
- sys.exit(0)
50
-
51
- tool_name = input_data.get('tool_name', '')
52
-
53
- if not tool_name.startswith('mcp__linear'):
54
- # No opinion — exit 0 with no output to avoid hook error
55
- sys.exit(0)
56
-
57
- script_suggestion = get_script_suggestion(tool_name)
58
-
59
- if script_suggestion:
60
- guidance = {
61
- "decision": "continue",
62
- "message": f"""**Reminder:** FlyDocs prefers Python scripts over MCP for issue operations.
63
-
64
- Equivalent script (in the active mechanism skill):
65
- ```bash
66
- python3 .claude/skills/flydocs-cloud/scripts/{script_suggestion}
67
- ```
68
-
69
- Scripts are:
70
- - Auto-approved (no permission prompt)
71
- - Config-aware (reads team ID, status mappings)
72
- - Pattern-enforced (mandatory comments on transitions)
73
-
74
- You may continue with MCP if the script doesn't cover your use case."""
75
- }
76
- else:
77
- guidance = {
78
- "decision": "continue",
79
- "message": """**Reminder:** Check if the active mechanism skill has a script for this operation.
80
- Read the mechanism skill's SKILL.md for the full script catalog.
81
- Scripts are preferred over MCP for performance and auto-approval."""
82
- }
83
-
84
- print(json.dumps(guidance))
85
- sys.exit(0)
86
-
87
-
88
- if __name__ == "__main__":
89
- main()