winter-super-cli 2026.6.20 → 2026.6.22

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 (211) hide show
  1. package/memories/readme.md +35 -0
  2. package/package.json +6 -1
  3. package/resources/local/agents.md/AGENTS.md +43 -0
  4. package/resources/local/agents.md/LICENSE +21 -0
  5. package/resources/local/agents.md/README.md +49 -0
  6. package/resources/local/agents.md/components/AboutSection.tsx +37 -0
  7. package/resources/local/agents.md/components/CodeExample.tsx +207 -0
  8. package/resources/local/agents.md/components/CompatibilitySection.tsx +378 -0
  9. package/resources/local/agents.md/components/ExampleListSection.tsx +188 -0
  10. package/resources/local/agents.md/components/ExamplesSection.tsx +22 -0
  11. package/resources/local/agents.md/components/FAQSection.tsx +113 -0
  12. package/resources/local/agents.md/components/Footer.tsx +17 -0
  13. package/resources/local/agents.md/components/Hero.tsx +230 -0
  14. package/resources/local/agents.md/components/HowToUseSection.tsx +66 -0
  15. package/resources/local/agents.md/components/Section.tsx +44 -0
  16. package/resources/local/agents.md/components/ThreeCanvas.tsx +240 -0
  17. package/resources/local/agents.md/components/WhySection.tsx +64 -0
  18. package/resources/local/agents.md/components/icons/ClipboardIcon.tsx +27 -0
  19. package/resources/local/agents.md/components/icons/CopyIcon.tsx +15 -0
  20. package/resources/local/agents.md/components/icons/GitHubIcon.tsx +24 -0
  21. package/resources/local/agents.md/components/icons/LinkIcon.tsx +27 -0
  22. package/resources/local/agents.md/components/icons/UserIcon.tsx +27 -0
  23. package/resources/local/agents.md/next.config.ts +8 -0
  24. package/resources/local/agents.md/package.json +27 -0
  25. package/resources/local/agents.md/pages/_app.tsx +24 -0
  26. package/resources/local/agents.md/pages/_document.tsx +24 -0
  27. package/resources/local/agents.md/pages/index.tsx +160 -0
  28. package/resources/local/agents.md/pnpm-lock.yaml +2782 -0
  29. package/resources/local/agents.md/postcss.config.mjs +5 -0
  30. package/resources/local/agents.md/public/favicon-dark.png +0 -0
  31. package/resources/local/agents.md/public/favicon-light.png +0 -0
  32. package/resources/local/agents.md/public/favicon.ico +0 -0
  33. package/resources/local/agents.md/public/logos/aider.svg +16 -0
  34. package/resources/local/agents.md/public/logos/amp.svg +5 -0
  35. package/resources/local/agents.md/public/logos/augment.svg +9 -0
  36. package/resources/local/agents.md/public/logos/codex.svg +3 -0
  37. package/resources/local/agents.md/public/logos/copilot.svg +1 -0
  38. package/resources/local/agents.md/public/logos/cursor.svg +15 -0
  39. package/resources/local/agents.md/public/logos/devin-dark.svg +1 -0
  40. package/resources/local/agents.md/public/logos/devin-light.svg +1 -0
  41. package/resources/local/agents.md/public/logos/factory.svg +3 -0
  42. package/resources/local/agents.md/public/logos/gemini.svg +27 -0
  43. package/resources/local/agents.md/public/logos/goose.svg +12 -0
  44. package/resources/local/agents.md/public/logos/jules.svg +3 -0
  45. package/resources/local/agents.md/public/logos/junie.svg +5 -0
  46. package/resources/local/agents.md/public/logos/kilo-code.svg +43 -0
  47. package/resources/local/agents.md/public/logos/ona-dark.svg +3 -0
  48. package/resources/local/agents.md/public/logos/ona-light.svg +3 -0
  49. package/resources/local/agents.md/public/logos/opencode.svg +40 -0
  50. package/resources/local/agents.md/public/logos/phoenix.svg +44 -0
  51. package/resources/local/agents.md/public/logos/roocode.svg +3 -0
  52. package/resources/local/agents.md/public/logos/semgrep.svg +7 -0
  53. package/resources/local/agents.md/public/logos/uipath.svg +6 -0
  54. package/resources/local/agents.md/public/logos/vscode-dark.svg +19 -0
  55. package/resources/local/agents.md/public/logos/vscode-light.svg +12 -0
  56. package/resources/local/agents.md/public/logos/warp.svg +7 -0
  57. package/resources/local/agents.md/public/logos/windsurf-dark.svg +3 -0
  58. package/resources/local/agents.md/public/logos/windsurf-light.svg +3 -0
  59. package/resources/local/agents.md/public/logos/zed.svg +3 -0
  60. package/resources/local/agents.md/public/og.png +0 -0
  61. package/resources/local/agents.md/styles/globals.css +415 -0
  62. package/resources/local/agents.md/tsconfig.json +34 -0
  63. package/resources/local/awesome-design-md/README.md +197 -0
  64. package/resources/local/awesome-design-md/design-md/airbnb/DESIGN.md +545 -0
  65. package/resources/local/awesome-design-md/design-md/airbnb/README.md +5 -0
  66. package/resources/local/awesome-design-md/design-md/airtable/DESIGN.md +554 -0
  67. package/resources/local/awesome-design-md/design-md/airtable/README.md +5 -0
  68. package/resources/local/awesome-design-md/design-md/apple/DESIGN.md +562 -0
  69. package/resources/local/awesome-design-md/design-md/apple/README.md +5 -0
  70. package/resources/local/awesome-design-md/design-md/binance/DESIGN.md +634 -0
  71. package/resources/local/awesome-design-md/design-md/binance/README.md +5 -0
  72. package/resources/local/awesome-design-md/design-md/bmw/DESIGN.md +544 -0
  73. package/resources/local/awesome-design-md/design-md/bmw/README.md +5 -0
  74. package/resources/local/awesome-design-md/design-md/bmw-m/DESIGN.md +503 -0
  75. package/resources/local/awesome-design-md/design-md/bmw-m/README.md +5 -0
  76. package/resources/local/awesome-design-md/design-md/bugatti/DESIGN.md +454 -0
  77. package/resources/local/awesome-design-md/design-md/bugatti/README.md +5 -0
  78. package/resources/local/awesome-design-md/design-md/cal/DESIGN.md +542 -0
  79. package/resources/local/awesome-design-md/design-md/cal/README.md +5 -0
  80. package/resources/local/awesome-design-md/design-md/claude/DESIGN.md +589 -0
  81. package/resources/local/awesome-design-md/design-md/claude/README.md +5 -0
  82. package/resources/local/awesome-design-md/design-md/clay/DESIGN.md +541 -0
  83. package/resources/local/awesome-design-md/design-md/clay/README.md +5 -0
  84. package/resources/local/awesome-design-md/design-md/clickhouse/DESIGN.md +544 -0
  85. package/resources/local/awesome-design-md/design-md/clickhouse/README.md +5 -0
  86. package/resources/local/awesome-design-md/design-md/cohere/DESIGN.md +451 -0
  87. package/resources/local/awesome-design-md/design-md/cohere/README.md +5 -0
  88. package/resources/local/awesome-design-md/design-md/coinbase/DESIGN.md +570 -0
  89. package/resources/local/awesome-design-md/design-md/coinbase/README.md +5 -0
  90. package/resources/local/awesome-design-md/design-md/composio/DESIGN.md +506 -0
  91. package/resources/local/awesome-design-md/design-md/composio/README.md +5 -0
  92. package/resources/local/awesome-design-md/design-md/cursor/DESIGN.md +537 -0
  93. package/resources/local/awesome-design-md/design-md/cursor/README.md +5 -0
  94. package/resources/local/awesome-design-md/design-md/elevenlabs/DESIGN.md +504 -0
  95. package/resources/local/awesome-design-md/design-md/elevenlabs/README.md +5 -0
  96. package/resources/local/awesome-design-md/design-md/expo/DESIGN.md +526 -0
  97. package/resources/local/awesome-design-md/design-md/expo/README.md +5 -0
  98. package/resources/local/awesome-design-md/design-md/ferrari/DESIGN.md +531 -0
  99. package/resources/local/awesome-design-md/design-md/ferrari/README.md +5 -0
  100. package/resources/local/awesome-design-md/design-md/figma/DESIGN.md +578 -0
  101. package/resources/local/awesome-design-md/design-md/figma/README.md +5 -0
  102. package/resources/local/awesome-design-md/design-md/framer/DESIGN.md +544 -0
  103. package/resources/local/awesome-design-md/design-md/framer/README.md +5 -0
  104. package/resources/local/awesome-design-md/design-md/hashicorp/DESIGN.md +575 -0
  105. package/resources/local/awesome-design-md/design-md/hashicorp/README.md +5 -0
  106. package/resources/local/awesome-design-md/design-md/ibm/DESIGN.md +550 -0
  107. package/resources/local/awesome-design-md/design-md/ibm/README.md +5 -0
  108. package/resources/local/awesome-design-md/design-md/intercom/DESIGN.md +546 -0
  109. package/resources/local/awesome-design-md/design-md/intercom/README.md +5 -0
  110. package/resources/local/awesome-design-md/design-md/kraken/DESIGN.md +125 -0
  111. package/resources/local/awesome-design-md/design-md/kraken/README.md +5 -0
  112. package/resources/local/awesome-design-md/design-md/lamborghini/DESIGN.md +288 -0
  113. package/resources/local/awesome-design-md/design-md/lamborghini/README.md +5 -0
  114. package/resources/local/awesome-design-md/design-md/linear.app/DESIGN.md +548 -0
  115. package/resources/local/awesome-design-md/design-md/linear.app/README.md +5 -0
  116. package/resources/local/awesome-design-md/design-md/lovable/DESIGN.md +298 -0
  117. package/resources/local/awesome-design-md/design-md/lovable/README.md +5 -0
  118. package/resources/local/awesome-design-md/design-md/mastercard/DESIGN.md +365 -0
  119. package/resources/local/awesome-design-md/design-md/mastercard/README.md +5 -0
  120. package/resources/local/awesome-design-md/design-md/meta/DESIGN.md +683 -0
  121. package/resources/local/awesome-design-md/design-md/meta/README.md +5 -0
  122. package/resources/local/awesome-design-md/design-md/minimax/DESIGN.md +746 -0
  123. package/resources/local/awesome-design-md/design-md/minimax/README.md +5 -0
  124. package/resources/local/awesome-design-md/design-md/mintlify/DESIGN.md +852 -0
  125. package/resources/local/awesome-design-md/design-md/mintlify/README.md +5 -0
  126. package/resources/local/awesome-design-md/design-md/miro/DESIGN.md +825 -0
  127. package/resources/local/awesome-design-md/design-md/miro/README.md +5 -0
  128. package/resources/local/awesome-design-md/design-md/mistral.ai/DESIGN.md +773 -0
  129. package/resources/local/awesome-design-md/design-md/mistral.ai/README.md +5 -0
  130. package/resources/local/awesome-design-md/design-md/mongodb/DESIGN.md +767 -0
  131. package/resources/local/awesome-design-md/design-md/mongodb/README.md +5 -0
  132. package/resources/local/awesome-design-md/design-md/nike/DESIGN.md +575 -0
  133. package/resources/local/awesome-design-md/design-md/nike/README.md +5 -0
  134. package/resources/local/awesome-design-md/design-md/notion/DESIGN.md +821 -0
  135. package/resources/local/awesome-design-md/design-md/notion/README.md +5 -0
  136. package/resources/local/awesome-design-md/design-md/nvidia/DESIGN.md +640 -0
  137. package/resources/local/awesome-design-md/design-md/nvidia/README.md +5 -0
  138. package/resources/local/awesome-design-md/design-md/ollama/DESIGN.md +539 -0
  139. package/resources/local/awesome-design-md/design-md/ollama/README.md +5 -0
  140. package/resources/local/awesome-design-md/design-md/opencode.ai/DESIGN.md +521 -0
  141. package/resources/local/awesome-design-md/design-md/opencode.ai/README.md +5 -0
  142. package/resources/local/awesome-design-md/design-md/pinterest/DESIGN.md +597 -0
  143. package/resources/local/awesome-design-md/design-md/pinterest/README.md +5 -0
  144. package/resources/local/awesome-design-md/design-md/playstation/DESIGN.md +661 -0
  145. package/resources/local/awesome-design-md/design-md/playstation/README.md +5 -0
  146. package/resources/local/awesome-design-md/design-md/posthog/DESIGN.md +690 -0
  147. package/resources/local/awesome-design-md/design-md/posthog/README.md +5 -0
  148. package/resources/local/awesome-design-md/design-md/raycast/DESIGN.md +669 -0
  149. package/resources/local/awesome-design-md/design-md/raycast/README.md +5 -0
  150. package/resources/local/awesome-design-md/design-md/renault/DESIGN.md +589 -0
  151. package/resources/local/awesome-design-md/design-md/renault/README.md +5 -0
  152. package/resources/local/awesome-design-md/design-md/replicate/DESIGN.md +616 -0
  153. package/resources/local/awesome-design-md/design-md/replicate/README.md +5 -0
  154. package/resources/local/awesome-design-md/design-md/resend/DESIGN.md +585 -0
  155. package/resources/local/awesome-design-md/design-md/resend/README.md +5 -0
  156. package/resources/local/awesome-design-md/design-md/revolut/DESIGN.md +636 -0
  157. package/resources/local/awesome-design-md/design-md/revolut/README.md +5 -0
  158. package/resources/local/awesome-design-md/design-md/runwayml/DESIGN.md +244 -0
  159. package/resources/local/awesome-design-md/design-md/runwayml/README.md +5 -0
  160. package/resources/local/awesome-design-md/design-md/sanity/DESIGN.md +357 -0
  161. package/resources/local/awesome-design-md/design-md/sanity/README.md +5 -0
  162. package/resources/local/awesome-design-md/design-md/sentry/DESIGN.md +262 -0
  163. package/resources/local/awesome-design-md/design-md/sentry/README.md +5 -0
  164. package/resources/local/awesome-design-md/design-md/shopify/DESIGN.md +350 -0
  165. package/resources/local/awesome-design-md/design-md/shopify/README.md +5 -0
  166. package/resources/local/awesome-design-md/design-md/spacex/DESIGN.md +194 -0
  167. package/resources/local/awesome-design-md/design-md/spacex/README.md +5 -0
  168. package/resources/local/awesome-design-md/design-md/spotify/DESIGN.md +246 -0
  169. package/resources/local/awesome-design-md/design-md/spotify/README.md +5 -0
  170. package/resources/local/awesome-design-md/design-md/starbucks/DESIGN.md +580 -0
  171. package/resources/local/awesome-design-md/design-md/starbucks/README.md +5 -0
  172. package/resources/local/awesome-design-md/design-md/stripe/DESIGN.md +322 -0
  173. package/resources/local/awesome-design-md/design-md/stripe/README.md +5 -0
  174. package/resources/local/awesome-design-md/design-md/supabase/DESIGN.md +255 -0
  175. package/resources/local/awesome-design-md/design-md/supabase/README.md +5 -0
  176. package/resources/local/awesome-design-md/design-md/superhuman/DESIGN.md +252 -0
  177. package/resources/local/awesome-design-md/design-md/superhuman/README.md +5 -0
  178. package/resources/local/awesome-design-md/design-md/tesla/DESIGN.md +286 -0
  179. package/resources/local/awesome-design-md/design-md/tesla/README.md +5 -0
  180. package/resources/local/awesome-design-md/design-md/theverge/DESIGN.md +339 -0
  181. package/resources/local/awesome-design-md/design-md/theverge/README.md +5 -0
  182. package/resources/local/awesome-design-md/design-md/together.ai/DESIGN.md +263 -0
  183. package/resources/local/awesome-design-md/design-md/together.ai/README.md +5 -0
  184. package/resources/local/awesome-design-md/design-md/uber/DESIGN.md +295 -0
  185. package/resources/local/awesome-design-md/design-md/uber/README.md +5 -0
  186. package/resources/local/awesome-design-md/design-md/vercel/DESIGN.md +310 -0
  187. package/resources/local/awesome-design-md/design-md/vercel/README.md +5 -0
  188. package/resources/local/awesome-design-md/design-md/vodafone/DESIGN.md +423 -0
  189. package/resources/local/awesome-design-md/design-md/vodafone/README.md +5 -0
  190. package/resources/local/awesome-design-md/design-md/voltagent/DESIGN.md +323 -0
  191. package/resources/local/awesome-design-md/design-md/voltagent/README.md +5 -0
  192. package/resources/local/awesome-design-md/design-md/warp/DESIGN.md +253 -0
  193. package/resources/local/awesome-design-md/design-md/warp/README.md +5 -0
  194. package/resources/local/awesome-design-md/design-md/webflow/DESIGN.md +92 -0
  195. package/resources/local/awesome-design-md/design-md/webflow/README.md +5 -0
  196. package/resources/local/awesome-design-md/design-md/wired/DESIGN.md +278 -0
  197. package/resources/local/awesome-design-md/design-md/wired/README.md +5 -0
  198. package/resources/local/awesome-design-md/design-md/wise/DESIGN.md +173 -0
  199. package/resources/local/awesome-design-md/design-md/wise/README.md +5 -0
  200. package/resources/local/awesome-design-md/design-md/x.ai/DESIGN.md +257 -0
  201. package/resources/local/awesome-design-md/design-md/x.ai/README.md +5 -0
  202. package/resources/local/awesome-design-md/design-md/zapier/DESIGN.md +328 -0
  203. package/resources/local/awesome-design-md/design-md/zapier/README.md +5 -0
  204. package/resources/local/awesome-design-md/design-md-cli.js +167 -0
  205. package/resources/local/karpathy-tools/CLAUDE.md +65 -0
  206. package/resources/local/karpathy-tools/karpathy-md.js +140 -0
  207. package/scripts/audit-pack.js +21 -0
  208. package/skills/coding.md +87 -0
  209. package/skills/debug.md +63 -0
  210. package/skills/test.md +64 -0
  211. package/src/cli/tool-call-adapter.js +24 -2
