@caddis/cli 0.0.0 → 0.1.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/LICENSE +21 -0
- package/README.md +150 -1
- package/bundles/antigravity-plugin/agents/code-reviewer.md +47 -0
- package/bundles/antigravity-plugin/agents/preflight.md +53 -0
- package/bundles/antigravity-plugin/guard_agy.py +338 -0
- package/bundles/antigravity-plugin/hooks.json +36 -0
- package/bundles/antigravity-plugin/mcp_config.json +8 -0
- package/bundles/antigravity-plugin/mcp_ping_server.py +55 -0
- package/bundles/antigravity-plugin/plugin.json +5 -0
- package/bundles/antigravity-plugin/session_end_agy.py +57 -0
- package/bundles/antigravity-plugin/skills/_registry.md +115 -0
- package/bundles/antigravity-plugin/skills/add-rules/SKILL.md +45 -0
- package/bundles/antigravity-plugin/skills/api-design/SKILL.md +249 -0
- package/bundles/antigravity-plugin/skills/backend-development/SKILL.md +305 -0
- package/bundles/antigravity-plugin/skills/best-practices/SKILL.md +500 -0
- package/bundles/antigravity-plugin/skills/best-practices/agents/best-practices-referencer.md +263 -0
- package/bundles/antigravity-plugin/skills/best-practices/agents/codebase-context-builder.md +326 -0
- package/bundles/antigravity-plugin/skills/best-practices/agents/task-intent-analyzer.md +245 -0
- package/bundles/antigravity-plugin/skills/best-practices/references/anti-patterns.md +571 -0
- package/bundles/antigravity-plugin/skills/best-practices/references/before-after-examples.md +1114 -0
- package/bundles/antigravity-plugin/skills/best-practices/references/best-practices-guide.md +513 -0
- package/bundles/antigravity-plugin/skills/best-practices/references/common-workflows.md +692 -0
- package/bundles/antigravity-plugin/skills/best-practices/references/prompt-patterns.md +547 -0
- package/bundles/antigravity-plugin/skills/brainstorming/SKILL.md +57 -0
- package/bundles/antigravity-plugin/skills/ci-cd-pipeline/SKILL.md +315 -0
- package/bundles/antigravity-plugin/skills/code-documentation/SKILL.md +271 -0
- package/bundles/antigravity-plugin/skills/code-review/SKILL.md +122 -0
- package/bundles/antigravity-plugin/skills/codebase-audit/SKILL.md +204 -0
- package/bundles/antigravity-plugin/skills/context-curator/SKILL.md +157 -0
- package/bundles/antigravity-plugin/skills/cross-review/SKILL.md +40 -0
- package/bundles/antigravity-plugin/skills/css-architecture/SKILL.md +305 -0
- package/bundles/antigravity-plugin/skills/css-architecture/references/RESPONSIVE-DESIGN.md +604 -0
- package/bundles/antigravity-plugin/skills/database-design/SKILL.md +177 -0
- package/bundles/antigravity-plugin/skills/db-diagram/SKILL.md +148 -0
- package/bundles/antigravity-plugin/skills/db-diagram/scripts/sql_to_graph.py +1212 -0
- package/bundles/antigravity-plugin/skills/digress/SKILL.md +61 -0
- package/bundles/antigravity-plugin/skills/draw-io/SKILL.md +162 -0
- package/bundles/antigravity-plugin/skills/draw-io/references/aws-icons.md +677 -0
- package/bundles/antigravity-plugin/skills/draw-io/references/layout-guidelines.md +142 -0
- package/bundles/antigravity-plugin/skills/draw-io/references/troubleshooting.md +118 -0
- package/bundles/antigravity-plugin/skills/draw-io/references/workflows.md +103 -0
- package/bundles/antigravity-plugin/skills/draw-io/scripts/convert-drawio-to-png.sh +25 -0
- package/bundles/antigravity-plugin/skills/draw-io/scripts/find_aws_icon.py +79 -0
- package/bundles/antigravity-plugin/skills/error-handling/SKILL.md +260 -0
- package/bundles/antigravity-plugin/skills/excalidraw-db/SKILL.md +38 -0
- package/bundles/antigravity-plugin/skills/fastapi-dev/SKILL.md +300 -0
- package/bundles/antigravity-plugin/skills/feature-plan/SKILL.md +198 -0
- package/bundles/antigravity-plugin/skills/frontend-design/SKILL.md +193 -0
- package/bundles/antigravity-plugin/skills/frontend-design/references/my-tech-stack.md +127 -0
- package/bundles/antigravity-plugin/skills/gh-cli/SKILL.md +195 -0
- package/bundles/antigravity-plugin/skills/git-commit/SKILL.md +285 -0
- package/bundles/antigravity-plugin/skills/golden-plan/SKILL.md +577 -0
- package/bundles/antigravity-plugin/skills/handoff/SKILL.md +100 -0
- package/bundles/antigravity-plugin/skills/implement/SKILL.md +114 -0
- package/bundles/antigravity-plugin/skills/javascript-typescript/SKILL.md +142 -0
- package/bundles/antigravity-plugin/skills/kb/SKILL.md +60 -0
- package/bundles/antigravity-plugin/skills/mermaid-db/SKILL.md +33 -0
- package/bundles/antigravity-plugin/skills/mermaid-diagrams/SKILL.md +236 -0
- package/bundles/antigravity-plugin/skills/mermaid-diagrams/references/ENHANCEMENTS.md +264 -0
- package/bundles/antigravity-plugin/skills/mermaid-diagrams/references/MERMAID-SUMMARY.md +137 -0
- package/bundles/antigravity-plugin/skills/mermaid-diagrams/references/advanced-features.md +556 -0
- package/bundles/antigravity-plugin/skills/mermaid-diagrams/references/architecture-diagrams.md +192 -0
- package/bundles/antigravity-plugin/skills/mermaid-diagrams/references/c4-diagrams.md +410 -0
- package/bundles/antigravity-plugin/skills/mermaid-diagrams/references/class-diagrams.md +361 -0
- package/bundles/antigravity-plugin/skills/mermaid-diagrams/references/erd-diagrams.md +510 -0
- package/bundles/antigravity-plugin/skills/mermaid-diagrams/references/flowcharts.md +450 -0
- package/bundles/antigravity-plugin/skills/mermaid-diagrams/references/sequence-diagrams.md +394 -0
- package/bundles/antigravity-plugin/skills/mermaid-diagrams/references/troubleshooting.md +335 -0
- package/bundles/antigravity-plugin/skills/mermaid-diagrams/references/workflows.md +418 -0
- package/bundles/antigravity-plugin/skills/migrate-dir/SKILL.md +68 -0
- package/bundles/antigravity-plugin/skills/mockup/SKILL.md +242 -0
- package/bundles/antigravity-plugin/skills/particle-art/SKILL.md +243 -0
- package/bundles/antigravity-plugin/skills/particle-art/references/canvas-utils.ts +171 -0
- package/bundles/antigravity-plugin/skills/particle-art/references/dot-field.template.tsx +203 -0
- package/bundles/antigravity-plugin/skills/particle-art/references/flow-field.template.tsx +263 -0
- package/bundles/antigravity-plugin/skills/particle-art/references/node-shape.template.tsx +261 -0
- package/bundles/antigravity-plugin/skills/particle-art/references/shape-sampler.ts +281 -0
- package/bundles/antigravity-plugin/skills/particle-art/references/stipple-morph.template.tsx +167 -0
- package/bundles/antigravity-plugin/skills/particle-art/references/stipple.template.tsx +175 -0
- package/bundles/antigravity-plugin/skills/particle-art/references/trail-ghost.template.tsx +266 -0
- package/bundles/antigravity-plugin/skills/particle-art/references/usage-examples.md +320 -0
- package/bundles/antigravity-plugin/skills/playwright/API_REFERENCE.md +653 -0
- package/bundles/antigravity-plugin/skills/playwright/SKILL.md +454 -0
- package/bundles/antigravity-plugin/skills/playwright/lib/helpers.js +441 -0
- package/bundles/antigravity-plugin/skills/playwright/package.json +26 -0
- package/bundles/antigravity-plugin/skills/playwright/run.js +228 -0
- package/bundles/antigravity-plugin/skills/prd/SKILL.md +107 -0
- package/bundles/antigravity-plugin/skills/preflight/SKILL.md +435 -0
- package/bundles/antigravity-plugin/skills/python/SKILL.md +388 -0
- package/bundles/antigravity-plugin/skills/react-best-practices/SKILL.md +269 -0
- package/bundles/antigravity-plugin/skills/react-dev/README.md +404 -0
- package/bundles/antigravity-plugin/skills/react-dev/SKILL.md +459 -0
- package/bundles/antigravity-plugin/skills/react-dev/examples/generic-components.md +579 -0
- package/bundles/antigravity-plugin/skills/react-dev/examples/server-components.md +579 -0
- package/bundles/antigravity-plugin/skills/react-dev/references/event-handlers.md +574 -0
- package/bundles/antigravity-plugin/skills/react-dev/references/hooks.md +456 -0
- package/bundles/antigravity-plugin/skills/react-dev/references/react-19-patterns.md +638 -0
- package/bundles/antigravity-plugin/skills/react-dev/references/react-router.md +1002 -0
- package/bundles/antigravity-plugin/skills/react-dev/references/tanstack-router.md +587 -0
- package/bundles/antigravity-plugin/skills/refactoring/SKILL.md +486 -0
- package/bundles/antigravity-plugin/skills/resume/SKILL.md +36 -0
- package/bundles/antigravity-plugin/skills/security-review/SKILL.md +196 -0
- package/bundles/antigravity-plugin/skills/setup-project-ai/SKILL.md +61 -0
- package/bundles/antigravity-plugin/skills/ship/SKILL.md +107 -0
- package/bundles/antigravity-plugin/skills/ship-merge/SKILL.md +103 -0
- package/bundles/antigravity-plugin/skills/ship-pr/SKILL.md +102 -0
- package/bundles/antigravity-plugin/skills/skill-creator/LICENSE.txt +202 -0
- package/bundles/antigravity-plugin/skills/skill-creator/SKILL.md +491 -0
- package/bundles/antigravity-plugin/skills/skill-creator/agents/analyzer.md +274 -0
- package/bundles/antigravity-plugin/skills/skill-creator/agents/comparator.md +202 -0
- package/bundles/antigravity-plugin/skills/skill-creator/agents/grader.md +223 -0
- package/bundles/antigravity-plugin/skills/skill-creator/assets/eval_review.html +146 -0
- package/bundles/antigravity-plugin/skills/skill-creator/eval-viewer/generate_review.py +471 -0
- package/bundles/antigravity-plugin/skills/skill-creator/eval-viewer/viewer.html +1325 -0
- package/bundles/antigravity-plugin/skills/skill-creator/references/schemas.md +430 -0
- package/bundles/antigravity-plugin/skills/skill-creator/scripts/__init__.py +0 -0
- package/bundles/antigravity-plugin/skills/skill-creator/scripts/aggregate_benchmark.py +401 -0
- package/bundles/antigravity-plugin/skills/skill-creator/scripts/generate_report.py +326 -0
- package/bundles/antigravity-plugin/skills/skill-creator/scripts/improve_description.py +247 -0
- package/bundles/antigravity-plugin/skills/skill-creator/scripts/package_skill.py +136 -0
- package/bundles/antigravity-plugin/skills/skill-creator/scripts/quick_validate.py +103 -0
- package/bundles/antigravity-plugin/skills/skill-creator/scripts/run_eval.py +310 -0
- package/bundles/antigravity-plugin/skills/skill-creator/scripts/run_loop.py +328 -0
- package/bundles/antigravity-plugin/skills/skill-creator/scripts/utils.py +47 -0
- package/bundles/antigravity-plugin/skills/sql/SKILL.md +321 -0
- package/bundles/antigravity-plugin/skills/tdd/SKILL.md +37 -0
- package/bundles/antigravity-plugin/skills/tdd-workflow/SKILL.md +188 -0
- package/bundles/antigravity-plugin/skills/technical-writing/SKILL.md +286 -0
- package/bundles/antigravity-plugin/skills/test-strategy/SKILL.md +155 -0
- package/bundles/antigravity-plugin/skills/ui-brief/SKILL.md +84 -0
- package/bundles/antigravity-plugin/skills/ui-review/SKILL.md +176 -0
- package/bundles/antigravity-plugin/skills/ui-review/references/framework-fixes.md +471 -0
- package/bundles/antigravity-plugin/skills/ui-review/references/visual-checklist.md +236 -0
- package/bundles/antigravity-plugin/skills/usage-review/SKILL.md +77 -0
- package/bundles/antigravity-plugin/skills/use-model/SKILL.md +64 -0
- package/bundles/antigravity-plugin/skills/using-git-worktrees/SKILL.md +217 -0
- package/bundles/antigravity-plugin/skills/version/SKILL.md +18 -0
- package/bundles/antigravity-plugin/skills/warm-editorial-ui/DESIGN_TOKENS.md +487 -0
- package/bundles/antigravity-plugin/skills/warm-editorial-ui/IMPLEMENTATION_GUIDE.md +177 -0
- package/bundles/antigravity-plugin/skills/warm-editorial-ui/SKILL.md +732 -0
- package/bundles/antigravity-plugin/skills/webapp-testing/LICENSE.txt +202 -0
- package/bundles/antigravity-plugin/skills/webapp-testing/SKILL.md +97 -0
- package/bundles/antigravity-plugin/skills/webapp-testing/examples/console_logging.py +35 -0
- package/bundles/antigravity-plugin/skills/webapp-testing/examples/element_discovery.py +40 -0
- package/bundles/antigravity-plugin/skills/webapp-testing/examples/static_html_automation.py +33 -0
- package/bundles/antigravity-plugin/skills/webapp-testing/scripts/with_server.py +106 -0
- package/bundles/antigravity-plugin/skills/windows-deployment/SKILL.md +880 -0
- package/bundles/antigravity-plugin/skills/writing-plans/SKILL.md +384 -0
- package/bundles/antigravity-plugin/statusline-command-agy.sh +91 -0
- package/bundles/antigravity-plugin/warm_start_agy.py +149 -0
- package/bundles/manifest.json +6 -0
- package/dist/cli.js +5363 -0
- package/package.json +61 -4
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
# Visual Inspection Checklist
|
|
2
|
+
|
|
3
|
+
This document is a comprehensive checklist of items to verify during web design visual inspection.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 1. Layout Verification
|
|
8
|
+
|
|
9
|
+
### Structural Integrity
|
|
10
|
+
|
|
11
|
+
- [ ] Header is correctly fixed/positioned at the top of the screen
|
|
12
|
+
- [ ] Footer is positioned at the bottom of the screen or end of content
|
|
13
|
+
- [ ] Main content area is center-aligned with appropriate width
|
|
14
|
+
- [ ] Sidebar (if present) is positioned correctly
|
|
15
|
+
- [ ] Navigation is displayed in the intended position
|
|
16
|
+
|
|
17
|
+
### Overflow
|
|
18
|
+
|
|
19
|
+
- [ ] Horizontal scrollbar is not unintentionally displayed
|
|
20
|
+
- [ ] Content does not overflow from parent elements
|
|
21
|
+
- [ ] Images fit within parent containers
|
|
22
|
+
- [ ] Tables do not exceed container width
|
|
23
|
+
- [ ] Code blocks wrap or scroll appropriately
|
|
24
|
+
|
|
25
|
+
### Alignment
|
|
26
|
+
|
|
27
|
+
- [ ] Grid items are evenly distributed
|
|
28
|
+
- [ ] Flex item alignment is correct
|
|
29
|
+
- [ ] Text alignment (left/center/right) is consistent
|
|
30
|
+
- [ ] Icons and text are vertically aligned
|
|
31
|
+
- [ ] Form labels and input fields are correctly positioned
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## 2. Typography Verification
|
|
36
|
+
|
|
37
|
+
### Readability
|
|
38
|
+
|
|
39
|
+
- [ ] Body text font size is sufficient (minimum 16px recommended)
|
|
40
|
+
- [ ] Line height is appropriate (1.5-1.8 recommended)
|
|
41
|
+
- [ ] Characters per line is appropriate (40-80 characters recommended)
|
|
42
|
+
- [ ] Spacing between paragraphs is sufficient
|
|
43
|
+
- [ ] Heading size hierarchy is clear
|
|
44
|
+
|
|
45
|
+
### Text Handling
|
|
46
|
+
|
|
47
|
+
- [ ] Long words wrap appropriately
|
|
48
|
+
- [ ] URLs and code are handled properly
|
|
49
|
+
- [ ] No text clipping occurs
|
|
50
|
+
- [ ] Ellipsis (...) displays correctly
|
|
51
|
+
- [ ] Language-specific line breaking rules work correctly
|
|
52
|
+
|
|
53
|
+
### Fonts
|
|
54
|
+
|
|
55
|
+
- [ ] Web fonts load correctly
|
|
56
|
+
- [ ] Fallback fonts are appropriate
|
|
57
|
+
- [ ] Font weights are as intended
|
|
58
|
+
- [ ] Special characters and emoji display correctly
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## 3. Color & Contrast Verification
|
|
63
|
+
|
|
64
|
+
### Accessibility (WCAG Standards)
|
|
65
|
+
|
|
66
|
+
- [ ] Body text: Contrast ratio 4.5:1 or higher (AA)
|
|
67
|
+
- [ ] Large text (18px+ bold or 24px+): 3:1 or higher
|
|
68
|
+
- [ ] Interactive element borders: 3:1 or higher
|
|
69
|
+
- [ ] Focus indicators: Sufficient contrast with background
|
|
70
|
+
|
|
71
|
+
### Color Consistency
|
|
72
|
+
|
|
73
|
+
- [ ] Brand colors are unified
|
|
74
|
+
- [ ] Link colors are consistent
|
|
75
|
+
- [ ] Error state red is unified
|
|
76
|
+
- [ ] Success state green is unified
|
|
77
|
+
- [ ] Hover/active state colors are appropriate
|
|
78
|
+
|
|
79
|
+
### Color Vision Diversity
|
|
80
|
+
|
|
81
|
+
- [ ] Information conveyed by shape and text, not just color
|
|
82
|
+
- [ ] Charts and diagrams consider color vision diversity
|
|
83
|
+
- [ ] Error messages don't rely solely on color
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## 4. Responsive Verification
|
|
88
|
+
|
|
89
|
+
### Mobile (~640px)
|
|
90
|
+
|
|
91
|
+
- [ ] Content fits within screen width
|
|
92
|
+
- [ ] Touch targets are 44x44px or larger
|
|
93
|
+
- [ ] Text is readable size
|
|
94
|
+
- [ ] No horizontal scrolling occurs
|
|
95
|
+
- [ ] Navigation is mobile-friendly (hamburger menu, etc.)
|
|
96
|
+
- [ ] Form inputs are easy to use
|
|
97
|
+
|
|
98
|
+
### Tablet (641px~1024px)
|
|
99
|
+
|
|
100
|
+
- [ ] Layout is optimized for tablet
|
|
101
|
+
- [ ] Two-column layouts display appropriately
|
|
102
|
+
- [ ] Image sizes are appropriate
|
|
103
|
+
- [ ] Sidebar show/hide is appropriate
|
|
104
|
+
|
|
105
|
+
### Desktop (1025px~)
|
|
106
|
+
|
|
107
|
+
- [ ] Maximum width is set and doesn't break on extra-large screens
|
|
108
|
+
- [ ] Spacing is sufficient
|
|
109
|
+
- [ ] Multi-column layouts function correctly
|
|
110
|
+
- [ ] Hover states are implemented
|
|
111
|
+
|
|
112
|
+
### Breakpoint Transitions
|
|
113
|
+
|
|
114
|
+
- [ ] Layout transitions smoothly when screen size changes
|
|
115
|
+
- [ ] Layout doesn't break at intermediate sizes
|
|
116
|
+
- [ ] No content disappears or duplicates
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
## 5. Interactive Element Verification
|
|
121
|
+
|
|
122
|
+
### Buttons
|
|
123
|
+
|
|
124
|
+
- [ ] Default state is clear
|
|
125
|
+
- [ ] Hover state exists (desktop)
|
|
126
|
+
- [ ] Focus state is visually clear
|
|
127
|
+
- [ ] Active (pressed) state exists
|
|
128
|
+
- [ ] Disabled state is distinguishable
|
|
129
|
+
- [ ] Loading state (if applicable)
|
|
130
|
+
|
|
131
|
+
### Links
|
|
132
|
+
|
|
133
|
+
- [ ] Links are visually identifiable
|
|
134
|
+
- [ ] Visited links are distinguishable (if needed)
|
|
135
|
+
- [ ] Hover state exists
|
|
136
|
+
- [ ] Focus state is clear
|
|
137
|
+
|
|
138
|
+
### Form Elements
|
|
139
|
+
|
|
140
|
+
- [ ] Input field boundaries are clear
|
|
141
|
+
- [ ] Placeholder text contrast is appropriate
|
|
142
|
+
- [ ] Visual feedback on focus
|
|
143
|
+
- [ ] Error state display
|
|
144
|
+
- [ ] Required field indication
|
|
145
|
+
- [ ] Dropdowns function correctly
|
|
146
|
+
|
|
147
|
+
---
|
|
148
|
+
|
|
149
|
+
## 6. Images & Media Verification
|
|
150
|
+
|
|
151
|
+
### Images
|
|
152
|
+
|
|
153
|
+
- [ ] Images display at appropriate size
|
|
154
|
+
- [ ] Aspect ratio is maintained
|
|
155
|
+
- [ ] High resolution display support (@2x)
|
|
156
|
+
- [ ] Display when image fails to load
|
|
157
|
+
- [ ] Lazy loading behavior works
|
|
158
|
+
|
|
159
|
+
### Video & Embeds
|
|
160
|
+
|
|
161
|
+
- [ ] Videos fit within containers
|
|
162
|
+
- [ ] Aspect ratio is maintained
|
|
163
|
+
- [ ] Embedded content is responsive
|
|
164
|
+
- [ ] iframes don't overflow
|
|
165
|
+
|
|
166
|
+
---
|
|
167
|
+
|
|
168
|
+
## 7. Accessibility Verification
|
|
169
|
+
|
|
170
|
+
### Keyboard Navigation
|
|
171
|
+
|
|
172
|
+
- [ ] All interactive elements accessible via Tab key
|
|
173
|
+
- [ ] Focus order is logical
|
|
174
|
+
- [ ] Focus traps are appropriate (modals, etc.)
|
|
175
|
+
- [ ] Skip to content link exists
|
|
176
|
+
|
|
177
|
+
### Screen Reader Support
|
|
178
|
+
|
|
179
|
+
- [ ] Images have alt text
|
|
180
|
+
- [ ] Forms have labels
|
|
181
|
+
- [ ] ARIA labels are appropriately set
|
|
182
|
+
- [ ] Heading hierarchy is correct (h1→h2→h3...)
|
|
183
|
+
|
|
184
|
+
### Motion
|
|
185
|
+
|
|
186
|
+
- [ ] Animations are not excessive
|
|
187
|
+
- [ ] prefers-reduced-motion is supported (if possible)
|
|
188
|
+
|
|
189
|
+
---
|
|
190
|
+
|
|
191
|
+
## 8. Performance-related Visual Issues
|
|
192
|
+
|
|
193
|
+
### Loading
|
|
194
|
+
|
|
195
|
+
- [ ] Font FOUT/FOIT is minimal
|
|
196
|
+
- [ ] No layout shift (CLS) occurs
|
|
197
|
+
- [ ] No jumping when images load
|
|
198
|
+
- [ ] Skeleton screens are appropriate (if applicable)
|
|
199
|
+
|
|
200
|
+
### Animation
|
|
201
|
+
|
|
202
|
+
- [ ] Animations are smooth (60fps)
|
|
203
|
+
- [ ] No performance issues when scrolling
|
|
204
|
+
- [ ] Transitions are natural
|
|
205
|
+
|
|
206
|
+
---
|
|
207
|
+
|
|
208
|
+
## Priority Matrix
|
|
209
|
+
|
|
210
|
+
| Priority | Category | Examples |
|
|
211
|
+
|----------|----------|----------|
|
|
212
|
+
| P0 (Critical) | Functionality breaking | Complete element overlap, content disappearance |
|
|
213
|
+
| P1 (High) | Serious UX issues | Unreadable text, inoperable buttons |
|
|
214
|
+
| P2 (Medium) | Moderate issues | Alignment issues, spacing inconsistencies |
|
|
215
|
+
| P3 (Low) | Minor issues | Slight positioning differences, minor color variations |
|
|
216
|
+
|
|
217
|
+
---
|
|
218
|
+
|
|
219
|
+
## Verification Tools
|
|
220
|
+
|
|
221
|
+
### Browser DevTools
|
|
222
|
+
|
|
223
|
+
- Elements panel: DOM and style inspection
|
|
224
|
+
- Lighthouse: Performance and accessibility audits
|
|
225
|
+
- Device toolbar: Responsive testing
|
|
226
|
+
|
|
227
|
+
### Accessibility Tools
|
|
228
|
+
|
|
229
|
+
- axe DevTools
|
|
230
|
+
- WAVE
|
|
231
|
+
- Color Contrast Analyzer
|
|
232
|
+
|
|
233
|
+
### Automation Tools
|
|
234
|
+
|
|
235
|
+
- Playwright (screenshot comparison)
|
|
236
|
+
- Percy / Chromatic (Visual Regression Testing)
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: usage-review
|
|
3
|
+
description: Review local caddis usage over a window, surface prioritised recommendations, and apply config changes in one step
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /usage-review — harness self-tuning
|
|
7
|
+
|
|
8
|
+
Review your actual local usage patterns, surface caddis-specific improvements, and optionally
|
|
9
|
+
apply config changes in one step. Data stays on-machine — no telemetry, no server.
|
|
10
|
+
|
|
11
|
+
## Step 1 — run the analysis script
|
|
12
|
+
|
|
13
|
+
Resolve the script path:
|
|
14
|
+
- Plugin install: `${CLAUDE_PLUGIN_ROOT}/scripts/usage_review.py`
|
|
15
|
+
- harness (caddis) checkout: `scripts/usage_review.py`
|
|
16
|
+
|
|
17
|
+
Run it:
|
|
18
|
+
```
|
|
19
|
+
python "<resolved-path>" [--days $ARGUMENTS]
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
- Default window is **7 days**. If the user passed a number (e.g. `/usage-review 14`), use it.
|
|
23
|
+
- Run from the project root so `.claude/usage-log.jsonl` is found correctly.
|
|
24
|
+
- If the script exits with "No sessions found", tell the user and stop — no further steps.
|
|
25
|
+
- The script prints a markdown report to stdout and writes `.claude/usage-review.html`.
|
|
26
|
+
|
|
27
|
+
## Step 2 — present the report
|
|
28
|
+
|
|
29
|
+
Display the markdown output. Then add a single interpretive sentence identifying the **one most
|
|
30
|
+
impactful finding** — the one most likely to reduce rate-limit consumption or right-size the harness.
|
|
31
|
+
|
|
32
|
+
Do NOT paraphrase every finding in prose — the report is already the output.
|
|
33
|
+
|
|
34
|
+
## Step 3 — offer to apply
|
|
35
|
+
|
|
36
|
+
For each finding marked **[apply]** in the report, ask the user whether to apply it.
|
|
37
|
+
Show the diff before making the change. Never apply silently.
|
|
38
|
+
|
|
39
|
+
Two paths:
|
|
40
|
+
- **"Apply [R1]"** (or whichever ID) — apply that single finding.
|
|
41
|
+
- **"Apply all safe ones"** — apply every finding whose `apply_target.type` is `agent_frontmatter`
|
|
42
|
+
(config-only, reversible). Show the full change list first, confirm, then apply.
|
|
43
|
+
|
|
44
|
+
For `agent_frontmatter` apply targets: find the `model:` line in the frontmatter block (between
|
|
45
|
+
the two `---` delimiters) of the named agent file and change its value. Show a diff-style preview
|
|
46
|
+
(`- model: old` / `+ model: new`) before writing.
|
|
47
|
+
|
|
48
|
+
## Step 4 — report outcome
|
|
49
|
+
|
|
50
|
+
After any applies, tell the user which files changed and suggest:
|
|
51
|
+
"Run `/usage-review` again after a few sessions to see the effect."
|
|
52
|
+
|
|
53
|
+
## Step 5 — offer to schedule a recurring review (optional)
|
|
54
|
+
|
|
55
|
+
After reporting the outcome, ask once:
|
|
56
|
+
|
|
57
|
+
> "Want me to schedule this to run automatically every Wednesday? I can set it up with `/schedule`."
|
|
58
|
+
|
|
59
|
+
If the user says yes, use the `schedule` skill to create a weekly routine:
|
|
60
|
+
|
|
61
|
+
```
|
|
62
|
+
Schedule a recurring cloud routine: every Wednesday, run /usage-review
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
The routine should fire mid-week so findings are fresh for the next work sprint. If the user
|
|
66
|
+
declines, skip silently — the SessionStart nudge in `inject_relay.py` already covers the
|
|
67
|
+
"you haven't reviewed in 7 days" case.
|
|
68
|
+
|
|
69
|
+
## Notes
|
|
70
|
+
|
|
71
|
+
- HTML dashboard written to `.caddis/reviews/usage-review.html`. Override the directory with
|
|
72
|
+
`--output-dir <dir>` if needed. The usage log is read from `.caddis/usage-log.jsonl`, falling
|
|
73
|
+
back to the legacy `.claude/usage-log.jsonl` during the migration.
|
|
74
|
+
- `.caddis/.last-usage-review` is updated on each run — the SessionStart hook uses it to nudge
|
|
75
|
+
users who haven't reviewed in 7+ days.
|
|
76
|
+
- `est_cost_usd` is an estimate from token counts, not actual billing. The Max plan is rate-limited,
|
|
77
|
+
not charged per token — treat it as a relative signal, not an invoice.
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: use-model
|
|
3
|
+
description: Explain (or apply) the model lanes — claude / claude-glm / cross-review — key resolution, and how to add a provider
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /caddis:use-model — switch which model backs your session
|
|
7
|
+
|
|
8
|
+
Explain the model-switching lanes so the user (or you, on their behalf) can move a session onto an
|
|
9
|
+
OSS provider (GLM, DeepSeek, OpenRouter, or a custom endpoint) in one command, with no hardcoded key
|
|
10
|
+
path. Full detail lives in the **Providers & keys** guide (`docs/guide/providers-and-keys.md`) — this
|
|
11
|
+
command is the quick-reference + do-it-now version.
|
|
12
|
+
|
|
13
|
+
## The lanes
|
|
14
|
+
|
|
15
|
+
| Lane | Command | Billing |
|
|
16
|
+
|---|---|---|
|
|
17
|
+
| **Primary** | `claude` | your Anthropic plan |
|
|
18
|
+
| **OSS lane** | `claude-oss <provider> [claude args…]` | the provider's plan/pay-per-token |
|
|
19
|
+
| **Convenience alias** | `claude-glm [claude args…]` | same as `claude-oss glm` |
|
|
20
|
+
| **Cross-vendor review** | `/caddis:cross-review` (`oss_review.py`) | the reviewer's plan |
|
|
21
|
+
|
|
22
|
+
`claude-oss` / `claude-glm` are launchers at `claude-harness/scripts/claude-oss.{sh,ps1}`. Each
|
|
23
|
+
resolves the endpoint/model/key, sets `ANTHROPIC_BASE_URL` / `ANTHROPIC_MODEL` / `ANTHROPIC_AUTH_TOKEN`
|
|
24
|
+
for **that process only**, and hands off to the real `claude` — your default session is untouched.
|
|
25
|
+
|
|
26
|
+
## Run it
|
|
27
|
+
```powershell
|
|
28
|
+
claude-oss glm -p "refactor X" # or interactive: claude-oss glm
|
|
29
|
+
claude-glm -p "refactor X" # convenience alias for provider=glm
|
|
30
|
+
claude-oss deepseek # any preset provider
|
|
31
|
+
```
|
|
32
|
+
```bash
|
|
33
|
+
claude-oss glm -p "refactor X"
|
|
34
|
+
claude-glm -p "refactor X"
|
|
35
|
+
```
|
|
36
|
+
$ARGUMENTS, if given, names the provider directly (`glm`, `deepseek`, `openrouter`, or any custom name
|
|
37
|
+
paired with `OSS_BASE_URL`/`OSS_MODEL`).
|
|
38
|
+
|
|
39
|
+
## Key resolution (never hardcoded)
|
|
40
|
+
Precedence, highest wins:
|
|
41
|
+
1. the provider's env var (`GLM_API_KEY` / `DEEPSEEK_API_KEY` / `OPENROUTER_API_KEY`) or generic `OSS_API_KEY`;
|
|
42
|
+
2. a keys file at `$CADDIS_KEYS_FILE` (default `~/.claudster/keys.env`, `KEY=VALUE` lines, `#` comments);
|
|
43
|
+
3. missing → the launcher exits non-zero with an actionable message naming the exact env var to set.
|
|
44
|
+
|
|
45
|
+
The resolver is `claude-harness/scripts/oss_model.py` (`resolve(provider, env)`) — the one place a
|
|
46
|
+
renamed model id or moved endpoint is edited (mirrors `oss_review.py`'s `PROVIDERS` table).
|
|
47
|
+
|
|
48
|
+
## Adding a provider (or overriding one)
|
|
49
|
+
No code change needed for a model-id bump — set env directly:
|
|
50
|
+
```powershell
|
|
51
|
+
$env:OSS_MODEL = "glm-5" # override the preset's model
|
|
52
|
+
$env:OSS_BASE_URL = "https://..." # override the preset's endpoint
|
|
53
|
+
```
|
|
54
|
+
A wholly new provider: add a row to `PROVIDERS` in `oss_model.py` (base_url, model, key_env), or just
|
|
55
|
+
pass an unknown provider name with `OSS_BASE_URL`+`OSS_MODEL` set — no table edit required.
|
|
56
|
+
|
|
57
|
+
## First-time install
|
|
58
|
+
Put `claude-harness/scripts/` (or your plugin's `scripts/` dir) on `PATH`, or add a shell profile
|
|
59
|
+
function. `/setup-project-ai` documents the one-liner for your platform (PowerShell profile function /
|
|
60
|
+
bash alias) — it does not silently edit your shell profile.
|
|
61
|
+
|
|
62
|
+
## Exit codes
|
|
63
|
+
`claude-oss`/`claude-glm` propagate the wrapped `claude` process's exit code, except a resolver failure
|
|
64
|
+
(unknown provider without an override, or no key) which exits **3** with the message on stderr.
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: using-git-worktrees
|
|
3
|
+
description: Use when starting feature work that needs isolation from current workspace or before executing implementation plans - creates isolated git worktrees with smart directory selection and safety verification
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Using Git Worktrees
|
|
7
|
+
|
|
8
|
+
## Overview
|
|
9
|
+
|
|
10
|
+
Git worktrees create isolated workspaces sharing the same repository, allowing work on multiple branches simultaneously without switching.
|
|
11
|
+
|
|
12
|
+
**Core principle:** Systematic directory selection + safety verification = reliable isolation.
|
|
13
|
+
|
|
14
|
+
**Announce at start:** "I'm using the using-git-worktrees skill to set up an isolated workspace."
|
|
15
|
+
|
|
16
|
+
## Directory Selection Process
|
|
17
|
+
|
|
18
|
+
Follow this priority order:
|
|
19
|
+
|
|
20
|
+
### 1. Check Existing Directories
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
# Check in priority order
|
|
24
|
+
ls -d .worktrees 2>/dev/null # Preferred (hidden)
|
|
25
|
+
ls -d worktrees 2>/dev/null # Alternative
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
**If found:** Use that directory. If both exist, `.worktrees` wins.
|
|
29
|
+
|
|
30
|
+
### 2. Check AGENTS.md (the canonical rules file; CLAUDE.md is an @import shim)
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
grep -i "worktree.*director" AGENTS.md CLAUDE.md 2>/dev/null
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
**If preference specified:** Use it without asking.
|
|
37
|
+
|
|
38
|
+
### 3. Ask User
|
|
39
|
+
|
|
40
|
+
If no directory exists and no AGENTS.md preference:
|
|
41
|
+
|
|
42
|
+
```
|
|
43
|
+
No worktree directory found. Where should I create worktrees?
|
|
44
|
+
|
|
45
|
+
1. .worktrees/ (project-local, hidden)
|
|
46
|
+
2. ~/.config/superpowers/worktrees/<project-name>/ (global location)
|
|
47
|
+
|
|
48
|
+
Which would you prefer?
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## Safety Verification
|
|
52
|
+
|
|
53
|
+
### For Project-Local Directories (.worktrees or worktrees)
|
|
54
|
+
|
|
55
|
+
**MUST verify directory is ignored before creating worktree:**
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
# Check if directory is ignored (respects local, global, and system gitignore)
|
|
59
|
+
git check-ignore -q .worktrees 2>/dev/null || git check-ignore -q worktrees 2>/dev/null
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
**If NOT ignored:**
|
|
63
|
+
|
|
64
|
+
Per Jesse's rule "Fix broken things immediately":
|
|
65
|
+
1. Add appropriate line to .gitignore
|
|
66
|
+
2. Commit the change
|
|
67
|
+
3. Proceed with worktree creation
|
|
68
|
+
|
|
69
|
+
**Why critical:** Prevents accidentally committing worktree contents to repository.
|
|
70
|
+
|
|
71
|
+
### For Global Directory (~/.config/superpowers/worktrees)
|
|
72
|
+
|
|
73
|
+
No .gitignore verification needed - outside project entirely.
|
|
74
|
+
|
|
75
|
+
## Creation Steps
|
|
76
|
+
|
|
77
|
+
### 1. Detect Project Name
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
project=$(basename "$(git rev-parse --show-toplevel)")
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### 2. Create Worktree
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
# Determine full path
|
|
87
|
+
case $LOCATION in
|
|
88
|
+
.worktrees|worktrees)
|
|
89
|
+
path="$LOCATION/$BRANCH_NAME"
|
|
90
|
+
;;
|
|
91
|
+
~/.config/superpowers/worktrees/*)
|
|
92
|
+
path="~/.config/superpowers/worktrees/$project/$BRANCH_NAME"
|
|
93
|
+
;;
|
|
94
|
+
esac
|
|
95
|
+
|
|
96
|
+
# Create worktree with new branch
|
|
97
|
+
git worktree add "$path" -b "$BRANCH_NAME"
|
|
98
|
+
cd "$path"
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
### 3. Run Project Setup
|
|
102
|
+
|
|
103
|
+
Auto-detect and run appropriate setup:
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
# Node.js
|
|
107
|
+
if [ -f package.json ]; then npm install; fi
|
|
108
|
+
|
|
109
|
+
# Rust
|
|
110
|
+
if [ -f Cargo.toml ]; then cargo build; fi
|
|
111
|
+
|
|
112
|
+
# Python
|
|
113
|
+
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
|
|
114
|
+
if [ -f pyproject.toml ]; then poetry install; fi
|
|
115
|
+
|
|
116
|
+
# Go
|
|
117
|
+
if [ -f go.mod ]; then go mod download; fi
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
### 4. Verify Clean Baseline
|
|
121
|
+
|
|
122
|
+
Run tests to ensure worktree starts clean:
|
|
123
|
+
|
|
124
|
+
```bash
|
|
125
|
+
# Examples - use project-appropriate command
|
|
126
|
+
npm test
|
|
127
|
+
cargo test
|
|
128
|
+
pytest
|
|
129
|
+
go test ./...
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
**If tests fail:** Report failures, ask whether to proceed or investigate.
|
|
133
|
+
|
|
134
|
+
**If tests pass:** Report ready.
|
|
135
|
+
|
|
136
|
+
### 5. Report Location
|
|
137
|
+
|
|
138
|
+
```
|
|
139
|
+
Worktree ready at <full-path>
|
|
140
|
+
Tests passing (<N> tests, 0 failures)
|
|
141
|
+
Ready to implement <feature-name>
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
## Quick Reference
|
|
145
|
+
|
|
146
|
+
| Situation | Action |
|
|
147
|
+
|-----------|--------|
|
|
148
|
+
| `.worktrees/` exists | Use it (verify ignored) |
|
|
149
|
+
| `worktrees/` exists | Use it (verify ignored) |
|
|
150
|
+
| Both exist | Use `.worktrees/` |
|
|
151
|
+
| Neither exists | Check AGENTS.md → Ask user |
|
|
152
|
+
| Directory not ignored | Add to .gitignore + commit |
|
|
153
|
+
| Tests fail during baseline | Report failures + ask |
|
|
154
|
+
| No package.json/Cargo.toml | Skip dependency install |
|
|
155
|
+
|
|
156
|
+
## Common Mistakes
|
|
157
|
+
|
|
158
|
+
### Skipping ignore verification
|
|
159
|
+
|
|
160
|
+
- **Problem:** Worktree contents get tracked, pollute git status
|
|
161
|
+
- **Fix:** Always use `git check-ignore` before creating project-local worktree
|
|
162
|
+
|
|
163
|
+
### Assuming directory location
|
|
164
|
+
|
|
165
|
+
- **Problem:** Creates inconsistency, violates project conventions
|
|
166
|
+
- **Fix:** Follow priority: existing > AGENTS.md > ask
|
|
167
|
+
|
|
168
|
+
### Proceeding with failing tests
|
|
169
|
+
|
|
170
|
+
- **Problem:** Can't distinguish new bugs from pre-existing issues
|
|
171
|
+
- **Fix:** Report failures, get explicit permission to proceed
|
|
172
|
+
|
|
173
|
+
### Hardcoding setup commands
|
|
174
|
+
|
|
175
|
+
- **Problem:** Breaks on projects using different tools
|
|
176
|
+
- **Fix:** Auto-detect from project files (package.json, etc.)
|
|
177
|
+
|
|
178
|
+
## Example Workflow
|
|
179
|
+
|
|
180
|
+
```
|
|
181
|
+
You: I'm using the using-git-worktrees skill to set up an isolated workspace.
|
|
182
|
+
|
|
183
|
+
[Check .worktrees/ - exists]
|
|
184
|
+
[Verify ignored - git check-ignore confirms .worktrees/ is ignored]
|
|
185
|
+
[Create worktree: git worktree add .worktrees/auth -b feature/auth]
|
|
186
|
+
[Run npm install]
|
|
187
|
+
[Run npm test - 47 passing]
|
|
188
|
+
|
|
189
|
+
Worktree ready at /Users/jesse/myproject/.worktrees/auth
|
|
190
|
+
Tests passing (47 tests, 0 failures)
|
|
191
|
+
Ready to implement auth feature
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
## Red Flags
|
|
195
|
+
|
|
196
|
+
**Never:**
|
|
197
|
+
- Create worktree without verifying it's ignored (project-local)
|
|
198
|
+
- Skip baseline test verification
|
|
199
|
+
- Proceed with failing tests without asking
|
|
200
|
+
- Assume directory location when ambiguous
|
|
201
|
+
- Skip AGENTS.md check
|
|
202
|
+
|
|
203
|
+
**Always:**
|
|
204
|
+
- Follow directory priority: existing > AGENTS.md > ask
|
|
205
|
+
- Verify directory is ignored for project-local
|
|
206
|
+
- Auto-detect and run project setup
|
|
207
|
+
- Verify clean test baseline
|
|
208
|
+
|
|
209
|
+
## Integration
|
|
210
|
+
|
|
211
|
+
**Called by:**
|
|
212
|
+
- **brainstorming** (Phase 4) - REQUIRED when design is approved and implementation follows
|
|
213
|
+
- Any skill needing isolated workspace
|
|
214
|
+
|
|
215
|
+
**Pairs with:**
|
|
216
|
+
- **finishing-a-development-branch** - REQUIRED for cleanup after work complete
|
|
217
|
+
- **executing-plans** or **subagent-driven-development** - Work happens in this worktree
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: version
|
|
3
|
+
description: Report the installed caddis version
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /version — what caddis am I running?
|
|
7
|
+
|
|
8
|
+
Report the caddis toolchain version to the user as **caddis <version>**.
|
|
9
|
+
|
|
10
|
+
Get the version by reading the `version` field of the `plugin.json` manifest that ships in THIS install —
|
|
11
|
+
do NOT guess or infer it from anything else. Read whichever path exists:
|
|
12
|
+
|
|
13
|
+
- **Claude Code:** `${CLAUDE_PLUGIN_ROOT}/.claude-plugin/plugin.json`
|
|
14
|
+
- **agy (Antigravity):** the caddis plugin install dir — `~/.gemini/config/plugins/caddis/plugin.json`
|
|
15
|
+
- **Otherwise:** the nearest `plugin.json` at/above this skill whose `name` is `caddis`.
|
|
16
|
+
|
|
17
|
+
Read that file, take its `version`, and report `caddis <version>`. This reads the manifest live, so it is
|
|
18
|
+
always the exact installed version. If no manifest is found, say so plainly rather than reporting a guess.
|