fecode-cli 1.0.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/dist/App.d.ts +33 -0
- package/dist/App.js +2224 -0
- package/dist/approvalResolver.d.ts +12 -0
- package/dist/approvalResolver.js +112 -0
- package/dist/commands.d.ts +11 -0
- package/dist/commands.js +33 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +15175 -0
- package/dist/ui/AppShell.d.ts +14 -0
- package/dist/ui/AppShell.js +25 -0
- package/dist/ui/ApprovalPrompt.d.ts +31 -0
- package/dist/ui/ApprovalPrompt.js +55 -0
- package/dist/ui/BlockedView.d.ts +13 -0
- package/dist/ui/BlockedView.js +7 -0
- package/dist/ui/CommandPalette.d.ts +8 -0
- package/dist/ui/CommandPalette.js +18 -0
- package/dist/ui/CurrentStepView.d.ts +16 -0
- package/dist/ui/CurrentStepView.js +28 -0
- package/dist/ui/DiagnosticsView.d.ts +45 -0
- package/dist/ui/DiagnosticsView.js +23 -0
- package/dist/ui/ExecutionTimeline.d.ts +15 -0
- package/dist/ui/ExecutionTimeline.js +51 -0
- package/dist/ui/ExecutionView.d.ts +42 -0
- package/dist/ui/ExecutionView.js +20 -0
- package/dist/ui/Header.d.ts +15 -0
- package/dist/ui/Header.js +47 -0
- package/dist/ui/HelpView.d.ts +3 -0
- package/dist/ui/HelpView.js +35 -0
- package/dist/ui/MessageBubble.d.ts +9 -0
- package/dist/ui/MessageBubble.js +58 -0
- package/dist/ui/PlanStep.d.ts +16 -0
- package/dist/ui/PlanStep.js +71 -0
- package/dist/ui/PlanView.d.ts +26 -0
- package/dist/ui/PlanView.js +24 -0
- package/dist/ui/ProgressBar.d.ts +10 -0
- package/dist/ui/ProgressBar.js +14 -0
- package/dist/ui/RecoveryView.d.ts +20 -0
- package/dist/ui/RecoveryView.js +19 -0
- package/dist/ui/ReplanView.d.ts +16 -0
- package/dist/ui/ReplanView.js +21 -0
- package/dist/ui/ResumeView.d.ts +15 -0
- package/dist/ui/ResumeView.js +25 -0
- package/dist/ui/RiskNotice.d.ts +10 -0
- package/dist/ui/RiskNotice.js +21 -0
- package/dist/ui/RunHistoryView.d.ts +15 -0
- package/dist/ui/RunHistoryView.js +39 -0
- package/dist/ui/StatusBar.d.ts +16 -0
- package/dist/ui/StatusBar.js +104 -0
- package/dist/ui/TaskInput.d.ts +15 -0
- package/dist/ui/TaskInput.js +8 -0
- package/dist/ui/ThinkingBlock.d.ts +8 -0
- package/dist/ui/ThinkingBlock.js +13 -0
- package/dist/ui/ThinkingIndicator.d.ts +7 -0
- package/dist/ui/ThinkingIndicator.js +20 -0
- package/dist/ui/TurnView.d.ts +13 -0
- package/dist/ui/TurnView.js +11 -0
- package/dist/ui/WorkspaceStatus.d.ts +20 -0
- package/dist/ui/WorkspaceStatus.js +23 -0
- package/dist/ui/index.d.ts +26 -0
- package/dist/ui/index.js +26 -0
- package/package.json +42 -0
- package/skills/accessibility/SKILL.md +98 -0
- package/skills/css/SKILL.md +90 -0
- package/skills/frontend-debugging/SKILL.md +201 -0
- package/skills/frontend-design/SKILL.md +358 -0
- package/skills/frontend-performance/SKILL.md +89 -0
- package/skills/frontend-testing/SKILL.md +87 -0
- package/skills/nextjs/SKILL.md +75 -0
- package/skills/react/SKILL.md +213 -0
- package/skills/responsive-design/SKILL.md +190 -0
- package/skills/svelte/SKILL.md +86 -0
- package/skills/tailwind/SKILL.md +74 -0
- package/skills/ui-review/SKILL.md +245 -0
- package/skills/vue/SKILL.md +72 -0
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ui-review
|
|
3
|
+
description: Structured UI critique and evaluation for existing interfaces. Apply when asked to review, evaluate, audit, or assess an interface — not to build or modify it. This skill produces prioritized findings across visual hierarchy, layout, typography, color, components, responsive behavior, interaction states, accessibility, content, and visual genericness. Use it before implementing improvements to establish what matters most.
|
|
4
|
+
category: frontend
|
|
5
|
+
version: 1.0.0
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# UI Review
|
|
9
|
+
|
|
10
|
+
## When to use
|
|
11
|
+
- Reviewing an existing interface and identifying what should be improved
|
|
12
|
+
- Auditing a page or component before a redesign or polish pass
|
|
13
|
+
- Identifying the highest-impact issues before a sprint or release
|
|
14
|
+
- Evaluating a newly implemented UI against its design intent
|
|
15
|
+
- Producing a prioritized list of findings for a team discussion
|
|
16
|
+
|
|
17
|
+
## When not to use
|
|
18
|
+
- Building new UI from scratch (use frontend-design instead)
|
|
19
|
+
- Fixing a specific broken interaction (use frontend-debugging instead)
|
|
20
|
+
- Implementing responsive layout improvements (use responsive-design instead)
|
|
21
|
+
|
|
22
|
+
## Instructions
|
|
23
|
+
- Review the interface as a product, not merely as code.
|
|
24
|
+
- Do not automatically modify files during a review — produce findings first.
|
|
25
|
+
- Prioritize findings by user impact, not by personal aesthetic preference.
|
|
26
|
+
- Ground every finding in a specific observation: where the issue occurs, what the effect is, why it matters.
|
|
27
|
+
- Distinguish between problems that impair usability and those that are polish opportunities.
|
|
28
|
+
- Do not invent component locations or file paths without inspecting the actual codebase.
|
|
29
|
+
|
|
30
|
+
## Core Principle
|
|
31
|
+
|
|
32
|
+
A UI review evaluates whether the interface serves its users effectively.
|
|
33
|
+
|
|
34
|
+
Before reviewing visual aesthetics, understand:
|
|
35
|
+
- What is this interface for?
|
|
36
|
+
- Who uses it?
|
|
37
|
+
- What must they accomplish?
|
|
38
|
+
- What is the primary action or decision?
|
|
39
|
+
|
|
40
|
+
These answers determine what hierarchy problems matter and which visual choices are appropriate.
|
|
41
|
+
|
|
42
|
+
## Review Workflow
|
|
43
|
+
|
|
44
|
+
1. Understand the product and page purpose — what is this interface for?
|
|
45
|
+
2. Inspect the design system: existing components, tokens, conventions.
|
|
46
|
+
3. Read relevant component implementations.
|
|
47
|
+
4. Understand the primary user tasks.
|
|
48
|
+
5. Review visual hierarchy.
|
|
49
|
+
6. Review layout and spatial composition.
|
|
50
|
+
7. Review typography.
|
|
51
|
+
8. Review color.
|
|
52
|
+
9. Review responsive behavior.
|
|
53
|
+
10. Review interaction states.
|
|
54
|
+
11. Review accessibility basics.
|
|
55
|
+
12. Review content quality.
|
|
56
|
+
13. Identify visual genericness where it harms the product.
|
|
57
|
+
14. Consolidate findings by priority.
|
|
58
|
+
15. Produce structured output.
|
|
59
|
+
|
|
60
|
+
Do NOT edit files during review. If the user requests fixes after review, use FeCode's normal write tools and approval flow.
|
|
61
|
+
|
|
62
|
+
## Review Area: Visual Hierarchy
|
|
63
|
+
|
|
64
|
+
Evaluate:
|
|
65
|
+
- **Primary action clarity**: Is the most important action visually dominant?
|
|
66
|
+
- **Information hierarchy**: Does the layout communicate what matters most?
|
|
67
|
+
- **Typography hierarchy**: Do heading, subheading, body, and label roles create clear differentiation?
|
|
68
|
+
- **Visual weight**: Does emphasis land on meaningful content, or is everything equally prominent?
|
|
69
|
+
- **Scanability**: Can a user quickly orient themselves and find what they need?
|
|
70
|
+
|
|
71
|
+
Questions to answer:
|
|
72
|
+
- What does a user see first? Is that the right thing?
|
|
73
|
+
- Are there elements competing for attention that should not?
|
|
74
|
+
- Does anything important get buried in visual noise?
|
|
75
|
+
|
|
76
|
+
## Review Area: Layout and Spatial Composition
|
|
77
|
+
|
|
78
|
+
Evaluate:
|
|
79
|
+
- **Alignment**: Are elements consistently aligned on a grid?
|
|
80
|
+
- **Spacing**: Is spacing consistent? Does it communicate groupings correctly?
|
|
81
|
+
- **Grouping**: Do related elements appear proximate? Do unrelated elements have adequate separation?
|
|
82
|
+
- **Container width**: Is body content constrained to a readable width, or is it full-bleed on wide screens?
|
|
83
|
+
- **Density**: Is the layout density appropriate for the use case (dashboard vs. reading view vs. form)?
|
|
84
|
+
- **Rhythm**: Is there consistent vertical rhythm through the page?
|
|
85
|
+
|
|
86
|
+
## Review Area: Typography
|
|
87
|
+
|
|
88
|
+
Evaluate:
|
|
89
|
+
- **Readability**: Can all text be comfortably read at its current size and contrast?
|
|
90
|
+
- **Hierarchy**: Do heading levels create meaningful visual differentiation?
|
|
91
|
+
- **Line length**: Is body text constrained to a readable measure (roughly 55–80ch)?
|
|
92
|
+
- **Weight usage**: Is font weight used to create hierarchy, or is it decorative?
|
|
93
|
+
- **Size appropriateness**: Are secondary/caption/label sizes legible at 100% zoom?
|
|
94
|
+
- **Consistency**: Is the same typographic role expressed consistently across the interface?
|
|
95
|
+
|
|
96
|
+
## Review Area: Color
|
|
97
|
+
|
|
98
|
+
Evaluate:
|
|
99
|
+
- **Semantic meaning**: Do colors communicate their intended meaning (error red, success green, primary action)?
|
|
100
|
+
- **Contrast**: Is text readable on its background? (WCAG AA minimum)
|
|
101
|
+
- **Accent discipline**: Are accent colors used purposefully, or scattered decoratively?
|
|
102
|
+
- **Surface hierarchy**: Does background → surface → elevated surface create clear depth?
|
|
103
|
+
- **Design token consistency**: Are arbitrary hex values appearing where design tokens should be used?
|
|
104
|
+
- **Dark mode consistency**: If dark mode is present, do colors maintain their semantic meaning?
|
|
105
|
+
|
|
106
|
+
## Review Area: Components
|
|
107
|
+
|
|
108
|
+
Evaluate:
|
|
109
|
+
- **Consistency**: Do similar UI patterns use the same components?
|
|
110
|
+
- **Reuse**: Are existing primitives (Button, Card, Input) used rather than re-implemented?
|
|
111
|
+
- **Duplication**: Are there multiple implementations of the same visual component?
|
|
112
|
+
- **Unnecessary complexity**: Are any components over-engineered for their actual use?
|
|
113
|
+
- **Component boundaries**: Do components have coherent, single responsibilities?
|
|
114
|
+
|
|
115
|
+
## Review Area: Responsive Behavior
|
|
116
|
+
|
|
117
|
+
Evaluate:
|
|
118
|
+
- **Narrow viewport**: Does the layout function at 375px?
|
|
119
|
+
- **Intermediate widths**: Does anything break awkwardly between breakpoints?
|
|
120
|
+
- **Wide screens**: Is content meaningfully constrained on very wide viewports?
|
|
121
|
+
- **Horizontal overflow**: Is there any unexpected horizontal scrolling?
|
|
122
|
+
- **Navigation**: Does navigation function correctly at small sizes?
|
|
123
|
+
- **Content wrapping**: Does text wrap gracefully, or does it truncate unexpectedly?
|
|
124
|
+
|
|
125
|
+
## Review Area: Interaction States
|
|
126
|
+
|
|
127
|
+
Evaluate whether all interactive elements have defined, visible states:
|
|
128
|
+
|
|
129
|
+
| State | Present | Distinct | Accessible |
|
|
130
|
+
|-------|---------|----------|------------|
|
|
131
|
+
| hover | ? | ? | ? |
|
|
132
|
+
| focus-visible | ? | ? | ? |
|
|
133
|
+
| active/pressed | ? | ? | ? |
|
|
134
|
+
| disabled | ? | ? | ? |
|
|
135
|
+
| loading | ? | ? | ? |
|
|
136
|
+
| error | ? | ? | ? |
|
|
137
|
+
| success | ? | ? | ? |
|
|
138
|
+
| empty | ? | ? | ? |
|
|
139
|
+
|
|
140
|
+
A UI where only `hover` is styled is incomplete.
|
|
141
|
+
|
|
142
|
+
## Review Area: Accessibility Basics
|
|
143
|
+
|
|
144
|
+
Evaluate (do not duplicate the full accessibility skill):
|
|
145
|
+
- **Semantic HTML**: Are interactive elements real buttons and links?
|
|
146
|
+
- **Keyboard access**: Can the primary interaction be completed without a mouse?
|
|
147
|
+
- **Visible focus**: Is `:focus-visible` styled and visible?
|
|
148
|
+
- **Contrast**: Does text pass WCAG AA contrast ratios?
|
|
149
|
+
- **Labels**: Do form fields and icon buttons have accessible labels?
|
|
150
|
+
- **Color-only communication**: Is any state communicated by color alone, with no other indicator?
|
|
151
|
+
|
|
152
|
+
For deeper accessibility evaluation, pair this review with the accessibility skill.
|
|
153
|
+
|
|
154
|
+
## Review Area: Content Quality
|
|
155
|
+
|
|
156
|
+
Evaluate:
|
|
157
|
+
- **Labels**: Are labels specific and action-oriented, or vague ("Submit", "Click here")?
|
|
158
|
+
- **Placeholder content**: Is any placeholder text visible in the interface?
|
|
159
|
+
- **Realistic content assumptions**: Is the layout tested with realistic content lengths?
|
|
160
|
+
- **Empty states**: Are empty states designed, or do they leave a blank void?
|
|
161
|
+
- **Error states**: Do error messages explain what happened and what to do?
|
|
162
|
+
- **Long content**: Does the layout handle long names, descriptions, or list items gracefully?
|
|
163
|
+
|
|
164
|
+
## Review Area: Visual Genericness
|
|
165
|
+
|
|
166
|
+
Look for patterns that indicate the interface could belong to any product:
|
|
167
|
+
|
|
168
|
+
- Cards used for every content type regardless of appropriateness
|
|
169
|
+
- Hero sections with centered headline, subtext, and two buttons on every page
|
|
170
|
+
- Uniform rounded corners regardless of brand personality
|
|
171
|
+
- Gradients applied without product purpose
|
|
172
|
+
- Glassmorphism or blur effects used decoratively
|
|
173
|
+
- Decorative blobs, particles, or abstract shapes
|
|
174
|
+
- Every section wrapped in a card, inside another card
|
|
175
|
+
- Bento grids with unrelated icons as content substitutes
|
|
176
|
+
- Repetitive section structure repeated across multiple pages
|
|
177
|
+
|
|
178
|
+
**Evaluate whether each pattern serves the product, not whether it is fashionable.**
|
|
179
|
+
|
|
180
|
+
Some of these patterns are legitimate for specific products and design directions. Flag them only when they appear mechanical rather than deliberate.
|
|
181
|
+
|
|
182
|
+
## Finding Severity Levels
|
|
183
|
+
|
|
184
|
+
Organize findings by user impact:
|
|
185
|
+
|
|
186
|
+
### Critical
|
|
187
|
+
Problems that materially impair the user's ability to accomplish their primary task.
|
|
188
|
+
|
|
189
|
+
Examples: Inaccessible interactive element, broken form validation, unreadable text contrast, layout collapse at target viewport.
|
|
190
|
+
|
|
191
|
+
### High
|
|
192
|
+
Significant problems that reduce trust, comprehension, or efficiency without blocking the primary task.
|
|
193
|
+
|
|
194
|
+
Examples: Missing interaction states, unclear hierarchy hiding important actions, inconsistent component usage, readable but poor typography hierarchy.
|
|
195
|
+
|
|
196
|
+
### Medium
|
|
197
|
+
Polish and consistency issues that reduce the interface's quality without direct functional impact.
|
|
198
|
+
|
|
199
|
+
Examples: Spacing inconsistencies, missing empty states, design token violations, minor typography inconsistencies.
|
|
200
|
+
|
|
201
|
+
### Low
|
|
202
|
+
Minor improvements with small user impact.
|
|
203
|
+
|
|
204
|
+
Examples: Wording improvements, hover animation polish, minor visual alignment corrections.
|
|
205
|
+
|
|
206
|
+
## Finding Format
|
|
207
|
+
|
|
208
|
+
Each finding should ideally include:
|
|
209
|
+
- **Issue**: What specifically is wrong
|
|
210
|
+
- **Location**: Where it occurs (component name, page section) — only assert specific file paths after inspecting them
|
|
211
|
+
- **Why it matters**: What user impact this has
|
|
212
|
+
- **Suggested direction**: What kind of fix would address it (not necessarily exact implementation)
|
|
213
|
+
|
|
214
|
+
Do not fabricate locations. If you have not read the relevant file, say "in the [ComponentName] component area" rather than inventing a file path.
|
|
215
|
+
|
|
216
|
+
## Self-Check Before Producing Findings
|
|
217
|
+
|
|
218
|
+
- Have you understood what this interface is actually for?
|
|
219
|
+
- Are your findings grounded in the interface's purpose, not generic UI preferences?
|
|
220
|
+
- Have you separated functional problems from aesthetic preferences?
|
|
221
|
+
- Have you prioritized by user impact, not by what is easy to fix?
|
|
222
|
+
- Have you avoided recommending a redesign when the user asked for a review?
|
|
223
|
+
|
|
224
|
+
## Avoid
|
|
225
|
+
|
|
226
|
+
- Automatically editing files during review — produce findings and let the user decide what to fix.
|
|
227
|
+
- Reporting every finding as Critical — prioritize ruthlessly.
|
|
228
|
+
- Asserting exact file paths without inspecting the actual codebase.
|
|
229
|
+
- Flagging valid design choices as problems simply because they are not your preference.
|
|
230
|
+
- Suggesting a full redesign when specific targeted improvements were requested.
|
|
231
|
+
- Producing generic findings that could apply to any interface — ground them in this specific product.
|
|
232
|
+
|
|
233
|
+
## Examples
|
|
234
|
+
|
|
235
|
+
### Example: Grounded hierarchy finding
|
|
236
|
+
|
|
237
|
+
Generic (unhelpful): "The visual hierarchy needs improvement."
|
|
238
|
+
|
|
239
|
+
Grounded: "The 'Export' action and the 'Delete' action appear at the same visual weight. Delete is a destructive action that users should approach deliberately; its current prominence may cause accidental triggering. Consider reducing its visual weight (ghost/outline variant) relative to the primary Export action."
|
|
240
|
+
|
|
241
|
+
### Example: Distinguishing problem from preference
|
|
242
|
+
|
|
243
|
+
"The rounded corners feel too soft" is a preference.
|
|
244
|
+
|
|
245
|
+
"The border-radius on these cards (24px) is inconsistent with all other components in the application (8px), creating visual fragmentation" is a grounded finding.
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: vue
|
|
3
|
+
description: Vue 3 Composition API, Options API, single-file components, and reactivity patterns.
|
|
4
|
+
category: framework
|
|
5
|
+
version: 2.1.0
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## When to use
|
|
9
|
+
|
|
10
|
+
- authoring Vue components
|
|
11
|
+
- using Vue Composition API or Options API
|
|
12
|
+
- handling Vue reactive state
|
|
13
|
+
|
|
14
|
+
## Instructions
|
|
15
|
+
|
|
16
|
+
### Project Detection & Existing Rules
|
|
17
|
+
- **Inspect package.json**: Identify Vue version (e.g., Vue 2 vs Vue 3).
|
|
18
|
+
- **API Style**: Check if the existing project uses Composition API (`<script setup>`) or Options API (`export default { data() ... }`).
|
|
19
|
+
- **Follow existing patterns**: Do not force Composition API if the existing project uses Options API, unless the user explicitly requests migration.
|
|
20
|
+
|
|
21
|
+
### Core Mental Model
|
|
22
|
+
- **Components**: Encapsulated UI units.
|
|
23
|
+
- **Props**: Immutable inputs from parents.
|
|
24
|
+
- **Emits**: Custom events emitted to parents.
|
|
25
|
+
- **Reactive State**: Mutable UI state driving the template.
|
|
26
|
+
- **Computed Values**: Derived reactive state.
|
|
27
|
+
- **Watchers**: Side effects triggered by reactive state changes.
|
|
28
|
+
|
|
29
|
+
### Reactivity
|
|
30
|
+
- Distinguish between **reactive state**, **computed values**, and **watchers**.
|
|
31
|
+
- Prefer computed values (`computed()`) for derived state.
|
|
32
|
+
- Use watchers (`watch()`, `watchEffect()`) for side effects rather than ordinary derivation.
|
|
33
|
+
|
|
34
|
+
### Composition
|
|
35
|
+
- Use Vue Single File Components (.vue).
|
|
36
|
+
- Extract reusable logic into composables (when using Composition API).
|
|
37
|
+
- Maintain clear component boundaries; break down large templates into smaller components.
|
|
38
|
+
- Use slots for flexible component composition and content distribution.
|
|
39
|
+
- Use provide/inject for deep dependency injection when appropriate.
|
|
40
|
+
|
|
41
|
+
### Forms
|
|
42
|
+
- Use `v-model` for two-way data binding on form inputs.
|
|
43
|
+
- Handle validation, loading/error states, and controlled data flow cleanly.
|
|
44
|
+
|
|
45
|
+
### Common Failure Modes
|
|
46
|
+
- **Unnecessary watchers**: Using watchers to update state when a computed property would suffice.
|
|
47
|
+
- **Mutating props incorrectly**: Attempting to mutate props directly, which violates one-way data flow.
|
|
48
|
+
- **Duplicated derived state**: Initializing state with a prop value instead of computing it dynamically.
|
|
49
|
+
- **Incorrect reactive references**: Forgetting `.value` when accessing refs in the script section (Composition API).
|
|
50
|
+
- **Overly large components**: Failing to break down monolithic Vue files.
|
|
51
|
+
|
|
52
|
+
## Anti-Patterns
|
|
53
|
+
|
|
54
|
+
- **Mutating props directly**
|
|
55
|
+
- *What*: Directly editing a prop passed from a parent component.
|
|
56
|
+
- *Why*: It creates unpredictable data flow and Vue will emit warnings.
|
|
57
|
+
- *Instead*: Emit an event to the parent to update the data, or use a writable computed property.
|
|
58
|
+
- **Using watchers for derived state**
|
|
59
|
+
- *What*: Putting logic in a `watch` block to calculate a value from other state.
|
|
60
|
+
- *Why*: It's imperative, harder to track, and often leads to out-of-sync state.
|
|
61
|
+
- *Instead*: Use `computed()` to declaratively derive state.
|
|
62
|
+
|
|
63
|
+
## Workflow
|
|
64
|
+
|
|
65
|
+
### Debugging
|
|
66
|
+
- Use Vue DevTools to inspect component state, props, and emitted events.
|
|
67
|
+
- Check if reactivity is lost by inspecting object destructuring (use `toRefs` if necessary).
|
|
68
|
+
|
|
69
|
+
### Verification
|
|
70
|
+
- Run project linting.
|
|
71
|
+
- Run project tests.
|
|
72
|
+
- Build the project using the existing scripts.
|