@kennethsolomon/shipkit 3.5.0 → 3.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -244,6 +244,7 @@ Requirement changes → /sk:change → re-enter at correct step
244
244
  | `/sk:help` | Show all commands and workflow overview |
245
245
  | `/sk:status` | Show workflow and task status at a glance |
246
246
  | `/sk:dashboard` | Read-only workflow Kanban board — localhost server, multi-worktree |
247
+ | `/sk:context` | Load all context files + output session brief for fast session start |
247
248
  | `/sk:skill-creator` | Create or improve ShipKit skills |
248
249
 
249
250
  ---
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kennethsolomon/shipkit",
3
- "version": "3.5.0",
3
+ "version": "3.6.0",
4
4
  "description": "A structured workflow toolkit for Claude Code.",
5
5
  "keywords": [
6
6
  "claude",
@@ -32,6 +32,7 @@ You MUST create a task for each of these items and complete them in order:
32
32
  - Key decisions made
33
33
  - Chosen approach + rationale
34
34
  - Open questions (if any remain)
35
+ Additionally, **append** an ADR entry to `docs/decisions.md` (see "Decisions Log" section below).
35
36
  (Optionally also write a full design doc to docs/plans/YYYY-MM-DD-<topic>-design.md)
36
37
  6. **Transition to implementation** — invoke writing-plans skill to create implementation plan
37
38
 
@@ -89,13 +90,49 @@ digraph brainstorming {
89
90
 
90
91
  **Documentation:**
91
92
  - Write the findings to `tasks/findings.md` (required — captures problem, decisions, approach, rationale)
93
+ - Append an ADR entry to `docs/decisions.md` (required — see "Decisions Log" section below)
92
94
  - Optionally: Create a full design doc at `docs/plans/YYYY-MM-DD-<topic>-design.md` for complex projects
93
- - Commit the findings and any design document to git
95
+ - Commit the findings, decisions log entry, and any design document to git
94
96
 
95
97
  **Implementation:**
96
98
  - Invoke the writing-plans skill to create a detailed implementation plan
97
99
  - Do NOT invoke any other skill. writing-plans is the next step.
98
100
 
101
+ ## Decisions Log
102
+
103
+ After writing findings to `tasks/findings.md`, also **append** an Architecture Decision Record (ADR) entry to `docs/decisions.md`. This file is **cumulative and append-only** — never overwrite or remove existing entries.
104
+
105
+ ### If `docs/decisions.md` does not exist
106
+
107
+ Create it with this header before the first entry:
108
+
109
+ ```markdown
110
+ # Architecture Decision Records
111
+
112
+ A cumulative log of key design decisions made across features. Append-only — never overwrite.
113
+ ```
114
+
115
+ ### ADR Entry Format
116
+
117
+ Append this template for each brainstorm decision:
118
+
119
+ ```markdown
120
+ ## [YYYY-MM-DD] [Feature/Task Name]
121
+
122
+ **Context:** [problem being solved — 1-2 sentences]
123
+ **Decision:** [chosen approach — 1 sentence]
124
+ **Rationale:** [why this approach over alternatives]
125
+ **Consequences:** [trade-offs accepted]
126
+ **Status:** accepted
127
+ ```
128
+
129
+ ### Rules
130
+
131
+ - **Append-only** — never edit or delete existing entries in `docs/decisions.md`
132
+ - **One entry per brainstorm** — each completed brainstorm adds exactly one ADR entry
133
+ - **Use absolute dates** — always `YYYY-MM-DD`, never relative dates
134
+ - Entries accumulate across features — this is a project-level historical record
135
+
99
136
  ## Key Principles
100
137
 
101
138
  - **One question at a time** - Don't overwhelm with multiple questions
@@ -0,0 +1,117 @@
1
+ ---
2
+ name: sk:context
3
+ description: "Session initializer — loads all project context files and outputs a formatted session brief. Run this at the start of every conversation to orient the AI and yourself."
4
+ ---
5
+
6
+ # /sk:context — Session Brief + Context Loader
7
+
8
+ Load all project context files into the conversation and output a formatted session brief. Designed to be run at the **start of every session** for instant orientation.
9
+
10
+ ## What It Does
11
+
12
+ 1. **Reads** all context files (listed below) to load project state into the conversation
13
+ 2. **Outputs** a formatted SESSION BRIEF the user can read at a glance
14
+ 3. **Applies** all active lessons from `tasks/lessons.md` as standing constraints for the session
15
+
16
+ ## Hard Rules
17
+
18
+ - **Read-only.** This skill does not modify any files.
19
+ - **Graceful fallback.** Missing files are noted in the brief, not treated as errors.
20
+ - **No questions.** This skill runs silently — it does not ask the user anything.
21
+
22
+ ---
23
+
24
+ ## Files to Read (in order)
25
+
26
+ | # | File | What to Extract |
27
+ |---|------|-----------------|
28
+ | 1 | `tasks/todo.md` | Task name (from `# TODO —` heading), milestone progress, count of `- [x]` (done) vs `- [ ]` (pending) checkboxes |
29
+ | 2 | `tasks/workflow-status.md` | Current step (row with `>> next <<`), step name, command to run |
30
+ | 3 | `tasks/progress.md` | Last 5 entries only (most recent work). If file is large, read only the last 50 lines. |
31
+ | 4 | `tasks/findings.md` | Current decisions, chosen approach, open questions |
32
+ | 5 | `tasks/lessons.md` | All active lessons — read in full, apply as constraints for this session |
33
+ | 6 | `docs/decisions.md` | If exists: last 3 ADR entries. If missing: note "no decisions log yet" |
34
+ | 7 | `docs/vision.md` | If exists: product name + value proposition. If missing: note "no vision.md found" |
35
+
36
+ ### Reading Strategy
37
+
38
+ - Read files 1-5 first (these are the core context).
39
+ - Files 6-7 are optional — check if they exist before reading.
40
+ - For `tasks/progress.md`: only read the last 50 lines to avoid loading a huge file.
41
+ - If `tasks/todo.md` is missing: the project has no active task.
42
+ - If `tasks/workflow-status.md` is missing: the workflow hasn't started.
43
+
44
+ ---
45
+
46
+ ## Output Format
47
+
48
+ After reading all files, output this session brief:
49
+
50
+ ```
51
+ ╔══════════════════════════════════════════╗
52
+ ║ SESSION BRIEF ║
53
+ ╚══════════════════════════════════════════╝
54
+ Branch: [current git branch]
55
+ Task: [task name from todo.md, or "No active task"]
56
+ Step: [step #] [step name] → run `/sk:[command]`
57
+ Last done: [last progress.md entry summary, 1 line]
58
+ Pending: [N] checkboxes remaining in todo.md
59
+ Lessons: [count] active — [most critical 1-liner from lessons.md]
60
+ Open Qs: [open questions from findings.md, or "none"]
61
+ Product: [value prop from vision.md, or "no vision.md found"]
62
+ ════════════════════════════════════════════
63
+ ```
64
+
65
+ ### Field Rules
66
+
67
+ - **Branch:** Run `git branch --show-current` to get the current branch name.
68
+ - **Task:** Extract from the first `# TODO —` line in `tasks/todo.md`. If the file doesn't exist or all checkboxes are done, show "No active task — ready to start fresh".
69
+ - **Step:** Find the row containing `>> next <<` in `tasks/workflow-status.md`. Extract step number, name, and command. If no `>> next <<` found, show "Workflow complete" or "Not started".
70
+ - **Last done:** The most recent entry from `tasks/progress.md`. Summarize in one line.
71
+ - **Pending:** Count `- [ ]` lines in `tasks/todo.md`. Stop counting at the first `## Verification`, `## Acceptance Criteria`, or `## Risks` heading (these are meta-sections, not tasks).
72
+ - **Lessons:** Count `### [` headings in `tasks/lessons.md` (each lesson starts with `### [YYYY-MM-DD]`). Show the count + the **Prevention:** line from the most recent lesson.
73
+ - **Open Qs:** Check for an "## Open Questions" section in `tasks/findings.md`. List them or say "none".
74
+ - **Product:** From `docs/vision.md`, extract the value proposition. If file doesn't exist, say "no vision.md found".
75
+
76
+ ---
77
+
78
+ ## After the Brief
79
+
80
+ After outputting the session brief:
81
+
82
+ 1. **State the active lessons** that apply as constraints. List each prevention rule as a bullet.
83
+ 2. **State what's next** — tell the user the next step and the command to run.
84
+ 3. If the user has a specific request, proceed with it (the context is now loaded).
85
+
86
+ ---
87
+
88
+ ## Edge Cases
89
+
90
+ | Scenario | Behavior |
91
+ |----------|----------|
92
+ | No `tasks/todo.md` | Show "No active task — ready to start fresh" |
93
+ | No `tasks/workflow-status.md` | Show "Workflow not started" for Step field |
94
+ | No `tasks/progress.md` | Show "No progress logged yet" for Last done |
95
+ | No `tasks/findings.md` | Show "none" for Open Qs |
96
+ | No `tasks/lessons.md` | Show "0 active" for Lessons |
97
+ | No `docs/decisions.md` | Show "no decisions log yet" — do not error |
98
+ | No `docs/vision.md` | Show "no vision.md found" — do not error |
99
+ | All checkboxes done in todo.md | Show "Task complete — 0 pending" |
100
+
101
+ ---
102
+
103
+ ## Model Routing
104
+
105
+ Read `.shipkit/config.json` from the project root if it exists.
106
+
107
+ - If `model_overrides["sk:context"]` is set, use that model — it takes precedence.
108
+ - Otherwise use the `profile` field. Default: `balanced`.
109
+
110
+ | Profile | Model |
111
+ |---------|-------|
112
+ | `full-sail` | sonnet |
113
+ | `quality` | sonnet |
114
+ | `balanced` | sonnet |
115
+ | `budget` | haiku |
116
+
117
+ > This skill is lightweight (read-only file operations + brief output). Sonnet is sufficient for all quality profiles. Haiku for budget.
@@ -215,7 +215,84 @@ Maximum 3 loop iterations. If issues persist after 3 loops, present remaining is
215
215
 
216
216
  ---
217
217
 
218
- ## Step 9 — Present the Output
218
+ ## Step 9 — Generate Project Context Docs
219
+
220
+ Generate 3 lightweight documentation files in `docs/` from information already gathered in Steps 1-2. No new questions — use the product name, value prop, audience, features, and tech stack already captured.
221
+
222
+ ### Files to Generate
223
+
224
+ **`docs/vision.md`**
225
+ ```markdown
226
+ # [Product Name]
227
+
228
+ ## Value Proposition
229
+ [One-line value prop from Step 1]
230
+
231
+ ## Target Audience
232
+ [Target audience from Step 1]
233
+
234
+ ## Key Features
235
+ [Bullet list of 3-5 features from Step 1]
236
+
237
+ ## North Star Metric
238
+ [Suggest one metric that measures core value — e.g., "weekly active waitlist signups" or "daily feature usage"]
239
+ ```
240
+
241
+ **`docs/prd.md`**
242
+ ```markdown
243
+ # PRD — [Product Name]
244
+
245
+ ## Overview
246
+ [1-2 sentence product description]
247
+
248
+ ## User Stories
249
+ [For each key feature from Step 1, write a user story: "As a [audience], I want to [feature] so that [benefit]"]
250
+
251
+ ## Feature Acceptance Criteria
252
+ [For each feature, list 2-3 concrete acceptance criteria]
253
+
254
+ ## Out of Scope (MVP)
255
+ - Real authentication
256
+ - Real database
257
+ - Third-party integrations
258
+ - Deployment
259
+ ```
260
+
261
+ **`docs/tech-design.md`**
262
+ ```markdown
263
+ # Tech Design — [Product Name]
264
+
265
+ ## Stack
266
+ - **Framework:** [chosen stack from Step 2]
267
+ - **Styling:** Tailwind CSS
268
+ - **Fonts:** [chosen fonts]
269
+
270
+ ## Project Structure
271
+ [List the key directories and files generated during scaffolding]
272
+
273
+ ## Component Map
274
+ ### Landing Page
275
+ [List all 9 sections and their components]
276
+
277
+ ### App Pages
278
+ [List each page and its key components]
279
+
280
+ ## Data Model
281
+ ### Waitlist
282
+ - email: string (validated)
283
+ - timestamp: ISO 8601 string
284
+
285
+ ### Fake Data Entities
286
+ [List the fake data structures used in the app]
287
+ ```
288
+
289
+ After generating the docs, output:
290
+ > **Context docs generated:** `docs/vision.md`, `docs/prd.md`, `docs/tech-design.md`
291
+ > These persist context for future sessions. Run `/sk:context` to load `docs/vision.md` into the session brief, or read the others directly.
292
+
293
+ ---
294
+
295
+ ## Step 10 — Present the Output
219
296
 
220
297
  Summarize what was generated:
221
298
 
@@ -363,4 +363,5 @@ Create entries in: `[ARCH_CHANGELOG_DIR]`
363
363
  | `/sk:features` | Sync feature specs with shipped implementation |
364
364
  | `/sk:release` | Version bump + changelog + tag |
365
365
  | `/sk:status` | Show workflow + task status |
366
+ | `/sk:context` | Load all context files + output session brief for fast session start |
366
367
  | `/sk:setup-optimizer` | Diagnose + update workflow + enrich CLAUDE.md |