@@ -0,0 +1,167 @@
1
+ /**
2
+ * design-md-cli.js - Interactive CLI for awesome-design-md
3
+ * Usage: node design-md-cli.js <command> [args]
4
+ */
5
+
6
+ const fs = require('fs');
7
+ const path = require('path');
8
+ const readline = require('readline');
9
+
10
+ const DESIGN_MD_DIR = path.join(__dirname, 'design-md');
11
+
12
+ // Colors for terminal output
13
+ const colors = {
14
+ reset: '\x1b[0m',
15
+ green: '\x1b[32m',
16
+ yellow: '\x1b[33m',
17
+ blue: '\x1b[34m',
18
+ cyan: '\x1b[36m',
19
+ dim: '\x1b[2m',
20
+ };
21
+
22
+ function log(text, color = 'reset') {
23
+ console.log(`${colors[color]}${text}${colors.reset}`);
24
+ }
25
+
26
+ function readDesignFile(brand) {
27
+ const dir = path.join(DESIGN_MD_DIR, brand);
28
+ if (fs.existsSync(path.join(dir, 'DESIGN.md'))) {
29
+ return { file: 'DESIGN.md', content: fs.readFileSync(path.join(dir, 'DESIGN.md'), 'utf8') };
30
+ }
31
+ if (fs.existsSync(path.join(dir, 'README.md'))) {
32
+ return { file: 'README.md', content: fs.readFileSync(path.join(dir, 'README.md'), 'utf8') };
33
+ }
34
+ return null;
35
+ }
36
+
37
+ function search(query) {
38
+ const brands = fs.readdirSync(DESIGN_MD_DIR).filter(f =>
39
+ fs.statSync(path.join(DESIGN_MD_DIR, f)).isDirectory()
40
+ );
41
+
42
+ const matches = brands.filter(b => b.toLowerCase().includes(query.toLowerCase()));
43
+
44
+ if (matches.length === 0) {
45
+ log(`❌ No matches for "${query}"`, 'yellow');
46
+ return;
47
+ }
48
+
49
+ log(`\n🔍 Results for "${query}" (${matches.length}):\n`, 'cyan');
50
+ matches.forEach((brand, i) => {
51
+ const data = readDesignFile(brand);
52
+ const size = data ? Math.round(data.content.length / 1024) : 0;
53
+ log(` ${i + 1}. ${brand} ${colors.dim}(~${size}KB)${colors.reset}`);
54
+ });
55
+ console.log();
56
+ }
57
+
58
+ function addToProject(brand) {
59
+ const data = readDesignFile(brand);
60
+
61
+ if (!data) {
62
+ log(`❌ Brand "${brand}" not found`, 'yellow');
63
+ log('Run: node design-md-cli.js list', 'dim');
64
+ return false;
65
+ }
66
+
67
+ const targetPath = path.join(process.cwd(), data.file);
68
+
69
+ if (fs.existsSync(targetPath)) {
70
+ log(`⚠️ ${data.file} already exists`, 'yellow');
71
+ return false;
72
+ }
73
+
74
+ fs.writeFileSync(targetPath, data.content);
75
+ log(`✅ Added ${data.file} for ${brand}`, 'green');
76
+ return true;
77
+ }
78
+
79
+ function preview(brand) {
80
+ const data = readDesignFile(brand);
81
+
82
+ if (!data) {
83
+ log(`❌ Brand "${brand}" not found`, 'yellow');
84
+ return;
85
+ }
86
+
87
+ console.log('\n' + '='.repeat(60));
88
+ log(`📋 ${brand} - ${data.file}`, 'cyan');
89
+ console.log('='.repeat(60) + '\n');
90
+
91
+ // Show first 50 lines
92
+ const lines = data.content.split('\n').slice(0, 50);
93
+ console.log(lines.join('\n'));
94
+ console.log(colors.dim + '\n... (truncated)' + colors.reset);
95
+ }
96
+
97
+ function list() {
98
+ const brands = fs.readdirSync(DESIGN_MD_DIR).filter(f =>
99
+ fs.statSync(path.join(DESIGN_MD_DIR, f)).isDirectory()
100
+ ).sort();
101
+
102
+ log(`\n📦 Available brands: ${brands.length}\n`, 'cyan');
103
+
104
+ // Group by first letter
105
+ const grouped = {};
106
+ brands.forEach(b => {
107
+ const letter = b[0].toUpperCase();
108
+ if (!grouped[letter]) grouped[letter] = [];
109
+ grouped[letter].push(b);
110
+ });
111
+
112
+ Object.keys(grouped).sort().forEach(letter => {
113
+ console.log(`\n${colors.yellow}[${letter}]${colors.reset}`);
114
+ grouped[letter].forEach(b => {
115
+ const data = readDesignFile(b);
116
+ const size = data ? Math.round(data.content.length / 1024) : 0;
117
+ console.log(` ${b.padEnd(15)} ${colors.dim}${size}KB${colors.reset}`);
118
+ });
119
+ });
120
+ console.log();
121
+ }
122
+
123
+ // Main CLI
124
+ const cmd = process.argv[2];
125
+ const arg = process.argv[3];
126
+
127
+ switch (cmd) {
128
+ case 'search':
129
+ case 'find':
130
+ search(arg || '');
131
+ break;
132
+
133
+ case 'add':
134
+ addToProject(arg);
135
+ break;
136
+
137
+ case 'preview':
138
+ case 'view':
139
+ preview(arg);
140
+ break;
141
+
142
+ case 'list':
143
+ list();
144
+ break;
145
+
146
+ case 'init':
147
+ fs.mkdirSync('.design-systems', { recursive: true });
148
+ log('✅ Created .design-systems/', 'green');
149
+ break;
150
+
151
+ default:
152
+ console.log(`
153
+ ${colors.cyan}design-md CLI${colors.reset} - Search and add DESIGN.md files
154
+
155
+ ${colors.yellow}Commands:${colors.reset}
156
+ search <name> Search for a brand
157
+ add <brand> Add design file to project
158
+ preview <brand> Preview design file
159
+ list List all brands
160
+ init Create .design-systems/ dir
161
+
162
+ ${colors.yellow}Examples:${colors.reset}
163
+ node design-md-cli.js search stripe
164
+ node design-md-cli.js add vercel
165
+ node design-md-cli.js preview figma
166
+ `);
167
+ }
@@ -0,0 +1,65 @@
1
+ # CLAUDE.md
2
+
3
+ Behavioral guidelines to reduce common LLM coding mistakes. Merge with project-specific instructions as needed.
4
+
5
+ **Tradeoff:** These guidelines bias toward caution over speed. For trivial tasks, use judgment.
6
+
7
+ ## 1. Think Before Coding
8
+
9
+ **Don't assume. Don't hide confusion. Surface tradeoffs.**
10
+
11
+ Before implementing:
12
+ - State your assumptions explicitly. If uncertain, ask.
13
+ - If multiple interpretations exist, present them - don't pick silently.
14
+ - If a simpler approach exists, say so. Push back when warranted.
15
+ - If something is unclear, stop. Name what's confusing. Ask.
16
+
17
+ ## 2. Simplicity First
18
+
19
+ **Minimum code that solves the problem. Nothing speculative.**
20
+
21
+ - No features beyond what was asked.
22
+ - No abstractions for single-use code.
23
+ - No "flexibility" or "configurability" that wasn't requested.
24
+ - No error handling for impossible scenarios.
25
+ - If you write 200 lines and it could be 50, rewrite it.
26
+
27
+ Ask yourself: "Would a senior engineer say this is overcomplicated?" If yes, simplify.
28
+
29
+ ## 3. Surgical Changes
30
+
31
+ **Touch only what you must. Clean up only your own mess.**
32
+
33
+ When editing existing code:
34
+ - Don't "improve" adjacent code, comments, or formatting.
35
+ - Don't refactor things that aren't broken.
36
+ - Match existing style, even if you'd do it differently.
37
+ - If you notice unrelated dead code, mention it - don't delete it.
38
+
39
+ When your changes create orphans:
40
+ - Remove imports/variables/functions that YOUR changes made unused.
41
+ - Don't remove pre-existing dead code unless asked.
42
+
43
+ The test: Every changed line should trace directly to the user's request.
44
+
45
+ ## 4. Goal-Driven Execution
46
+
47
+ **Define success criteria. Loop until verified.**
48
+
49
+ Transform tasks into verifiable goals:
50
+ - "Add validation" → "Write tests for invalid inputs, then make them pass"
51
+ - "Fix the bug" → "Write a test that reproduces it, then make it pass"
52
+ - "Refactor X" → "Ensure tests pass before and after"
53
+
54
+ For multi-step tasks, state a brief plan:
55
+ ```
56
+ 1. [Step] → verify: [check]
57
+ 2. [Step] → verify: [check]
58
+ 3. [Step] → verify: [check]
59
+ ```
60
+
61
+ Strong success criteria let you loop independently. Weak criteria ("make it work") require constant clarification.
62
+
63
+ ---
64
+
65
+ **These guidelines are working if:** fewer unnecessary changes in diffs, fewer rewrites due to overcomplication, and clarifying questions come before implementation rather than after mistakes.
@@ -0,0 +1,140 @@
1
+ /**
2
+ * karpathy-md.js - Apply Karpathy-style coding guidelines to projects
3
+ * Usage: node karpathy-md.js <command> [args]
4
+ */
5
+
6
+ const fs = require('fs');
7
+ const path = require('path');
8
+
9
+ // Colors
10
+ const C = {
11
+ reset: '\x1b[0m',
12
+ green: '\x1b[32m',
13
+ yellow: '\x1b[33m',
14
+ blue: '\x1b[34m',
15
+ cyan: '\x1b[36m',
16
+ dim: '\x1b[2m',
17
+ red: '\x1b[31m',
18
+ };
19
+
20
+ const log = (text, color = 'reset') => console.log(`${C[color]}${text}${C.reset}`);
21
+
22
+ // Source templates
23
+ const TEMPLATES_DIR = path.join(process.env.HOME || '', 'andrej-karpathy-skills');
24
+ const TOOLS_DIR = path.join(process.env.HOME || '', 'karpathy-tools');
25
+
26
+ // Check if template exists
27
+ function hasTemplate(name) {
28
+ return fs.existsSync(path.join(TEMPLATES_DIR, name));
29
+ }
30
+
31
+ // Commands
32
+ const cmd = process.argv[2];
33
+ const arg = process.argv[3];
34
+
35
+ switch (cmd) {
36
+ case 'init':
37
+ case 'add': {
38
+ const target = path.join(process.cwd(), 'CLAUDE.md');
39
+ const source = path.join(TEMPLATES_DIR, 'CLAUDE.md');
40
+
41
+ if (fs.existsSync(target)) {
42
+ log(`⚠️ CLAUDE.md already exists`, 'yellow');
43
+ log('Options: karpathy-md merge (to append)', 'dim');
44
+ break;
45
+ }
46
+
47
+ if (!fs.existsSync(source)) {
48
+ log(`❌ Source template not found`, 'red');
49
+ break;
50
+ }
51
+
52
+ fs.copyFileSync(source, target);
53
+ log(`✅ Added CLAUDE.md with Karpathy guidelines`, 'green');
54
+ break;
55
+ }
56
+
57
+ case 'merge':
58
+ case 'append': {
59
+ const target = path.join(process.cwd(), 'CLAUDE.md');
60
+ const source = path.join(TEMPLATES_DIR, 'CLAUDE.md');
61
+
62
+ if (!fs.existsSync(target)) {
63
+ log(`❌ No CLAUDE.md found in current directory`, 'yellow');
64
+ log('Run: karpathy-md init', 'dim');
65
+ break;
66
+ }
67
+
68
+ if (!fs.existsSync(source)) {
69
+ log(`❌ Source template not found`, 'red');
70
+ break;
71
+ }
72
+
73
+ const existing = fs.readFileSync(target, 'utf8');
74
+ const toAppend = fs.readFileSync(source, 'utf8');
75
+
76
+ // Append under header
77
+ fs.writeFileSync(target, existing + '\n\n---\n\n' + toAppend);
78
+ log(`✅ Merged Karpathy guidelines into existing CLAUDE.md`, 'green');
79
+ break;
80
+ }
81
+
82
+ case 'view':
83
+ case 'show':
84
+ if (hasTemplate('CLAUDE.md')) {
85
+ console.log(fs.readFileSync(path.join(TEMPLATES_DIR, 'CLAUDE.md'), 'utf8'));
86
+ } else {
87
+ log(`❌ Template not found`, 'red');
88
+ }
89
+ break;
90
+
91
+ case 'examples':
92
+ if (hasTemplate('EXAMPLES.md')) {
93
+ console.log(fs.readFileSync(path.join(TEMPLATES_DIR, 'EXAMPLES.md'), 'utf8'));
94
+ } else {
95
+ log(`❌ Examples file not found`, 'red');
96
+ }
97
+ break;
98
+
99
+ case 'rules':
100
+ log(`\n📋 The 4 Karpathy Rules:\n`, 'cyan');
101
+ console.log(`
102
+ ${C.yellow}1. Think Before Coding${C.reset}
103
+ • State assumptions explicitly
104
+ • Ask when uncertain - don't guess
105
+ • Present multiple interpretations
106
+
107
+ ${C.yellow}2. Simplicity First${C.reset}
108
+ • No speculative features
109
+ • No over-engineering
110
+ • If 200 lines could be 50, rewrite
111
+
112
+ ${C.yellow}3. Surgical Changes${C.reset}
113
+ • Touch only what's needed
114
+ • Don't "improve" unrelated code
115
+ • Match existing style
116
+
117
+ ${C.yellow}4. Goal-Driven Execution${C.reset}
118
+ • Define success criteria first
119
+ • Write tests to verify
120
+ • Loop until goals are met
121
+ `);
122
+ break;
123
+
124
+ default:
125
+ console.log(`
126
+ ${C.cyan}karpathy-md${C.reset} - Apply Karpathy-style coding guidelines
127
+
128
+ ${C.yellow}Commands:${C.reset}
129
+ init Add CLAUDE.md to current project
130
+ merge Append guidelines to existing CLAUDE.md
131
+ view Show the guidelines
132
+ examples Show practical examples
133
+ rules Show the 4 rules summary
134
+
135
+ ${C.yellow}Examples:${C.reset}
136
+ cd my-project && karpathy-md init
137
+ karpathy-md view
138
+ karpathy-md rules
139
+ `);
140
+ }
@@ -34,6 +34,19 @@ const violations = files
34
34
  blockedPatterns.some(pattern => pattern.test(filePath))
