diff --git a/ROADMAP.md b/ROADMAP.md index e2b1b37..215cb00 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -1,6 +1,6 @@ # ck: Product Roadmap -> Maintained by [claude-roadmap-skill](https://github.com/code-katz/claude-roadmap-skill). Last updated: 2026-11-05. +> Maintained by [claude-roadmap-skill](https://github.com/code-katz/claude-roadmap-skill). Last updated: 2026-11-06. --- @@ -24,16 +24,17 @@ - The stage's model (0.1.25): How we work tells a stage session to check its own model before anything else, whoever wrote its brief, and to stop and wait for go when it is on another. Until then the stop came only from the brief, and coordinators that wrote their own briefs left it out. - The drawing's link (0.1.26): How we work and Kai tell a session that every message showing or changing a drawing gives the page's link with the picture, as a clickable `file:///` link, without being asked. Until then a drawing lane could send only pictures. - The model and effort follow the job (0.1.27): a plan row's Who names a job word (design, build, edit, review, write), and the job, not the persona, sets the stage's model and effort, from one line each in `tiers.conf`: design is Opus 5.5 at high, build, review and write Opus 5.5 at medium, edit Sonnet 5.5 at medium. A row can pin any other point; Fable is pinned only after Opus at high fell short, or for security or concurrency code. Stage chips carry the model and the effort, the stage checks both, and `/ck:cost history` shows cost by model and effort. -- Main is at 0.1.27. Each release is a branch from main, a pull request into main, a tag on main, and a GitHub release. The tests run on every pull request. -- Two channels: stable (the `code-katz` marketplace) on `v0.1.19`, and ck-next (a local marketplace, used by d20mob, hireling and the ck folder) on `v0.1.27`. Rollback in a project is two commands. +- Two endings (0.1.28): How we work tells a session that every message to the User ends with what is left in the session, in order, and the words for the first step ("Say merge 95"), or with "This session can be closed." It never says "nothing is needed". Until then the template itself told sessions to say so, and d20mob and hireling sessions said it while a merge, a "log it" and a branch deletion were still waiting. +- Main is at 0.1.28. Each release is a branch from main, a pull request into main, a tag on main, and a GitHub release. The tests run on every pull request. +- Two channels: stable (the `code-katz` marketplace) on `v0.1.19`, and ck-next (a local marketplace, used by d20mob, hireling and the ck folder) on `v0.1.28`. Rollback in a project is two commands. **What's missing or fragile:** - The memory gate has not yet been tried in an interactive session. -- 0.1.20 to 0.1.27 have not been checked in a real d20mob session. d20mob, hireling and ck have no team file yet, so each gets only the eight core seats, and d20mob's plan rows owned by Reiner, Tracy, Travolta or Piper get no card until they are invited. +- 0.1.20 to 0.1.28 have not been checked in a real d20mob session. d20mob, hireling and ck have no team file yet, so each gets only the eight core seats, and d20mob's plan rows owned by Reiner, Tracy, Travolta or Piper get no card until they are invited. - How the desktop app shows the cost line after a merge has not been seen; a test hook did not fire. -- A change to ck's "How we work" template reaches no project on its own. The question rule (0.1.14) and the finishing rule (0.1.24) were each copied into d20mob and hireling by hand. The stage's model rule (0.1.25) and the drawing's link rule (0.1.26) went into d20mob the same way on 2026-11-05 ([d6veteran/d20mob#400](https://github.com/d6veteran/d20mob/pull/400)); hireling's is open as [d6veteran/hireling#65](https://github.com/d6veteran/hireling/pull/65). The model and effort rule (How we work 0.1.27) is in neither: until it is, their own rule reads a `[Akira design]` tag's second word as a model, and only the check on ck's own cards covers effort. -- `claude plugin update` in a repository with worktree installs can update the wrong one; on 2026-11-03, 2026-11-04 and 2026-11-05 the main installs were set by hand, to 0.1.24, 0.1.25, 0.1.26 and then 0.1.27. On 2026-11-05, twice, it updated the main ck folder correctly, but moved an old worktree install in d20mob and in hireling instead of their main folders. -- Auto mode sometimes refuses to push a tag or create a GitHub release; then you run that step by hand, as for `v0.1.27`. +- A change to ck's "How we work" template reaches no project on its own. The question rule (0.1.14) and the finishing rule (0.1.24) were each copied into d20mob and hireling by hand. The stage's model rule (0.1.25) and the drawing's link rule (0.1.26) went into d20mob the same way on 2026-11-05 ([d6veteran/d20mob#400](https://github.com/d6veteran/d20mob/pull/400)); hireling's is open as [d6veteran/hireling#65](https://github.com/d6veteran/hireling/pull/65). The model and effort rule (How we work 0.1.27) is in neither: until it is, their own rule reads a `[Akira design]` tag's second word as a model, and only the check on ck's own cards covers effort. The two endings (How we work 0.1.28) are in neither, so their sessions can still say "nothing is needed" with work waiting. +- `claude plugin update` in a repository with worktree installs can update the wrong one; from 2026-11-03 to 2026-11-06 the d20mob and hireling main installs were set by hand, to 0.1.24, 0.1.25, 0.1.26, 0.1.27 and then 0.1.28. Each time it updated the main ck folder correctly, but moved an old worktree install in d20mob and in hireling instead of their main folders. +- Auto mode sometimes refuses to push a tag or create a GitHub release; then you run that step by hand, as for `v0.1.27`. It allowed both for `v0.1.28`. - ck2 is abandoned. Anything from it is rebuilt from scratch, if at all. --- @@ -70,7 +71,8 @@ ck reaches projects from two places. **Stable** is the `code-katz` marketplace o | 0.1.24 | 2026-11-03 | Lane endings: no pipeline table or next command in a lane; How we work 0.1.24 | Tag `v0.1.24` | | 0.1.25 | 2026-11-04 | The stage's model: a stage session on the wrong model stops and waits, whoever wrote its brief; How we work 0.1.25 | Tag `v0.1.25` | | 0.1.26 | 2026-11-05 | The drawing's link: every message that shows or changes a drawing gives the page's link with the picture; How we work 0.1.26 | Tag `v0.1.26` | -| 0.1.27 | 2026-11-05 | The model and effort follow the job: five job words in Who, each a model and an effort in `tiers.conf`, pins for any other point, chips with both, cost by model and effort; How we work 0.1.27 | Tag `v0.1.27`; **ck-next** | +| 0.1.27 | 2026-11-05 | The model and effort follow the job: five job words in Who, each a model and an effort in `tiers.conf`, pins for any other point, chips with both, cost by model and effort; How we work 0.1.27 | Tag `v0.1.27` | +| 0.1.28 | 2026-11-06 | Two endings: every message ends with what is left in the session or "This session can be closed.", never "nothing is needed"; How we work 0.1.28 | Tag `v0.1.28`; **ck-next** | --- @@ -109,9 +111,9 @@ Dropped with ck2: its 0.2.0 release plan, which would have replaced ck in the `c | # | Opportunity | Why Now | Success Signal | |---|---|---|---| | 1 | **Try 0.1.19 by hand** | 0.1.19 went to stable on 2026-10-28 before anyone tried the memory gate, the shorter `/ck:do` or `/ck:cost` by hand | In d20mob: a memory save shows the proposal and then the approval prompt, `/ck:do` runs, and `/ck:cost` prints a real table; if one fails, stable goes back to `v0.1.17` | -| 2 | **Try ck-next (0.1.20 to 0.1.27) in d20mob** | ck-next serves 0.1.27 since 2026-11-05, and the checks here have not been recorded in a d20mob session | The four checks in [code-katz/ck#51](https://github.com/code-katz/ck/pull/51) pass, a merge prints one cost line for the right pull request, a lane that runs a gate skill ends with only its finished sentence, and a phase's stages open on their job word's model and effort with no ruling in the row, with `/ck:cost history` showing the cost of each; then stable moves to `v0.1.27` | +| 2 | **Try ck-next (0.1.20 to 0.1.28) in d20mob** | ck-next serves 0.1.28 since 2026-11-06, and the checks here have not been recorded in a d20mob session | The four checks in [code-katz/ck#51](https://github.com/code-katz/ck/pull/51) pass, a merge prints one cost line for the right pull request, a lane that runs a gate skill ends with only its finished sentence, and a phase's stages open on their job word's model and effort with no ruling in the row, with `/ck:cost history` showing the cost of each, and no session says "nothing is needed" with work waiting; then stable moves to `v0.1.28` | | 3 | **Measure d20mob's 400K auto-compact test** | The compaction evaluation chose this over a ck feature. The setting went into d20mob's local settings on 2026-10-30, and the baseline is saved | On 2026-11-06, a pass or fail against the baseline; the prediction is $116 to $154 a week saved, in API-equivalent dollars | -| 4 | **How we work 0.1.27 in d20mob and hireling** | Their coordinators write their own briefs. hireling's Phase 2 briefs never carried the model check, and d20mob's A31-P6 coordinator dropped it after its context was compacted on 2026-11-04, so stages opened on a cheaper model and went to work. d20mob's drawing lane A31-P7-S1 sent pictures of mockup 38 with no link until you asked, several times. d20mob has both rules since 2026-11-05 (#400); hireling's pull request (#65) is open. 0.1.27 names stages by job word and adds effort to the check | Each project's How we work is stamped 0.1.27, on its own pull request when you say so; then a stage opened on the wrong model or effort stops and waits for go, and a drawing comes with its link | +| 4 | **How we work 0.1.28 in d20mob and hireling** | Their coordinators write their own briefs. hireling's Phase 2 briefs never carried the model check, and d20mob's A31-P6 coordinator dropped it after its context was compacted on 2026-11-04, so stages opened on a cheaper model and went to work. d20mob's drawing lane A31-P7-S1 sent pictures of mockup 38 with no link until you asked, several times. d20mob has both rules since 2026-11-05 (#400); hireling's pull request (#65) is open. 0.1.27 names stages by job word and adds effort to the check. A hireling lane said "Nothing is needed from you" while the merge of pull request 95 waited; 0.1.28 gives every message two endings | Each project's How we work is stamped 0.1.28, on its own pull request when you say so; then a stage opened on the wrong model or effort stops and waits for go, a drawing comes with its link, and a session ends with what is left or "This session can be closed." | ### Tier 2: High Value, Plan for Next Sprint @@ -119,7 +121,7 @@ Dropped with ck2: its 0.2.0 release plan, which would have replaced ck in the `c |---|---|---|---| | 1 | **The lean review's remaining recommendations** ([ck: is it lean?](https://claude.ai/artifact/PKCgiGsjZroKmLVXXEjuuB)); R1 and R3 shipped in 0.1.21 | Fewer tokens per session and per command | Each one is weighed on its own, by tokens saved per week | | 2 | **Template changes reach projects** | A rule fixed in ck's "How we work" template is missing from every project until someone copies it by hand; d20mob's questions came as chips because of this | A changed sentence can go into a reviewed section as a one-line edit, with no redraft; `scripts/claude-md.py status` already reports "behind: yes" | -| 3 | **A release in one command** | About eight hand steps per release (tag, GitHub release, ck-next's four fields, the installs), seven releases since 2026-10-28, and `claude plugin update` moving the wrong install three days running | One script can tag, release, pin ck-next and set each main install from the DEVLOG entry; it is next after the d20mob trial on the releases page, as 0.1.28, with its own plan | +| 3 | **A release in one command** | About eight hand steps per release (tag, GitHub release, ck-next's four fields, the installs), seven releases since 2026-10-28, and `claude plugin update` moving the wrong install three days running | One script can tag, release, pin ck-next and set each main install from the DEVLOG entry; it is next after the d20mob trial on the releases page, now as 0.1.29, with its own plan | ### Tier 3: Strategic / Longer Horizon @@ -133,8 +135,8 @@ Dropped with ck2: its 0.2.0 release plan, which would have replaced ck in the `c ## Recommended Sequencing ``` -Now: How we work 0.1.27 in d20mob and hireling; a d20mob phase on ck-next 0.1.27 (0.1.20 to 0.1.27) -> stable -Next: 0.1.28, a release in one command, with its own plan +Now: How we work 0.1.28 in d20mob and hireling; a d20mob phase on ck-next 0.1.28 (0.1.20 to 0.1.28) -> stable +Next: 0.1.29, a release in one command, with its own plan Beside: try 0.1.19 in d20mob (already on stable) 2026-11-06: measure d20mob's 400K auto-compact test Later: template changes reach projects; the lean review's remaining recommendations @@ -156,13 +158,31 @@ Later: template changes reach projects; the lean review's remaining recommendati | Key Result | Target | Current | |---|---|---| -| Releases tried in d20mob before they go stable | every release | 0.1.17 tried in hireling; 0.1.19 went to stable untried (2026-10-28); 0.1.20 to 0.1.27 are on ck-next, untried | +| Releases tried in d20mob before they go stable | every release | 0.1.17 tried in hireling; 0.1.19 went to stable untried (2026-10-28); 0.1.20 to 0.1.28 are on ck-next, untried | | Releases rolled back after going stable | 0 | 0 | --- ## Revision History +## [2026-11-06] 0.1.28 shipped: two endings, never "nothing is needed"; ck-next on 0.1.28 + +**Change Type:** `complete` +**Triggered by:** `delivery` +**Items Affected:** Snapshot; What's missing or fragile; Releases; Tier 1 items 2 and 4; Tier 2 item 3; Recommended Sequencing; OKR + +### What Changed +Releases gains 0.1.28 (two endings, [code-katz/ck#64](https://github.com/code-katz/ck/pull/64)), tagged `v0.1.28`, and ck-next serves it. Stable stays on 0.1.19. The main ck, d20mob and hireling installs run 0.1.28. The How we work item now asks for 0.1.28, and the ck-next trial covers it. A release in one command moves to 0.1.29. + +### Why +In a hireling lane the session told you "Nothing is needed from you on this record yet", and when asked, said the merge of pull request 95 was still needed. ck's own template had told sessions to say so since 0.1.12. `claude plugin update` updated the main ck folder; the d20mob and hireling main installs were set by hand again. + +### Open Questions Resolved / Added +- Resolved: none. +- Added: none. + +--- + ## [2026-11-05] 0.1.27 shipped: the model and effort follow the job; ck-next on 0.1.27 **Change Type:** `complete`