Skip to content

roadmap: per-area files, every item re-verified (spec §6 migration) - #14

Merged
itsdestin merged 10 commits into
masterfrom
feat/roadmap-migration
Sep 2, 2026
Merged

roadmap: per-area files, every item re-verified (spec §6 migration)#14
itsdestin merged 10 commits into
masterfrom
feat/roadmap-migration

Conversation

@itsdestin

@itsdestin itsdestin commented Sep 2, 2026

Copy link
Copy Markdown
Owner

Part 2 of docs/active/plans/2026-09-01-roadmap-restructure-tooling.md — the migration itself. ROADMAP.md becomes an index; the backlogs are docs/roadmap/<area>.md; closed items live in docs/roadmap/shipped.md.

What the tool says on the tip commit (node scripts/roadmap-check.mjs --fix): structure clean · 103 claim anchors checked, 0 broken · 19 decisions waiting on Destin · index rewritten.

How it was done: 19 agents (13 areas + native-harness by sublevel) each re-classified their items by the filing test and re-checked them against today's code; 96 new reports under docs/active/investigations/ carry one claim anchor each, every regex tested to match exactly once. 19 items closed on evidence. The coordinator placed ~40 items that crossed areas.

Companion PR: itsdestin/youcoded#378 (the sub-repo's "see ROADMAP" pointers).

