Skip to content

feat(engine): discussion map into the manifest — engine map commands, adapter display, migration 045#385

Open
leeovery wants to merge 8 commits into
feat/engine-beachheadfrom
feat/engine-map-writes
Open

feat(engine): discussion map into the manifest — engine map commands, adapter display, migration 045#385
leeovery wants to merge 8 commits into
feat/engine-beachheadfrom
feat/engine-map-writes

Conversation

@leeovery

Copy link
Copy Markdown
Owner

What

PR 3 of the engine stack (on #384). The discussion map becomes typed state in the manifest, and the engine gains its first write commands.

  • Kernel manifest IOkernel/manifest.cjs: load + atomic save (temp-file rename).
  • domain/map.cjsaddSubtopic / setSubtopicState (enum pending|exploring|converging|decided|deferred, two-level nesting, loud validation) + mapState (decision-ready: counts, all_decided, unresolved).
  • engine map add/set — JSON responses carry the derived state (all_decided, unresolved_count) so the session never needs a follow-up read. No internal commits — the session's existing commit cadence picks the manifest change up.
  • Discussion-map projection + adapterworkflow-discussion-process gets its gateway (map {wu} {topic}): DATA (counts, all_decided, unresolved, review_cycles) + DISPLAY (the tree, hang-off-header — the old ┌─ opener is normalised away).
  • discussion-session.md re-pointed — judgment decides, map set records; the file holds knowledge only (template's map section dropped); convergence + the twice-stated manual cache count collapse into one adapter call; conclude-anyway sets unresolved subtopics deferred and notes them in Open Threads. Full survey of every "Discussion Map" reference across the skill, shared references, and agents — all re-pointed.
  • Migration 045 — parses in-progress discussions' markdown maps into the manifest. Defensive (parse-doubt → skip, never corrupt), idempotent, 15-test harness file.

Judgment calls to review

  • for deferred — collides visually with the discovery tier's ⊙ handled (separate vocabularies, same symbol). Alternatives: / .
  • addSubtopic enforces kebab-case slugs at write time.
  • review_cycles counts review-*.md only (perspective/synthesis files would falsely satisfy the review safety net).
  • Zero-subtopics projection renders header-only rather than throwing.
  • Resume-detection's restart path now also clears subtopics (stale map state would corrupt a fresh start).

Tests

82/82 engine (incl. 27 new map tests: domain, projection goldens, manifest IO, CLI round-trip); epic discovery suite 98/98 unchanged; migration 045 15/15 (044 still green); typecheck clean.

🤖 Generated with Claude Code

leeovery and others added 7 commits June 12, 2026 14:13
…anifests

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…mapState

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…sponses

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
DISCUSSION_GLYPH vocabulary (deferred = ⊙), discussionMap projection over
the kernel tree, and the discussion-process read gateway (map verb: DATA
counts/all_decided/unresolved/review_cycles + DISPLAY block).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…trip

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ds, adapter display

The file template drops its Discussion Map section; subtopics are recorded
via engine map add/set, the status display is the adapter's DISPLAY block,
and convergence/conclusion read all_decided, unresolved, and review_cycles
from one adapter call. deferred joins the lifecycle for conclude-anyway.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…subtopics

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
leeovery added a commit that referenced this pull request Jun 12, 2026
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…scribe map at resume

The first branch row ticks up into the header (hang-off-header grammar,
matching the epic dashboard's no-blank rule). The resume-detection path
now renders the map before the continue/restart gate — previously the
model improvised this display; now it's prescribed.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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