35
35
  ));
36
36
 
37
+ const requiredPrefixes = [
38
+ 'resources/local/agents.md/',
39
+ 'resources/local/awesome-design-md/',
40
+ 'resources/local/karpathy-tools/',
41
+ 'resources/local/page-agent/',
42
+ 'resources/local/ecc/',
43
+ 'skills/',
44
+ 'memories/',
45
+ ];
46
+
47
+ const missingRequired = requiredPrefixes
48
+ .filter(prefix => !files.some(file => file.path.startsWith(prefix)));
49
+
37
50
  if (violations.length > 0) {
38
51
  console.error('Package audit failed. Blocked files would be published:');
39
52
  for (const filePath of violations.slice(0, 50)) {
@@ -45,4 +58,12 @@ if (violations.length > 0) {
45
58
  process.exit(1);
46
59
  }
47
60
 
61
+ if (missingRequired.length > 0) {
62
+ console.error('Package audit failed. Required packaged paths are missing:');
63
+ for (const prefix of missingRequired) {
64
+ console.error(`- ${prefix}`);
65
+ }
66
+ process.exit(1);
67
+ }
68
+
48
69
  console.log(`Package audit passed: ${files.length} files, ${(pack.size / 1024 / 1024).toFixed(2)} MB tgz, ${(pack.unpackedSize / 1024 / 1024).toFixed(2)} MB unpacked.`);
@@ -0,0 +1,87 @@
1
+ # ❄️ Coding Skill
2
+
3
+ Expert-level coding assistance with automatic tool usage.
4
+
5
+ ## When to Use
6
+
7
+ Use this skill when the user asks to:
8
+ - Write code, create files
9
+ - Fix bugs
10
+ - Refactor code
11
+ - Understand existing code
12
+ - Review code
13
+ - Add features
14
+
15
+ ## How to Use
16
+
17
+ ### Step 1: Understand the Task
18
+ 1. Read relevant project files to understand context
19
+ 2. Check for CLAUDE.md, WINTER.md, or other guidelines
20
+ 3. Identify the scope of changes needed
21
+
22
+ ### Step 2: Plan Changes
23
+ For simple tasks:
24
+ - Just do it
25
+
26
+ For complex tasks:
27
+ ```
28
+ 1. [Action] → verify: [check]
29
+ 2. [Action] → verify: [check]
30
+ ```
31
+
32
+ ### Step 3: Execute
33
+ - Read files before modifying
34
+ - Use Write for new files
35
+ - Use Edit for existing files (surgical changes)
36
+ - Use Bash for running commands, git, tests
37
+ - Use Glob/Grep to find relevant files
38
+
39
+ ### Step 4: Verify
40
+ - Run tests if available
41
+ - Check the changes work
42
+ - Report what was done
43
+
44
+ ## Examples
45
+
46
+ ### Write New File
47
+ ```
48
+ User: Create a REST API for users
49
+ → Write users.js with Express routes
50
+ → Test with curl
51
+ ```
52
+
53
+ ### Fix Bug
54
+ ```
55
+ User: Fix the login bug
56
+ → Read auth.js to understand the issue
57
+ → Edit the buggy line
58
+ → Test the fix
59
+ ```
60
+
61
+ ### Understand Code
62
+ ```
63
+ User: How does this module work?
64
+ → Read the module files
65
+ → Summarize functionality
66
+ ```
67
+
68
+ ## Key Principles
69
+
70
+ 1. **Don't assume** - Read code to understand before modifying
71
+ 2. **Be surgical** - Only change what's needed
72
+ 3. **Verify** - Test your changes work
73
+ 4. **Be proactive** - Call tools automatically, don't wait to be asked
74
+
75
+ ## Anti-Patterns
76
+
77
+ ❌ "Here's the code you need:" (describe without writing)
78
+ ✅ Write the file directly
79
+
80
+ ❌ "I think you should..." (assume without reading)
81
+ ✅ Read the relevant files first
82
+
83
+ ❌ Change 500 lines for a 5-line fix
84
+ ✅ Surgical edit only
85
+
86
+ ❌ "Try this and let me know if it works"
87
+ ✅ Run tests, verify, report results
@@ -0,0 +1,63 @@
1
+ # ❄️ Debug Skill
2
+
3
+ Systematic debugging with automatic tool usage.
4
+
5
+ ## Debugging Process
6
+
7
+ ### 1. Reproduce
8
+ - Run the code to see the error
9
+ - Note the exact error message
10
+ - Identify when it happens
11
+
12
+ ### 2. Understand
13
+ - Read the relevant code
14
+ - Trace the execution flow
15
+ - Identify the root cause
16
+
17
+ ### 3. Fix
18
+ - Make surgical changes
19
+ - Don't over-engineer the fix
20
+
21
+ ### 4. Verify
22
+ - Run the code again
23
+ - Confirm the bug is fixed
24
+ - Check for regressions
25
+
26
+ ## Examples
27
+
28
+ ### Bug: TypeError: Cannot read property 'x' of undefined
29
+
30
+ ```
31
+ 1. Reproduce → Run code, see error
32
+ 2. Read file with error
33
+ 3. Edit: Add null check or fix data source
34
+ 4. Verify → Run again
35
+ ```
36
+
37
+ ### Bug: API returns 500
38
+
39
+ ```
40
+ 1. Reproduce → Call API, see 500
41
+ 2. Read server logs (Bash: cat logs)
42
+ 3. Read handler code
43
+ 4. Fix the issue
44
+ 5. Verify → Call API again
45
+ ```
46
+
47
+ ## Key Commands
48
+
49
+ - `Read` - Read source files
50
+ - `Bash` - Run commands, check logs
51
+ - `Edit` - Fix the bug
52
+ - `Grep` - Find related code
53
+
54
+ ## Anti-Patterns
55
+
56
+ ❌ Blind guessing
57
+ ✅ Reproduce first, then fix
58
+
59
+ ❌ Over-engineered fixes
60
+ ✅ Surgical changes
61
+
62
+ ❌ "It might be..." without evidence
63
+ ✅ Read code, trace execution
package/skills/test.md ADDED
@@ -0,0 +1,64 @@
1
+ # ❄️ Test Skill
2
+
3
+ Test generation and execution.
4
+
5
+ ## Test Types
6
+
7
+ ### Unit Tests
8
+ - Test individual functions
9
+ - Mock dependencies
10
+ - Fast to run
11
+
12
+ ### Integration Tests
13
+ - Test API endpoints
14
+ - Test database operations
15
+ - Slower but comprehensive
16
+
17
+ ### E2E Tests
18
+ - Test full user flows
19
+ - Use browser automation
20
+ - Slowest but most realistic
21
+
22
+ ## Process
23
+
24
+ ### 1. Identify What to Test
25
+ - Find the code to test
26
+ - Identify edge cases
27
+ - Check existing tests
28
+
29
+ ### 2. Write Tests
30
+ - Use appropriate framework (Vitest, Jest, etc.)
31
+ - Follow project conventions
32
+ - Cover happy path AND edge cases
33
+
34
+ ### 3. Run Tests
35
+ ```bash
36
+ npm test
37
+ # or
38
+ npm run test:watch
39
+ ```
40
+
41
+ ### 4. Verify
42
+ - All tests pass
43
+ - Coverage improved
44
+ - No regressions
45
+
46
+ ## Examples
47
+
48
+ ### Add Tests for Function
49
+ ```
50
+ User: Add tests for calculateTotal
51
+ → Read calculateTotal function
52
+ → Write tests for:
53
+ - Normal case
54
+ - Empty array
55
+ - Negative values
56
+ → Run tests
57
+ → Report coverage
58
+ ```
59
+
60
+ ## Key Commands
61
+
62
+ - `Read` - Read source and existing tests
63
+ - `Write` - Create test files
64
+ - `Bash` - Run test commands
@@ -39,8 +39,14 @@ export function extractInlineToolCalls(content, idFactory = index => `inline-${D
39
39
  };
40
40
  const pushParsedToolObject = (parsed) => {
41
41
  const { name, args } = extractToolPayload(parsed, parseToolArguments);
42
- if (!name || typeof name !== 'string') return false;
43
- pushToolCall(name, args, 'object');
42
+ if (name && typeof name === 'string') {
43
+ pushToolCall(name, args, 'object');
44
+ return true;
45
+ }
46
+
47
+ const inferred = inferSafeToolFromBareArguments(parsed);
48
+ if (!inferred) return false;
49
+ pushToolCall(inferred.name, inferred.args, 'bare-arguments');
44
50
  return true;
45
51
  };
46
52
 
@@ -304,6 +310,22 @@ function extractToolPayload(payload, parseArguments) {
304
310
  };
305
311
  }
306
312
 
313
+ export function inferSafeToolFromBareArguments(value) {
314
+ if (!value || typeof value !== 'object' || Array.isArray(value)) return null;
315
+
316
+ const keys = Object.keys(value);
317
+ if (keys.length === 0) return null;
318
+
319
+ const hasGenericPayloadKeys = keys.some(key => /^(arguments?|args?|input|parameters?|params?|tool[_-]?input|function[_-]?arguments?)$/i.test(key));
320
+ if (!hasGenericPayloadKeys) return null;
321
+
322
+ const name = value.name || value.tool || value.tool_name || value.function_name || null;
323
+ if (typeof name !== 'string' || !name.trim()) return null;
324
+
325
+ const args = value.arguments ?? value.args ?? value.input ?? value.parameters ?? value.params ?? value.tool_input ?? value.function_arguments ?? {};
326
+ return { name, args };
327
+ }
328
+
307
329
  export function formatToolCallsForMessage(toolCalls) {
308
330
  return toolCalls.map((tc) => ({
309
331
  id: tc.id,