@jeiemgi/cckit 0.1.6

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 (191) hide show
  1. package/.claude-plugin/plugin.json +22 -0
  2. package/AGENTS.md +101 -0
  3. package/LICENSE-APACHE +202 -0
  4. package/LICENSE-MIT +21 -0
  5. package/README.md +143 -0
  6. package/SECURITY.md +22 -0
  7. package/bin/cckit +215 -0
  8. package/cckit.config.json +34 -0
  9. package/commands/kit-add.md +42 -0
  10. package/commands/kit-docs.md +45 -0
  11. package/commands/kit-doctor.md +52 -0
  12. package/commands/kit-export-project.md +58 -0
  13. package/commands/kit-export-training.md +49 -0
  14. package/commands/kit-init.md +126 -0
  15. package/commands/kit-routines.md +59 -0
  16. package/commands/kit-update.md +132 -0
  17. package/docs/kit-annotate/01-explainer.html +225 -0
  18. package/docs/kit-annotate/02-implementation-plan.html +196 -0
  19. package/docs/media/.onboarding-capture.cast +5 -0
  20. package/docs/media/README.md +43 -0
  21. package/docs/media/build-demo.sh +63 -0
  22. package/docs/media/build-kit-init.sh +51 -0
  23. package/docs/media/build-onboarding.sh +51 -0
  24. package/docs/media/kit-dry-run.cast +107 -0
  25. package/docs/media/kit-dry-run.gif +0 -0
  26. package/docs/media/kit-init.cast +56 -0
  27. package/docs/media/kit-init.gif +0 -0
  28. package/docs/media/kit-onboarding.cast +148 -0
  29. package/docs/media/kit-onboarding.gif +0 -0
  30. package/githooks/pre-commit +18 -0
  31. package/kit.config.schema.json +105 -0
  32. package/package.json +54 -0
  33. package/privacy-denylist.example +8 -0
  34. package/profiles/automation.json +36 -0
  35. package/profiles/content.json +41 -0
  36. package/profiles/minimal.json +31 -0
  37. package/profiles/research.json +37 -0
  38. package/profiles/software.json +32 -0
  39. package/scripts/annotate-setup.sh +149 -0
  40. package/scripts/autopilot.sh +50 -0
  41. package/scripts/capture-project-ids.sh +53 -0
  42. package/scripts/check.sh +66 -0
  43. package/scripts/contribute.sh +48 -0
  44. package/scripts/debug.sh +54 -0
  45. package/scripts/init-upgrade-test.sh +99 -0
  46. package/scripts/init.sh +827 -0
  47. package/scripts/install.sh +24 -0
  48. package/scripts/kit-add-test.sh +62 -0
  49. package/scripts/kit-add.sh +115 -0
  50. package/scripts/kit-adopt-test.sh +61 -0
  51. package/scripts/kit-adopt.sh +122 -0
  52. package/scripts/kit-bump-version.sh +79 -0
  53. package/scripts/kit-digest.sh +126 -0
  54. package/scripts/kit-doctor.sh +663 -0
  55. package/scripts/kit-export-project-test.sh +82 -0
  56. package/scripts/kit-export-project.sh +245 -0
  57. package/scripts/kit-export-training-test.sh +51 -0
  58. package/scripts/kit-export-training.sh +175 -0
  59. package/scripts/kit-migrate-test.sh +80 -0
  60. package/scripts/kit-migrate.sh +190 -0
  61. package/scripts/kit-onboard-test.sh +63 -0
  62. package/scripts/kit-onboard.sh +69 -0
  63. package/scripts/kit-promote-test.sh +54 -0
  64. package/scripts/kit-promote.sh +102 -0
  65. package/scripts/kit-remove-test.sh +61 -0
  66. package/scripts/kit-remove.sh +84 -0
  67. package/scripts/kit-routines.sh +322 -0
  68. package/scripts/kit-version-check.sh +91 -0
  69. package/scripts/kit-wire-test.sh +54 -0
  70. package/scripts/kit-wire.sh +132 -0
  71. package/scripts/knowledge-lint.sh +96 -0
  72. package/scripts/lib/cckit-output.sh +36 -0
  73. package/scripts/lib/effort-metrics.sh +452 -0
  74. package/scripts/lib/effort-ops-test.sh +83 -0
  75. package/scripts/lib/effort-ops.sh +132 -0
  76. package/scripts/lib/effort-plan.sh +104 -0
  77. package/scripts/lib/effort.sh +191 -0
  78. package/scripts/lib/engine-adapter.sh +92 -0
  79. package/scripts/lib/gh-log.sh +58 -0
  80. package/scripts/lib/gh-project.sh +212 -0
  81. package/scripts/lib/handoff.sh +35 -0
  82. package/scripts/lib/kit-cli-test.sh +42 -0
  83. package/scripts/lib/kit-cli.sh +32 -0
  84. package/scripts/lib/kit-config-resolve.sh +145 -0
  85. package/scripts/lib/kit-config.sh +88 -0
  86. package/scripts/lib/kit-engine-test.sh +107 -0
  87. package/scripts/lib/kit-events.sh +62 -0
  88. package/scripts/lib/kit-gc.sh +117 -0
  89. package/scripts/lib/kit-interview-test.sh +77 -0
  90. package/scripts/lib/kit-interview.sh +203 -0
  91. package/scripts/lib/kit-local.sh +79 -0
  92. package/scripts/lib/kit-manifest.sh +127 -0
  93. package/scripts/lib/kit-mode-test.sh +49 -0
  94. package/scripts/lib/kit-mode.sh +67 -0
  95. package/scripts/lib/kit-operate.sh +105 -0
  96. package/scripts/lib/kit-profile-test.sh +62 -0
  97. package/scripts/lib/kit-profile.sh +115 -0
  98. package/scripts/lib/kit-task-ops-test.sh +63 -0
  99. package/scripts/lib/kit-task-ops.sh +341 -0
  100. package/scripts/lib/pr-evidence.sh +173 -0
  101. package/scripts/lib/project-scan.sh +16 -0
  102. package/scripts/lib/react-detect.sh +78 -0
  103. package/scripts/lib/role-identity.sh +47 -0
  104. package/scripts/lib/secret-guard.sh +96 -0
  105. package/scripts/lib/toon.sh +35 -0
  106. package/scripts/lib/ui.sh +42 -0
  107. package/scripts/lib/version-bump.sh +59 -0
  108. package/scripts/lib/worktree-issue-test.sh +45 -0
  109. package/scripts/lib/worktree-issue.sh +73 -0
  110. package/scripts/lib/worktree-start.sh +280 -0
  111. package/scripts/orchestrate.sh +160 -0
  112. package/scripts/portable-test.sh +53 -0
  113. package/scripts/publish.sh +94 -0
  114. package/scripts/setup-labels.sh +25 -0
  115. package/scripts/setup-milestones.sh +17 -0
  116. package/scripts/showcase.sh +64 -0
  117. package/scripts/status.sh +44 -0
  118. package/scripts/task-sync.sh +59 -0
  119. package/scripts/test.sh +48 -0
  120. package/scripts/web-install.sh +22 -0
  121. package/skills/kit-annotate/SKILL.md +107 -0
  122. package/skills/kit-autopilot/SKILL.md +108 -0
  123. package/skills/kit-contribute/SKILL.md +134 -0
  124. package/skills/kit-customize/SKILL.md +134 -0
  125. package/skills/kit-dev/SKILL.md +67 -0
  126. package/skills/kit-digest/SKILL.md +41 -0
  127. package/skills/kit-effort-close/SKILL.md +156 -0
  128. package/skills/kit-effort-new/SKILL.md +173 -0
  129. package/skills/kit-effort-pr/SKILL.md +139 -0
  130. package/skills/kit-effort-start/SKILL.md +85 -0
  131. package/skills/kit-gc/SKILL.md +80 -0
  132. package/skills/kit-onboard/SKILL.md +50 -0
  133. package/skills/kit-security-sweep/SKILL.md +57 -0
  134. package/skills/kit-ship/SKILL.md +43 -0
  135. package/skills/kit-task-close/SKILL.md +66 -0
  136. package/skills/kit-task-new/SKILL.md +51 -0
  137. package/skills/kit-task-pr/SKILL.md +43 -0
  138. package/skills/kit-task-pr-auto/SKILL.md +27 -0
  139. package/skills/kit-task-pr-merge/SKILL.md +53 -0
  140. package/skills/kit-task-start/SKILL.md +76 -0
  141. package/skills/kit-task-sync/SKILL.md +37 -0
  142. package/templates/CLAUDE.md.tmpl +106 -0
  143. package/templates/agents/analyst.md +55 -0
  144. package/templates/agents/auto-dev.md +93 -0
  145. package/templates/agents/backend.md +59 -0
  146. package/templates/agents/designer.md +73 -0
  147. package/templates/agents/devops.md +57 -0
  148. package/templates/agents/editor.md +48 -0
  149. package/templates/agents/frontend.md +81 -0
  150. package/templates/agents/generalist.md +46 -0
  151. package/templates/agents/local-delegate.md +70 -0
  152. package/templates/agents/n8n.md +65 -0
  153. package/templates/agents/pm.md +69 -0
  154. package/templates/agents/qa.md +66 -0
  155. package/templates/agents/researcher.md +57 -0
  156. package/templates/agents/security.md +65 -0
  157. package/templates/agents/tech-lead.md +75 -0
  158. package/templates/hooks/guard-base-branch-commit.sh.tmpl +45 -0
  159. package/templates/hooks/kit-local-status.sh.tmpl +34 -0
  160. package/templates/hooks/kit_version_check.sh.tmpl +6 -0
  161. package/templates/hooks/mempal_followup.sh.tmpl +97 -0
  162. package/templates/hooks/mempal_precompact.sh.tmpl +4 -0
  163. package/templates/hooks/mempal_save.sh.tmpl +4 -0
  164. package/templates/hooks/mempal_session_start.sh.tmpl +8 -0
  165. package/templates/hooks/prepush_gate.sh.tmpl +36 -0
  166. package/templates/hooks/repo-hygiene.sh.tmpl +72 -0
  167. package/templates/kit.config.json.tmpl +32 -0
  168. package/templates/knowledge-INDEX.md.tmpl +12 -0
  169. package/templates/lib/kit-sigil.sh.tmpl +124 -0
  170. package/templates/rules/branch-naming.md +104 -0
  171. package/templates/rules/communication-style.md +22 -0
  172. package/templates/rules/delegation-brief.md +40 -0
  173. package/templates/rules/design-routing.md +35 -0
  174. package/templates/rules/effort-model.md +122 -0
  175. package/templates/rules/knowledge-base.md +41 -0
  176. package/templates/rules/mempalace.md +110 -0
  177. package/templates/rules/plan-output-format.md +58 -0
  178. package/templates/rules/react-annotate.md +69 -0
  179. package/templates/rules/risk-tiered-review.md +62 -0
  180. package/templates/rules/skill-gaps.md +48 -0
  181. package/templates/rules/task-management.md +42 -0
  182. package/templates/settings/settings.local.json.tmpl +27 -0
  183. package/templates/skills/NAMESPACED +13 -0
  184. package/templates/skills/copywriting/SKILL.md +252 -0
  185. package/templates/skills/copywriting/references/copy-frameworks.md +344 -0
  186. package/templates/skills/copywriting/references/natural-transitions.md +272 -0
  187. package/templates/skills/feature-build-refine/SKILL.md +367 -0
  188. package/templates/skills/karpathy-guidelines/SKILL.md +69 -0
  189. package/templates/skills/morning-briefing/SKILL.md +46 -0
  190. package/templates/skills/speckit/SKILL.md +239 -0
  191. package/templates/skills/supabase-patterns/SKILL.md +88 -0
