@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,58 @@
1
+ # Plan Output Format
2
+
3
+ ## Hard rule
4
+
5
+ **When any agent is asked to produce a "plan", the deliverable is a file in `{{PLANS_DIR}}`** (format: `{{PLANS_FORMAT}}`).
6
+
7
+ Applies to: implementation plans, architecture plans, design briefs, roadmaps, milestone
8
+ breakdowns, audit reports, technical specs — anything labeled "plan" or "report".
9
+
10
+ ## File convention
11
+
12
+ - Filename: `{{PROJECT_SLUG}}-<role>-<topic>.md` (or `.mdx` if your project renders MDX)
13
+ - Lives in `{{PLANS_DIR}}`
14
+ - Starts with YAML frontmatter:
15
+
16
+ ```yaml
17
+ ---
18
+ title: '{{PROJECT_NAME}} — <description>'
19
+ role: PM | Designer | Tech Lead | DevOps | Backend | Frontend | QA | Security | Research
20
+ date: YYYY-MM-DD
21
+ version: '1.0'
22
+ status: Draft | In Review | Active | Complete
23
+ subtitle: 'One-sentence description'
24
+ issue: 12 # GitHub issue number (optional)
25
+ tags: [tag1, tag2]
26
+ ---
27
+ ```
28
+
29
+ ## Deliverables section (required)
30
+
31
+ Every plan must include a `## Deliverables` table listing the PRs that, when all merged, complete it:
32
+
33
+ ```md
34
+ ## Deliverables
35
+
36
+ | PR | Description | Status |
37
+ | --- | ------------------ | ------- |
38
+ | #28 | Scaffold feature X | ⬜ Open |
39
+ | #29 | UI for feature X | ⬜ Open |
40
+ ```
41
+
42
+ This is the completion contract. When all PRs are merged → the plan flips `status:` to
43
+ `Complete` and **stays visible** in `{{PLANS_DIR}}` — there is no archive folder.
44
+
45
+ ## Lifecycle
46
+
47
+ ```
48
+ Draft → Active → Complete (via the status: frontmatter field — file never moves)
49
+ ```
50
+
51
+ `/kit-task-close` flips the status when closing the parent issue, once every Deliverables PR
52
+ is merged.
53
+
54
+ ## Before writing a plan
55
+
56
+ 1. Check `{{PLANS_DIR}}` for an existing plan on the same topic
57
+ 2. Read project knowledge docs for background
58
+ 3. Use the frontmatter + Deliverables skeleton above
@@ -0,0 +1,69 @@
1
+ # React UI Annotation — Agentation loop ({{PROJECT_NAME}})
2
+
3
+ > Active because this project ran `/kit-annotate`. It wires the **Agentation** toolbar — an in-app,
4
+ > dev-only React component — to Claude via the `agentation` MCP server. Agentation is third-party
5
+ > (PolyForm Shield 1.0.0, source-available), installed as this project's own dev dependency; the kit
6
+ > vendors none of its code. To remove: delete this file, run `claude mcp remove agentation`, and drop
7
+ > the `<Agentation />` line from the app entry.
8
+
9
+ ## What it gives you
10
+
11
+ Click any element in the **running dev app** (toolbar, bottom-right), leave a note with intent +
12
+ severity, and Claude pulls a structured record — CSS selector, position, nearby text, the **React
13
+ component tree**, and a **source file path** — then jumps to the code and fixes it.
14
+
15
+ ## Honest limits — state these, don't over-promise
16
+
17
+ - **Dev-only.** The `<Agentation />` toolbar is gated behind a dev check and stripped from production
18
+ builds. Only annotate against the dev server.
19
+ - **Identity is selector + source-path + component name, NOT live prop/state values.** Agentation does
20
+ not serialize prop/state values. To pin the exact code, use the selector / source path / component
21
+ name to **grep** the repo.
22
+ - **React Server Components** render only on the server → a clicked server-rendered node degrades to a
23
+ CSS selector. Client components annotate fully.
24
+ - The MCP payload Claude receives is lighter than the toolbar's **Copy** markdown. If a needed detail
25
+ is missing, ask the user to hit **Copy** in the toolbar and paste it.
26
+
27
+ ## The session loop
28
+
29
+ **Default to a batch contract.** Open with: *"Annotate everything you want changed, then say 'done' —
30
+ I'll pull the whole batch and apply the fixes."* Let the user mark up the whole screen and hand off a
31
+ reviewed batch; don't lead with a silent live watch that picks notes up mid-thought.
32
+
33
+ When the user says "done" / "go" / "I left notes" (or runs `/kit-annotate`):
34
+
35
+ 1. **Pull** the batch — `agentation_get_all_pending`. (Only use `agentation_watch_annotations`, which
36
+ blocks silently until new notes arrive, if the user **explicitly opts into** hands-free / "watch".)
37
+ 2. For **each** annotation:
38
+ - `agentation_acknowledge` — mark it seen (flips the note's state in the toolbar).
39
+ - **Locate the code:** use the source file path if present; otherwise grep the selector / class
40
+ names / component name / nearby text.
41
+ - Make the fix, following this project's build skills and conventions.
42
+ - `agentation_resolve` with a one-line summary of the change — or `agentation_dismiss` with a reason
43
+ if it isn't actionable, or `agentation_reply` to ask a clarifying question.
44
+ 3. In hands-free mode only, call `agentation_watch_annotations` again and continue until the user stops.
45
+
46
+ **Set expectations** so the browser side isn't a black box: notes flip **acknowledged → resolved** in
47
+ the toolbar as you work; fixes land via **HMR** — *refresh to see them*; each resolved note carries a
48
+ one-line summary.
49
+
50
+ **Preflight:** the MCP server runs the toolbar's HTTP receiver on **:4747**; it starts with Claude Code
51
+ once registered. If the `agentation_*` tools are missing, restart Claude Code and verify with
52
+ `npx agentation-mcp doctor`. If `agentation_list_sessions` shows **connected but 0 sessions** while the
53
+ user is annotating, the wired `<Agentation endpoint="http://localhost:4747" />` is **missing its
54
+ `endpoint` prop** (toolbar is writing only to `localStorage`) or the tab is stale — fix the wiring /
55
+ reload before continuing.
56
+
57
+ <!-- IF:MEMORY -->
58
+ ## On session close
59
+
60
+ Before the closing summary, write a short record to MemPalace wing **`{{WING}}`** (room `problems` or
61
+ `decisions`): which annotations were resolved, the components/files touched, and anything deferred.
62
+ Keeps UI-fix history per project.
63
+ <!-- /IF:MEMORY -->
64
+
65
+ ## Scope
66
+
67
+ Wired for **Claude Code**. Other agents (Cursor, Codex, …) can read the same annotations through
68
+ Agentation's own MCP/export — that is Agentation's surface, not the kit's; the kit neither wires nor
69
+ maintains it.
@@ -0,0 +1,62 @@
1
+ # Risk-tiered review — spend human review only where it pays
2
+
3
+ **Human review time is the scarce resource; spend it on risky changes only.** Once the automated
4
+ gates are green, a `risk:low` PR has already passed everything a human reviewer would have checked —
5
+ re-reviewing it by hand is waste. Complements `branch-naming.md` (auto-merge, merge order, risk
6
+ labels); on a review-effort conflict, this rule wins.
7
+
8
+ ## The tiering
9
+
10
+ | Tier | Gate state | Review |
11
+ | --------------- | -------------------------------------------------- | ---------------------------------------------------------------------------------------- |
12
+ | **`risk:low`** | the project's gates green (build + typecheck/lint) | **auto-pass** — the pipeline caught what a human would; `pr-automerge` lands it (squash) |
13
+ | **`risk:med`** | gates green | **human review required** — a person reads the diff before merge |
14
+ | **`risk:high`** | gates green | **human review required** — read + reason about blast radius before merge |
15
+
16
+ ## Always-human (overrides the tier — never auto-pass)
17
+
18
+ These floor to human review regardless of the `risk:*` label, per existing rules:
19
+
20
+ - **CI / workflow changes** (`.github/workflows/**` and equivalents) — always `risk:high`; CI-token +
21
+ supply-chain blast radius.
22
+ - **Security-touching diffs** — auth, CSP/CORS, secrets, dependency changes (a `security/*` branch is
23
+ always `risk:high`).
24
+ - **Lockfile / dependency-graph changes** — the lockfile + package manifest (`branch-naming.md`
25
+ lockfile rule): one in flight at a time, human-reviewed.
26
+ - **`risk:*` floors to the highest concern in a mixed PR** — never bury a risky change among trivial ones.
27
+
28
+ ## The gates (what "green" means)
29
+
30
+ The gates are whatever the project runs to prove a change is sound — typically:
31
+
32
+ - **A successful build** (the deploy / build step).
33
+ - **Local `typecheck` + `lint`**, run before push.
34
+
35
+ A `risk:low` auto-pass is valid **only** when the project's gates are green. A red gate = not eligible,
36
+ no exceptions.
37
+
38
+ ## Why
39
+
40
+ - An agent-driven swarm produces more PRs than a human can hand-review; uniform review is the bottleneck.
41
+ - The pipeline (build + typecheck + lint) is a deterministic reviewer for mechanical correctness — let
42
+ it own the low-risk tier. Reserve human judgment for the changes where judgment is the actual value:
43
+ design decisions, data/graph shape, security, blast radius.
44
+ - This is the merge-side counterpart to fanning work out across parallel agents — fan-out the work in,
45
+ tier the review out.
46
+
47
+ ## Enforcement
48
+
49
+ - `pr-automerge` already encodes the mechanism: native squash auto-merge fires **only** on `risk:low`
50
+ PRs that aren't `blocked`/draft/`hold` (`branch-naming.md`). This rule is the **policy** that
51
+ blesses that behavior as the default, not an exception.
52
+ - Stop an auto-pass you want a human on: add the **`hold`** label or mark the PR **draft**.
53
+ - A `risk:med`/`risk:high` PR merged without a human read is a process violation — re-tier or review.
54
+
55
+ ## Scope — ad-hoc PRs, not approved-plan execution
56
+
57
+ These tiers govern **ad-hoc** PRs (a one-off change a human is about to merge). They do **not** gate
58
+ execution of an **already-approved plan**: when the captain (`kit-autopilot --plan`) drives an
59
+ approved plan, it **merges each planned wave itself** and continues — a `risk:med` change the plan
60
+ already blessed is not re-gated per-PR. The captain pings the human only on a **genuine blocker** (a
61
+ surprise always-human change not implied by the plan — see the `kit-autopilot` skill,
62
+ _Established-plan autonomy_). Don't cite these tiers to stall an approved plan.
@@ -0,0 +1,48 @@
1
+ # Smart skill-gap detection ({{PROJECT_NAME}})
2
+
3
+ Surface a missing capability **before** starting work — but only when it's genuinely non-obvious, and
4
+ without nagging. Prompt for the **special and new**; stay silent on the **routine**.
5
+
6
+ ## When to prompt (all must hold)
7
+
8
+ 1. The task plausibly needs a **specific skill** — a framework/tool workflow, a design system, a data
9
+ or automation capability — that is **not available** in this session and **not wired** to the agent
10
+ that would do the work.
11
+ 2. The need is **non-straightforward**: a special or new feature, not routine work you can already do
12
+ well with general ability plus the skills already wired.
13
+ 3. You have **not already asked** about this gap in this project (see anti-repeat).
14
+
15
+ If a capable skill is already available/wired → just use it, don't ask. If the work is routine → don't
16
+ ask. When unsure whether a gap is "obvious," lean toward **not** interrupting.
17
+
18
+ ## How to prompt (once, up front, before starting)
19
+
20
+ State the gap in one line, then offer options via `AskUserQuestion`:
21
+
22
+ - **Pick a skill** — list the relevant skills actually available (the session's skill list,
23
+ `~/.claude/skills/*`, installed plugin skills; discover with the `find-skills` skill) for the user to
24
+ wire or use.
25
+ - **Provide one** — the user points to or supplies a skill / doc / MCP server.
26
+ - **Proceed without** — continue with general ability.
27
+
28
+ Route any wiring through **`/kit-customize`** (it attaches skills/tools to agents). Batch multiple gaps
29
+ for one task into a **single** prompt at the start — never drip-feed interruptions mid-task.
30
+
31
+ ## Anti-repeat (don't nag)
32
+
33
+ Record outcomes in `.claude/kit.config.json` under `skillPrompts`:
34
+
35
+ ```json
36
+ "skillPrompts": { "asked": ["<gap-key>"], "declined": ["<gap-key>"], "wired": ["<skill-name>"] }
37
+ ```
38
+
39
+ - Before prompting, check `skillPrompts`. If the gap is already in `asked`, `declined`, or covered by
40
+ `wired`, **do not ask again** — proceed silently.
41
+ - A `gap-key` is a short, stable slug for the capability (e.g. `gsap-animation`, `stripe-billing`,
42
+ `playwright-e2e`).
43
+ - Ask **at most once per gap per project**. A declined gap stays declined unless the user reopens it.
44
+
45
+ ## Principle
46
+
47
+ One good question up front beats five mid-task interruptions. Detecting a real, non-obvious capability
48
+ gap early — and remembering the answer — is the whole point.
@@ -0,0 +1,42 @@
1
+ # Task Management
2
+
3
+ ## Source of truth
4
+
5
+ - **GitHub issues** in `{{GH_REPO}}`<!-- IF:PROJECTS_V2 --> + the Projects v2 board (`https://github.com/users/{{GH_OWNER}}/projects/{{PROJECT_NUMBER}}`)<!-- /IF:PROJECTS_V2 -->
6
+ - **Never** maintain task lists in markdown files. Use `gh issue` + the `task-*` skills so state stays in one place.
7
+ - Always re-fetch from `gh` — never trust a stale session snapshot.
8
+
9
+ ## Roles
10
+
11
+ Every issue carries a `role:` label. Active roles for this project: {{ROLES_HUMAN}}.
12
+
13
+ The role determines which agent owns the work. Spawn that agent for the actual execution.
14
+
15
+ ## Kinds
16
+
17
+ `task` · `plan` · `adr` · `scaffold` · `spike` — drives the branch prefix `<kind>/<N>-<slug>`.
18
+
19
+ ## Priorities
20
+
21
+ `p1` (now / blocking) · `p2` (next) · `p3` (later).
22
+
23
+ ## Milestones
24
+
25
+ {{MILESTONES_HUMAN}}
26
+
27
+ ## The loop
28
+
29
+ 1. `/kit-task-sync` — see the board, pick an unblocked issue
30
+ 2. `/kit-task-start <N>` — branch from main, mark In Progress
31
+ 3. Do the work (spawn the owning agent)
32
+ 4. `/kit-task-pr <N>` — commit, push, open PR
33
+ 5. `/kit-task-pr-merge` — squash-merge, back to main
34
+ 6. `/kit-task-close <N>` — close issue<!-- IF:PLANS -->, archive plan if all deliverables merged<!-- /IF:PLANS -->
35
+
36
+ ## Rules
37
+
38
+ - One PR per issue — no monster PRs. **Exception: a coupled migration/DDL chain ships as ONE PR (and ideally one issue)** — don't fragment a sequenced migration set into a PR-per-file. Split only for genuinely independent migrations or a step needing its own review gate (data backfill, RLS behavior change).
39
+ - PR title = issue title · body includes `Closes #N`
40
+ - Labels + milestone inherited from the issue
41
+ - Never file an issue without confirming title + role + priority with {{OWNER_NAME}}
42
+ - Never create new label families on the fly — fail loudly if a kind/priority is unknown
@@ -0,0 +1,27 @@
1
+ {
2
+ "permissions": {
3
+ "allow": [
4
+ "Bash(gh issue *)",
5
+ "Bash(gh pr *)",
6
+ "Bash(gh label *)",
7
+ "Bash(gh api *)",
8
+ "Bash(gh repo *)",
9
+ "Bash(gh auth status)",
10
+ "Bash(git checkout *)",
11
+ "Bash(git switch *)",
12
+ "Bash(git branch *)",
13
+ "Bash(git add *)",
14
+ "Bash(git commit *)",
15
+ "Bash(git push *)",
16
+ "Bash(git fetch *)",
17
+ "Bash(git pull *)",
18
+ "Bash(git rebase *)",
19
+ "Bash(git status)",
20
+ "Bash(git log *)",
21
+ "Bash(./scripts/task-sync.sh *)",
22
+ "Bash(./scripts/setup-labels.sh)",
23
+ "Bash(./scripts/setup-milestones.sh)",
24
+ "Bash(./scripts/capture-project-ids.sh)"
25
+ ]
26
+ }
27
+ }
@@ -0,0 +1,13 @@
1
+ # Kit-namespaced skills — these take the project's `skillPrefix` (e.g. kit-) on scaffold/upgrade.
2
+ # The kit-workflow skills only; content skills (morning-briefing, karpathy-guidelines, speckit,
3
+ # feature-build-refine, supabase-patterns) are intentionally absent and stay bare.
4
+ # One skill name per line; blank lines and #-comments ignored. See scripts/init.sh (_is_namespaced).
5
+ #
6
+ # v2 (#370 + #853): the task-* AND effort-* lifecycle skills are no longer SCAFFOLDED per-project —
7
+ # the plugin provides them directly as `kit-task-*` / `kit-effort-*` under skills/, resolved via
8
+ # ${CLAUDE_PLUGIN_ROOT}. No template ships for them, and no profile lists them, so /kit-init and
9
+ # /kit-update never (re)scaffold a bare-name duplicate (idempotency: no /kit-update resurrection).
10
+ # This file is now empty of workflow skills; it stays so the upgrade rename map
11
+ # (kit.config upgrade.renamed) and _is_namespaced keep reading cleanly for projects that previously
12
+ # scaffolded kit-task-* / kit-effort-* — their existing scaffolded copies are preserved, the
13
+ # plugin-direct skills take over.
@@ -0,0 +1,252 @@
1
+ ---
2
+ name: copywriting
3
+ description: When the user wants to write, rewrite, or improve marketing copy for any page — including homepage, landing pages, pricing pages, feature pages, about pages, or product pages. Also use when the user says "write copy for," "improve this copy," "rewrite this page," "marketing copy," "headline help," "CTA copy," "value proposition," "tagline," "subheadline," "hero section copy," "above the fold," "this copy is weak," "make this more compelling," or "help me describe my product." Use this whenever someone is working on website text that needs to persuade or convert. For email copy, see emails. For popup copy, see popups. For editing existing copy, see copy-editing.
4
+ metadata:
5
+ version: 2.0.0
6
+ ---
7
+
8
+ # Copywriting
9
+
10
+ You are an expert conversion copywriter. Your goal is to write marketing copy that is clear, compelling, and drives action.
11
+
12
+ ## Before Writing
13
+
14
+ **Check for product marketing context first:**
15
+ If `.agents/product-marketing.md` exists (or `.claude/product-marketing.md`, or the legacy `product-marketing-context.md` filename, in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task.
16
+
17
+ Gather this context (ask if not provided):
18
+
19
+ ### 1. Page Purpose
20
+ - What type of page? (homepage, landing page, pricing, feature, about)
21
+ - What is the ONE primary action you want visitors to take?
22
+
23
+ ### 2. Audience
24
+ - Who is the ideal customer?
25
+ - What problem are they trying to solve?
26
+ - What objections or hesitations do they have?
27
+ - What language do they use to describe their problem?
28
+
29
+ ### 3. Product/Offer
30
+ - What are you selling or offering?
31
+ - What makes it different from alternatives?
32
+ - What's the key transformation or outcome?
33
+ - Any proof points (numbers, testimonials, case studies)?
34
+
35
+ ### 4. Context
36
+ - Where is traffic coming from? (ads, organic, email)
37
+ - What do visitors already know before arriving?
38
+
39
+ ---
40
+
41
+ ## Copywriting Principles
42
+
43
+ ### Clarity Over Cleverness
44
+ If you have to choose between clear and creative, choose clear.
45
+
46
+ ### Benefits Over Features
47
+ Features: What it does. Benefits: What that means for the customer.
48
+
49
+ ### Specificity Over Vagueness
50
+ - Vague: "Save time on your workflow"
51
+ - Specific: "Cut your weekly reporting from 4 hours to 15 minutes"
52
+
53
+ ### Customer Language Over Company Language
54
+ Use words your customers use. Mirror voice-of-customer from reviews, interviews, support tickets.
55
+
56
+ ### One Idea Per Section
57
+ Each section should advance one argument. Build a logical flow down the page.
58
+
59
+ ---
60
+
61
+ ## Writing Style Rules
62
+
63
+ ### Core Principles
64
+
65
+ 1. **Simple over complex** — "Use" not "utilize," "help" not "facilitate"
66
+ 2. **Specific over vague** — Avoid "streamline," "optimize," "innovative"
67
+ 3. **Active over passive** — "We generate reports" not "Reports are generated"
68
+ 4. **Confident over qualified** — Remove "almost," "very," "really"
69
+ 5. **Show over tell** — Describe the outcome instead of using adverbs
70
+ 6. **Honest over sensational** — Fabricated statistics or testimonials erode trust and create legal liability
71
+
72
+ ### Quick Quality Check
73
+
74
+ - Jargon that could confuse outsiders?
75
+ - Sentences trying to do too much?
76
+ - Passive voice constructions?
77
+ - Exclamation points? (remove them)
78
+ - Marketing buzzwords without substance?
79
+
80
+ For thorough line-by-line review, use the **copy-editing** skill after your draft.
81
+
82
+ ---
83
+
84
+ ## Best Practices
85
+
86
+ ### Be Direct
87
+ Get to the point. Don't bury the value in qualifications.
88
+
89
+ ❌ Slack lets you share files instantly, from documents to images, directly in your conversations
90
+
91
+ ✅ Need to share a screenshot? Send as many documents, images, and audio files as your heart desires.
92
+
93
+ ### Use Rhetorical Questions
94
+ Questions engage readers and make them think about their own situation.
95
+ - "Hate returning stuff to Amazon?"
96
+ - "Tired of chasing approvals?"
97
+
98
+ ### Use Analogies When Helpful
99
+ Analogies make abstract concepts concrete and memorable.
100
+
101
+ ### Pepper in Humor (When Appropriate)
102
+ Puns and wit make copy memorable—but only if it fits the brand and doesn't undermine clarity.
103
+
104
+ ---
105
+
106
+ ## Page Structure Framework
107
+
108
+ ### Above the Fold
109
+
110
+ **Headline**
111
+ - Your single most important message
112
+ - Communicate core value proposition
113
+ - Specific > generic
114
+
115
+ **Example formulas:**
116
+ - "{Achieve outcome} without {pain point}"
117
+ - "The {category} for {audience}"
118
+ - "Never {unpleasant event} again"
119
+ - "{Question highlighting main pain point}"
120
+
121
+ **For comprehensive headline formulas**: See [references/copy-frameworks.md](references/copy-frameworks.md)
122
+
123
+ **For natural transition phrases**: See [references/natural-transitions.md](references/natural-transitions.md)
124
+
125
+ **Subheadline**
126
+ - Expands on headline
127
+ - Adds specificity
128
+ - 1-2 sentences max
129
+
130
+ **Primary CTA**
131
+ - Action-oriented button text
132
+ - Communicate what they get: "Start Free Trial" > "Sign Up"
133
+
134
+ ### Core Sections
135
+
136
+ | Section | Purpose |
137
+ |---------|---------|
138
+ | Social Proof | Build credibility (logos, stats, testimonials) |
139
+ | Problem/Pain | Show you understand their situation |
140
+ | Solution/Benefits | Connect to outcomes (3-5 key benefits) |
141
+ | How It Works | Reduce perceived complexity (3-4 steps) |
142
+ | Objection Handling | FAQ, comparisons, guarantees |
143
+ | Final CTA | Recap value, repeat CTA, risk reversal |
144
+
145
+ **For detailed section types and page templates**: See [references/copy-frameworks.md](references/copy-frameworks.md)
146
+
147
+ ---
148
+
149
+ ## CTA Copy Guidelines
150
+
151
+ **Weak CTAs (avoid):**
152
+ - Submit, Sign Up, Learn More, Click Here, Get Started
153
+
154
+ **Strong CTAs (use):**
155
+ - Start Free Trial
156
+ - Get [Specific Thing]
157
+ - See [Product] in Action
158
+ - Create Your First [Thing]
159
+ - Download the Guide
160
+
161
+ **Formula:** [Action Verb] + [What They Get] + [Qualifier if needed]
162
+
163
+ Examples:
164
+ - "Start My Free Trial"
165
+ - "Get the Complete Checklist"
166
+ - "See Pricing for My Team"
167
+
168
+ ---
169
+
170
+ ## Page-Specific Guidance
171
+
172
+ ### Homepage
173
+ - Serve multiple audiences without being generic
174
+ - Lead with broadest value proposition
175
+ - Provide clear paths for different visitor intents
176
+
177
+ ### Landing Page
178
+ - Single message, single CTA
179
+ - Match headline to ad/traffic source
180
+ - Complete argument on one page
181
+
182
+ ### Pricing Page
183
+ - Help visitors choose the right plan
184
+ - Address "which is right for me?" anxiety
185
+ - Make recommended plan obvious
186
+
187
+ ### Feature Page
188
+ - Connect feature → benefit → outcome
189
+ - Show use cases and examples
190
+ - Clear path to try or buy
191
+
192
+ ### About Page
193
+ - Tell the story of why you exist
194
+ - Connect mission to customer benefit
195
+ - Still include a CTA
196
+
197
+ ---
198
+
199
+ ## Voice and Tone
200
+
201
+ Before writing, establish:
202
+
203
+ **Formality level:**
204
+ - Casual/conversational
205
+ - Professional but friendly
206
+ - Formal/enterprise
207
+
208
+ **Brand personality:**
209
+ - Playful or serious?
210
+ - Bold or understated?
211
+ - Technical or accessible?
212
+
213
+ Maintain consistency, but adjust intensity:
214
+ - Headlines can be bolder
215
+ - Body copy should be clearer
216
+ - CTAs should be action-oriented
217
+
218
+ ---
219
+
220
+ ## Output Format
221
+
222
+ When writing copy, provide:
223
+
224
+ ### Page Copy
225
+ Organized by section:
226
+ - Headline, Subheadline, CTA
227
+ - Section headers and body copy
228
+ - Secondary CTAs
229
+
230
+ ### Annotations
231
+ For key elements, explain:
232
+ - Why you made this choice
233
+ - What principle it applies
234
+
235
+ ### Alternatives
236
+ For headlines and CTAs, provide 2-3 options:
237
+ - Option A: [copy] — [rationale]
238
+ - Option B: [copy] — [rationale]
239
+
240
+ ### Meta Content (if relevant)
241
+ - Page title (for SEO)
242
+ - Meta description
243
+
244
+ ---
245
+
246
+ ## Related Skills
247
+
248
+ - **copy-editing**: For polishing existing copy (use after your draft)
249
+ - **cro**: If page structure/strategy needs work, not just copy
250
+ - **emails**: For email copywriting
251
+ - **popups**: For popup and modal copy
252
+ - **ab-testing**: To test copy variations