Still to do before merge (Destin's pass, spec §6.3.3): answer the 19 decision items and the could-not-verify list in the session; answers are applied as a follow-up commit. The "Where the app stands" paragraphs are a draft for him to edit.

Two tool quirks found by the migration, not in the spec: checkAnchor matches without the m flag (a ^ in contains only matches line 1) and harvestDocAnchors strips backtick spans before parsing (a backtick inside contains is deleted). Seven anchors were rewritten around them; worth a note in the spec or a fix in the tool.

🤖 Generated with Claude Code

https://claude.ai/code/session_011TfjZg26EBtRFEZeZHGceQ

Audit (spec §6.3.7): docs/audits/2026-09-01.md — mechanical pass green, twelve rules re-verified against code, 62 doc corrections across three repos, one residue item (flip strayRuleDirs to a failure after youcoded #378 merges). Companion docs PRs: itsdestin/youcoded#378, itsdestin/wecoded-marketplace#81.

itsdestin and others added 10 commits September 1, 2026 13:57
First commit of the migration (spec §6.1.2). The old single-file roadmap is the parent
commit of this one; the last single-file commit on master is 315586b.

shipped.md carries every [x] item from the old file (168, not the 150 the spec
estimated): only 19 sat under the old '## Shipped' heading — the other 149 had been
flipped in place inside Bugs/Features/release sections, so the plan's sed over the
Shipped section alone would have dropped them.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011TfjZg26EBtRFEZeZHGceQ
…gainst today's code

The single-file ROADMAP.md becomes an index (pillar prose, next-release list, a
counts table) over docs/roadmap/<area>.md. Every one of the 248 open items was
re-classified by its area's filing test and re-checked against the code by one of
19 agents (13 areas, native-harness split by sublevel), then the coordinator placed
the 40-odd items that moved between areas.

Outcome, as `node scripts/roadmap-check.mjs --fix` reports it on this commit:
structure clean · 103 claim anchors checked, 0 broken · 19 decisions for Destin ·
index rewritten. 240 open entries; 19 items closed to shipped.md on evidence (a
commit, a PR, or "no longer reproduces"); 96 new reports under
docs/active/investigations/ each carry one claim anchor tested to match exactly once.

Coordinator notes worth knowing:
- The plan expected 150 shipped items under the old "## Shipped" heading; only 19 were
  there, the other 149 had been flipped in place. shipped.md carries all 168.
- Seven anchors were rewritten: checkAnchor matches the whole file without the `m`
  flag, so `^` never matches past line 1, and harvestDocAnchors strips backtick spans
  before parsing, so a backtick inside `contains` is deleted before the regex is built.
  Neither is in the spec; both bit real agents.
- Two older reports gained an anchor instead of a duplicate 2026-09-01 file
  (2026-08-16-dual-model-oom, 2026-08-17-cache-efficiency).
- Doc sweep: every live "see ROADMAP" instruction site in this repo now points at the
  filing rule or the item's area file; sub-repo pointers are youcoded PR #378.
  engine-local-models.md's orphaned-partials bullet named a channel and a function
  that no longer exist and was rewritten from the code.
- scripts/roadmap-legacy-worksheet.mjs is deleted (git history keeps it; spec §1).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011TfjZg26EBtRFEZeZHGceQ
…les)

Each correction was verified against the code by a read-only agent and re-checked
before editing; file:line evidence is in docs/audits/2026-09-01.md (next commit).

- android-runtime: setup-node@v7 (both Android workflows); syncGhTokenToNetrc runs in
  first-run Bootstrap.setup(), not per session.
- artifacts: countArtifacts/countAllFiles live in artifacts/projects-index.ts and do not
  share a cache; Android's check-existence is a stub, and import-file/search-content/
  watch-project are not-implemented-on-mobile too.
- engine-local-models: pin is b10665; card states are idle|loading|error; the
  orphaned-partials channel is gone (partial rows resume via models:resume); the rule now
  also covers providers/provider-registry.ts, which owns ensureServable.
- harness-evaluator: max_steps is allowed once (STEP_GATE_ALLOWANCE); two exempt read
  roots (spill root + internalReadRoots); orchestrator and estimate tests pinned.
- landing-page: the embed's theme button clicks the app's own Appearance row (the swatch
  bar and its sync hook went in 8d077dcd); never-claim list is the audit's; anchor moved
  onto index.html.
- narrow-viewport: 700px structural collapse still exists in globals.css; TerminalRightSlot
  has one .frame-edge; TOGGLE_PANEL has three callers; the shim adopts the server's
  platform unless preservePlatform is set.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011TfjZg26EBtRFEZeZHGceQ
…links, add frontmatter to the May glass-theme spec

docs/active held six documents whose own frontmatter already said shipped or
superseded (quick-chip-edit-surface spec, orientation-block handoff, perf-lab plan,
remote-hydration plan, the sidecar-OOM and black-glyphs investigations). Moved to
docs/archive/ in place; the twelve live references (perf-lab README, three handoffs,
three plans/specs, one 2026-09-01 report, one roadmap entry, the session prompt) now
carry the archive path. The floating-glass spec had a bold Status line but no YAML
frontmatter, so the lifecycle sweep could not see it; it now says status: draft.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011TfjZg26EBtRFEZeZHGceQ
…n all twelve; file three findings

Semantic pass, second half (each correction verified against code by a read-only agent):
- native-runtime: createSession throws only for a fresh binding-less native session;
  ~/.youcoded writes go NativeHome.mutateJson → mutateFileUnderLock; native:interrupt /
  native:retry are fire-and-forget on both transports.
- react-renderer: text-ramp thresholds are 8/5.5/4/3/2 on five surfaces (contrast-rules.js);
  useNarrowViewport() is the sanctioned viewport branch; the attentionMap diff lives in
  App's statusData handler, not the shim.
- registries: rebuild-on-merge is gated on a plugin.json dir changing; the theme size gate is
  the directory; the reconciler expands only {{plugin_root}} and honours command_windows;
  sourceMarketplace value is "youcoded".
- sync-spaces: only the description dimension uses {v,at} wrappers; a Personal-pull
  runDiscovery() follows the hub send in broadcast().
- worker-backend: admin routes call requireAdminAccount(c); the deploy job typechecks before
  npm test; KNOWN_DEV_DEVICES is not a CI-pushed secret; catalog-ingest shipped 2026-08-30.
- test-suite-hygiene depth: ipc-handlers is ~4,500 lines; the watchdog margins are
  4 ms vs 250/400 ms; shell ids are random hex; verify.sh's test-file count was 296 → ~600.

Three findings became roadmap items (marketplace ## install ×2 — ${PACKAGE_DIR} is expanded
by nobody, platforms[] is read as platform — and dev-workspace ## release — the vendored
terminal emulator is labelled GPLv3 in build.gradle.kts and Apache 2.0 in VENDORED.md).

last_verified: 2026-09-01 on the twelve rules the diff scope named. Four rules were trimmed
back under the 600-word budget after the corrections.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011TfjZg26EBtRFEZeZHGceQ
…corrections, residue 1

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011TfjZg26EBtRFEZeZHGceQ
… / proposal / options with user-experience pros and cons

Destin's roadmap pass was first handed over as 38 one-line questions in chat and rejected
("this sucks as an answer surface"). scripts/questions/serve.py renders a JSON spec as one
page of cards — each with the four labelled parts, option buttons carrying pros/cons about
the user's experience, an optional note, autosave and one Submit — serves it on loopback,
opens the browser, and prints every answer when he submits. CLAUDE.md gains the rule (four
or more questions → the deck, written for a reader with no context, plain words); the
migration plan's M3 step 3 now points at it.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011TfjZg26EBtRFEZeZHGceQ
16 of 19 decisions resolved into work or closed; three stay open pending a plainer
explanation or a recommendation (layout insets, queued-message refill, GB convention).
Seven items closed to shipped.md: the triage tool (the /wrap-up skill supersedes it), the
worded vote counts (kept), the v1.3 Connected-accounts gate (confirmed), the sync-without-gh
VM test (done), the theme-builder end-to-end run (done), the Android wallpaper-in-terminal
bug (gone), and the sync rule's over-broad status-colour line (reworded in this commit).
Three new items from the notes: the post-1.3 formalization push (youcoded.ai, stores,
signing, LLC), Z13 touchscreen keyboard misbehaviour, and encrypting the remote channel
(which now blocks exposing files/projects/games over remote). The rig-only terminal-wrap
bug moved to dev-workspace → rigs and lost its v1.3 flag; the Assistant-settings panel
gained one (pre-1.3 priority). Don't-know answers flipped to needs-verify per spec §3.3.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011TfjZg26EBtRFEZeZHGceQ
…po rules now fail the audit

The three lifecycle docs move to docs/archive/ with status: shipped, and every live pointer
(ROADMAP.md's filing rule, the edit hook, /audit, the tool's header) follows them.
youcoded PR #378 merged today and deleted the one stray .claude/rules/ fork, so
audit-anchors.mjs turns strayRuleDirs from a WARN into a failure (result.ok now includes
it) and the 2026-09-01 audit report's residue drops to 0. native-runtime.md trimmed two
words for budget margin.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011TfjZg26EBtRFEZeZHGceQ
@itsdestin
itsdestin marked this pull request as ready for review September 2, 2026 09:09
@itsdestin
itsdestin merged commit 6744e8e into master Sep 2, 2026
1 check passed
@itsdestin
itsdestin deleted the feat/roadmap-migration branch September 2, 2026 09:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant