@flydocs/cli 0.5.0-beta.0
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 +96 -0
- package/dist/cli.js +2666 -0
- package/package.json +32 -0
- package/template/.claude/CLAUDE.md +90 -0
- package/template/.claude/agents/README.md +19 -0
- package/template/.claude/agents/implementation-agent.md +29 -0
- package/template/.claude/agents/pm-agent.md +29 -0
- package/template/.claude/agents/research-agent.md +25 -0
- package/template/.claude/agents/review-agent.md +29 -0
- package/template/.claude/commands/activate.md +10 -0
- package/template/.claude/commands/attach.md +9 -0
- package/template/.claude/commands/block.md +10 -0
- package/template/.claude/commands/capture.md +10 -0
- package/template/.claude/commands/close.md +10 -0
- package/template/.claude/commands/flydocs-setup.md +598 -0
- package/template/.claude/commands/flydocs-update.md +27 -0
- package/template/.claude/commands/implement.md +10 -0
- package/template/.claude/commands/new-project.md +11 -0
- package/template/.claude/commands/project-update.md +10 -0
- package/template/.claude/commands/refine.md +10 -0
- package/template/.claude/commands/review.md +10 -0
- package/template/.claude/commands/start-session.md +10 -0
- package/template/.claude/commands/status.md +10 -0
- package/template/.claude/commands/validate.md +10 -0
- package/template/.claude/commands/wrap-session.md +10 -0
- package/template/.claude/settings.json +49 -0
- package/template/.claude/skills/README.md +293 -0
- package/template/.claude/skills/flydocs-cloud/SKILL.md +96 -0
- package/template/.claude/skills/flydocs-cloud/cursor-rule.mdc +50 -0
- package/template/.claude/skills/flydocs-cloud/scripts/assign.py +38 -0
- package/template/.claude/skills/flydocs-cloud/scripts/assign_cycle.py +44 -0
- package/template/.claude/skills/flydocs-cloud/scripts/assign_milestone.py +44 -0
- package/template/.claude/skills/flydocs-cloud/scripts/comment.py +39 -0
- package/template/.claude/skills/flydocs-cloud/scripts/create_issue.py +100 -0
- package/template/.claude/skills/flydocs-cloud/scripts/create_milestone.py +46 -0
- package/template/.claude/skills/flydocs-cloud/scripts/create_project.py +40 -0
- package/template/.claude/skills/flydocs-cloud/scripts/estimate.py +38 -0
- package/template/.claude/skills/flydocs-cloud/scripts/flydocs_api.py +277 -0
- package/template/.claude/skills/flydocs-cloud/scripts/get_issue.py +77 -0
- package/template/.claude/skills/flydocs-cloud/scripts/link.py +47 -0
- package/template/.claude/skills/flydocs-cloud/scripts/list_cycles.py +35 -0
- package/template/.claude/skills/flydocs-cloud/scripts/list_issues.py +105 -0
- package/template/.claude/skills/flydocs-cloud/scripts/list_milestones.py +40 -0
- package/template/.claude/skills/flydocs-cloud/scripts/list_projects.py +45 -0
- package/template/.claude/skills/flydocs-cloud/scripts/priority.py +38 -0
- package/template/.claude/skills/flydocs-cloud/scripts/project_update.py +59 -0
- package/template/.claude/skills/flydocs-cloud/scripts/transition.py +67 -0
- package/template/.claude/skills/flydocs-cloud/scripts/update_description.py +47 -0
- package/template/.claude/skills/flydocs-cloud/scripts/update_issue.py +111 -0
- package/template/.claude/skills/flydocs-context-graph/SKILL.md +87 -0
- package/template/.claude/skills/flydocs-context-graph/schema.md +78 -0
- package/template/.claude/skills/flydocs-context-graph/scripts/graph_build.py +299 -0
- package/template/.claude/skills/flydocs-context-graph/scripts/graph_context.py +338 -0
- package/template/.claude/skills/flydocs-context-graph/scripts/graph_query.py +191 -0
- package/template/.claude/skills/flydocs-context-graph/scripts/graph_session.py +161 -0
- package/template/.claude/skills/flydocs-context-graph/scripts/graph_update.py +194 -0
- package/template/.claude/skills/flydocs-context-graph/scripts/graph_utils.py +118 -0
- package/template/.claude/skills/flydocs-estimates/SKILL.md +384 -0
- package/template/.claude/skills/flydocs-estimates/references/provider-costs.md +152 -0
- package/template/.claude/skills/flydocs-figma/SKILL.md +377 -0
- package/template/.claude/skills/flydocs-figma/references/PROMPTING.md +108 -0
- package/template/.claude/skills/flydocs-figma/references/TROUBLESHOOTING.md +112 -0
- package/template/.claude/skills/flydocs-local/SKILL.md +103 -0
- package/template/.claude/skills/flydocs-local/cursor-rule.mdc +43 -0
- package/template/.claude/skills/flydocs-local/scripts/assign.py +20 -0
- package/template/.claude/skills/flydocs-local/scripts/comment.py +27 -0
- package/template/.claude/skills/flydocs-local/scripts/create_issue.py +44 -0
- package/template/.claude/skills/flydocs-local/scripts/estimate.py +37 -0
- package/template/.claude/skills/flydocs-local/scripts/flydocs_api.py +272 -0
- package/template/.claude/skills/flydocs-local/scripts/get_issue.py +20 -0
- package/template/.claude/skills/flydocs-local/scripts/link.py +41 -0
- package/template/.claude/skills/flydocs-local/scripts/list_issues.py +34 -0
- package/template/.claude/skills/flydocs-local/scripts/priority.py +37 -0
- package/template/.claude/skills/flydocs-local/scripts/project_update.py +67 -0
- package/template/.claude/skills/flydocs-local/scripts/status_summary.py +16 -0
- package/template/.claude/skills/flydocs-local/scripts/transition.py +24 -0
- package/template/.claude/skills/flydocs-local/scripts/update_description.py +35 -0
- package/template/.claude/skills/flydocs-local/scripts/update_issue.py +84 -0
- package/template/.claude/skills/flydocs-workflow/SKILL.md +85 -0
- package/template/.claude/skills/flydocs-workflow/cursor-rule.mdc +53 -0
- package/template/.claude/skills/flydocs-workflow/reference/comment-templates.md +131 -0
- package/template/.claude/skills/flydocs-workflow/reference/golden-rules.md +76 -0
- package/template/.claude/skills/flydocs-workflow/reference/priority-estimates.md +28 -0
- package/template/.claude/skills/flydocs-workflow/reference/status-workflow.md +50 -0
- package/template/.claude/skills/flydocs-workflow/session.md +128 -0
- package/template/.claude/skills/flydocs-workflow/stages/activate.md +46 -0
- package/template/.claude/skills/flydocs-workflow/stages/capture.md +50 -0
- package/template/.claude/skills/flydocs-workflow/stages/close.md +32 -0
- package/template/.claude/skills/flydocs-workflow/stages/implement.md +124 -0
- package/template/.claude/skills/flydocs-workflow/stages/refine.md +51 -0
- package/template/.claude/skills/flydocs-workflow/stages/review.md +86 -0
- package/template/.claude/skills/flydocs-workflow/stages/validate.md +90 -0
- package/template/.claude/skills/flydocs-workflow/templates/bug.md +95 -0
- package/template/.claude/skills/flydocs-workflow/templates/chore.md +75 -0
- package/template/.claude/skills/flydocs-workflow/templates/feature.md +93 -0
- package/template/.claude/skills/flydocs-workflow/templates/idea.md +84 -0
- package/template/.cursor/agents/implementation-agent.md +28 -0
- package/template/.cursor/agents/pm-agent.md +27 -0
- package/template/.cursor/agents/research-agent.md +23 -0
- package/template/.cursor/agents/review-agent.md +27 -0
- package/template/.cursor/hooks.json +29 -0
- package/template/.cursor/mcp.json +16 -0
- package/template/.env.example +44 -0
- package/template/.flydocs/config.json +104 -0
- package/template/.flydocs/hooks/auto-approve.py +71 -0
- package/template/.flydocs/hooks/post-edit.py +72 -0
- package/template/.flydocs/hooks/prefer-scripts.py +89 -0
- package/template/.flydocs/hooks/prompt-submit.py +277 -0
- package/template/.flydocs/scripts/generate_manifest.py +287 -0
- package/template/.flydocs/scripts/skill_manager.py +541 -0
- package/template/.flydocs/templates/README.md +46 -0
- package/template/.flydocs/templates/bug.md +166 -0
- package/template/.flydocs/templates/chore.md +110 -0
- package/template/.flydocs/templates/design-system/README.md +27 -0
- package/template/.flydocs/templates/design-system/component-patterns.md +92 -0
- package/template/.flydocs/templates/design-system/token-mapping.md +168 -0
- package/template/.flydocs/templates/feature.md +173 -0
- package/template/.flydocs/templates/idea.md +122 -0
- package/template/.flydocs/templates/instructions.md +228 -0
- package/template/.flydocs/templates/quick-capture.md +35 -0
- package/template/.flydocs/templates/scripts/check-design-system.template.mjs +179 -0
- package/template/.flydocs/version +1 -0
- package/template/AGENTS.md +95 -0
- package/template/CHANGELOG.md +271 -0
- package/template/flydocs/README.md +186 -0
- package/template/flydocs/context/project.md +51 -0
- package/template/flydocs/design-system/README.md +126 -0
- package/template/flydocs/design-system/component-patterns.md +173 -0
- package/template/flydocs/design-system/token-mapping.md +114 -0
- package/template/flydocs/knowledge/INDEX.md +100 -0
- package/template/flydocs/knowledge/README.md +62 -0
- package/template/flydocs/knowledge/product/personas.md +79 -0
- package/template/flydocs/knowledge/product/user-flows.md +88 -0
- package/template/manifest.json +221 -0
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
<!-- AGENT INSTRUCTIONS
|
|
2
|
+
When creating or refining a feature issue:
|
|
3
|
+
|
|
4
|
+
1. CONTEXT SECTION:
|
|
5
|
+
- Explain the problem being solved, not just the solution
|
|
6
|
+
- Include business value or user impact
|
|
7
|
+
- Reference project goals from {content-folder}/context/overview.md if relevant
|
|
8
|
+
|
|
9
|
+
2. USER STORY:
|
|
10
|
+
- Must follow "As a... I want... So that..." format
|
|
11
|
+
- Be specific about the user role (not just "user")
|
|
12
|
+
- Benefit should be concrete and measurable
|
|
13
|
+
- Include an example scenario for clarity
|
|
14
|
+
|
|
15
|
+
3. ACCEPTANCE CRITERIA:
|
|
16
|
+
- Each criterion must be testable and specific
|
|
17
|
+
- Use checkboxes for tracking completion
|
|
18
|
+
- Include error handling scenarios
|
|
19
|
+
- "Must Have" = required for completion
|
|
20
|
+
- "Should Have" = nice to have, not blocking
|
|
21
|
+
- "Won't Have" = explicitly out of scope
|
|
22
|
+
|
|
23
|
+
4. TECHNICAL NOTES:
|
|
24
|
+
- Reference patterns from {content-folder}/context/stack.md
|
|
25
|
+
- List specific components/files to create or modify
|
|
26
|
+
- Include data model changes if applicable
|
|
27
|
+
- Note any API changes needed
|
|
28
|
+
|
|
29
|
+
5. DEPENDENCIES:
|
|
30
|
+
- List issues that must be completed first
|
|
31
|
+
- Note what future work this enables
|
|
32
|
+
|
|
33
|
+
Remove these instructions when creating the final issue.
|
|
34
|
+
-->
|
|
35
|
+
|
|
36
|
+
## Context
|
|
37
|
+
|
|
38
|
+
[Problem description - what user pain or business need does this address?]
|
|
39
|
+
|
|
40
|
+
**Current Issues:**
|
|
41
|
+
- [Issue or limitation 1]
|
|
42
|
+
- [Issue or limitation 2]
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## User Story
|
|
47
|
+
|
|
48
|
+
**As a** [specific user role]
|
|
49
|
+
**I want to** [specific goal or action]
|
|
50
|
+
**So that** [concrete benefit or outcome]
|
|
51
|
+
|
|
52
|
+
**Example Scenario:**
|
|
53
|
+
[Real-world scenario where this feature would be used]
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## Acceptance Criteria
|
|
58
|
+
|
|
59
|
+
### Must Have
|
|
60
|
+
- [ ] [Specific, measurable criterion 1]
|
|
61
|
+
- [ ] [User can perform X action and see Y result]
|
|
62
|
+
- [ ] [System behaves correctly when Z happens]
|
|
63
|
+
- [ ] [Error handling: System shows helpful message when...]
|
|
64
|
+
|
|
65
|
+
### Should Have
|
|
66
|
+
- [ ] [Nice-to-have enhancement]
|
|
67
|
+
|
|
68
|
+
### Won't Have (Out of Scope)
|
|
69
|
+
- [Explicitly excluded functionality]
|
|
70
|
+
|
|
71
|
+
### Tests
|
|
72
|
+
- [ ] Tests written for core functionality
|
|
73
|
+
- [ ] Edge cases and error scenarios covered
|
|
74
|
+
- [ ] All tests passing
|
|
75
|
+
|
|
76
|
+
### Documentation
|
|
77
|
+
- [ ] Code documented (comments on complex logic)
|
|
78
|
+
- [ ] Knowledge base updated (if significant decisions/patterns)
|
|
79
|
+
- [ ] Context files updated (if architecture changes)
|
|
80
|
+
- [ ] N/A - No significant documentation needed
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## Technical Notes
|
|
85
|
+
|
|
86
|
+
### Implementation Approach
|
|
87
|
+
[High-level description of how this will be built]
|
|
88
|
+
|
|
89
|
+
**Key Technical Decisions:**
|
|
90
|
+
1. [Decision 1 and rationale]
|
|
91
|
+
2. [Decision 2 and rationale]
|
|
92
|
+
|
|
93
|
+
### Components Needed
|
|
94
|
+
**New:**
|
|
95
|
+
- `ComponentName` - [What it does]
|
|
96
|
+
|
|
97
|
+
**Modify:**
|
|
98
|
+
- `ExistingComponent` - [What changes needed]
|
|
99
|
+
|
|
100
|
+
### Data Model
|
|
101
|
+
```typescript
|
|
102
|
+
// Schema changes if any
|
|
103
|
+
// OR: No data model changes required
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
### API Endpoints
|
|
107
|
+
- `POST /api/endpoint` - [Description]
|
|
108
|
+
- OR: No new endpoints required
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
## Dependencies
|
|
113
|
+
|
|
114
|
+
**Required Before Starting:**
|
|
115
|
+
- [Feature or system that must exist first]
|
|
116
|
+
- OR: No dependencies - can start immediately
|
|
117
|
+
|
|
118
|
+
**Enables Future Work:**
|
|
119
|
+
- [Feature that depends on this being complete]
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
## Design Reference
|
|
124
|
+
<!-- Add Figma links as attachments -->
|
|
125
|
+
|
|
126
|
+
---
|
|
127
|
+
|
|
128
|
+
## AI Effort Estimate
|
|
129
|
+
<!--
|
|
130
|
+
AGENT: Fill this section during /refine using the flydocs-estimates skill.
|
|
131
|
+
See .claude/skills/flydocs-estimates/SKILL.md for calculation details.
|
|
132
|
+
Update Actuals section during /close for calibration.
|
|
133
|
+
-->
|
|
134
|
+
|
|
135
|
+
### Sizing Factors
|
|
136
|
+
|
|
137
|
+
| Factor | Value | Multiplier |
|
|
138
|
+
|--------|-------|------------|
|
|
139
|
+
| **Task Type** | feature | base: 40k |
|
|
140
|
+
| **Scope** | [S/M/L/XL] | ×[0.5/1.0/2.0/4.0] |
|
|
141
|
+
| **Novelty** | [existing/partial/greenfield] | ×[0.7/1.2/2.0] |
|
|
142
|
+
| **Clarity** | [defined/discovery/exploratory] | ×[0.8/1.5/2.5] |
|
|
143
|
+
| **Codebase** | [simple/moderate/complex] | ×[0.8/1.0/1.5] |
|
|
144
|
+
|
|
145
|
+
### Estimate
|
|
146
|
+
|
|
147
|
+
**Provider**: [Claude Sonnet 4]
|
|
148
|
+
**Calculated Tokens**: ~[X]k
|
|
149
|
+
**Confidence**: ±[40-60]%
|
|
150
|
+
**Token Range**: [low]k - [high]k
|
|
151
|
+
**Cost Range**: $[low] - $[high]
|
|
152
|
+
|
|
153
|
+
### Approach Comparison
|
|
154
|
+
|
|
155
|
+
| Approach | Est. Cost | Est. Time | Recommendation |
|
|
156
|
+
|----------|-----------|-----------|----------------|
|
|
157
|
+
| **Full AI** | $[X] | [X] hrs | [When to use] |
|
|
158
|
+
| **AI-Assisted** | $[X] + [X]hrs | [X] hrs | [When to use] |
|
|
159
|
+
| **Human-Led** | $[X] (review) | [X] hrs | [When to use] |
|
|
160
|
+
|
|
161
|
+
### Actuals (fill on /close)
|
|
162
|
+
**Actual Tokens**: [fill after completion]
|
|
163
|
+
**Variance**: [+/-X]% [under/over estimate]
|
|
164
|
+
**Notes**: [what drove variance - blockers, scope changes, retries]
|
|
165
|
+
|
|
166
|
+
---
|
|
167
|
+
|
|
168
|
+
_Created: YYYY-MM-DD_
|
|
169
|
+
|
|
170
|
+
|
|
171
|
+
|
|
172
|
+
|
|
173
|
+
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
<!-- AGENT INSTRUCTIONS
|
|
2
|
+
When creating or refining an idea issue:
|
|
3
|
+
|
|
4
|
+
1. SKETCH SECTION:
|
|
5
|
+
- Keep it light - this is brainstorming
|
|
6
|
+
- What/Why/How should each be one sentence
|
|
7
|
+
- Details can be rough notes
|
|
8
|
+
|
|
9
|
+
2. POTENTIAL VALUE:
|
|
10
|
+
- Think about user benefit first
|
|
11
|
+
- Business value second
|
|
12
|
+
- Be honest about impact uncertainty
|
|
13
|
+
|
|
14
|
+
3. QUESTIONS TO ANSWER:
|
|
15
|
+
- Capture what you don't know
|
|
16
|
+
- These become research tasks before refinement
|
|
17
|
+
- Include feasibility, effort, and value questions
|
|
18
|
+
|
|
19
|
+
4. COMPLEXITY:
|
|
20
|
+
- If XL or larger, note how to break it down
|
|
21
|
+
- Ideas often seem smaller until investigated
|
|
22
|
+
|
|
23
|
+
5. STATUS TRACKING:
|
|
24
|
+
- Ideas follow: Captured → Researched → Validated → Refined or Declined
|
|
25
|
+
- "Refined" means it became a full feature issue
|
|
26
|
+
- "Declined" with reason is valuable documentation
|
|
27
|
+
|
|
28
|
+
6. CONVERSION:
|
|
29
|
+
- When idea is validated, create feature issue
|
|
30
|
+
- Link the feature issue in "Refined" status
|
|
31
|
+
|
|
32
|
+
Remove these instructions when creating the final issue.
|
|
33
|
+
-->
|
|
34
|
+
|
|
35
|
+
## Sketch
|
|
36
|
+
|
|
37
|
+
**Quick Description:**
|
|
38
|
+
- **What:** [One sentence - what is this?]
|
|
39
|
+
- **Why:** [One sentence - why might this be valuable?]
|
|
40
|
+
- **How:** [One sentence - rough idea of how it might work]
|
|
41
|
+
|
|
42
|
+
**Details:**
|
|
43
|
+
[Additional thoughts, context, inspiration, related ideas]
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## Potential Value
|
|
48
|
+
|
|
49
|
+
**For Users:**
|
|
50
|
+
- [Benefit 1]
|
|
51
|
+
- [Benefit 2]
|
|
52
|
+
|
|
53
|
+
**For Business/Product:**
|
|
54
|
+
- [Value 1]
|
|
55
|
+
- [Value 2]
|
|
56
|
+
|
|
57
|
+
**Estimated Impact:** 🔥 High | 📊 Medium | 💡 Low | ❓ Unknown
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## Questions to Answer
|
|
62
|
+
|
|
63
|
+
**Unknowns:**
|
|
64
|
+
- [ ] What needs research or investigation?
|
|
65
|
+
- [ ] What's the technical feasibility?
|
|
66
|
+
- [ ] What's the rough effort estimate?
|
|
67
|
+
- [ ] Does this already exist elsewhere?
|
|
68
|
+
|
|
69
|
+
**Dependencies:**
|
|
70
|
+
- [ ] Does this depend on other work?
|
|
71
|
+
- [ ] Are there technical constraints?
|
|
72
|
+
|
|
73
|
+
**Risks:**
|
|
74
|
+
- [ ] What could go wrong?
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
## Rough Complexity
|
|
79
|
+
|
|
80
|
+
**Complexity:** XS | S | M | L | XL | ❓ Unknown
|
|
81
|
+
|
|
82
|
+
**If XL or larger:**
|
|
83
|
+
[How could this be broken into smaller features?]
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## Next Steps
|
|
88
|
+
|
|
89
|
+
**To Validate This Idea:**
|
|
90
|
+
1. [Research step 1]
|
|
91
|
+
2. [User validation needed]
|
|
92
|
+
3. [Technical spike or prototype]
|
|
93
|
+
|
|
94
|
+
**To Turn Into a Feature:**
|
|
95
|
+
1. [ ] Answer the questions above
|
|
96
|
+
2. [ ] Define clear user story and acceptance criteria
|
|
97
|
+
3. [ ] Get stakeholder buy-in
|
|
98
|
+
4. [ ] Create feature issue with full template
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
## Status Tracking
|
|
103
|
+
|
|
104
|
+
- [ ] **Captured** - Idea written down ✅
|
|
105
|
+
- [ ] **Researched** - Questions answered, feasibility checked
|
|
106
|
+
- [ ] **Validated** - Worth pursuing
|
|
107
|
+
- [ ] **Refined** - Converted to full feature issue
|
|
108
|
+
- [ ] **Declined** - Decided not to pursue
|
|
109
|
+
|
|
110
|
+
**If Declined:**
|
|
111
|
+
- **Reason:** [Why we decided not to do this]
|
|
112
|
+
|
|
113
|
+
**If Refined:**
|
|
114
|
+
- **New Issue:** [Link to feature issue created from this idea]
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
_Captured: YYYY-MM-DD_
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
|
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
# Project Instructions
|
|
2
|
+
|
|
3
|
+
> Auto-generated from detected stack. Update as your project evolves.
|
|
4
|
+
> This file takes precedence over skill defaults for project-specific patterns.
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Tech Stack
|
|
9
|
+
|
|
10
|
+
<!-- Auto-filled from detection. Update versions as needed. -->
|
|
11
|
+
|
|
12
|
+
- **Framework:** {{framework}}
|
|
13
|
+
- **Database:** {{database}}
|
|
14
|
+
- **Auth:** {{auth}}
|
|
15
|
+
- **Styling:** {{styling}}
|
|
16
|
+
- **Language:** TypeScript (strict mode)
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## Active Skills
|
|
21
|
+
|
|
22
|
+
<!-- Skills installed based on detected stack -->
|
|
23
|
+
|
|
24
|
+
{{#each skills}}
|
|
25
|
+
- `{{this}}` - See `.claude/skills/{{this}}/SKILL.md`
|
|
26
|
+
{{/each}}
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## Project-Specific Patterns
|
|
31
|
+
|
|
32
|
+
### Established Conventions
|
|
33
|
+
|
|
34
|
+
<!-- Add patterns discovered during development -->
|
|
35
|
+
|
|
36
|
+
```typescript
|
|
37
|
+
// Example: API response format
|
|
38
|
+
type ApiResponse<T> = {
|
|
39
|
+
data: T;
|
|
40
|
+
error?: string;
|
|
41
|
+
meta?: { page: number; total: number };
|
|
42
|
+
};
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### File Organization
|
|
46
|
+
|
|
47
|
+
<!-- Document your project's structure conventions -->
|
|
48
|
+
|
|
49
|
+
```
|
|
50
|
+
src/
|
|
51
|
+
├── app/ # Next.js App Router pages
|
|
52
|
+
├── components/ # Shared UI components
|
|
53
|
+
│ ├── ui/ # Primitives (Button, Input, etc.)
|
|
54
|
+
│ └── features/ # Feature-specific components
|
|
55
|
+
├── lib/ # Utilities and helpers
|
|
56
|
+
├── hooks/ # Custom React hooks
|
|
57
|
+
└── types/ # TypeScript type definitions
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
### Naming Conventions
|
|
61
|
+
|
|
62
|
+
<!-- Project-specific naming rules -->
|
|
63
|
+
|
|
64
|
+
- Components: PascalCase (`UserProfile.tsx`)
|
|
65
|
+
- Hooks: camelCase with `use` prefix (`useAuth.ts`)
|
|
66
|
+
- Utilities: camelCase (`formatDate.ts`)
|
|
67
|
+
- Types: PascalCase with descriptive suffix (`UserResponse`, `CreateUserInput`)
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
## Decisions & Rationale
|
|
72
|
+
|
|
73
|
+
<!-- Link to ADRs or explain key architectural choices -->
|
|
74
|
+
|
|
75
|
+
| Decision | Rationale | Date |
|
|
76
|
+
|----------|-----------|------|
|
|
77
|
+
| Use Server Components by default | Better performance, simpler mental model | {{date}} |
|
|
78
|
+
| Convex for real-time | Built-in subscriptions, type safety | {{date}} |
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## Anti-Patterns for This Project
|
|
83
|
+
|
|
84
|
+
<!-- Things that don't work well in YOUR specific codebase -->
|
|
85
|
+
|
|
86
|
+
### Don't Do This
|
|
87
|
+
|
|
88
|
+
```typescript
|
|
89
|
+
// ❌ Don't use client-side data fetching for initial data
|
|
90
|
+
'use client';
|
|
91
|
+
useEffect(() => { fetch('/api/data')... }, []);
|
|
92
|
+
|
|
93
|
+
// ✓ Fetch in Server Component instead
|
|
94
|
+
async function Page() {
|
|
95
|
+
const data = await getData();
|
|
96
|
+
return <ClientComponent initialData={data} />;
|
|
97
|
+
}
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
### Avoid These Patterns
|
|
101
|
+
|
|
102
|
+
- Don't create new API routes when direct DB access works
|
|
103
|
+
- Don't use Context for data that should come from Server Components
|
|
104
|
+
- Don't add `'use client'` unless interactivity is needed
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
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
|
+
## Skill Overrides
|
|
162
|
+
|
|
163
|
+
<!-- Override specific skill recommendations for this project -->
|
|
164
|
+
|
|
165
|
+
### nextjs
|
|
166
|
+
|
|
167
|
+
<!-- Example: Override default caching strategy -->
|
|
168
|
+
|
|
169
|
+
```typescript
|
|
170
|
+
// This project uses shorter cache times due to real-time requirements
|
|
171
|
+
cacheLife('seconds'); // Instead of skill default 'hours'
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
### convex
|
|
175
|
+
|
|
176
|
+
<!-- Example: Project-specific schema conventions -->
|
|
177
|
+
|
|
178
|
+
```typescript
|
|
179
|
+
// All tables must include audit fields
|
|
180
|
+
defineTable({
|
|
181
|
+
// ... fields
|
|
182
|
+
createdAt: v.number(),
|
|
183
|
+
updatedAt: v.number(),
|
|
184
|
+
createdBy: v.optional(v.id('users')),
|
|
185
|
+
});
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
---
|
|
189
|
+
|
|
190
|
+
## Environment Variables
|
|
191
|
+
|
|
192
|
+
<!-- Document required env vars for this project -->
|
|
193
|
+
|
|
194
|
+
| Variable | Purpose | Required |
|
|
195
|
+
|----------|---------|----------|
|
|
196
|
+
| `DATABASE_URL` | Database connection | Yes |
|
|
197
|
+
| `NEXT_PUBLIC_API_URL` | Public API endpoint | Yes |
|
|
198
|
+
| `AUTH_SECRET` | Auth session encryption | Yes |
|
|
199
|
+
|
|
200
|
+
---
|
|
201
|
+
|
|
202
|
+
## Testing Patterns
|
|
203
|
+
|
|
204
|
+
<!-- Project-specific testing conventions -->
|
|
205
|
+
|
|
206
|
+
```typescript
|
|
207
|
+
// Test file naming: *.test.ts or *.spec.ts
|
|
208
|
+
// Test location: Co-located with source files
|
|
209
|
+
|
|
210
|
+
// Example test structure
|
|
211
|
+
describe('UserService', () => {
|
|
212
|
+
it('creates a user with valid data', async () => {
|
|
213
|
+
// Arrange
|
|
214
|
+
const input = { name: 'Test', email: 'test@example.com' };
|
|
215
|
+
|
|
216
|
+
// Act
|
|
217
|
+
const result = await createUser(input);
|
|
218
|
+
|
|
219
|
+
// Assert
|
|
220
|
+
expect(result.id).toBeDefined();
|
|
221
|
+
});
|
|
222
|
+
});
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
---
|
|
226
|
+
|
|
227
|
+
*Last updated: {{date}}*
|
|
228
|
+
*FlyDocs version: 6.3.0*
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
LINEAR DEFAULT TEMPLATE
|
|
3
|
+
========================
|
|
4
|
+
Copy this to Linear as the default issue template.
|
|
5
|
+
This is the ONLY template humans need in Linear.
|
|
6
|
+
Agents apply full templates via /refine.
|
|
7
|
+
-->
|
|
8
|
+
|
|
9
|
+
## What
|
|
10
|
+
|
|
11
|
+
[One sentence - what is this about?]
|
|
12
|
+
|
|
13
|
+
## Why
|
|
14
|
+
|
|
15
|
+
[Why does this matter? What's the problem or opportunity?]
|
|
16
|
+
|
|
17
|
+
## Context
|
|
18
|
+
|
|
19
|
+
[Any additional details that would help understand this]
|
|
20
|
+
|
|
21
|
+
- Who discovered/requested this?
|
|
22
|
+
- When did it come up?
|
|
23
|
+
- How urgent does it feel?
|
|
24
|
+
|
|
25
|
+
## Notes
|
|
26
|
+
|
|
27
|
+
[Anything else - links, screenshots, related issues]
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
_Add `triage` label. Agent will classify and structure via `/refine`._
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
|