@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.
Files changed (153) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +150 -1
  3. package/bundles/antigravity-plugin/agents/code-reviewer.md +47 -0
  4. package/bundles/antigravity-plugin/agents/preflight.md +53 -0
  5. package/bundles/antigravity-plugin/guard_agy.py +338 -0
  6. package/bundles/antigravity-plugin/hooks.json +36 -0
  7. package/bundles/antigravity-plugin/mcp_config.json +8 -0
  8. package/bundles/antigravity-plugin/mcp_ping_server.py +55 -0
  9. package/bundles/antigravity-plugin/plugin.json +5 -0
  10. package/bundles/antigravity-plugin/session_end_agy.py +57 -0
  11. package/bundles/antigravity-plugin/skills/_registry.md +115 -0
  12. package/bundles/antigravity-plugin/skills/add-rules/SKILL.md +45 -0
  13. package/bundles/antigravity-plugin/skills/api-design/SKILL.md +249 -0
  14. package/bundles/antigravity-plugin/skills/backend-development/SKILL.md +305 -0
  15. package/bundles/antigravity-plugin/skills/best-practices/SKILL.md +500 -0
  16. package/bundles/antigravity-plugin/skills/best-practices/agents/best-practices-referencer.md +263 -0
  17. package/bundles/antigravity-plugin/skills/best-practices/agents/codebase-context-builder.md +326 -0
  18. package/bundles/antigravity-plugin/skills/best-practices/agents/task-intent-analyzer.md +245 -0
  19. package/bundles/antigravity-plugin/skills/best-practices/references/anti-patterns.md +571 -0
  20. package/bundles/antigravity-plugin/skills/best-practices/references/before-after-examples.md +1114 -0
  21. package/bundles/antigravity-plugin/skills/best-practices/references/best-practices-guide.md +513 -0
  22. package/bundles/antigravity-plugin/skills/best-practices/references/common-workflows.md +692 -0
  23. package/bundles/antigravity-plugin/skills/best-practices/references/prompt-patterns.md +547 -0
  24. package/bundles/antigravity-plugin/skills/brainstorming/SKILL.md +57 -0
  25. package/bundles/antigravity-plugin/skills/ci-cd-pipeline/SKILL.md +315 -0
  26. package/bundles/antigravity-plugin/skills/code-documentation/SKILL.md +271 -0
  27. package/bundles/antigravity-plugin/skills/code-review/SKILL.md +122 -0
  28. package/bundles/antigravity-plugin/skills/codebase-audit/SKILL.md +204 -0
  29. package/bundles/antigravity-plugin/skills/context-curator/SKILL.md +157 -0
  30. package/bundles/antigravity-plugin/skills/cross-review/SKILL.md +40 -0
  31. package/bundles/antigravity-plugin/skills/css-architecture/SKILL.md +305 -0
  32. package/bundles/antigravity-plugin/skills/css-architecture/references/RESPONSIVE-DESIGN.md +604 -0
  33. package/bundles/antigravity-plugin/skills/database-design/SKILL.md +177 -0
  34. package/bundles/antigravity-plugin/skills/db-diagram/SKILL.md +148 -0
  35. package/bundles/antigravity-plugin/skills/db-diagram/scripts/sql_to_graph.py +1212 -0
  36. package/bundles/antigravity-plugin/skills/digress/SKILL.md +61 -0
  37. package/bundles/antigravity-plugin/skills/draw-io/SKILL.md +162 -0
  38. package/bundles/antigravity-plugin/skills/draw-io/references/aws-icons.md +677 -0
  39. package/bundles/antigravity-plugin/skills/draw-io/references/layout-guidelines.md +142 -0
  40. package/bundles/antigravity-plugin/skills/draw-io/references/troubleshooting.md +118 -0
  41. package/bundles/antigravity-plugin/skills/draw-io/references/workflows.md +103 -0
  42. package/bundles/antigravity-plugin/skills/draw-io/scripts/convert-drawio-to-png.sh +25 -0
  43. package/bundles/antigravity-plugin/skills/draw-io/scripts/find_aws_icon.py +79 -0
  44. package/bundles/antigravity-plugin/skills/error-handling/SKILL.md +260 -0
  45. package/bundles/antigravity-plugin/skills/excalidraw-db/SKILL.md +38 -0
  46. package/bundles/antigravity-plugin/skills/fastapi-dev/SKILL.md +300 -0
  47. package/bundles/antigravity-plugin/skills/feature-plan/SKILL.md +198 -0
  48. package/bundles/antigravity-plugin/skills/frontend-design/SKILL.md +193 -0
  49. package/bundles/antigravity-plugin/skills/frontend-design/references/my-tech-stack.md +127 -0
  50. package/bundles/antigravity-plugin/skills/gh-cli/SKILL.md +195 -0
  51. package/bundles/antigravity-plugin/skills/git-commit/SKILL.md +285 -0
  52. package/bundles/antigravity-plugin/skills/golden-plan/SKILL.md +577 -0
  53. package/bundles/antigravity-plugin/skills/handoff/SKILL.md +100 -0
  54. package/bundles/antigravity-plugin/skills/implement/SKILL.md +114 -0
  55. package/bundles/antigravity-plugin/skills/javascript-typescript/SKILL.md +142 -0
  56. package/bundles/antigravity-plugin/skills/kb/SKILL.md +60 -0
  57. package/bundles/antigravity-plugin/skills/mermaid-db/SKILL.md +33 -0
  58. package/bundles/antigravity-plugin/skills/mermaid-diagrams/SKILL.md +236 -0
  59. package/bundles/antigravity-plugin/skills/mermaid-diagrams/references/ENHANCEMENTS.md +264 -0
  60. package/bundles/antigravity-plugin/skills/mermaid-diagrams/references/MERMAID-SUMMARY.md +137 -0
  61. package/bundles/antigravity-plugin/skills/mermaid-diagrams/references/advanced-features.md +556 -0
  62. package/bundles/antigravity-plugin/skills/mermaid-diagrams/references/architecture-diagrams.md +192 -0
  63. package/bundles/antigravity-plugin/skills/mermaid-diagrams/references/c4-diagrams.md +410 -0
  64. package/bundles/antigravity-plugin/skills/mermaid-diagrams/references/class-diagrams.md +361 -0
  65. package/bundles/antigravity-plugin/skills/mermaid-diagrams/references/erd-diagrams.md +510 -0
  66. package/bundles/antigravity-plugin/skills/mermaid-diagrams/references/flowcharts.md +450 -0
  67. package/bundles/antigravity-plugin/skills/mermaid-diagrams/references/sequence-diagrams.md +394 -0
  68. package/bundles/antigravity-plugin/skills/mermaid-diagrams/references/troubleshooting.md +335 -0
  69. package/bundles/antigravity-plugin/skills/mermaid-diagrams/references/workflows.md +418 -0
  70. package/bundles/antigravity-plugin/skills/migrate-dir/SKILL.md +68 -0
  71. package/bundles/antigravity-plugin/skills/mockup/SKILL.md +242 -0
  72. package/bundles/antigravity-plugin/skills/particle-art/SKILL.md +243 -0
  73. package/bundles/antigravity-plugin/skills/particle-art/references/canvas-utils.ts +171 -0
  74. package/bundles/antigravity-plugin/skills/particle-art/references/dot-field.template.tsx +203 -0
  75. package/bundles/antigravity-plugin/skills/particle-art/references/flow-field.template.tsx +263 -0
  76. package/bundles/antigravity-plugin/skills/particle-art/references/node-shape.template.tsx +261 -0
  77. package/bundles/antigravity-plugin/skills/particle-art/references/shape-sampler.ts +281 -0
  78. package/bundles/antigravity-plugin/skills/particle-art/references/stipple-morph.template.tsx +167 -0
  79. package/bundles/antigravity-plugin/skills/particle-art/references/stipple.template.tsx +175 -0
  80. package/bundles/antigravity-plugin/skills/particle-art/references/trail-ghost.template.tsx +266 -0
  81. package/bundles/antigravity-plugin/skills/particle-art/references/usage-examples.md +320 -0
  82. package/bundles/antigravity-plugin/skills/playwright/API_REFERENCE.md +653 -0
  83. package/bundles/antigravity-plugin/skills/playwright/SKILL.md +454 -0
  84. package/bundles/antigravity-plugin/skills/playwright/lib/helpers.js +441 -0
  85. package/bundles/antigravity-plugin/skills/playwright/package.json +26 -0
  86. package/bundles/antigravity-plugin/skills/playwright/run.js +228 -0
  87. package/bundles/antigravity-plugin/skills/prd/SKILL.md +107 -0
  88. package/bundles/antigravity-plugin/skills/preflight/SKILL.md +435 -0
  89. package/bundles/antigravity-plugin/skills/python/SKILL.md +388 -0
  90. package/bundles/antigravity-plugin/skills/react-best-practices/SKILL.md +269 -0
  91. package/bundles/antigravity-plugin/skills/react-dev/README.md +404 -0
  92. package/bundles/antigravity-plugin/skills/react-dev/SKILL.md +459 -0
  93. package/bundles/antigravity-plugin/skills/react-dev/examples/generic-components.md +579 -0
  94. package/bundles/antigravity-plugin/skills/react-dev/examples/server-components.md +579 -0
  95. package/bundles/antigravity-plugin/skills/react-dev/references/event-handlers.md +574 -0
  96. package/bundles/antigravity-plugin/skills/react-dev/references/hooks.md +456 -0
  97. package/bundles/antigravity-plugin/skills/react-dev/references/react-19-patterns.md +638 -0
  98. package/bundles/antigravity-plugin/skills/react-dev/references/react-router.md +1002 -0
  99. package/bundles/antigravity-plugin/skills/react-dev/references/tanstack-router.md +587 -0
  100. package/bundles/antigravity-plugin/skills/refactoring/SKILL.md +486 -0
  101. package/bundles/antigravity-plugin/skills/resume/SKILL.md +36 -0
  102. package/bundles/antigravity-plugin/skills/security-review/SKILL.md +196 -0
  103. package/bundles/antigravity-plugin/skills/setup-project-ai/SKILL.md +61 -0
  104. package/bundles/antigravity-plugin/skills/ship/SKILL.md +107 -0
  105. package/bundles/antigravity-plugin/skills/ship-merge/SKILL.md +103 -0
  106. package/bundles/antigravity-plugin/skills/ship-pr/SKILL.md +102 -0
  107. package/bundles/antigravity-plugin/skills/skill-creator/LICENSE.txt +202 -0
  108. package/bundles/antigravity-plugin/skills/skill-creator/SKILL.md +491 -0
  109. package/bundles/antigravity-plugin/skills/skill-creator/agents/analyzer.md +274 -0
  110. package/bundles/antigravity-plugin/skills/skill-creator/agents/comparator.md +202 -0
  111. package/bundles/antigravity-plugin/skills/skill-creator/agents/grader.md +223 -0
  112. package/bundles/antigravity-plugin/skills/skill-creator/assets/eval_review.html +146 -0
  113. package/bundles/antigravity-plugin/skills/skill-creator/eval-viewer/generate_review.py +471 -0
  114. package/bundles/antigravity-plugin/skills/skill-creator/eval-viewer/viewer.html +1325 -0
  115. package/bundles/antigravity-plugin/skills/skill-creator/references/schemas.md +430 -0
  116. package/bundles/antigravity-plugin/skills/skill-creator/scripts/__init__.py +0 -0
  117. package/bundles/antigravity-plugin/skills/skill-creator/scripts/aggregate_benchmark.py +401 -0
  118. package/bundles/antigravity-plugin/skills/skill-creator/scripts/generate_report.py +326 -0
  119. package/bundles/antigravity-plugin/skills/skill-creator/scripts/improve_description.py +247 -0
  120. package/bundles/antigravity-plugin/skills/skill-creator/scripts/package_skill.py +136 -0
  121. package/bundles/antigravity-plugin/skills/skill-creator/scripts/quick_validate.py +103 -0
  122. package/bundles/antigravity-plugin/skills/skill-creator/scripts/run_eval.py +310 -0
  123. package/bundles/antigravity-plugin/skills/skill-creator/scripts/run_loop.py +328 -0
  124. package/bundles/antigravity-plugin/skills/skill-creator/scripts/utils.py +47 -0
  125. package/bundles/antigravity-plugin/skills/sql/SKILL.md +321 -0
  126. package/bundles/antigravity-plugin/skills/tdd/SKILL.md +37 -0
  127. package/bundles/antigravity-plugin/skills/tdd-workflow/SKILL.md +188 -0
  128. package/bundles/antigravity-plugin/skills/technical-writing/SKILL.md +286 -0
  129. package/bundles/antigravity-plugin/skills/test-strategy/SKILL.md +155 -0
  130. package/bundles/antigravity-plugin/skills/ui-brief/SKILL.md +84 -0
  131. package/bundles/antigravity-plugin/skills/ui-review/SKILL.md +176 -0
  132. package/bundles/antigravity-plugin/skills/ui-review/references/framework-fixes.md +471 -0
  133. package/bundles/antigravity-plugin/skills/ui-review/references/visual-checklist.md +236 -0
  134. package/bundles/antigravity-plugin/skills/usage-review/SKILL.md +77 -0
  135. package/bundles/antigravity-plugin/skills/use-model/SKILL.md +64 -0
  136. package/bundles/antigravity-plugin/skills/using-git-worktrees/SKILL.md +217 -0
  137. package/bundles/antigravity-plugin/skills/version/SKILL.md +18 -0
  138. package/bundles/antigravity-plugin/skills/warm-editorial-ui/DESIGN_TOKENS.md +487 -0
  139. package/bundles/antigravity-plugin/skills/warm-editorial-ui/IMPLEMENTATION_GUIDE.md +177 -0
  140. package/bundles/antigravity-plugin/skills/warm-editorial-ui/SKILL.md +732 -0
  141. package/bundles/antigravity-plugin/skills/webapp-testing/LICENSE.txt +202 -0
  142. package/bundles/antigravity-plugin/skills/webapp-testing/SKILL.md +97 -0
  143. package/bundles/antigravity-plugin/skills/webapp-testing/examples/console_logging.py +35 -0
  144. package/bundles/antigravity-plugin/skills/webapp-testing/examples/element_discovery.py +40 -0
  145. package/bundles/antigravity-plugin/skills/webapp-testing/examples/static_html_automation.py +33 -0
  146. package/bundles/antigravity-plugin/skills/webapp-testing/scripts/with_server.py +106 -0
  147. package/bundles/antigravity-plugin/skills/windows-deployment/SKILL.md +880 -0
  148. package/bundles/antigravity-plugin/skills/writing-plans/SKILL.md +384 -0
  149. package/bundles/antigravity-plugin/statusline-command-agy.sh +91 -0
  150. package/bundles/antigravity-plugin/warm_start_agy.py +149 -0
  151. package/bundles/manifest.json +6 -0
  152. package/dist/cli.js +5363 -0
  153. 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 &lt;version&gt;**.
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 &lt;version&gt;`. 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.