@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,166 @@
|
|
|
1
|
+
<!-- AGENT INSTRUCTIONS
|
|
2
|
+
When creating or refining a bug issue:
|
|
3
|
+
|
|
4
|
+
1. CONTEXT SECTION:
|
|
5
|
+
- Capture when/how the bug was discovered
|
|
6
|
+
- Assess user impact (how many affected, how severe)
|
|
7
|
+
- Note frequency (always, sometimes, specific conditions)
|
|
8
|
+
|
|
9
|
+
2. BUG DESCRIPTION:
|
|
10
|
+
- Expected vs Actual must be crystal clear
|
|
11
|
+
- Steps to reproduce must be detailed enough for anyone to follow
|
|
12
|
+
- Include specific data conditions if relevant
|
|
13
|
+
- Note environment details (browser, OS, user role)
|
|
14
|
+
|
|
15
|
+
3. ACCEPTANCE CRITERIA:
|
|
16
|
+
- "Fix Verification" should mirror the reproduction steps
|
|
17
|
+
- Include regression concerns (what else might break)
|
|
18
|
+
- Tests section should include regression test requirement
|
|
19
|
+
|
|
20
|
+
4. TECHNICAL NOTES:
|
|
21
|
+
- Start with hypothesis if cause unknown
|
|
22
|
+
- Update "Confirmed Cause" after investigation
|
|
23
|
+
- Include specific file/function where bug exists
|
|
24
|
+
- Assess risk of the fix
|
|
25
|
+
|
|
26
|
+
5. SEVERITY GUIDANCE:
|
|
27
|
+
- Critical: System unusable, data loss, security issue
|
|
28
|
+
- High: Major feature broken, no workaround
|
|
29
|
+
- Medium: Feature impaired but workaround exists
|
|
30
|
+
- Low: Minor issue, cosmetic, edge case
|
|
31
|
+
|
|
32
|
+
Remove these instructions when creating the final issue.
|
|
33
|
+
-->
|
|
34
|
+
|
|
35
|
+
## Context
|
|
36
|
+
|
|
37
|
+
**When Discovered:** [Date or event when bug was found]
|
|
38
|
+
**Discovered By:** [User, developer, automated test, etc.]
|
|
39
|
+
**Impact:** [How this affects users - be specific about scope]
|
|
40
|
+
**Frequency:** [Always | Sometimes | Rarely | Under specific conditions]
|
|
41
|
+
|
|
42
|
+
[Additional context about the bug]
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## Bug Description
|
|
47
|
+
|
|
48
|
+
### Expected Behavior
|
|
49
|
+
[Describe what SHOULD happen - the correct behavior]
|
|
50
|
+
|
|
51
|
+
### Actual Behavior
|
|
52
|
+
[Describe what ACTUALLY happens - the broken behavior]
|
|
53
|
+
|
|
54
|
+
### Steps to Reproduce
|
|
55
|
+
1. [First action - be specific]
|
|
56
|
+
2. [Second action - include any data/conditions needed]
|
|
57
|
+
3. [Third action]
|
|
58
|
+
4. [Observe the bug]
|
|
59
|
+
|
|
60
|
+
### Environment
|
|
61
|
+
- **Browser/Platform:** [Chrome, Safari, Mobile, etc.]
|
|
62
|
+
- **OS:** [macOS, Windows, iOS, Android, etc.]
|
|
63
|
+
- **User Role:** [Which user type experiences this]
|
|
64
|
+
- **Data Conditions:** [Specific data state that triggers bug]
|
|
65
|
+
|
|
66
|
+
### Screenshots/Evidence
|
|
67
|
+
<!-- Add as attachments -->
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
## Acceptance Criteria
|
|
72
|
+
|
|
73
|
+
### Fix Verification
|
|
74
|
+
- [ ] Bug no longer reproducible using original steps
|
|
75
|
+
- [ ] Expected behavior now works correctly
|
|
76
|
+
- [ ] Fix doesn't break related functionality
|
|
77
|
+
- [ ] No new error messages or console errors
|
|
78
|
+
|
|
79
|
+
### Tests
|
|
80
|
+
- [ ] Regression test added to prevent recurrence
|
|
81
|
+
- [ ] Related edge cases tested
|
|
82
|
+
- [ ] All tests passing
|
|
83
|
+
|
|
84
|
+
### Documentation
|
|
85
|
+
- [ ] Root cause documented (if significant pattern)
|
|
86
|
+
- [ ] Prevention notes added to knowledge base (if applicable)
|
|
87
|
+
- [ ] N/A - No significant documentation needed
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
## Technical Notes
|
|
92
|
+
|
|
93
|
+
### Root Cause Analysis
|
|
94
|
+
**Hypothesis:** [What you think is causing the bug]
|
|
95
|
+
|
|
96
|
+
**Investigation Findings:**
|
|
97
|
+
- [Finding 1 from debugging]
|
|
98
|
+
- [Finding 2 from debugging]
|
|
99
|
+
|
|
100
|
+
**Confirmed Cause:** [What's actually wrong - file, function, logic error]
|
|
101
|
+
|
|
102
|
+
### Fix Approach
|
|
103
|
+
[Describe the fix strategy - what needs to change]
|
|
104
|
+
|
|
105
|
+
**Files to Modify:**
|
|
106
|
+
- `path/to/file.tsx` - [What needs to change]
|
|
107
|
+
|
|
108
|
+
**Risk Assessment:**
|
|
109
|
+
- **Regression Risk:** Low | Medium | High
|
|
110
|
+
- **Testing Required:** [What needs to be tested]
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
## Dependencies
|
|
115
|
+
|
|
116
|
+
**Related Systems:**
|
|
117
|
+
- [System or feature where bug occurs]
|
|
118
|
+
|
|
119
|
+
**Blocks:**
|
|
120
|
+
- [Work that can't proceed until bug is fixed]
|
|
121
|
+
- OR: Nothing blocked
|
|
122
|
+
|
|
123
|
+
**Related Bugs:**
|
|
124
|
+
- [Link to related bug if applicable]
|
|
125
|
+
- OR: No related issues
|
|
126
|
+
|
|
127
|
+
---
|
|
128
|
+
|
|
129
|
+
## AI Effort Estimate
|
|
130
|
+
<!--
|
|
131
|
+
AGENT: Fill this section during /refine using the flydocs-estimates skill.
|
|
132
|
+
See .claude/skills/flydocs-estimates/SKILL.md for calculation details.
|
|
133
|
+
Update Actuals section during /close for calibration.
|
|
134
|
+
-->
|
|
135
|
+
|
|
136
|
+
### Sizing Factors
|
|
137
|
+
|
|
138
|
+
| Factor | Value | Multiplier |
|
|
139
|
+
|--------|-------|------------|
|
|
140
|
+
| **Task Type** | bug | base: 20k |
|
|
141
|
+
| **Scope** | [S/M/L/XL] | ×[0.5/1.0/2.0/4.0] |
|
|
142
|
+
| **Novelty** | [existing/partial/greenfield] | ×[0.7/1.2/2.0] |
|
|
143
|
+
| **Clarity** | [defined/discovery/exploratory] | ×[0.8/1.5/2.5] |
|
|
144
|
+
| **Codebase** | [simple/moderate/complex] | ×[0.8/1.0/1.5] |
|
|
145
|
+
|
|
146
|
+
### Estimate
|
|
147
|
+
|
|
148
|
+
**Provider**: [Claude Sonnet 4]
|
|
149
|
+
**Calculated Tokens**: ~[X]k
|
|
150
|
+
**Confidence**: ±[40-60]%
|
|
151
|
+
**Token Range**: [low]k - [high]k
|
|
152
|
+
**Cost Range**: $[low] - $[high]
|
|
153
|
+
|
|
154
|
+
### Actuals (fill on /close)
|
|
155
|
+
**Actual Tokens**: [fill after completion]
|
|
156
|
+
**Variance**: [+/-X]% [under/over estimate]
|
|
157
|
+
**Notes**: [what drove variance - investigation time, fix complexity, retries]
|
|
158
|
+
|
|
159
|
+
---
|
|
160
|
+
|
|
161
|
+
_Reported: YYYY-MM-DD_
|
|
162
|
+
|
|
163
|
+
|
|
164
|
+
|
|
165
|
+
|
|
166
|
+
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
<!-- AGENT INSTRUCTIONS
|
|
2
|
+
When creating or refining a chore issue:
|
|
3
|
+
|
|
4
|
+
1. CONTEXT SECTION:
|
|
5
|
+
- Explain the value (cleaner code, better UX, faster performance)
|
|
6
|
+
- Be specific about scope to prevent scope creep
|
|
7
|
+
- Mark as "Ongoing" if this is iterative work
|
|
8
|
+
|
|
9
|
+
2. TASK LIST:
|
|
10
|
+
- Be specific and actionable
|
|
11
|
+
- Add tasks as you discover them during work
|
|
12
|
+
- Move tasks to "Out of Scope" if they're too big
|
|
13
|
+
- Tasks should be completable in one session
|
|
14
|
+
|
|
15
|
+
3. ACCEPTANCE CRITERIA:
|
|
16
|
+
- Focus on completion and quality
|
|
17
|
+
- Mark documentation as N/A if no new patterns
|
|
18
|
+
- Mark tests as N/A if no behavior changes
|
|
19
|
+
|
|
20
|
+
4. COMPLETION CRITERIA:
|
|
21
|
+
- "Done when" should be clear stopping point
|
|
22
|
+
- If scope keeps growing, suggest splitting into multiple chores
|
|
23
|
+
|
|
24
|
+
5. WORKFLOW:
|
|
25
|
+
- Chores often skip formal review/QA
|
|
26
|
+
- Use simplified flow: Backlog → In Progress → Done
|
|
27
|
+
- Use full flow only for significant refactors
|
|
28
|
+
|
|
29
|
+
Remove these instructions when creating the final issue.
|
|
30
|
+
-->
|
|
31
|
+
|
|
32
|
+
## Context
|
|
33
|
+
|
|
34
|
+
**Why This Matters:**
|
|
35
|
+
[Explanation of the value - cleaner code, better UX, faster performance, etc.]
|
|
36
|
+
|
|
37
|
+
**Scope:**
|
|
38
|
+
[What areas/pages/features does this touch? Be specific enough to stay focused.]
|
|
39
|
+
|
|
40
|
+
**Type:** Ongoing | One-time
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## Task List
|
|
45
|
+
|
|
46
|
+
### Initial Tasks
|
|
47
|
+
- [ ] [Task 1 - be specific]
|
|
48
|
+
- [ ] [Task 2 - be specific]
|
|
49
|
+
- [ ] [Task 3 - be specific]
|
|
50
|
+
|
|
51
|
+
### Added During Work
|
|
52
|
+
<!-- Add new tasks discovered while working -->
|
|
53
|
+
|
|
54
|
+
### Out of Scope
|
|
55
|
+
<!-- Tasks that don't fit - might become new issues -->
|
|
56
|
+
- [Task that's too big or different focus]
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## Acceptance Criteria
|
|
61
|
+
|
|
62
|
+
### Completion
|
|
63
|
+
- [ ] All initial tasks completed (or moved to out of scope)
|
|
64
|
+
- [ ] Code quality acceptable
|
|
65
|
+
- [ ] No regressions introduced
|
|
66
|
+
|
|
67
|
+
### Tests
|
|
68
|
+
- [ ] Tests updated if behavior changed
|
|
69
|
+
- [ ] All tests passing
|
|
70
|
+
- [ ] N/A - No behavior changes
|
|
71
|
+
|
|
72
|
+
### Documentation
|
|
73
|
+
- [ ] Patterns documented (if new approach discovered)
|
|
74
|
+
- [ ] N/A - No significant documentation needed
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
## Technical Notes
|
|
79
|
+
|
|
80
|
+
### Approach
|
|
81
|
+
[How you'll tackle this work]
|
|
82
|
+
|
|
83
|
+
### Files to Touch
|
|
84
|
+
- `path/to/file.tsx` - [What changes]
|
|
85
|
+
|
|
86
|
+
### Risk Assessment
|
|
87
|
+
- **Regression Risk:** Low | Medium | High
|
|
88
|
+
- **Related Areas:** [What else might be affected]
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
## Completion Criteria
|
|
93
|
+
|
|
94
|
+
**This chore is done when:**
|
|
95
|
+
- [ ] [Completion criterion 1]
|
|
96
|
+
- [ ] [Completion criterion 2]
|
|
97
|
+
- [ ] No obvious improvements remaining in scope
|
|
98
|
+
|
|
99
|
+
**Signs this needs to be split:**
|
|
100
|
+
- Work has been ongoing for 3+ weeks
|
|
101
|
+
- Scope has grown significantly
|
|
102
|
+
- New tasks are unrelated to original purpose
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
_Created: YYYY-MM-DD_
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# Design System Templates
|
|
2
|
+
|
|
3
|
+
These templates are used when initializing a design system for your project.
|
|
4
|
+
|
|
5
|
+
## Files
|
|
6
|
+
|
|
7
|
+
| File | Purpose |
|
|
8
|
+
|------|---------|
|
|
9
|
+
| `token-mapping.md` | Maps Figma values to project tokens |
|
|
10
|
+
| `component-patterns.md` | Documents reusable components |
|
|
11
|
+
|
|
12
|
+
## Usage
|
|
13
|
+
|
|
14
|
+
When you run `/design-setup` and enable a design system:
|
|
15
|
+
|
|
16
|
+
1. These templates are copied to `flydocs/design-system/` (your project content directory)
|
|
17
|
+
2. Token mapping is populated from Figma (if file key provided)
|
|
18
|
+
3. Component patterns are filled based on existing codebase
|
|
19
|
+
|
|
20
|
+
## Customization
|
|
21
|
+
|
|
22
|
+
After initialization, customize these files for your project:
|
|
23
|
+
- Add project-specific tokens
|
|
24
|
+
- Document your component library
|
|
25
|
+
- Add usage examples
|
|
26
|
+
|
|
27
|
+
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
# Component Patterns
|
|
2
|
+
|
|
3
|
+
Document your project's reusable components and patterns.
|
|
4
|
+
|
|
5
|
+
> **Instructions:** Fill this file with your existing components.
|
|
6
|
+
> Reference these before creating new components.
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Available Components
|
|
11
|
+
|
|
12
|
+
### Buttons
|
|
13
|
+
|
|
14
|
+
| Component | Import | Usage |
|
|
15
|
+
|-----------|--------|-------|
|
|
16
|
+
| `Button` | `@/components/buttons/Button` | Primary, secondary, ghost variants |
|
|
17
|
+
| | | |
|
|
18
|
+
|
|
19
|
+
#### Button Usage
|
|
20
|
+
|
|
21
|
+
```tsx
|
|
22
|
+
import { Button } from '@/components/buttons'
|
|
23
|
+
|
|
24
|
+
// Primary (default)
|
|
25
|
+
<Button variant="primary" size="md">Get started</Button>
|
|
26
|
+
|
|
27
|
+
// Secondary
|
|
28
|
+
<Button variant="secondary" size="md">Learn more</Button>
|
|
29
|
+
|
|
30
|
+
// Full width
|
|
31
|
+
<Button variant="primary" className="w-full">Submit</Button>
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
### Cards
|
|
37
|
+
|
|
38
|
+
| Component | Import | Usage |
|
|
39
|
+
|-----------|--------|-------|
|
|
40
|
+
| | | |
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
### Forms
|
|
45
|
+
|
|
46
|
+
| Component | Import | Usage |
|
|
47
|
+
|-----------|--------|-------|
|
|
48
|
+
| | | |
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
### Navigation
|
|
53
|
+
|
|
54
|
+
| Component | Import | Usage |
|
|
55
|
+
|-----------|--------|-------|
|
|
56
|
+
| | | |
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
### Sections
|
|
61
|
+
|
|
62
|
+
| Component | Import | Usage |
|
|
63
|
+
|-----------|--------|-------|
|
|
64
|
+
| | | |
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## Component Rules
|
|
69
|
+
|
|
70
|
+
### DO
|
|
71
|
+
- Use existing components before creating new ones
|
|
72
|
+
- Extend existing components via props/className
|
|
73
|
+
- Follow established patterns
|
|
74
|
+
|
|
75
|
+
### DON'T
|
|
76
|
+
- Write inline button styles when Button exists
|
|
77
|
+
- Duplicate component code
|
|
78
|
+
- Create new components without checking existing ones
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## Red Flags
|
|
83
|
+
|
|
84
|
+
```tsx
|
|
85
|
+
// ❌ Inline button styling when Button component exists
|
|
86
|
+
<button className="bg-blue-600 text-white px-4 py-2 rounded-md">
|
|
87
|
+
|
|
88
|
+
// ✅ Use the Button component
|
|
89
|
+
<Button variant="primary">Submit</Button>
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
# Token Mapping (Figma → Project)
|
|
2
|
+
|
|
3
|
+
Translate Figma values to project design tokens.
|
|
4
|
+
|
|
5
|
+
> **Instructions:** Fill this file with your project's token mappings.
|
|
6
|
+
> Run `/extract-tokens` with a Figma design system file to auto-populate.
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Quick Reference: Hex → Token
|
|
11
|
+
|
|
12
|
+
| Hex | Token | Class |
|
|
13
|
+
|-----|-------|-------|
|
|
14
|
+
| | | |
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## Colors
|
|
19
|
+
|
|
20
|
+
### Background Colors
|
|
21
|
+
|
|
22
|
+
| Figma Variable | Hex | Tailwind Class |
|
|
23
|
+
|----------------|-----|----------------|
|
|
24
|
+
| | | |
|
|
25
|
+
|
|
26
|
+
### Text Colors
|
|
27
|
+
|
|
28
|
+
| Figma Variable | Hex | Tailwind Class |
|
|
29
|
+
|----------------|-----|----------------|
|
|
30
|
+
| | | |
|
|
31
|
+
|
|
32
|
+
### Border Colors
|
|
33
|
+
|
|
34
|
+
| Figma Variable | Hex | Tailwind Class |
|
|
35
|
+
|----------------|-----|----------------|
|
|
36
|
+
| | | |
|
|
37
|
+
|
|
38
|
+
### Brand Colors
|
|
39
|
+
|
|
40
|
+
| Figma Variable | Hex | Tailwind Class |
|
|
41
|
+
|----------------|-----|----------------|
|
|
42
|
+
| | | |
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## Typography
|
|
47
|
+
|
|
48
|
+
### Font Families
|
|
49
|
+
|
|
50
|
+
| Figma Font | Tailwind Class |
|
|
51
|
+
|------------|----------------|
|
|
52
|
+
| | |
|
|
53
|
+
|
|
54
|
+
### Font Sizes
|
|
55
|
+
|
|
56
|
+
| Figma Size | Tailwind Class | Line Height |
|
|
57
|
+
|------------|----------------|-------------|
|
|
58
|
+
| | | |
|
|
59
|
+
|
|
60
|
+
### Font Weights
|
|
61
|
+
|
|
62
|
+
| Figma Weight | Tailwind Class |
|
|
63
|
+
|--------------|----------------|
|
|
64
|
+
| 400 / Regular | `font-normal` |
|
|
65
|
+
| 500 / Medium | `font-medium` |
|
|
66
|
+
| 600 / SemiBold | `font-semibold` |
|
|
67
|
+
| 700 / Bold | `font-bold` |
|
|
68
|
+
|
|
69
|
+
### Common Typography Patterns
|
|
70
|
+
|
|
71
|
+
| Use Case | Classes |
|
|
72
|
+
|----------|---------|
|
|
73
|
+
| Display heading | |
|
|
74
|
+
| Section heading | |
|
|
75
|
+
| Body text | |
|
|
76
|
+
| Button text | |
|
|
77
|
+
| Small text | |
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
## Spacing
|
|
82
|
+
|
|
83
|
+
| Figma (px) | Token | Class Examples |
|
|
84
|
+
|------------|-------|----------------|
|
|
85
|
+
| 4px | | `p-1`, `gap-1` |
|
|
86
|
+
| 8px | | `p-2`, `gap-2` |
|
|
87
|
+
| 12px | | `p-3`, `gap-3` |
|
|
88
|
+
| 16px | | `p-4`, `gap-4` |
|
|
89
|
+
| 20px | | `p-5`, `gap-5` |
|
|
90
|
+
| 24px | | `p-6`, `gap-6` |
|
|
91
|
+
| 32px | | `p-8`, `gap-8` |
|
|
92
|
+
| 40px | | `p-10`, `gap-10` |
|
|
93
|
+
| 48px | | `p-12`, `gap-12` |
|
|
94
|
+
| 64px | | `p-16`, `gap-16` |
|
|
95
|
+
|
|
96
|
+
### Values Without Tokens
|
|
97
|
+
|
|
98
|
+
| Figma (px) | Use Arbitrary Value |
|
|
99
|
+
|------------|---------------------|
|
|
100
|
+
| 18px | `px-[18px]` |
|
|
101
|
+
| | |
|
|
102
|
+
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
## Border Radius
|
|
106
|
+
|
|
107
|
+
| Figma (px) | Token | Tailwind Class |
|
|
108
|
+
|------------|-------|----------------|
|
|
109
|
+
| 4px | | `rounded-sm` |
|
|
110
|
+
| 6px | | `rounded-md` |
|
|
111
|
+
| 8px | | `rounded-lg` |
|
|
112
|
+
| 12px | | `rounded-xl` |
|
|
113
|
+
| 16px | | `rounded-2xl` |
|
|
114
|
+
| 9999px | | `rounded-full` |
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
## Shadows
|
|
119
|
+
|
|
120
|
+
| Figma Shadow | Tailwind Class |
|
|
121
|
+
|--------------|----------------|
|
|
122
|
+
| | |
|
|
123
|
+
|
|
124
|
+
---
|
|
125
|
+
|
|
126
|
+
## Figma Property → Tailwind Translation
|
|
127
|
+
|
|
128
|
+
### Layout Properties
|
|
129
|
+
|
|
130
|
+
| Figma Property | Value | Tailwind |
|
|
131
|
+
|----------------|-------|----------|
|
|
132
|
+
| `layoutMode` | `"VERTICAL"` | `flex flex-col` |
|
|
133
|
+
| `layoutMode` | `"HORIZONTAL"` | `flex flex-row` |
|
|
134
|
+
| `primaryAxisAlignItems` | `"MIN"` | `justify-start` |
|
|
135
|
+
| `primaryAxisAlignItems` | `"CENTER"` | `justify-center` |
|
|
136
|
+
| `primaryAxisAlignItems` | `"MAX"` | `justify-end` |
|
|
137
|
+
| `primaryAxisAlignItems` | `"SPACE_BETWEEN"` | `justify-between` |
|
|
138
|
+
| `counterAxisAlignItems` | `"MIN"` | `items-start` |
|
|
139
|
+
| `counterAxisAlignItems` | `"CENTER"` | `items-center` |
|
|
140
|
+
| `counterAxisAlignItems` | `"MAX"` | `items-end` |
|
|
141
|
+
|
|
142
|
+
### Sizing Properties
|
|
143
|
+
|
|
144
|
+
| Figma Property | Value | Tailwind |
|
|
145
|
+
|----------------|-------|----------|
|
|
146
|
+
| `layoutSizingHorizontal` | `"FIXED"` | `w-[Xpx]` |
|
|
147
|
+
| `layoutSizingHorizontal` | `"FILL"` | `w-full` |
|
|
148
|
+
| `layoutSizingHorizontal` | `"HUG"` | `w-fit` |
|
|
149
|
+
| `layoutSizingVertical` | `"FIXED"` | `h-[Xpx]` |
|
|
150
|
+
| `layoutSizingVertical` | `"FILL"` | `h-full` |
|
|
151
|
+
| `layoutSizingVertical` | `"HUG"` | `h-fit` |
|
|
152
|
+
|
|
153
|
+
---
|
|
154
|
+
|
|
155
|
+
## When No Token Exists
|
|
156
|
+
|
|
157
|
+
If a Figma value doesn't have a project token:
|
|
158
|
+
|
|
159
|
+
1. **Document it** in your specification table
|
|
160
|
+
2. **Use arbitrary value**: `p-[18px]`, `rounded-[10px]`
|
|
161
|
+
3. **Note for future**: Consider adding token if used frequently
|
|
162
|
+
|
|
163
|
+
```tsx
|
|
164
|
+
// Documented exception: 18px padding (no token)
|
|
165
|
+
className="px-[18px] py-3"
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
|