Skip to content

[Tracker] Docs and plans steward #290

Open

Description

@BunsDev

Goal

Every document and plan in the repository tells the truth about current main. Every plan is executing, explicitly blocked, or retired with a reason. Val can plan the next session from docs/status.md alone.

How this issue is used

  • Start a steward session with the first prompt below, and resume one with the second. Both work in Claude Code and Codex.
  • Each cycle ends with a checkpoint comment here: the main SHA reviewed, PRs opened and merged, plan state changes with evidence, drift fixed and left, questions for Val, and the next action.
  • The steward asks Val here before it restructures docs/status.md, deletes or moves a doc, changes a spec's decisions or reorders "Next". It sets that item aside until Val answers.
  • Docs-only reconciliation PRs merge through the guard script once CI is green. Code PRs wait for Val's go-ahead. The steward never tags, publishes, uploads to TestFlight or turns on flags.

Long-running goal prompt — start

Act as the docs-and-plans steward for TypeSafeAI/modex. The goal: every document and plan in the repository tells the truth about current main; every plan is executing, explicitly blocked, or retired with a reason; and Val can plan the next session from docs/status.md alone. Work in cycles until the stop condition at the end holds, leaving a checkpoint after each cycle.

GROUND RULES (they apply whatever your harness loads)
- Read AGENTS.md and ~/.claude/CLAUDE.md first. Their signing, attribution, merge-guard, worktree and ~/.coven rules bind you here.
- Never edit the primary checkout. Cut each cycle's branch with `scripts/worktree.sh new docs-steward-<yyyymmdd>` (slug, no dots). Install with pnpm only. Clean up with `scripts/worktree.sh release`/`remove` per docs/worktree-hygiene.md, never by force.
- Sign every commit with `git commit -S -F <message-file>`, then confirm a good signature with `git log -1 --show-signature`. Stop if it is missing.
- Credit no model, tool or vendor: no Co-Authored-By for Claude, Codex or similar, and no "Generated with" footer. A non-familiar session ends commits with only `Coven-Harness: <harness> / <model id>`.
- Merge only with `~/.claude/scripts/gh-merge-when-green.sh <pr> --squash`.
- Never touch ~/.coven. Never resume, rebase or delete a worktree, branch or PR you did not create.
- Other Claude and Codex sessions land work here at the same time. Before each cycle, list open PRs (`gh pr list`) and worktrees (`scripts/worktree.sh audit`). Leave alone any doc section an open PR is changing (`gh pr diff <n> --name-only`). Release review docs and the release entry under "In flight" belong to whoever is cutting that release.
- Change a status only on evidence. Tick a box, mark something shipped or close a gap only when you can cite a merged PR, a release tag, a review doc, a CI run id or file:line on main. A previous session's summary is not evidence. Leave unknowns marked unknown.

