spillwavesolutions/worklog
WikiTicket SDD (worklog): git-native plans, tickets, roadmaps, and wiki publishing. Multi-host bindings plus worklog-vs-knowledge isolation.
Changelog
0.24.9 — 2026-08-27
- Push-only sync absorbs tracker-only tickets and closed-on-remote drift (#385).
worklog sync(including--push-only) lists remote tickets with no worklog marker as a first-class drift class and prints theworklog adopt --system … --key …repair. A linked ticket that is closed remotely while the log item is still open is closed locally (worklog close) instead of pushing the open state back over it.worklog adoptcreates the log item, links it, and stamps the ULID marker so the next push updates. Docs: nevergh issue create/gh issue editon a worklog-managed tracker — child worktrees add viaworklogor they do not file tracker issues. - Version lockstep 0.24.9. Plugin manifests,
bin/worklog, both skill trees, and the README marker all read 0.24.9.
Released with trace-check --strict gaps on historical work (none of it from this wave). Reported and accepted rather than skipped silently. doc-verify --strict findings on frozen documents do not gate (ADR-0009). Live design docs regenerate after the tag.
0.24.8 — 2026-08-26
- Lost-link sync no longer mints a second ticket (#382). Create-vs-update now uses
remembered_key: foldedexternal.keyif present, otherwiselast_pushed_keyin gitignored.work/sync-state.json. A checkout that throws away an uncommittedlinkevent updates the original ticket andrecord_linkrestores the folded pointer.worklog unlinkclearslast_pushed_*so a deliberate unlink still files fresh, including for closed items that must not be re-filed. worklog dedupecollapses the extras #382 already minted (#383). Groups by marker ULID, classifies agreed vs mixed-state conflicts, and with--collapse-agreedcloses extras (pointer in the resolution, never deletes) and re-links the survivor. Default is dry-run. Same-title twins without a shared marker are low-confidence and never auto-collapsed.- Generated files stop conflicting on every concurrent branch (#381).
.gitattributesmarksdocs/roadmap.mdanddocs/.index/**merge=ours(named drivergit config merge.ours.driver true, installed byinit.shand the commit hook).pre-merge-commitregenerates from the union-merged log and stages the result before the freshness gate, so the merge commit names both sides' work. - Version lockstep 0.24.8. Plugin manifests,
bin/worklog, both skill trees, and the README marker all read 0.24.8.
0.24.7 — 2026-08-25
- Prompt companion pins.
design-doc-prompt.md,code-walkthrough-prompt.md, andrequirements-doc-prompt.mdnow name the same versions as the skill table:document-specialistv3.2.2,design-doc-mermaidv1.1.1,plantumlv1.2.2,google-docs-stylev1.1.4. PlantUML is leftover types only. - Design docs under
docs/design/(singular) are classified.ia.pymatched onlydocs/designs/(plural), so consumer repos that follow the singular convention inventorieddesign:0with no warning and never wrote those files to the publish manifest (#377). Both paths now classify asdesign. The sidecar normalizer stampsgit_hashfrom the commit that last touched the file when the artifact did not record one, soia-inventory --checkno longer blocks onmissing git_hashafter the path fix.docs/project_notes/is classified asguideso dated cut notes reach the index instead of vanishing. init.shinstallsdoc_verify.py,provenance.py, andhooks/session-end.sh. All three were present, wired, and dead — the pre-commit citation guard is a file-existence test, so a missing module looked like a pass, and the upgrade notes pointedSessionEndat a path init never created (#344). The plugin manifest (Claude, Codex, Cursor) now wiresSessionEndtoo.session-end.shreads the hook payload from stdin instead of a heredoc, so it actually ends the session.- Bot pushes to main now show up in check history. The compact job already ran the suite before pushing (0.24.3).
worklog-invariantsnow also listens onworkflow_runofworklog-compact, which GitHub does fire forGITHUB_TOKENpushes, so a broken compact commit is a red check on main instead of a silent one (#361). - Version lockstep 0.24.7. Plugin manifests,
bin/worklog, both skill trees, and the README marker all read 0.24.7.
Released with trace-check --strict gaps: 50 historical, plus four from this wave (three unplanned items have no plan link; the classify item does not own #377 because the sidecar-stamp item already does). Reported and accepted rather than skipped silently. doc-verify --strict findings on frozen documents do not gate (ADR-0009). Two live-doc drifts on current_design_doc (ia.py _scalar / is_frozen line numbers from this wave) — the live pair regenerates after the tag.
0.24.6 — 2026-08-24
- Claude Code packaging pins. Companion skills now point at the GitHub releases that actually install:
spillwave-documentation-marketplacev0.2.1 (catalog at.claude-plugin/marketplace.jsonwith GitHub source objects),document-specialistv3.2.2,design-doc-mermaidv1.1.1,plantumlv1.2.2,google-docs-stylev1.1.4 (agents is a file array; hooks auto-discover).ste100stays v0.1.4. Claude Code canplugin marketplace add SpillwaveSolutions/spillwave-documentation-marketplacefrom GitHub without a local clone. - Version lockstep 0.24.6. Plugin manifests,
bin/worklog, both skill trees, and the README marker all read 0.24.6.
Released with trace-check --strict gaps on historical work (none of it from this wave). Reported and accepted rather than skipped silently. doc-verify --strict findings on frozen documents do not gate (ADR-0009); live design docs regenerate after the tag.
0.24.5 — 2026-08-24
- Mermaid-first design docs. Architecture docs, code walkthroughs, and requirements now require the Spillwave documentation suite:
document-specialistv3.2.1 writes the prose (STE100 default; Google style only when named) and owns wireframes;design-doc-mermaidv1.1.0 is the default for flowchart, sequence, class, ER, state, C4, and component views;plantumlv1.2.1 is leftover types only (Salt wireframes, use case, timing, ArchiMate, nwdiag, WBS) and always PNG or SVG. Install fromspillwave-documentation-marketplacev0.2.0. - Wiki vs Confluence diagrams. GitHub wiki keeps fenced mermaid and uploads PlantUML images with the page. Confluence uploads images for both mermaid and PlantUML. A wiki page that points at a missing
docs/diagrams/*.pngis a publish defect. - Requirements prompt.
design-docsnow shipsrequirements-doc-prompt.mdfor SRS and PRD, using the same companion skills as the design doc and walkthrough. - Hard bans in both voice packs. No em dash. Do not start a sentence with So, That, Thus, or Hence.
Released with trace-check --strict gaps on historical work (none of it from this wave). Reported and accepted rather than skipped silently. doc-verify --strict findings on frozen documents do not gate (ADR-0009); live design docs regenerate after the tag.
0.24.4
- Three-host hooks: Codex + Cursor-native when Claude hooks exist.
0.24.3 — 2026-08-18
- The Stop hook can see a log you already committed. Its proof that a session recorded work was an uncommitted change to
.work/todo.jsonl, so the rhythm the policy asks for — record first, then commit — erased the evidence and the session got blocked.SessionStartnow stamps the commit the session began at into the session registry, andStopdiffs the log against that fixed point. The marker never moves on later heartbeats, and a missing or unresolvable marker falls back toHEAD, which is the behavior this hook has always had. Trade-off, taken deliberately: a session that pulls someone else's log changes now also reads as having recorded something — a missed nag, where the old direction refused to let a correct session finish its turn. - The nightly compaction job checks itself before it pushes. A push made with the default
GITHUB_TOKENtriggers no other workflow, soworklog-invariantsnever ran on the commit that job creates.mainsat red for two days that way. The job now runshooks/pre-commit, the merge-integrity check and the full suite first, so a bad compaction never lands. It still does not produce a run inmain's check history — only a credential that is notGITHUB_TOKENcan — and that residual gap stays tracked. --keysis documented as what it is. Sync scope is open ∪ hash-dirty ∪--keys: the flag widens a run and can never narrow one. The help text anddocs/worklog-spec.mdnow say so, including why no narrowing flag exists — a sync that skipped dirty items would leave the tracker further from the log, which is the driftsyncexists to close. No behavior change.- Version lockstep repaired. 0.24.2 bumped two of eight version sources;
plugin/plugin.json, both plugin manifests, all fourteen skill frontmatters,bin/worklogand the README marker were left behind. All eight now agree.
Released with 50 trace-check --strict gaps across 29 items — missing PR, ticket and plan links on historical work, none of it from this wave. Reported and accepted rather than skipped silently.
0.24.2 — 2026-08-17
- Cursor host.
.cursor-plugin/plugin.json(Cursor Plugins) plus.cursor/rules/second-brain.mdc. Docs:docs/CURSOR.md.docs/GROK_BOT.mdnow covers Grok Bot spawning Cursor cloud agents.