@@ -0,0 +1,196 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>kit-annotate — implementation plan</title>
7
+ <style>
8
+ :root{--bg:#fbfbfd;--ink:#1d1d22;--muted:#6b6b78;--line:#e6e6ee;--accent:#5b6cff;--accent-soft:#eef0ff;
9
+ --code-bg:#0f1222;--code-ink:#e6e7f0;--ok:#0f9d6b;--ok-bg:#eafaf3;--warn:#c2410c;--warn-bg:#fff4ec;--info:#2563eb;--info-bg:#eff6ff;--max:900px;}
10
+ *{box-sizing:border-box}html{scroll-behavior:smooth}
11
+ body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.62 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased}
12
+ a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}
13
+ .wrap{display:grid;grid-template-columns:240px 1fr;max-width:1260px;margin:0 auto}
14
+ nav{position:sticky;top:0;align-self:start;height:100vh;overflow:auto;padding:28px 18px 60px;border-right:1px solid var(--line);font-size:13.5px}
15
+ nav .brand{font-weight:700;font-size:15px}nav .brand small{display:block;font-weight:500;color:var(--muted);font-size:12px;margin-top:3px}
16
+ nav ol{list-style:none;margin:18px 0 0;padding:0;counter-reset:s}
17
+ nav a{display:block;color:var(--muted);padding:5px 9px;border-radius:7px;counter-increment:s}
18
+ nav a::before{content:counter(s)". ";color:#b7b7c6}
19
+ nav a:hover{background:var(--accent-soft);color:var(--ink);text-decoration:none}
20
+ nav a.active{background:var(--accent);color:#fff}nav a.active::before{color:#cdd3ff}
21
+ main{padding:46px 54px 140px;max-width:calc(var(--max) + 108px)}
22
+ .kicker{color:var(--accent);font-weight:700;font-size:13px;letter-spacing:.12em;text-transform:uppercase}
23
+ h1{font-size:36px;line-height:1.1;letter-spacing:-.7px;margin:.25em 0 .3em}
24
+ .lede{font-size:18px;color:#3c3c46;max-width:64ch}
25
+ h2{font-size:24px;letter-spacing:-.4px;margin:58px 0 6px;padding-top:12px}h2 .num{color:#c3c3d2;margin-right:10px;font-weight:700}
26
+ h3{font-size:17px;margin:24px 0 6px}
27
+ p{max-width:70ch}section{scroll-margin-top:24px}
28
+ hr{border:0;border-top:1px solid var(--line);margin:46px 0}
29
+ code{font-family:"SF Mono",ui-monospace,Menlo,Consolas,monospace;font-size:.87em;background:#f0f0f6;padding:.1em .4em;border-radius:5px;color:#3a3a52}
30
+ pre{background:var(--code-bg);color:var(--code-ink);padding:16px 18px;border-radius:12px;overflow:auto;font-size:13px;line-height:1.55;margin:14px 0}
31
+ pre code{background:none;color:inherit;padding:0}
32
+ .box{border-radius:12px;padding:15px 17px 15px 44px;margin:16px 0;position:relative;border:1px solid;font-size:15px}
33
+ .box .tag{position:absolute;left:15px;top:15px;font-weight:800}.box p{margin:.35em 0;max-width:66ch}.box p:first-child{margin-top:0}.box p:last-child{margin-bottom:0}
34
+ .ok{background:var(--ok-bg);border-color:#bfe9d6;color:#0a4a36}.ok .tag{color:var(--ok)}
35
+ .warn{background:var(--warn-bg);border-color:#fcd9c2;color:#7a2e0e}.warn .tag{color:var(--warn)}
36
+ .info{background:var(--info-bg);border-color:#cfe0ff;color:#15315e}.info .tag{color:var(--info)}
37
+ table{border-collapse:collapse;width:100%;margin:16px 0;font-size:14px}
38
+ th,td{text-align:left;padding:10px 13px;border-bottom:1px solid var(--line);vertical-align:top}
39
+ th{font-size:11.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);border-bottom:2px solid var(--line)}
40
+ td:first-child{font-weight:600;white-space:nowrap}
41
+ .tree{background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px 18px;font-family:"SF Mono",ui-monospace,Menlo,monospace;font-size:13px;line-height:1.7;overflow:auto;color:#3a3a52}
42
+ .tree .d{color:var(--accent);font-weight:600}.tree .n{color:#9aa}.tree .done{color:#0f9d6b;font-weight:700}
43
+ .phase{border:1px solid var(--line);border-radius:14px;background:#fff;margin:14px 0;overflow:hidden}
44
+ .phase .top{display:flex;align-items:center;gap:12px;padding:13px 18px;background:#f7f8ff;border-bottom:1px solid var(--line)}
45
+ .phase .pn{background:var(--accent);color:#fff;border-radius:8px;font-weight:800;font-size:12.5px;padding:4px 10px;white-space:nowrap}
46
+ .phase.done .pn{background:var(--ok)}.phase .pt{font-weight:700}.phase .goal{color:var(--muted);font-size:14px;margin-left:auto;text-align:right;max-width:44ch}
47
+ .phase .mid{padding:13px 18px}.phase ul{margin:0;padding-left:18px}.phase li{margin:3px 0;font-size:14.5px}
48
+ .badge{display:inline-block;font-size:11px;font-weight:800;padding:2px 8px;border-radius:999px;margin-left:8px}
49
+ .b-done{background:var(--ok-bg);color:var(--ok)}.b-next{background:var(--info-bg);color:var(--info)}.b-later{background:#f0f0f6;color:#6b6b78}
50
+ .foot{margin-top:60px;color:var(--muted);font-size:13.5px;border-top:1px solid var(--line);padding-top:20px}
51
+ .toplink{position:fixed;right:24px;bottom:24px;background:var(--ink);color:#fff;border-radius:999px;padding:10px 16px;font-size:13px;font-weight:600;box-shadow:0 6px 20px rgba(0,0,0,.18);opacity:0;transition:opacity .2s;pointer-events:none}
52
+ .toplink.show{opacity:.92;pointer-events:auto}
53
+ @media(max-width:920px){.wrap{grid-template-columns:1fr}nav{display:none}main{padding:30px 22px 120px}.phase .top{flex-wrap:wrap}.phase .goal{margin-left:0;text-align:left}}
54
+ </style>
55
+ </head>
56
+ <body>
57
+ <div class="wrap">
58
+ <nav>
59
+ <div class="brand">kit-annotate<small>Implementation plan</small></div>
60
+ <ol>
61
+ <li><a href="#goal">Goal &amp; decision</a></li>
62
+ <li><a href="#built">What was built</a></li>
63
+ <li><a href="#flow">Setup &amp; session flow</a></li>
64
+ <li><a href="#config">Config &amp; data flow</a></li>
65
+ <li><a href="#phases">Phases</a></li>
66
+ <li><a href="#roadmap">Roadmap: upgrades &amp; multi-project</a></li>
67
+ <li><a href="#decisions">Open decisions</a></li>
68
+ </ol>
69
+ </nav>
70
+ <main>
71
+ <div class="kicker">Build reference · for the kit</div>
72
+ <h1>kit-annotate — implementation plan</h1>
73
+ <p class="lede">What was added to claude-kit to wire Agentation into Claude, how it flows, what's verified, and what's next. Read <a href="01-explainer.html">01-explainer.html</a> first for the concepts.</p>
74
+
75
+ <div class="info" style="margin-top:22px"><span class="tag">ℹ</span><p><b>Decision (verified, unanimous in an 18-agent design pass):</b> the <em>Hybrid</em> — ship a claude-kit scaffolder now whose default backend is <b>Agentation</b>, behind a named-backend seam so a kit-owned backend can slot in later if richer capture (live prop/state values) is ever needed. Scope: <b>Claude Code only</b>.</p></div>
76
+
77
+ <!-- 1 -->
78
+ <section id="goal">
79
+ <h2><span class="num">1</span>Goal &amp; decision</h2>
80
+ <p><b>Goal:</b> in-app, click-to-annotate UI feedback for React projects, wired into Claude via claude-kit — so the kit's job is the <em>wiring</em>, not the capture engine. <b>Why adopt Agentation:</b> it's source-available + standard MCP (passes the "inspectable" bar onUI failed), ~3.4M downloads/mo, and already an in-app wrapper across Next/Vite/SSR. <b>License:</b> PolyForm Shield 1.0.0 — a noncompete; installing it as the user's own dev dependency is fully permitted; the kit must not vendor its code.</p>
81
+ <div class="warn"><span class="tag">⚠</span><p><b>Capability boundary, verified against Agentation's source:</b> it captures component-name tree + selectors + computed styles + a source path — <b>not live prop/state values</b>. That sanitized props/state snapshot is the one thing only a kit-owned backend could add; it stays parked until the need is validated on a real PWA.</p></div>
82
+ </section>
83
+
84
+ <!-- 2 -->
85
+ <section id="built">
86
+ <h2><span class="num">2</span>What was built <span class="badge b-done">shipped in 0.5.0</span></h2>
87
+ <div class="tree">
88
+ <span class="d">claude-kit/</span>
89
+ ├─ <span class="d">skills/kit-annotate/</span>SKILL.md <span class="done">✓ new</span> <span class="n">— /kit-annotate: setup · watch · review · status (auto-activates)</span>
90
+ ├─ <span class="d">scripts/</span>annotate-setup.sh <span class="done">✓ new</span> <span class="n">— install agentation · register MCP · write rule · merge config · --dry-run</span>
91
+ ├─ <span class="d">scripts/lib/</span>react-detect.sh <span class="done">✓ new</span> <span class="n">— Next → React-Router-v7 → Vite → generic React (specificity-ordered)</span>
92
+ ├─ <span class="d">templates/rules/</span>react-annotate.md <span class="done">✓ new</span> <span class="n">— the annotate→locate→fix→resolve loop + honest limits + memory block</span>
93
+ ├─ <span class="d">scripts/lib/</span>kit-config.sh <span class="n">~ edit — exports KIT_ANNOTATE_*</span>
94
+ ├─ <span class="d">commands/</span>kit-init.md <span class="n">~ edit — points React projects to /kit-annotate</span>
95
+ ├─ <span class="d">.claude-plugin/</span>plugin.json <span class="n">~ edit — 0.4.1 → 0.5.0 + description</span>
96
+ └─ CHANGELOG.md <span class="done">✓ new</span> <span class="n">— Keep a Changelog</span>
97
+ </div>
98
+ <p><b>Validated:</b> <code>react-detect.sh</code> correctly classifies Vite, Next (even with vitest present), React Router v7, and non-React; <code>annotate-setup.sh --dry-run</code> prints the right per-framework plan and snippet. Both pass <code>bash -n</code>.</p>
99
+ </section>
100
+
101
+ <!-- 3 -->
102
+ <section id="flow">
103
+ <h2><span class="num">3</span>Setup &amp; session flow</h2>
104
+ <h3>Setup (<code>/kit-annotate setup</code>)</h3>
105
+ <ol>
106
+ <li>Dry-run the engine → show framework, entry file, and plan.</li>
107
+ <li>Explain capabilities + honest limits + license; ask consent (Install / Preview / Skip).</li>
108
+ <li>Engine: <code>npm i -D agentation</code> → <code>claude mcp add agentation -- npx -y agentation-mcp server</code> → write <code>.claude/rules/react-annotate.md</code> → merge <code>.annotate</code> into <code>kit.config.json</code>.</li>
109
+ <li>Wire <code>&lt;Agentation /&gt;</code> into the entry via <b>Edit</b> (diff shown, dev-gated), per framework:
110
+ <table>
111
+ <tr><th>Framework</th><th>Entry</th><th>Gate</th></tr>
112
+ <tr><td>Next.js (App)</td><td><code>app/layout.tsx</code> (client)</td><td><code>process.env.NODE_ENV === "development"</code></td></tr>
113
+ <tr><td>Next.js (Pages)</td><td><code>pages/_app.tsx</code></td><td>same</td></tr>
114
+ <tr><td>Vite</td><td><code>src/main.tsx</code></td><td><code>import.meta.env.DEV</code></td></tr>
115
+ <tr><td>React Router v7</td><td><code>app/root.tsx</code></td><td><code>import.meta.env.DEV</code></td></tr>
116
+ </table>
117
+ </li>
118
+ <li>Restart Claude Code (loads the MCP) → run dev server → <code>npx agentation-mcp doctor</code>.</li>
119
+ </ol>
120
+ <h3>Session (<code>/kit-annotate watch</code> / <code>review</code>)</h3>
121
+ <p>The loop, also encoded in the rule: pull (<code>agentation_get_all_pending</code> or hands-free <code>agentation_watch_annotations</code>) → <code>agentation_acknowledge</code> → locate (source pointer or grep selector/component) → fix → <code>agentation_resolve</code> with a summary (or <code>agentation_dismiss</code> / <code>agentation_reply</code>). On close, optional MemPalace summary to the project wing.</p>
122
+ </section>
123
+
124
+ <!-- 4 -->
125
+ <section id="config">
126
+ <h2><span class="num">4</span>Config &amp; data flow</h2>
127
+ <p>The choice persists in <code>.claude/kit.config.json</code> under a <b>named-backend</b> block (so a future kit-owned backend slots in without a schema break):</p>
128
+ <pre><code>"annotate": {
129
+ "enabled": true,
130
+ "backend": "agentation", // ← named, swappable
131
+ "framework": "next",
132
+ "reactVersion": "19.2.0",
133
+ "entryFile": "app/layout.tsx",
134
+ "package": "agentation",
135
+ "mcp": { "name": "agentation", "server": "agentation-mcp", "httpPort": 4747 }
136
+ }</code></pre>
137
+ <pre><code>browser toolbar ──POST :4747──▶ agentation-mcp (SQLite) ──MCP stdio──▶ Claude Code
138
+
139
+ .claude/rules/react-annotate.md ┘ (teaches the loop)</code></pre>
140
+ </section>
141
+
142
+ <!-- 5 -->
143
+ <section id="phases">
144
+ <h2><span class="num">5</span>Phases</h2>
145
+ <div class="phase done"><div class="top"><span class="pn">Phase 1</span><span class="pt">Scaffolder + Agentation default<span class="badge b-done">done</span></span><span class="goal">Working loop, zero capture code owned.</span></div>
146
+ <div class="mid"><ul><li>Detection, setup engine, skill, rule, config, version bump, changelog — all shipped in 0.5.0.</li></ul></div></div>
147
+ <div class="phase"><div class="top"><span class="pn">Phase 2</span><span class="pt">Verification pass<span class="badge b-next">next</span></span><span class="goal">Prove it on the real apps.</span></div>
148
+ <div class="mid"><ul>
149
+ <li>Run <code>/kit-annotate setup</code> on your React 19 Vite, Next, and React Router apps at <code>localhost:4000</code>.</li>
150
+ <li>Confirm: the toolbar appears in dev, annotations reach Claude via MCP, and the gated <code>&lt;Agentation /&gt;</code> tree-shakes out of the production build.</li>
151
+ <li>Validate the one open question: is component-tree + source-path + grep enough day-to-day, or do you actually want live prop/state values?</li>
152
+ </ul></div></div>
153
+ <div class="phase"><div class="top"><span class="pn">Phase 3</span><span class="pt">Kit-owned backend<span class="badge b-later">only if needed</span></span><span class="goal">Fill the reserved seam — same UX.</span></div>
154
+ <div class="mid"><ul><li>Only if Phase 2 confirms a real need: a dev-only Provider + sanitized <code>safeSnapshot</code> (props/state) behind the same <code>/kit-annotate</code> contract, set <code>backend: "kann"</code>.</li></ul></div></div>
155
+ </section>
156
+
157
+ <!-- 6 -->
158
+ <section id="roadmap">
159
+ <h2><span class="num">6</span>Roadmap: upgrades &amp; multi-project <span class="badge b-next">in design</span></h2>
160
+ <p>A separate workstream you raised, now folded into the kit's direction (designed next, implemented after scoping):</p>
161
+ <table>
162
+ <tr><th>Requirement</th><th>Sketch</th></tr>
163
+ <tr><td>Surface the changelog on update</td><td>After <code>claude plugin update</code>, detect the version delta and show new <code>CHANGELOG.md</code> entries + a "here's what's new and how to try it" walkthrough.</td></tr>
164
+ <tr><td>Enforce re-scaffold / explore</td><td>Nudge each project to re-run <code>/kit-init</code> (preview-first) to surface new features/config that the older scaffold lacks.</td></tr>
165
+ <tr><td>Honor custom configs on re-scaffold</td><td>Merge, don't clobber: preserve the project's own <code>.claude/</code> edits + <code>kit.config.json</code> values; only add/patch what's new; always diff-preview.</td></tr>
166
+ <tr><td>Multi-project organization</td><td>When the kit lives in a folder of many projects, detect loose markdown/folders and suggest a clean layout (one <code>.claude/</code> per project; shared docs up top).</td></tr>
167
+ <tr><td>Per-folder preferences</td><td>A <code>.claudekit/</code> folder governs kit preferences for its subtree — precedence + inheritance rules to be defined.</td></tr>
168
+ <tr><td>Secure git storage</td><td>Guidance for committing the kit safely (what to commit vs <code>.gitignore</code>, secrets posture), GitHub recommended.</td></tr>
169
+ </table>
170
+ <p>This is being designed now; see the decisions below.</p>
171
+ </section>
172
+
173
+ <!-- 7 -->
174
+ <section id="decisions">
175
+ <h2><span class="num">7</span>Open decisions</h2>
176
+ <ol>
177
+ <li><b>Phase 2 verification</b> on your three real apps — and the props/state need: confirm whether to keep Phase 3 parked.</li>
178
+ <li><b>Agentation version pin</b> — pin a range in <code>annotate-setup.sh</code> to reduce "changes under you" risk vs. always-latest.</li>
179
+ <li><b>The upgrade/multi-project roadmap (§6)</b> — scope + the per-folder <code>.claudekit</code> precedence model. (Being addressed in the next round.)</li>
180
+ </ol>
181
+ <div class="foot">kit-annotate · implementation plan · companion: <a href="01-explainer.html">01-explainer.html</a> · changelog: <code>CHANGELOG.md</code></div>
182
+ </section>
183
+ </main>
184
+ </div>
185
+ <a href="#" class="toplink" id="toplink">↑ Top</a>
186
+ <script>
187
+ const links=[...document.querySelectorAll('nav a')];
188
+ const map=new Map(links.map(a=>[a.getAttribute('href').slice(1),a]));
189
+ const obs=new IntersectionObserver(es=>{es.forEach(e=>{if(e.isIntersecting){links.forEach(l=>l.classList.remove('active'));const a=map.get(e.target.id);if(a)a.classList.add('active');}});},{rootMargin:'-10% 0px -80% 0px'});
190
+ document.querySelectorAll('section[id]').forEach(s=>obs.observe(s));
191
+ const t=document.getElementById('toplink');
192
+ addEventListener('scroll',()=>{t.classList.toggle('show',scrollY>700)});
193
+ t.addEventListener('click',e=>{e.preventDefault();scrollTo({top:0,behavior:'smooth'})});
194
+ </script>
195
+ </body>
196
+ </html>
@@ -0,0 +1,5 @@
1
+ {"version":3,"term":{"cols":80,"rows":24},"timestamp":1780564473,"command":"bash /tmp/onb-cmd.sh","env":{"SHELL":"/bin/zsh"}}
2
+ [16.254, "o", "Here's the raw output of the command:\r\n\r\n```\r\n→ DRY RUN — nothing will be written. Plan for /var/folders/9m/bx78tc212xd_08yq3phm8sjr0000gn/T/tmp.BDfMtWiTgB:\r\n\r\n Profile : automation\r\n Project : Acme Bot (tmp-bdfmtwitgb)\r\n Repo : acme/bot\r\n Board : off (gh issues only)\r\n Memory : true Plans: markdown Lang: English\r\n Spec Kit: false Pre-push gate: false\r\n\r\n Would write:\r\n CLAUDE.md\r\n .claude/kit.config.json\r\n .claude/settings.local.json\r\n .claude/rules/communication-style.md\r\n .claude/rules/task-management.md\r\n .claude/rules/plan-output-format.md\r\n .claude/rules/mempalace.md\r\n .claude/agents/pm/AGENT.md\r\n .claude/agents/n8n/AGENT.md\r\n .claude/agents/generalist/AGENT.md\r\n .claude/skills/task-new/SKILL.md\r\n .claude/skills/task-start/SKILL.md\r\n .claude/skills/task-pr/SKILL.md\r\n .claude/skills/task-pr-merge/SKILL.md\r\n .claude/skills/task-sync/SKILL.md\r\n .claude/skills/task-close/SKILL.md\r\n .claude/skills/morning-briefing/SKILL.md\r\n .claude"]
3
+ [0.000, "o", "/skills/karpathy-guidelines/SKILL.md\r\n scripts/ (kit-config.sh, gh-project.sh, setup-labels.sh, setup-milestones.sh, capture-project-ids.sh, task-sync.sh)\r\n .claude/hooks/mempal_session_start.sh + mempal_save.sh + mempal_precompact.sh (SessionStart / Stop / PreCompact)\r\n\r\n Onboarding would offer (opt-in): gh auth · MemPalace (mempalace-mcp) · gws (if you use Google Workspace)\r\n\r\nRe-run without --dry-run to write these files.\r\n```\r\n\u001b[?1006l\u001b[?1003l\u001b[?1002l\u001b[?1000l\u001b(B\u000f\u001b[>4m\u001b[<u\u001b[?1004l\u001b[?2031l\u001b[?2004l\u001b[?25h\u001b7\u001b[r\u001b8\u001b]0;\u0007"]
4
+ [0.219, "o", "\u001b[?25h"]
5
+ [0.007, "x", "0"]
@@ -0,0 +1,43 @@
1
+ # Demo media
2
+
3
+ [← Usage](../usage.md) · [README](../../README.md)
4
+
5
+ Terminal demos for the docs.
6
+
7
+ | File | Shows | How it's made |
8
+ | ---- | ----- | ------------- |
9
+ | `kit-onboarding.gif` | Onboarding **through the `claude` CLI** (`claude -p`) running the kit-init scaffold preview | **Real `claude` session** captured headless with asciinema, then **re-timed** for a watchable GIF (claude's ~16 s think-time → a short beat; burst output → streamed). Content is genuine, not faked. |
10
+ | `kit-init.gif` | the interactive `claude > /kit-init` onboarding with test values | **Illustrative re-creation** — the prompt + answer chips are mocked (plugin slash commands aren't available in `claude -p`, and the interactive TUI can't be keystroke-driven headlessly); the scaffold output is real `init.sh`. |
11
+ | `kit-dry-run.gif` | `init.sh --dry-run` printing the scaffold plan | Synthesized from the deterministic `--dry-run` output (it writes nothing). |
12
+ | `.onboarding-capture.cast` | the raw asciinema capture behind `kit-onboarding.gif` | source for re-rendering without another `claude` call |
13
+
14
+ > The `/kit-customize` and `/kit-contribute` slash commands are skills Claude runs **inside Claude
15
+ > Code**, not terminal programs, so they're documented in prose — not faked as terminal GIFs.
16
+
17
+ ## Regenerate
18
+
19
+ ```bash
20
+ # Onboarding GIF — re-render from the saved capture (no claude call):
21
+ ONB_CAST=docs/media/.onboarding-capture.cast bash docs/media/build-onboarding.sh
22
+ # …or capture a fresh real claude session (needs claude auth + an API call):
23
+ bash docs/media/build-onboarding.sh
24
+
25
+ # Deterministic CLI demos (dry-run, scaffold, help):
26
+ bash docs/media/build-demo.sh
27
+
28
+ # Illustrative interactive /kit-init clip (mocked chips + real scaffold output):
29
+ bash docs/media/build-kit-init.sh
30
+ ```
31
+
32
+ To capture the **genuine interactive `/kit-init`** (which can't be done headlessly), record it in a
33
+ real terminal: `asciinema rec demo.cast`, run `claude`, type `/kit-init`, answer the chips, exit, then
34
+ `agg demo.cast demo.gif`.
35
+
36
+ Dependencies: `agg`, `jq`, `awk`, `bash` (+ `asciinema` and an authenticated `claude` to re-capture).
37
+ On macOS: `brew install agg jq asciinema`.
38
+
39
+ ## Notes
40
+
41
+ - Use **CRLF** (`\r\n`) between output lines so the terminal returns to column 0 (LF-only staircases).
42
+ - Keep GIFs under ~1 MB so they embed well on GitHub.
43
+ - `build-onboarding.sh` records a real `claude` run and only re-times it; it never fabricates output.
@@ -0,0 +1,63 @@
1
+ #!/usr/bin/env bash
2
+ # Build deterministic terminal demos for claude-kit and render them to GIFs.
3
+ #
4
+ # Why generated (not live-recorded): the demo content is fully deterministic
5
+ # (it comes from `init.sh`, which is a pure function of its flags — and `--dry-run`
6
+ # writes nothing), so we synthesize an asciicast v2 file with a typing effect and
7
+ # render it with `agg`. No interactive TTY required, reproducible in CI.
8
+ #
9
+ # NOTE: only the `init.sh` engine is a real shell command. The /kit-customize and
10
+ # /kit-contribute slash commands are skills Claude runs *inside Claude Code*, not
11
+ # terminal programs, so they are documented in prose — not faked as terminal GIFs.
12
+ #
13
+ # Requires: agg (https://github.com/asciinema/agg), jq, awk, bash.
14
+ # Usage: bash docs/media/build-demo.sh
15
+ set -euo pipefail
16
+
17
+ ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
18
+ MEDIA="$ROOT/docs/media"
19
+ COLS=98; ROWS=34
20
+
21
+ esc() { printf '%s' "$1" | jq -Rs .; } # JSON-encode a string
22
+ bump() { awk "BEGIN{printf \"%.2f\", $1 + $2}"; } # add seconds
23
+
24
+ # make_gif <name> <shown-command> <output-text>
25
+ # Renders a typed-command-then-output clip to docs/media/<name>.{cast,gif}.
26
+ make_gif() {
27
+ local name="$1" shown="$2" out="$3"
28
+ local cast="$MEDIA/$name.cast" gif="$MEDIA/$name.gif"
29
+ local t i
30
+ {
31
+ printf '{"version":2,"width":%d,"height":%d,"env":{"TERM":"xterm-256color","SHELL":"/bin/zsh"}}\n' "$COLS" "$ROWS"
32
+ printf '[0.00, "o", %s]\n' "$(esc $'\033[1;36m➜ claude-kit\033[0m ')" # prompt at t=0
33
+ t=0.40
34
+ for ((i=0; i<${#shown}; i++)); do printf '[%s, "o", %s]\n' "$t" "$(esc "${shown:$i:1}")"; t="$(bump "$t" 0.04)"; done
35
+ printf '[%s, "o", %s]\n' "$t" "$(esc $'\r\n')"; t="$(bump "$t" 0.45)"
36
+ while IFS= read -r line; do printf '[%s, "o", %s]\n' "$t" "$(esc "$line"$'\r\n')"; t="$(bump "$t" 0.05)"; done <<< "$out"
37
+ t="$(bump "$t" 0.50)"; printf '[%s, "o", %s]\n' "$t" "$(esc $'\033[1;36m➜ claude-kit\033[0m ')"
38
+ t="$(bump "$t" 1.80)"; printf '[%s, "o", " "]\n' "$t"
39
+ } > "$cast"
40
+ agg --cols "$COLS" --rows "$ROWS" --font-size 20 --theme asciinema "$cast" "$gif"
41
+ echo " ✓ $name.gif"
42
+ }
43
+
44
+ echo "→ Building demos into $MEDIA"
45
+
46
+ # 1. Preview a scaffold without writing anything.
47
+ make_gif "kit-dry-run" \
48
+ 'init.sh --profile automation --name "Acme Bot" --memory on --dry-run' \
49
+ "$(bash "$ROOT/scripts/init.sh" --profile automation --target "$(mktemp -d)/acme-bot" \
50
+ --name "Acme Bot" --repo acme/bot --owner-login acme --memory on --dry-run 2>&1)"
51
+
52
+ # 2. Scaffold a real project from the `software` profile.
53
+ make_gif "kit-init" \
54
+ 'init.sh --profile software --name "Acme" --repo acme/acme' \
55
+ "$(bash "$ROOT/scripts/init.sh" --profile software --target "$(mktemp -d)/acme" \
56
+ --name "Acme" --repo acme/acme --owner-login acme 2>&1)"
57
+
58
+ # 3. Show every flag.
59
+ make_gif "kit-help" \
60
+ 'init.sh --help' \
61
+ "$(bash "$ROOT/scripts/init.sh" --help 2>&1)"
62
+
63
+ echo "✓ done"
@@ -0,0 +1,51 @@
1
+ #!/usr/bin/env bash
2
+ # Build an ILLUSTRATIVE GIF of the interactive `claude > /kit-init` onboarding.
3
+ #
4
+ # IMPORTANT — this clip is a stylized RE-CREATION, not a live capture:
5
+ # - The real `/kit-init` is an interactive Claude Code slash command whose AskUserQuestion
6
+ # chips can't be captured headlessly (plugin slash commands aren't available in `claude -p`,
7
+ # and the interactive TUI can't be keystroke-driven without a TTY).
8
+ # - So the prompt + the answered "chips" are mocked, while the SCAFFOLD OUTPUT below them is
9
+ # REAL — produced by running `init.sh` with the same test values.
10
+ # To capture the genuine interactive flow, record it yourself in a real terminal (see media README).
11
+ #
12
+ # Requires: agg, jq, awk, bash. Usage: bash docs/media/build-kit-init.sh
13
+ set -euo pipefail
14
+
15
+ ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
16
+ MEDIA="$ROOT/docs/media"; COLS=92; ROWS=30
17
+ CAST="$MEDIA/kit-init.cast"; GIF="$MEDIA/kit-init.gif"
18
+
19
+ # Real scaffold output for the test values (minimal profile, memory off) into a throwaway dir.
20
+ OUT="$(bash "$ROOT/scripts/init.sh" --profile minimal --target "$(mktemp -d)/demo-project" \
21
+ --name "Demo Project" --repo acme/demo --owner-login acme 2>&1)"
22
+
23
+ esc() { printf '%s' "$1" | jq -Rs .; }
24
+ bump() { awk "BEGIN{printf \"%.2f\", $1 + $2}"; }
25
+ emit() { printf '[%s, "o", %s]\n' "$1" "$(esc "$2")"; }
26
+
27
+ {
28
+ printf '{"version":2,"width":%d,"height":%d,"env":{"TERM":"xterm-256color","SHELL":"/bin/zsh"}}\n' "$COLS" "$ROWS"
29
+ # shell prompt + `claude`
30
+ emit 0.00 $'\033[1;36m➜ demo-project\033[0m '
31
+ t=0.40; for c in c l a u d e; do emit "$t" "$c"; t="$(bump "$t" 0.05)"; done
32
+ emit "$t" $'\r\n'; t="$(bump "$t" 0.6)"
33
+ # Claude Code prompt + typed slash command
34
+ emit "$t" $'\033[2m Claude Code \033[0m\r\n'; t="$(bump "$t" 0.4)"
35
+ emit "$t" $'\033[1;35m❯\033[0m '; t="$(bump "$t" 0.2)"
36
+ s='/kit-init'; for ((i=0;i<${#s};i++)); do emit "$t" "${s:$i:1}"; t="$(bump "$t" 0.06)"; done
37
+ emit "$t" $'\r\n\r\n'; t="$(bump "$t" 0.5)"
38
+ # mocked answered chips (test values)
39
+ emit "$t" $'\033[2m answer the prompts (test values):\033[0m\r\n'; t="$(bump "$t" 0.35)"
40
+ for row in 'Profile minimal' 'GitHub repo acme/demo' 'Projects board off' 'MemPalace off' 'Language English'; do
41
+ emit "$t" $' \033[32m✔\033[0m '"$row"$'\r\n'; t="$(bump "$t" 0.45)"
42
+ done
43
+ emit "$t" $'\r\n'; t="$(bump "$t" 0.4)"
44
+ # REAL scaffold output
45
+ while IFS= read -r line; do emit "$t" "$line"$'\r\n'; t="$(bump "$t" 0.06)"; done <<< "$OUT"
46
+ t="$(bump "$t" 0.5)"; emit "$t" $'\033[1;35m❯\033[0m '
47
+ t="$(bump "$t" 1.8)"; emit "$t" ' '
48
+ } > "$CAST"
49
+
50
+ agg --cols "$COLS" --rows "$ROWS" --font-size 19 --theme asciinema "$CAST" "$GIF"
51
+ echo "✓ wrote $GIF"
@@ -0,0 +1,51 @@
1
+ #!/usr/bin/env bash
2
+ # Build the "onboarding via claude" demo GIF from a REAL `claude` run.
3
+ #
4
+ # What it shows: invoking claude-kit's scaffold preview *through the `claude` CLI*
5
+ # (`claude -p`), then claude's real output (the --dry-run plan). The capture is a
6
+ # genuine claude session recorded headless with asciinema; we only RE-TIME it for a
7
+ # watchable GIF (claude's ~16s think time is replaced with a short beat, and the
8
+ # burst output is streamed line by line). Content is not faked.
9
+ #
10
+ # Re-capture + rebuild: bash docs/media/build-onboarding.sh
11
+ # Rebuild from a saved capture only: ONB_CAST=/path/to.cast bash docs/media/build-onboarding.sh
12
+ #
13
+ # Requires: claude (authenticated) for capture; agg + jq + awk for rendering.
14
+ set -euo pipefail
15
+
16
+ ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
17
+ MEDIA="$ROOT/docs/media"
18
+ COLS=98; ROWS=38
19
+ CAP="${ONB_CAST:-$MEDIA/.onboarding-capture.cast}"
20
+ SHOWN='claude -p '\''run init.sh --profile automation --name "Acme Bot" --memory on --dry-run and show the output'\'''
21
+
22
+ # 1. Capture a real claude run (skipped if ONB_CAST points at an existing capture).
23
+ if [[ -z "${ONB_CAST:-}" || ! -s "$CAP" ]]; then
24
+ tmp="$(mktemp -d)"
25
+ asciinema rec --overwrite -c "cd '$tmp' && claude -p 'Run exactly this shell command and show me its raw output verbatim, then stop: bash $ROOT/scripts/init.sh --profile automation --name \"Acme Bot\" --repo acme/bot --owner-login acme --memory on --dry-run' --allowedTools Bash" "$CAP"
26
+ fi
27
+
28
+ # 2. Pull claude's real text out of the capture, strip terminal-reset escapes + ``` fences.
29
+ RAW="$(jq -r 'select(type=="array" and .[1]=="o") | .[2]' "$CAP")"
30
+ CLEAN="${RAW%%$'\033'*}"
31
+ CLEAN="$(printf '%s' "$CLEAN" | tr -d '\r' | awk '!/^```$/')"
32
+
33
+ # 3. Emit a re-timed asciicast: typed command -> "working" beat -> streamed output.
34
+ esc() { printf '%s' "$1" | jq -Rs .; }
35
+ bump() { awk "BEGIN{printf \"%.2f\", $1 + $2}"; }
36
+ CAST="$MEDIA/kit-onboarding.cast"; GIF="$MEDIA/kit-onboarding.gif"
37
+ {
38
+ printf '{"version":2,"width":%d,"height":%d,"env":{"TERM":"xterm-256color","SHELL":"/bin/zsh"}}\n' "$COLS" "$ROWS"
39
+ printf '[0.00, "o", %s]\n' "$(esc $'\033[1;36m➜ claude-kit\033[0m ')"
40
+ t=0.40
41
+ for ((i=0; i<${#SHOWN}; i++)); do printf '[%s, "o", %s]\n' "$t" "$(esc "${SHOWN:$i:1}")"; t="$(bump "$t" 0.035)"; done
42
+ printf '[%s, "o", %s]\n' "$t" "$(esc $'\r\n')"; t="$(bump "$t" 0.35)"
43
+ printf '[%s, "o", %s]\n' "$t" "$(esc $'\033[90m✳ Working…\033[0m')"; t="$(bump "$t" 1.20)"
44
+ printf '[%s, "o", %s]\n' "$t" "$(esc $'\r\033[K')"; t="$(bump "$t" 0.20)"
45
+ while IFS= read -r line; do printf '[%s, "o", %s]\n' "$t" "$(esc "$line"$'\r\n')"; t="$(bump "$t" 0.05)"; done <<< "$CLEAN"
46
+ t="$(bump "$t" 0.50)"; printf '[%s, "o", %s]\n' "$t" "$(esc $'\033[1;36m➜ claude-kit\033[0m ')"
47
+ t="$(bump "$t" 1.80)"; printf '[%s, "o", " "]\n' "$t"
48
+ } > "$CAST"
49
+
50
+ agg --cols "$COLS" --rows "$ROWS" --font-size 20 --theme asciinema "$CAST" "$GIF"
51
+ echo "✓ wrote $GIF"
@@ -0,0 +1,107 @@
1
+ {"version":2,"width":98,"height":34,"env":{"TERM":"xterm-256color","SHELL":"/bin/zsh"}}
2
+ [0.00, "o", "\u001b[1;36m➜ claude-kit\u001b[0m "]
3
+ [0.40, "o", "i"]
4
+ [0.44, "o", "n"]
5
+ [0.48, "o", "i"]
6
+ [0.52, "o", "t"]
7
+ [0.56, "o", "."]
8
+ [0.60, "o", "s"]
9
+ [0.64, "o", "h"]
10
+ [0.68, "o", " "]
11
+ [0.72, "o", "-"]
12
+ [0.76, "o", "-"]
13
+ [0.80, "o", "p"]
14
+ [0.84, "o", "r"]
15
+ [0.88, "o", "o"]
16
+ [0.92, "o", "f"]
17
+ [0.96, "o", "i"]
18
+ [1.00, "o", "l"]
19
+ [1.04, "o", "e"]
20
+ [1.08, "o", " "]
21
+ [1.12, "o", "a"]
22
+ [1.16, "o", "u"]
23
+ [1.20, "o", "t"]
24
+ [1.24, "o", "o"]
25
+ [1.28, "o", "m"]
26
+ [1.32, "o", "a"]
27
+ [1.36, "o", "t"]
28
+ [1.40, "o", "i"]
29
+ [1.44, "o", "o"]
30
+ [1.48, "o", "n"]
31
+ [1.52, "o", " "]
32
+ [1.56, "o", "-"]
33
+ [1.60, "o", "-"]
34
+ [1.64, "o", "n"]
35
+ [1.68, "o", "a"]
36
+ [1.72, "o", "m"]
37
+ [1.76, "o", "e"]
38
+ [1.80, "o", " "]
39
+ [1.84, "o", "\""]
40
+ [1.88, "o", "A"]
41
+ [1.92, "o", "c"]
42
+ [1.96, "o", "m"]
43
+ [2.00, "o", "e"]
44
+ [2.04, "o", " "]
45
+ [2.08, "o", "B"]
46
+ [2.12, "o", "o"]
47
+ [2.16, "o", "t"]
48
+ [2.20, "o", "\""]
49
+ [2.24, "o", " "]
50
+ [2.28, "o", "-"]
51
+ [2.32, "o", "-"]
52
+ [2.36, "o", "m"]
53
+ [2.40, "o", "e"]
54
+ [2.44, "o", "m"]
55
+ [2.48, "o", "o"]
56
+ [2.52, "o", "r"]
57
+ [2.56, "o", "y"]
58
+ [2.60, "o", " "]
59
+ [2.64, "o", "o"]
60
+ [2.68, "o", "n"]
61
+ [2.72, "o", " "]
62
+ [2.76, "o", "-"]
63
+ [2.80, "o", "-"]
64
+ [2.84, "o", "d"]
65
+ [2.88, "o", "r"]
66
+ [2.92, "o", "y"]
67
+ [2.96, "o", "-"]
68
+ [3.00, "o", "r"]
69
+ [3.04, "o", "u"]
70
+ [3.08, "o", "n"]
71
+ [3.12, "o", "\r\n"]
72
+ [3.57, "o", "→ DRY RUN — nothing will be written. Plan for /var/folders/9m/bx78tc212xd_08yq3phm8sjr0000gn/T/tmp.tXvyefwZ23/acme-bot:\r\n"]
73
+ [3.63, "o", "\r\n"]
74
+ [3.69, "o", " Profile : automation\r\n"]
75
+ [3.75, "o", " Project : Acme Bot (acme-bot)\r\n"]
76
+ [3.81, "o", " Repo : acme/bot\r\n"]
77
+ [3.87, "o", " Board : off (gh issues only)\r\n"]
78
+ [3.93, "o", " Memory : true Plans: markdown Lang: English\r\n"]
79
+ [3.99, "o", " Spec Kit: false Pre-push gate: false\r\n"]
80
+ [4.05, "o", "\r\n"]
81
+ [4.11, "o", " Would write:\r\n"]
82
+ [4.17, "o", " CLAUDE.md\r\n"]
83
+ [4.23, "o", " .claude/kit.config.json\r\n"]
84
+ [4.29, "o", " .claude/settings.local.json\r\n"]
85
+ [4.35, "o", " .claude/rules/communication-style.md\r\n"]
86
+ [4.41, "o", " .claude/rules/task-management.md\r\n"]
87
+ [4.47, "o", " .claude/rules/plan-output-format.md\r\n"]
88
+ [4.53, "o", " .claude/rules/mempalace.md\r\n"]
89
+ [4.59, "o", " .claude/agents/pm/AGENT.md\r\n"]
90
+ [4.65, "o", " .claude/agents/n8n/AGENT.md\r\n"]
91
+ [4.71, "o", " .claude/agents/generalist/AGENT.md\r\n"]
92
+ [4.77, "o", " .claude/skills/task-new/SKILL.md\r\n"]
93
+ [4.83, "o", " .claude/skills/task-start/SKILL.md\r\n"]
94
+ [4.89, "o", " .claude/skills/task-pr/SKILL.md\r\n"]
95
+ [4.95, "o", " .claude/skills/task-pr-merge/SKILL.md\r\n"]
96
+ [5.01, "o", " .claude/skills/task-sync/SKILL.md\r\n"]
97
+ [5.07, "o", " .claude/skills/task-close/SKILL.md\r\n"]
98
+ [5.13, "o", " .claude/skills/morning-briefing/SKILL.md\r\n"]
99
+ [5.19, "o", " .claude/skills/karpathy-guidelines/SKILL.md\r\n"]
100
+ [5.25, "o", " scripts/ (kit-config.sh, gh-project.sh, setup-labels.sh, setup-milestones.sh, capture-project-ids.sh, task-sync.sh)\r\n"]
101
+ [5.31, "o", " .claude/hooks/mempal_session_start.sh + mempal_save.sh + mempal_precompact.sh (SessionStart / Stop / PreCompact)\r\n"]
102
+ [5.37, "o", "\r\n"]
103
+ [5.43, "o", " Onboarding would offer (opt-in): gh auth · MemPalace (mempalace-mcp) · gws (if you use Google Workspace)\r\n"]
104
+ [5.49, "o", "\r\n"]
105
+ [5.55, "o", "Re-run without --dry-run to write these files.\r\n"]
106
+ [6.11, "o", "\u001b[1;36m➜ claude-kit\u001b[0m "]
107
+ [7.91, "o", " "]
Binary file
@@ -0,0 +1,56 @@
1
+ {"version":2,"width":92,"height":30,"env":{"TERM":"xterm-256color","SHELL":"/bin/zsh"}}
2
+ [0.00, "o", "\u001b[1;36m➜ demo-project\u001b[0m "]
3
+ [0.40, "o", "c"]
4
+ [0.45, "o", "l"]
5
+ [0.50, "o", "a"]
6
+ [0.55, "o", "u"]
7
+ [0.60, "o", "d"]
8
+ [0.65, "o", "e"]
9
+ [0.70, "o", "\r\n"]
10
+ [1.30, "o", "\u001b[2m Claude Code \u001b[0m\r\n"]
11
+ [1.70, "o", "\u001b[1;35m❯\u001b[0m "]
12
+ [1.90, "o", "/"]
13
+ [1.96, "o", "k"]
14
+ [2.02, "o", "i"]
15
+ [2.08, "o", "t"]
16
+ [2.14, "o", "-"]
17
+ [2.20, "o", "i"]
18
+ [2.26, "o", "n"]
19
+ [2.32, "o", "i"]
20
+ [2.38, "o", "t"]
21
+ [2.44, "o", "\r\n\r\n"]
22
+ [2.94, "o", "\u001b[2m answer the prompts (test values):\u001b[0m\r\n"]
23
+ [3.29, "o", " \u001b[32m✔\u001b[0m Profile minimal\r\n"]
24
+ [3.74, "o", " \u001b[32m✔\u001b[0m GitHub repo acme/demo\r\n"]
25
+ [4.19, "o", " \u001b[32m✔\u001b[0m Projects board off\r\n"]
26
+ [4.64, "o", " \u001b[32m✔\u001b[0m MemPalace off\r\n"]
27
+ [5.09, "o", " \u001b[32m✔\u001b[0m Language English\r\n"]
28
+ [5.54, "o", "\r\n"]
29
+ [5.94, "o", "→ Scaffolding minimal profile into /var/folders/9m/bx78tc212xd_08yq3phm8sjr0000gn/T/tmp.wiqZj2XuUD/demo-project\r\n"]
30
+ [6.00, "o", " ✓ .claude/kit.config.json\r\n"]
31
+ [6.06, "o", " ✓ CLAUDE.md\r\n"]
32
+ [6.12, "o", " ✓ .claude/rules/communication-style.md\r\n"]
33
+ [6.18, "o", " ✓ .claude/rules/task-management.md\r\n"]
34
+ [6.24, "o", " ✓ .claude/agents/pm/AGENT.md\r\n"]
35
+ [6.30, "o", " ✓ .claude/agents/generalist/AGENT.md\r\n"]
36
+ [6.36, "o", " ✓ .claude/skills/task-new/SKILL.md\r\n"]
37
+ [6.42, "o", " ✓ .claude/skills/task-start/SKILL.md\r\n"]
38
+ [6.48, "o", " ✓ .claude/skills/task-sync/SKILL.md\r\n"]
39
+ [6.54, "o", " ✓ .claude/skills/task-close/SKILL.md\r\n"]
40
+ [6.60, "o", " ✓ .claude/skills/karpathy-guidelines/SKILL.md\r\n"]
41
+ [6.66, "o", " ✓ scripts/ (libs + setup + task-sync)\r\n"]
42
+ [6.72, "o", " ✓ .claude/settings.local.json\r\n"]
43
+ [6.78, "o", "\r\n"]
44
+ [6.84, "o", "✓ claude-kit scaffolded — profile: minimal\r\n"]
45
+ [6.90, "o", " Project : Demo Project (demo-project)\r\n"]
46
+ [6.96, "o", " Repo : acme/demo\r\n"]
47
+ [7.02, "o", " Board : off (gh issues only)\r\n"]
48
+ [7.08, "o", " Agents : pm generalist \r\n"]
49
+ [7.14, "o", " Memory : false Plans: none Lang: English\r\n"]
50
+ [7.20, "o", " Spec Kit: false Pre-push gate: false Stack skills self-gate by package.json\r\n"]
51
+ [7.26, "o", "\r\n"]
52
+ [7.32, "o", "Next steps:\r\n"]
53
+ [7.38, "o", " 1. Review CLAUDE.md and .claude/kit.config.json\r\n"]
54
+ [7.44, "o", " 2. ./scripts/setup-labels.sh && ./scripts/setup-milestones.sh # seed the repo\r\n"]
55
+ [8.00, "o", "\u001b[1;35m❯\u001b[0m "]
56
+ [9.80, "o", " "]
Binary file