WHAT YOU STEWARD (classify every file before editing)
1. Living map: docs/status.md (Shipped, per-release sections, On main unreleased, In flight, Known rough edges, Next, Conventions).
2. Reference docs: docs/*.md feature pages and README.md. They describe behaviour on main, so check them against code and the Shipped table.
3. Specs: docs/specs/*.md. Each status line ("Approved; not implemented", "direction accepted") must match what has landed.
4. Plans and ledgers: docs/superpowers/plans/*.md, docs/mac-store-preview-plan.md and any other checkbox ledger. Each is in exactly one state: active, blocked (on what or whom), delivered (by which PR or release), superseded (by what) or abandoned (why).
5. Evidence: docs/reviews/ is dated history. Never rewrite it. Fix broken links only, and put corrections in status.md or a new dated review.
6. GitHub trackers and issues, such as #273 and its children: plans that live outside the tree. Their checklists must match the issues that have closed and the PRs that have merged.

KNOWN DRIFT AS OF 2026-10-18 (re-check each item first; it may already be fixed)
- README.md calls automatic updates "in-flight" and says published builds need a manual install, but v0.0.12 shipped self-update. It also says app-owned sign-in is "under review".
- docs/specs/2026-10-11-modex-routines-spec.md says nothing has shipped, but Phases 0 and 1 are on main.
- docs/specs/2026-10-12-sticky-auto-routing-spec.md says "not implemented", but v0.0.11 shipped Sticky Auto routing.
- In docs/superpowers/plans/, 2026-10-11-desktop-roadmap.md still has open boxes for Canvas, signed updates and native installers, which shipped in v0.0.11, v0.0.12 and v0.1.0. Check the open boxes in 2026-10-12-sticky-auto-routing.md (70), 2026-10-09-browser-extensions.md and 2026-10-08-workos-oauth.md the same way.
- Tracker #273's checklist has no boxes ticked, but #274 (CF-1) has closed and #282, #284 and #285 have merged.

EACH CYCLE
1. Refresh. Fetch, then read what changed since your last checkpoint: main's log, merged PRs, closed issues, new tags and releases, open PRs. That delta is your work queue.
2. Reconcile. For each change, grep for its feature names, PR numbers, versions and file paths to find every doc that should now say something different. Verify claims against code on main, not against other docs. Check that relative links and anchors resolve. Move resolved items out of "Known rough edges". Edit precisely and in each file's existing voice. Keep status.md a map, not a changelog: link to a review instead of copying its evidence.
3. Disposition plans. Record each plan's and spec's state with evidence. For a delivered plan, add one line at the top ("Delivered in vX by #N; the boxes below are historical") rather than ticking boxes you cannot prove. For a superseded or abandoned plan, say what replaced it or why it stopped. Delete no plans.
4. Advance one plan. Pick the single most valuable unblocked next step across status.md's "In flight" and "Next", the active plans and the trackers' dependency orders. Prefer steps that unblock other work, then finishing partial work, then starting new work. If the step is small and no one owns it, do it in its own worktree through the normal flow: read the plan and spec, write the test first, make the minimal change, run AGENTS.md's pre-push checks, make signed commits, and open a PR that updates the plan ledger and status.md in the same change. If the step is large, owned by another session or waiting on a decision, do not start it. Instead, write an exact next-step note on the plan or its issue.
5. Land. A docs-only reconciliation PR may merge through the guard script once CI is green. Open each code PR and get it green, then stop for Val's go-ahead before merging it. Never tag, publish a release, upload to TestFlight, approve the Release environment, or turn on a feature flag or approval gate.
6. Checkpoint. Comment on tracker #290 (TypeSafeAI/modex). Include: the date and the main SHA you reviewed; PRs opened and merged; each plan's change of state, with evidence; drift you fixed; drift you left, and why; questions for Val; and the first action for the next cycle.

JUDGEMENT
- Ask Val in the tracker, and set the item aside, before you restructure or split status.md, delete or move a doc, change a decision a spec records, re-scope or reorder "Next", or change release, signing or credential docs beyond factual corrections.
- Correct an existing doc instead of writing a new one. The tracker is your only process document.
- Many PRs edit status.md. Keep your PRs small, rebase onto main just before you push, and expect a CI rerun whenever main moves.
- Stop condition: no unreconciled drift remains, and the next plan step is blocked on a person or an external gate, or is waiting for Val's merge. Write the checkpoint and stop. Never report something complete that you did not verify in this cycle.

Follow-up long-running goal prompt — resume

Resume the Modex docs-and-plans steward goal. Work from evidence, not from the previous session's summary. Read AGENTS.md, ~/.claude/CLAUDE.md, the latest checkpoint comment on tracker #290 (TypeSafeAI/modex), and everything on main since that checkpoint's SHA: commits, merged and closed PRs, closed issues, tags. Check whether each worktree and PR the checkpoint names still exists and is yours. Resume one only after `scripts/worktree.sh claim`/`check` proves you own it; otherwise start a fresh worktree. Close out half-done work first. For an unmerged docs PR: rebase, wait for CI, merge with the guard. Leave code PRs that are waiting for Val as they are. Finish any plan step left halfway. Then run the normal cycle: refresh, reconcile, disposition the plans, advance one unblocked plan step, land, checkpoint. Every ground rule of the original goal still applies:
- signed commits, each confirmed with --show-signature
- no harness attribution (the Coven-Harness trailer only)
- merges through the guard script only
- nothing under ~/.coven is touched
- no tags, releases, publication or flags
- evidence behind every change of status
- restructuring and scope are Val's decisions
Stop with a checkpoint when the stop condition holds.

Activity

  1. BunsDev commented on Oct 18, 2026

    @BunsDev
    ContributorAuthor

    Checkpoint: cycle 1, 2026-10-18

    Reviewed: main at d3711c6 (#287), then f6976df (#289). Worktree docs-steward-20261018, owned by this session.

    PRs: #292 (docs only), merged through the guard as 04b7ec7 with all 9 checks green.

    Trackers: in #273, ticked #274 (CF-1, closed). The other children are still open.

    Plan states

    Plan or spec State Evidence
    workos-oauth delivered #141, v0.0.9
    browser-extensions delivered #152, v0.0.11
    knowledge-agents, pages-agents delivered #150, v0.0.10
    desktop-roadmap delivered except Cloud tasks (out of scope) #164, #181/#200/#201, #173/#186
    worktree-hygiene delivered #171
    release-candidates delivered #186, v0.1.0
    sticky-auto-routing (plan + spec) delivered #180, #183, v0.0.11
    images-plugins delivered #236, v0.1.0
    mac-store-preview-plan partial; no owner, no open PR #119; parity matrix, real-CLI and fresh-user acceptance open
    routines spec Phase 1 and most of Phase 0 on main, unreleased #206, #253, #257, #267; gate decision open, Phase 2 waits on it
    approval-rules spec parts 1–2 shipped, gate off #54, #107, #185
    tracker #273 (CF-1…8) active, owned by other sessions #289 landed; open: #283, #286, #288, #291, #293, #294

    Drift fixed (#292)

    Plan and spec status lines, README (5 places), 15 reference docs, and in status.md the site fallback, the In flight pointer, Next 3, and the node-pty and demo-thread lines. Each change was checked against code on main, a status.md release section or a review. The PR body lists them.

    Drift left, and why

    Plan step advanced

    None. Every unblocked step has an owner or waits on a person:

    • the CF slices belong to sessions with live worktrees;
    • v0.2.0 belongs to release-v0-2-0;
    • Next 1 needs Windows and Linux machines;
    • Next 2 waits on the approval gate decision;
    • the Store gates need a fresh macOS user and Apple.

    Questions for Val

    1. Finished In flight entries. Answered: removed both, and the GitHub App item is now Next 4, ahead of the out-of-scope Cloud tasks (Record what shipped across plans, specs and reference docs (steward cycle 1) #292).
    2. Fixed incidents in Known rough edges. Answered: six fixed incidents moved word for word to docs/reviews/2026-10-18-resolved-rough-edges.md, each under its fixing PR (Record what shipped across plans, specs and reference docs (steward cycle 1) #292). Besides the four named here, these include the native-picker and owner-removal test fixes, which had nothing left open. The demo-thread and sizing entries stay because their causes are unproven.
    3. status.md size. Answered: the v0.0.6–v0.1.0 release sections moved unchanged into a "Status summary" section of each release review. The Shipped rows link them, a new convention says where a release's details go, and status.md went from 1,060 to 388 lines, then to 352 after the Store trim (Record what shipped across plans, specs and reference docs (steward cycle 1) #292).
    4. Mac App Store entry. Answered: cut from 52 lines to 15, giving the current state with links to the receipts. The old text moved unchanged to the October 11 signed-acceptance review (Record what shipped across plans, specs and reference docs (steward cycle 1) #292). Still waiting on Val: the receipt says the attribution of one GUI Connect grant from that run is awaiting Val's response.

    Noticed, not acted on

    • status.md ends with a separate "Local Mac Store development preview (unreleased)" section that overlaps the trimmed Store entry. It could fold into the entry or into mac-store-preview-plan.md. Val's call.

    Next cycle's first action

    Refresh from 04b7ec7 (#292), then:

  2. BunsDev commented on Oct 18, 2026

    @BunsDev
    ContributorAuthor

    Follow-up: cycle 1 decisions, 2026-10-18

    #296 (docs only) merged through the guard as db0bbfd, with all 9 checks green. It acts on two more of Val's decisions:

    • Store section folded. status.md's "Local Mac Store development preview (unreleased)" section is folded into the Mac App Store edition entry under In flight. That adds the preview (Add an opt-in sandboxed Mac Store preview with a local host #119), the recovery behavior from Keep Companion reachable and preserve Store host recovery #166, and two open items: graceful host shutdown and the full parity matrix. The section moved unchanged to the "Status summary" of docs/reviews/2026-10-11-store-recovery.md. status.md is now 329 lines.
    • Gate 2 reworded. mac-app-store.md gate 2 now reads "Implemented; acceptance open" and links the readiness matrix for the signed acceptance that is still pending.

    Still waiting on Val: where the grant from the GUI Connect run in the October 11 signed-acceptance review came from.

    Next cycle: refresh from db0bbfd.

  3. self-assigned this
    on Oct 18, 2026
  4. BunsDev commented on Oct 18, 2026

    @BunsDev
    ContributorAuthor

    Checkpoint: cycle 2, 2026-10-18

    Reviewed: main at db0bbfd (#296), with no commits since the last checkpoint. #297 and #301 (CF-8) landed during the cycle. Worktree docs-steward-cycle2, owned by this session.

    PRs: #300 (docs only), merged through the guard as 28c6723 with all 9 checks green. It went in on the third try, after #297 and #301 landed during CI.

    Trackers: #273's children #275–#281 are all still open, so its checklist needs no change.

    What changed outside main

    Val's decisions this cycle

    Drift left, and why

    Unverified claims from cycle 1, now settled

    Claim Result
    modex-signin.md: fixed callback port 43821 Only the default registered with WorkOS. Modex uses a system-assigned port (listen(0) since #141). Clarified.
    auto-routing.md: "the middle tier" for unknown models Tier 2 of 0–3 (catalog.ts). Reworded.
    analytics.md: fixture counts All correct when sample.ts is run (471 / 147 / 45 / 11 / 212). Unchanged.
    pages-maintenance.md: Codex keeps its tools until the app-server restarts Correct: the config is sent only when a thread is first loaded. Unchanged.
    update-recovery.md: test counts From the 2026-10-12 run. Dated.
    gemini-feasibility.md npm --prefix; ios-companion.md Xcode 26.6; notes.md benchmark; auto-routing.md jev install and model pin Still unverified. Each needs an external system, a CI log or a rerun of a measurement. These are research or dated facts, not instructions for the current build.

    Plan step advanced

    None. The unblocked work is still owned or gated:

    • the CF slices belong to live sessions;
    • v0.2.0 belongs to its release session;
    • Next 1 needs Windows and Linux machines;
    • Next 2 waits on the approval gate decision;
    • Next 4 needs a GitHub App owner;
    • the Store gates need a fresh macOS user and Apple.

    Questions for Val

    • None open.

    Next cycle's first action

    Refresh from 28c6723 (#300), then:

  5. 13 remaining items

  6. BunsDev commented on Oct 18, 2026

    @BunsDev
    ContributorAuthor

    Claim: post-v0.2.0 docs cycle, 2026-10-18

    v0.2.0 was published at 23:14:37Z (by github-actions[bot], tag on 01b1b8a). Nothing in the tree records it yet, and the release-v0-2-0 worktree has been idle for 18 hours. This session is taking the docs side, in one PR. It follows the layout Val chose:

    • Shipped: add a v0.2.0 row linking its review.
    • Review: move the items shipped in v0.2.0 unchanged out of "On main, unreleased", into a "Status summary" in the v0.2.0 review.
    • Unreleased: keep only work after 01b1b8a there, which is the CF slices.
    • In flight: trim the v0.2.0 entry to the gates no receipt records yet: the independent download checks, the v0.1.0 → v0.2.0 banner upgrade on the release Mac, and the Companion 0.2.0 (7) TestFlight upload.
    • Wording: change "unreleased" to v0.2.0 in the routines spec and the README.

    Not taken: the website's static fallback (apps/site/release.json) and any publication evidence. Those belong to the release owner or Val.

    If the release session is already doing this, say so here and I'll stop.

  7. BunsDev commented on Oct 19, 2026

    @BunsDev
    ContributorAuthor

    Checkpoint: cycle 13, 2026-10-18

    Reviewed: main from a4039b2 to 81798d7 (#293, #306, #307).

    Correction to cycle 12

    Cycle 12 said every relative link and anchor resolves. That check ran on an empty export: git archive failed on a path that doesn't exist, and I had silenced the error. I re-ran it on the full tree, and it finds 0 broken links across 109 Markdown files, on 57e7607 and on each PR head. The claim was true, but it wasn't verified when I posted it.

    Ownership

    None of the 26 live worktrees was the steward's:

    • every one is claimed by another session in .git/modex-maintenance/owners/, except usage-credits-failure, which its own session released;
    • the four earlier docs-steward-* records are all released, with no live directory.

    I resumed none. I cut docs-steward-approval-spec and docs-steward-canvas-comment with new, and check passed in both.

    Landed

    PR Merge What
    #306 (docs) 3560064 Approval rules spec and status.md "Still open". The first guard run refused it because Upload TypeScript coverage timed out at GitHub's processing step (processing_timeout, job 117817438712). Re-running that job passed, and the guard merged.
    #307 (comments only) 81798d7 Merged through the guard on Val's go-ahead. All 11 checks passed.

    Drift fixed

    Since cycle 12, besides my PRs

    Pre-landing check

    I ran git merge-tree for #288, #299, #304, #308, #309, #310 and #311 against 81798d7.

    Plans

    Plan step

    Most valuable step: the approval gate's quoted-command false allow, because Routines Phase 2 (Next 2) waits for the gate decision.

    Not started, because:

    • it needs a design that tells a quoted mention from an operation. Masking quoted text alone would also hide sh -c '…' from Jev.
    • it needs a live Jev run of the corpus plus a holdout, which spends usage.

    The exact next step is now in the spec (#306). No open PR or worktree carries it.

    Drift left

    None known.

    Question for Val

    The gate's item 1 has no owner. If you want Routines Phase 2 to move, that's the step to assign.

    Next cycle's first action

    Both steward worktrees are being removed through scripts/worktree.sh remove.

  8. BunsDev commented on Oct 19, 2026

    @BunsDev
    ContributorAuthor

    Checkpoint: cycle 14, 2026-10-18

    Reviewed: main from 81798d7 to 396b17c (#308, #312, #313, #314, #310).

    Since cycle 13

    Confirmed on 396b17c

    Plans

    No status changed. The step that matters most is still the approval gate's quoted-command false allow, which blocks Routines Phase 2. It needs a design (masking quoted text alone would also hide sh -c '…' from Jev), a live Jev run and an owner. The approval spec records the exact next step. Every other Next item waits on machines, accounts or a GitHub App owner.

    Process note

    Three sessions worked on v0.2.0's docs at once: this steward, the docs-steward-v020-shipped steward (which claimed the work here) and the session behind #314 (which did not claim it here). Separately, two of us pushed identical merges of main into #310 three seconds apart. The non-force push refused the second, so nothing was lost. Before starting docs work for a release, check this issue for claims.

    Questions for Val

    1. Approval gate fix: nobody owns it. If Routines Phase 2 should move, that's the work to assign.

    Next action

    Refresh from 396b17c. The v0.2.0 gates (the banner upgrade and TestFlight build 7) are Val's at the Mac. Re-check #273 as CF-4 and CF-5 land.

  9. BunsDev commented on Oct 19, 2026

    @BunsDev
    ContributorAuthor

    Checkpoint: cycle 15, 2026-10-19

    Reviewed: main from 396b17c to 58b468d (#299, #315, #288, #304, #311, #309, #328, #331).

    Landed by this session

    PR Merge What
    #315 (CI) cb33db5 unit + e2e (macOS) gets 45 minutes instead of 30. Merged through the guard on Val's go-ahead.
    #309 (code) c345779 CF-6 journal hardening, merged through the guard on Val's go-ahead. It passed every check four times. #288 and #304 each landed while its CI was running, and the guard refused it as BEHIND each time.
    #331 (docs) 58b468d The fidelity group's "Still open" line now names what remains for each of CF-3 to CF-8. #328 landed during its run, so CF-5's comparison item was dropped before merge.

    For each of the three, the squash tree matches the branch.

    Since cycle 14, besides mine

    Each of these recorded its own status entry and reference doc, so there was no drift:

    PR Docs it updated
    #299 (CF-5 memory citations, patch comparison) conversation-evidence.md
    #288 (CF-4 web-search fold) conversation-events.md
    #304 (move to a new workspace) notes.md
    #311 (CF-5 retained log) conversation-evidence.md
    #328 (CF-5 removal-only and notebook comparison) conversation-evidence.md

    #315 changes only CI. No doc mentions the time limit.

    Drift fixed

    Plans and trackers

    Links

    Worktrees

    Environment

    • Disk: the Mac reached 122 MiB free at 19:20Z, which killed a merge guard. I removed only my own regenerable Xcode build output, about 550 MB. It's at 8.7 GiB free now. The largest folders I measured: ~/.coven 46 GiB (reported for information only, not to clear), other sessions' /private/tmp/claude-501 23 GiB, and CoreSimulator 20 GiB.
    • pnpm: Node v24.22.0 is now the nvm default and has no pnpm, so a bare pnpm finds Homebrew's 12.4.2 and gets ERR_PNPM_BAD_PM_VERSION. Putting ~/.nvm/versions/node/v24.18.1/bin first on PATH gives 10.34.5.

    Questions for Val

    1. [Tracker][CR] Reconstruct the screenshot Code Review workspace end to end #319 (Code Review workspace): should it go under Next or In flight? I haven't added it, because reordering Next is your call.
    2. Merge queue: four landings by others cost Harden the event journal against failed writes, crashes and oversized frames (CF-6, journal mechanics) #309 three extra CI runs today. A merge-queue ruleset on main would end that, and the guard already supports one.
    3. Code PRs waiting for your go-ahead: Read the thread again when the Mac refuses an answer from the phone (CF-6) #318, Record who answered from the phone's YOLO switch and paired desktops, and test a card open at a crash (CF-6) #329 and Send a question or a plan to an older paired desktop as a notice it can read (CF-6) #330. Each is behind main (Compare removal-only edits and notebook cells with the working tree (CF-5) #328), so it gets main merged in only when you approve it.

    Next action

    On Val's go-ahead, land #318, #329 and #330 one at a time. Take finding 10 once #316 lands, or fold it into #316 if its owner prefers. The next cycle starts from 58b468d.

    Nothing was tagged, released, uploaded or flagged.

    Coven-Harness: Claude Code / claude-opus-5-5

  10. BunsDev commented on Oct 19, 2026

    @BunsDev
    ContributorAuthor

    Checkpoint: cycle 16, 2026-10-19

    Reviewed: main from 58b468d to de856e0 (#329, #317, #330, #318).

    Landed by this session

    All three are code PRs, merged through the guard on Val's go-ahead. Each squash commit has the same tree as its branch head.

    PR Merge What
    #329 9a2e15f CF-6 findings 9 and 3: who answered from the phone's YOLO switch and from paired desktops, plus a test for a card left open at a crash.
    #330 9c0b063 CF-6 finding 6: a question or plan reaches an older paired desktop as a notice. CodeQL flagged the test's raw client for turning certificate validation off; 71bae66 pins the host certificate instead. #317 landed during its CI, which cost one more run.
    #318 de856e0 CF-6 finding 11: the iPhone app reads the thread again when the Mac refuses an answer.

    The CF-6 receipt is on #279.

    Since cycle 15, besides mine

    Drift

    • None fixed and none left.
    • The CF-6 entries in "On main, unreleased" describe what landed.
    • "Still open" still names CF-6 correctly, since findings 4, 7 and 10 remain.

    Plans and trackers

    Links

    • 0 unresolved, across all 110 Markdown files on a full export of de856e0.

    Work by other sessions (claimed 23:26–23:29Z, left alone)

    • release-v0-3-0: two commits (the 0.3.0 version bump and acceptance of rc tags), no PR yet. The v0.3.0 cut owns moving "On main, unreleased" into a release section.
    • cr1-contract: no commits yet.
    • cf8-live-smoke: one untracked e2e spec.

    Worktrees

    • cf6-desktop-kinds and cf6-phone-refresh went through release and remove, each with a recovery manifest.
    • cf6-residue was removed at 22:08Z by another session's prune (session:6bcb3b58-prune). Its archive bundle holds head faa69d7, the tree that merged as 9a2e15f.
    • This session now owns no worktrees.

    Environment

    • Disk: 14 GiB free.

    Questions for Val

    1. Make CF-3 answer delivery receipts truthful #316 (CF-3 delivery receipts): it's a draft that conflicts with main, has the iPhone failure reported on it, and its Codex thread last wrote at 2026-10-19 03:55Z. Is it still live? CF-6 findings 4 and 7 are in it, and finding 10 waits on it. If it's abandoned, I can take finding 10 on a fresh branch from main.
    2. [Tracker][CR] Reconstruct the screenshot Code Review workspace end to end #319 (Code Review workspace), still open: should it go under Next or In flight? Work on it may have started: cr1-contract was claimed at 23:26Z.
    3. Merge queue, still open: every landing by someone else sends each open PR back through CI. Today that cost Harden the event journal against failed writes, crashes and oversized frames (CF-6, journal mechanics) #309 three extra runs and Send a question or a plan to an older paired desktop as a notice it can read (CF-6) #330 one.

    Next action

    Wait for Val's answer on #316. Once v0.3.0 is cut, check its release section against the unreleased entries it moves. The next cycle starts from de856e0.

    Nothing was tagged, released, uploaded or flagged.

    Coven-Harness: Claude Code / claude-opus-5-5

  11. BunsDev commented on Oct 20, 2026

    @BunsDev
    ContributorAuthor

    Checkpoint: cycle 17, 2026-10-20

    Reviewed: main from de856e0 to ac7f743 (#332, #335, #333, #337, #336, #341, #339, #334, #342, #344, #345, #343, #347).

    Landed by this session

    PR Merge What
    #336 1b6f7a4 CF-6 finding 10: a request stays open when saving its answer fails. Val merged it at 08:06Z.
    #345 7877a14 Merge queue: merge_group CI runs only unit + e2e (macOS), and the ruleset gains a squash queue, so a landing no longer sends every open PR back through CI.
    #343 0a67354 Docs follow-up to #335 and #336: the phone no longer shows a withdrawn approval as declined, plus a test. This was the first PR through the queue.
    #347 ac7f743 This cycle's docs: README says the queue needs auto-merge, and status.md lists the keyboard CI failure under Known rough edges.

    Merge queue

    Since cycle 16, besides mine

    Drift

    Plans and trackers

    Links

    • 0 unresolved, across all 115 Markdown files on a full export of ac7f743.

    CI: keyboard Jump to latest

    Work by other sessions (left alone)

    Worktrees

    • merge-queue and docs-steward-20261020 went through release and remove on squash-tree proof.
    • cf6-docs-followup needed one more step.
      • The prune tool could not prove it merged. The queue squashed Say the phone no longer shows a withdrawn approval as declined #343 onto a newer main, so the squash tree is not the branch tip's tree. The branch also merges main, which rules out the tool's other proof.
      • I checked that merge-tree(7877a14, 2e368a8) equals the squash tree (6fc493b), so nothing on the branch is missing from main.
      • I bundled the tip into .git/modex-maintenance/evidence/queue-landed-2026-10-20/ and pointed the branch at 0a67354. The tool then removed it on ancestor proof.
    • Each removal has a recovery manifest. This session now owns no worktrees.

    Environment

    • Disk: 3.8 GiB free (14 GiB at cycle 16).

    Questions for Val

    1. Stray remote tag untagged-292dee8871c39450142a points at 30ee279. It looks like a leftover from the v0.3.0 release. Tags belong to the release owner, so I haven't touched it. Delete it?
    2. Keyboard Jump to latest failure: should Keep keyboard focus when an approval is answered, its turn folds, Stop ends it, or Jump to latest is used (CF-8) #342's owner fix the race, or should I take it, test first, in the scroll-follow code?
    3. Prune tool and the queue: any PR that merges main into its branch and then lands through the queue behind another PR will hit the same proof gap as cf6-docs-followup. The tool could accept "merge-tree(squash parent, PR head) equals the squash tree" as proof. Should I open a PR for that?

    Next action

    Wait for Val's answers. The next cycle starts from ac7f743.

    Nothing was tagged, released, uploaded or flagged.

    Coven-Harness: Claude Code / claude-opus-5-5

  12. BunsDev commented on Oct 20, 2026

    @BunsDev
    ContributorAuthor

    Checkpoint: cycle 18, 2026-10-20

    Reviewed: main from ac7f743 to 7c4ef2e (#350).

    Landed by this session

    PR Merge What
    #350 7c4ef2e The prune tool proves a queue-landed branch merged when the tip merges cleanly onto the squash's parent and gives exactly the landed tree. That was cycle 17's question 3.
    • Merged through the queue on Val's go-ahead. GitHub shows the squash commit as verified.
    • Tests: pnpm test:worktrees passed 117 of 117. pnpm build && pnpm test passed 1,900 tests with 0 failures.
    • Real case: on Say the phone no longer shows a withdrawn approval as declined #343's own branch and PR record, the old tool returns no proof and the new one returns a merge-tree proof.
    • Merge drivers: any configured merge.<name>.driver turns the proof off. Neither this repo nor the test clone configures one.
    • docs/worktree-hygiene.md lists the three ways a squash commit can match.

    Drift

    Open PRs

    PR Branch Docs it touches Merges onto main
    #352 jump-latest-pin status.md −5, resolved rough edges +20 clean
    #351 cf7-verification status.md, task-context.md, a CF-7 plan clean
    #349 cr2-read-service status.md, design/code-review.md, a CR-2 smoke review clean
    #348 cf3-audit status.md, human-requests.md, conversation-fidelity.md, a CF-3 review clean
    #346 cr3-inbox design/code-review.md clean
    #338 cf8-candidate the CF acceptance review, a VoiceOver checklist conflicts

    Plans and trackers

    Links

    • 0 unresolved, across all 115 Markdown files on a full export of 7c4ef2e.

    Worktrees

    Environment

    • Disk: 856 MiB free, down from 3.8 GiB at cycle 17. At this level test runs fail.
    • I deleted 391 MB of my own finished scratch: a CF-6 review build tree, old link-check exports, and Land main through a merge queue #345's CI artifacts.
    • Largest consumers, read only:
    Path Size
    ~/Library/Developer/CoreSimulator/Devices 20 GiB
    /private/tmp/claude-501 (other sessions' scratchpads) 15 GiB
    ~/Library/pnpm 7.9 GiB
    ~/Library/Caches 5.7 GiB
    modex .git 4.6 GiB
    • The largest scratchpads are two OpenCoven/chat sessions (4.0 and 2.3 GiB) and two modex sessions (1.9 and 1.5 GiB).
    • ~/.coven is 46 GiB. It is listed for information only and is never a cleanup candidate.

    Questions for Val

    1. Disk: which of the above may be cleared? The simulator devices are the largest. I'll only touch my own scratch unless you say otherwise.
    2. Stray remote tag untagged-292dee8871c39450142a (points at 30ee279, v0.3.0 leftover): still there. Delete it?

    Cycle 17's question 2, the keyboard failure, now has an owner in #352. Question 3 landed as #350.

    Next action

    Wait for Val's answers. The next cycle starts from 7c4ef2e. When #352 lands, check that Known rough edges no longer lists the keyboard failure.

    Nothing was tagged, released, uploaded or flagged.

    Coven-Harness: Claude Code / claude-opus-5-5

  13. BunsDev commented on Oct 20, 2026

    @BunsDev
    ContributorAuthor

    Checkpoint: cycle 19, 2026-10-20

    Reviewed: main from 7c4ef2e to 9e4197e (#352). #351 landed during the cycle; cycle 20 covers it.

    Landed by this session

    PR Merge What
    #353 b654734 "On main, unreleased" gains #352's Jump to latest fix.

    Drift

    Open PRs

    Plans and trackers

    Links

    • 0 unresolved, across all 115 Markdown files on a full export of 9e4197e.

    Housekeeping done on Val's request

    • Stray tag: deleted untagged-292dee8871c39450142a, remote and local. No release used it. v0.3.0 (signed tag 575e514 on 30ee279) is untouched.
    • Simulators: ran xcrun simctl erase all, so the iPhone simulators use 122 MB instead of 20 GiB. I erased rather than deleted them: apps/ios/ModexCompanion/Scripts/test-e2e.sh defaults to the device named iPhone 16 Pro (OS 26.5). Each device's first boot will be slow.
    • My scratchpad: 104 old logs deleted.
    • Disk: 29 GiB free, up from 856 MiB at cycle 18.

    Worktrees

    • docs-steward-c19 went through release and remove, with a recovery manifest. This session owns no worktrees.
    • jump-latest-pin: Hold Jump to latest when the composer grows or a Page Up is still moving #352 merged, but the worktree is unreleased. It is clean and holds unknown ignored files. It belongs to session:jump-latest-pin, so I left it.
    • The others (cf7-verification, cf8-candidate, cr2-read-service, cr3-inbox) belong to sessions with open or just-landed PRs.

    Next action

    Cycle 20 runs now, from 9e4197e through b654734, covering #351 (CF-7 verification).

    Nothing was released, uploaded or flagged. The only tag change was the deletion Val asked for.

    Coven-Harness: Claude Code / claude-opus-5-5

  14. BunsDev commented on Oct 21, 2026

    @BunsDev
    ContributorAuthor

    Checkpoint: cycle 20, 2026-10-21

    Reviewed: main from 9e4197e to 4e9d965 (#351, #353, #356).

    Landed by this session

    PR Merge What
    #356 4e9d965 The CF-7 verification plan is marked done in #351.

    GitHub shows the squash commit as verified.

    Drift

    Plans and trackers

    Open PRs

    Links

    • 0 unresolved, across all 116 Markdown files on a full export of 4e9d965.

    Worktrees

    • docs-steward-c20 went through release and remove on squash-tree proof, with a recovery manifest. This session owns no worktrees.
    • Since cycle 19, the owners of cf7-verification and jump-latest-pin removed them.
    • Open sessions' worktrees: cf3-live-question, cf7-context, cf8-candidate, cr2-read-service, cr3-inbox.

    Environment

    • Disk: 29 GiB free.

    Next action

    None pending from Val. The next cycle starts from 4e9d965.

    Nothing was tagged, released, uploaded or flagged.

    Coven-Harness: Claude Code / claude-opus-5-5

  15. mariscate commented on Oct 22, 2026

    @mariscate

    Refreshed goal prompts — 2026-10-22 (main at 0e674e7)

    Since cycle 20 (4e9d965): #348, #354, #355, #357–#368 landed, so cycle 21 covers 4e9d965..0e674e7. Drift I noticed and haven't verified:

    Worktrees whose PRs landed but are still checked out: cf3-evidence-repair, cf7-path-repair, cf8-main-sync, cf8-reconcile, cr1-verify, cr2-cache-denial, cr2-ipc-acceptance, cr2-review, cr3-inbox-repair. They belong to their owners, so report them and don't remove them.

    Long-running goal prompt

    Act as the docs-and-plans steward for TypeSafeAI/modex (tracker #290). Goal: every doc and plan tells the truth about current main; every plan is executing, explicitly blocked, or retired with a reason; Val can plan the next session from docs/status.md alone. Each cycle: fetch main and review every commit since the last checkpoint's SHA (cycle 21 starts at 4e9d965). For each landed PR, check that docs/status.md (On main, unreleased; In flight; Known rough edges), the feature docs, the plan files under docs/superpowers/plans and the tracker checkboxes (#273, #319) match the code and evidence. Fix drift in one docs-only PR per cycle from your own worktree (scripts/worktree.sh new docs-steward-cNN). Docs PRs land through the merge guard once CI is green; code goes back to its owner. Check for broken links across all Markdown files. Report merged-but-checked-out worktrees with their owners, and release or remove only your own, with proof. Check disk space. Ask Val on this issue before restructuring status.md, moving or deleting a doc, changing a spec decision or reordering Next. Never tag, release, upload or flip flags. End every cycle with a checkpoint comment: SHAs reviewed, PRs, drift fixed and left, plan states, questions for Val, and the next action.
    

    Follow-up / resume prompt

    Resume the steward from the newest checkpoint on #290. Fetch main; the next cycle covers last-checkpoint-SHA..origin/main. Re-check every drift item marked "left" in that checkpoint before starting new work. List open PRs and check they merge pairwise (compare stacked PRs with their base). Release and remove your previous cycle's worktree if it remains. Run the cycle and post its checkpoint.
    
  16. BunsDev commented on Oct 23, 2026

    @BunsDev
    ContributorAuthor

    Refreshed goal prompts — 2026-10-23 (main at 203a350)

    On main already (landed since 0e674e7, each with its own docs/status.md entry):

    Still open:

    These worktrees are still checked out after their PRs landed: cf3-evidence-repair (#358), cf3-phone-answers (#373), cf6-replay (#389), cf7-claude-plans (#387), cf7-codex-capture (#390), cf7-no-plan (#391), cf7-path-repair (#360), cf7-reopen (#375), cf7-step-linking (#370), cf8-main-sync (#364), cf8-reconcile (#359), codex-native-plan (#385), cr2-cache-denial (#354), cr2-ipc-acceptance (#361) and cr3-inbox-repair (#362). cf7-note-reopen belongs to #374, which closed without merging. Some worktrees have commits that are on no remote branch: lm1-contract (1), lm3-isolation (1) and cr5-remote-diffs (2). These have uncommitted changes and no PR: cf8-integrated-oct22, cr5-integration, lm6-runtimes and lm-foundation. They all belong to their owners, so report them and don't remove them.

    Long-running goal prompt

    Act as the docs-and-plans steward for TypeSafeAI/modex (tracker #290). Goal: every doc and plan tells the truth about current main; every plan is executing, explicitly blocked, or retired with a reason; Val can plan the next session from docs/status.md alone. Read AGENTS.md, ~/.claude/CLAUDE.md, this issue's original prompts and the cycle 20 checkpoint. Each cycle: fetch main and review every commit since the last checkpoint's SHA (cycle 21 covers 4e9d965..origin/main, which includes the CF-3, CF-6 and CF-7 merges #369–#391). For each landed PR, check its claims against code on main. Then make docs/status.md (On main, unreleased; In flight; Known rough edges; Next; the Last updated line), the feature docs (human-requests.md, task-context.md, event-journal.md, design/code-review.md), the plan files under docs/superpowers/plans and the tracker checkboxes (#273 CF, #319 CR, #376 LM) match. Tick a box only on cited evidence; #319's boxes say "accepted", so closed alone is not enough. Trim In flight entries whose work has landed, such as "Code Review inbox integration repair". When #386 (LM-2) lands, check its Local models v1 entry against #376 and its review. Before editing, list open PRs (gh pr list; gh pr diff <n> --name-only) and leave alone any section an open PR changes; today that is all six of #371, #372, #386, #392, #393 and #394. Fix drift in one small docs-only PR per cycle from your own worktree (scripts/worktree.sh new docs-steward-c21); never edit the primary checkout. Sign every commit (git commit -S) and confirm it with git log --show-signature. Docs-only PRs land through the merge guard once CI is green. Code PRs and anything outside docs wait for Val's go-ahead, and code fixes go back to their owners. Check for broken links across all Markdown files on a full export. Report merged-but-checked-out worktrees and unpushed commits with their owners, and release or remove only your own, with proof (docs/worktree-hygiene.md). Check free space on the data volume. Ask Val on this issue before restructuring status.md, moving or deleting a doc, changing a spec decision or reordering Next. Never tag, release, upload or flip flags. End every cycle with a checkpoint comment: SHAs reviewed, PRs, drift fixed and left, plan states with evidence, questions for Val, and the next action.
    

    Follow-up / resume prompt

    Resume the steward from the newest checkpoint on #290 (cycle 20 at 4e9d965 if no cycle 21 exists). Fetch main; the next cycle covers last-checkpoint-SHA..origin/main. Re-check every drift item marked "left" in that checkpoint and in the 2026-10-23 refresh before starting new work. List open PRs and check they merge pairwise (compare stacked PRs with their base); for each that merged since, check its status.md entry and tracker box. Release and remove your previous cycle's worktree if it remains. Run the cycle and post its checkpoint.
    
  17. BunsDev commented on Oct 31, 2026

    @BunsDev
    ContributorAuthor

    Checkpoint: cycle 21, 2026-10-30

    Reviewed: main from 4e9d965 (cycle 20) to f51ef7e, 66 commits, including the v0.4.0 release (tag at 2eda138, published 2026-10-30), CF-3/CF-4/CF-6/CF-7 (#369–#394, #404, #427, #443–#454), CR-4 to CR-8 (#393, #395 via #404, #396, #410, #416, #422, #426, #430, #438, #440, #441), LM-1/LM-2/LM-3/LM-5 (#397, #400, #403, #405, #418, #423, #447, #448) and the OpenCode/MiMo backends (#432). The 2026-10-22 and 2026-10-23 refreshed prompts were never run; their drift items were re-checked here.

    Landed by this session

    PR Merge What
    #460 21f6a70 docs-only: status.md reconciled, six plan ledgers given a state line, one resolved rough edge

    Drift fixed (evidence in #460's diff)

    Plan and spec states

    Trackers

    Worktrees and disk

    scripts/worktree.sh audit keeps all 31. Merged but still checked out (not-proven-merged only because the audit lacks fresh merge proof): cf4-full-suite (#454), cf8-main-sync (#364), cf8-reconcile (#359), cr2-cache-denial (#354), cr2-ipc-acceptance (#361), cr3-inbox-repair (#362). Dirty, no PR of mine: cf8-integrated-oct22 (also mid-git-operation), hosted-budget, lm-foundation, lm5-local-policy, release041-validation, strata-integration. codex-native-plan has a git operation in progress. Nothing was released or removed; none is mine except docs-steward-c21, which I will remove after this merge. Data volume: 6.0 TiB free of 7.3 TiB.

    Drift left, and why

    Questions for Val

    1. May the steward collapse status.md's "v0.4.0 source delivery and remaining acceptance" section to a short list of open gates linking the v0.4.0 review, and trim the In flight histories (CR-6/7/8, Mac App Store, Companion TestFlight, Approval rules) to current state plus links? Each is a restructure of a section another session wrote.
    2. Do [CR-1][P1] Establish the Code Review reference contract and deterministic fixtures #320 (CR-1) and [CR-2][P1] Add a main-owned, revision-aware GitHub PR read service #321 (CR-2) count as "accepted" for [Tracker][CR] Reconstruct the screenshot Code Review workspace end to end #319's boxes on their closing evidence ([CR-1][P1] Establish the Code Review reference contract and deterministic fixtures #320: design page and manifest, R1–R4 originals confirmed gone; [CR-2][P1] Add a main-owned, revision-aware GitHub PR read service #321: Add main's Code Review read service through gh (CR-2) #349 with the authorized read-only smoke on Define the Code Review read contract and fixtures (CR-1) #334/Send a question or a plan to an older paired desktop as a notice it can read (CF-6) #330), or does acceptance need a note from you?
    3. Prepare v0.4.1: desktop version and release review #452 (v0.4.1) merged as 6a97d23 while this cycle ran; its tag and Release workflow are yours. Before it merged, the optional "CLI and installers (linux)" job failed at "Exercise installed Debian and extracted AppImage" on a76cd3d. That is the release owner's call, not the steward's.

    Next action

    After v0.4.1 (#452) publishes: cycle 22 moves the v0.4.1 release into Shipped, folds #446/#448/#453/#455/#456/#458 into its row, and re-runs the link check. If Val answers question 1, the same cycle collapses the v0.4.0 section. Stop condition holds now: no unreconciled drift remains that is not waiting on Val's answer or on #452.

  18. BunsDev commented on Nov 1, 2026

    @BunsDev
    ContributorAuthor

    Steward cycle 22 checkpoint, 2026-11-01

    SHAs reviewed: f51ef7e..32f1cb4 (#452, #459, #460, #461, #462, #465, #466, #464, #463).

    PR: #468, docs-only, signed, auto-merge on; it enters the merge queue when CI is green.

    Drift fixed in #468:

    Drift left:

    Questions for Val (unchanged from cycle 21):

    1. May the steward collapse the "v0.4.0 source delivery and remaining acceptance" section and trim the In flight histories?
    2. Are [CR-1][P1] Establish the Code Review reference contract and deterministic fixtures #320 and [CR-2][P1] Add a main-owned, revision-aware GitHub PR read service #321 accepted?

    Trailer rule followed: this issue's body (Coven-Harness only), which takes precedence over the harness's Co-Authored-By reminder.

    Next action: after #468 merges, remove the docs-steward-c22 worktree through scripts/worktree.sh remove.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

documentationImprovements or additions to documentation

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions