Skip to content

Drop slice from plan-plane kinds; add CueLoop pattern liftout#283

Open
lunelson wants to merge 4 commits into
ln/fe-1115-component-preview-dxfrom
ln/fe-xxx-plan-plane-redesign
Open

Drop slice from plan-plane kinds; add CueLoop pattern liftout#283
lunelson wants to merge 4 commits into
ln/fe-1115-component-preview-dxfrom
ln/fe-xxx-plan-plane-redesign

Conversation

@lunelson

@lunelson lunelson commented Jul 1, 2026

Copy link
Copy Markdown
Contributor

Drop slice from plan-plane kinds; add CueLoop pattern liftout

Plan plane now stops at frontier: remove the premature slice plan kind
from the graph schema and update all consumers (data-model contexts,
web kind display, projection labels), docs, tests, snapshots, and seed
fixtures (slice plan nodes promoted to frontier).

Add docs/design/CUELOOP_PATTERN_LIFTOUT.md as reference-only prior-art
for the orchestrator-tool-port frontier (FE-1107), linked from its
cold-start reads in memory/cards/orchestrator-tool-port--plan-check-tool.md.

Amp-Thread-ID: https://ampcode.com/threads/T-019f1da6-9a65-76cf-a781-911736afc999
Co-authored-by: Amp amp@ampcode.com

Record D101-L plan-plane decision and planning-process-model frontier

Add SPEC decision D101-L: the plan plane stops at frontier, the plan-plane
kind set is {milestone, frontier}, and slice is dropped. Amend D56-L and
D94-L with back-references (D94-L REQ/AC plane-relocation tripwire resolved:
requirement/criterion stay intent-plane). Open a Future Direction bet for the
plan-plane epistemic-horizon / decision-flow model and the candidate scope
node. Close the reference chain in src/graph/TOPOLOGY.md.

Add PLAN frontier planning-process-model (proving): plan-as-projection as the
cheapest first tracer, with the horizon/decision-flow model and scope-node
question deferred behind the epistemic fog.

Amp-Thread-ID: https://ampcode.com/threads/T-019f1da6-9a65-76cf-a781-911736afc999
Co-authored-by: Amp amp@ampcode.com

Doctor-mode testing-plan and first fixes

lunelson and others added 3 commits July 1, 2026 18:26
Plan plane now stops at frontier: remove the premature slice plan kind
from the graph schema and update all consumers (data-model contexts,
web kind display, projection labels), docs, tests, snapshots, and seed
fixtures (slice plan nodes promoted to frontier).

Add docs/design/CUELOOP_PATTERN_LIFTOUT.md as reference-only prior-art
for the orchestrator-tool-port frontier (FE-1107), linked from its
cold-start reads in memory/cards/orchestrator-tool-port--plan-check-tool.md.

Amp-Thread-ID: https://ampcode.com/threads/T-019f1da6-9a65-76cf-a781-911736afc999
Co-authored-by: Amp <amp@ampcode.com>
Add SPEC decision D101-L: the plan plane stops at frontier, the plan-plane
kind set is {milestone, frontier}, and slice is dropped. Amend D56-L and
D94-L with back-references (D94-L REQ/AC plane-relocation tripwire resolved:
requirement/criterion stay intent-plane). Open a Future Direction bet for the
plan-plane epistemic-horizon / decision-flow model and the candidate scope
node. Close the reference chain in src/graph/TOPOLOGY.md.

Add PLAN frontier planning-process-model (proving): plan-as-projection as the
cheapest first tracer, with the horizon/decision-flow model and scope-node
question deferred behind the epistemic fog.

Amp-Thread-ID: https://ampcode.com/threads/T-019f1da6-9a65-76cf-a781-911736afc999
Co-authored-by: Amp <amp@ampcode.com>

lunelson commented Jul 1, 2026

Copy link
Copy Markdown
Contributor Author

@lunelson lunelson marked this pull request as ready for review July 1, 2026 16:28
Copilot AI review requested due to automatic review settings July 1, 2026 16:28
@cursor

cursor Bot commented Jul 1, 2026

Copy link
Copy Markdown

PR Summary

Medium Risk
Retiring slice changes the graph kind contract and fixtures; subagent registration is now always on for TUI boots, widening default Specify-mode tooling compared to the prior dev-gated behavior.

Overview
Plan plane (D103-L): The durable plan kind set is now {milestone, frontier} only — slice is removed from schema, readiness bands, projection labels, plan markdown rendering, agent mapping docs, and seed fixtures (former slice nodes retyped as frontier). SPEC/PLAN record the decision, resolve the D94-L REQ/AC tripwire, and add a planning-process-model proving frontier plus docs/design/CUELOOP_PATTERN_LIFTOUT.md as prior-art for orchestrator-tool-port.

Product UX: Operational modes show Specify / Execute in chrome, commands, and composed prompts (internal ids elicit / execute unchanged). The subagent tool is a normal Specify-mode affordance: always registered on TUI launch with the full delegatable set; --dev-tools gates only dev query tools, not subagents.

Verification & dev: New TESTING_PLAN.md and src/dev/README.md document demo/audit loops; CI check swaps check:data-model for check:promoted-run-paths and verify no longer runs markdown-links. formatGraphNodeCode fails with a reseed hint on retired persisted kinds (e.g. old slice rows).

Misc: Elicitation doc tweaks (scratchpad vs kinds; plan questions stop at frontier); component preview gallery uses width-aware truncation; graph TOPOLOGY notes unsorted query row order.

Reviewed by Cursor Bugbot for commit 74aacb3. Bugbot is set up for automated code reviews on this repo. Configure here.

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 5927125. Configure here.

Comment thread src/graph/schema/nodes.ts

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Removes the premature slice node kind from the plan plane (plan plane now stops at frontier) and updates schema/projections/UI/tests/fixtures to match, while also making the product subagent tool available in Specify mode (no longer dev-gated) and adding CueLoop prior-art reference documentation.

Changes:

  • Drop slice from plan-plane kinds (PLAN_KINDS = { milestone, frontier }) and update plan ordering, labels, UI kind display, tests, snapshots, and seed fixtures accordingly.
  • Promote product subagents: register/allow the subagent tool under Specify-mode policy, update dev docs/usage strings, and improve operational-mode labeling in prompts/commands/chrome.
  • Add reference docs (CUELOOP_PATTERN_LIFTOUT.md) and a repo-level TESTING_PLAN.md, and update SPEC/PLAN to record the new D103-L decision + planning-process-model frontier.

Reviewed changes

Copilot reviewed 62 out of 62 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
TESTING_PLAN.md Adds a demo/audit checklist for manual validation of current dev loops and observability surfaces.
src/web/features/graph/kind-display.ts Removes slice from UI kind labels and display ordering.
src/web/components/tests/node-card.test.tsx Updates KindBadge expectations to use frontier instead of slice.
src/README.md Terminology update: “SPEC-mode” → “Specify-mode”.
src/graph/TOPOLOGY.md Updates decision reference list to include the new plan-plane decision.
src/graph/schema/nodes.ts Removes slice from node metadata and latest-expected-band mapping.
src/graph/schema/kinds.ts Removes slice from PLAN_KINDS.
src/graph/projection/labels.ts Removes refinement mapping that referenced slice.
src/graph/projection/tests/labels.test.ts Drops refine-matrix coverage for requirementslice.
src/graph/tests/queries.test.ts Removes slice from node-kind metadata/readiness expectations.
src/graph/tests/command-executor.test.ts Updates plan-node creation test to create a frontier node.
src/dev/TOPOLOGY.md Clarifies --dev-tools enables query tools only; subagents are product-enabled.
src/dev/README.md Documents npm run dev flows and clarifies debug mirrors vs --dev-tools.
src/dev/dev-cli.ts Updates usage text for --dev-tools vs product subagents.
src/dev/tests/tier-2-harness.test.ts Asserts subagent tool is present/active in product boot (not dev-gated).
src/app/pi-subagents.ts Updates documentation comment to reflect product subagent registration behavior.
src/app/pi-extensions.ts Removes subagent from dev opt-in channel; keeps dev opt-in for query tools only.
src/app/brunch-tui.ts Enables subagents by default for normal launches; wires delegatable set into boot.
src/app/tests/brunch-tui.test.ts Updates boot test expectations to reflect product-enabled subagents and dev-gated query tools.
src/agents/TOPOLOGY.md Terminology update: “SPEC-mode” → “Specify-mode”.
src/agents/subagents/TOPOLOGY.md Terminology update for prompt-mode naming.
src/agents/skills/map/references/map-plans.md Updates plan-plane guidance: stop at frontier, no plan-plane slice.
src/agents/runtime/TOPOLOGY.md Terminology update: “SPEC/CODE” → “Specify/Execute”.
src/agents/runtime/executor/TOPOLOGY.md Terminology update and clarifies Execute-mode executor responsibility.
src/agents/runtime/executor/compose-prompt.ts Improves executor control header with product/operational-mode labels.
src/agents/runtime/elicitor/TOPOLOGY.md Terminology update: “SPEC-mode” → “Specify-mode”.
src/agents/runtime/elicitor/compose-live-prompt.ts Types operational mode id and renders both id + label in control header.
src/agents/runtime/elicitor/active-tools.ts Adds subagent to the live elicitor allowed-tool list.
src/agents/runtime/elicitor/tests/active-tools.test.ts Updates tool-policy tests for product subagent + dev query tool behavior.
src/agents/runtime/elicitor/snapshots/live-elicitor-prompt.md Snapshot update for new control header lines.
src/agents/prompts/TOPOLOGY.md Updates product-label terminology (Specify/Execute).
src/agents/prompts/executor.md Wording tweak for Execute prompt intro.
src/agents/prompts/elicitor.md Wording tweak for Specify-mode prompt intro.
src/agents/contexts/data-model/session/runtime-frame.ts Renders operational-mode label + id in session runtime frame.
src/agents/contexts/data-model/session/snapshots/runtime-frame-ready.md Snapshot update for new runtime-frame render.
src/agents/contexts/data-model/plan/plan-output.ts Removes slice from plan-node ordering.
src/agents/contexts/data-model/plan/tests/plan-output.test.ts Updates plan-output fixture to use frontier instead of slice.
src/agents/contexts/data-model/plan/snapshots/plan-output.md Snapshot update for plan output without slice.
src/agents/contexts/data-model/graph/tests/graph-slice.test.ts Updates assertions for plan-node code changes (F2 vs S1).
src/agents/contexts/data-model/graph/snapshots/related-hub-REQ1.md Snapshot update reflecting promoted frontier node and label changes.
src/agents/contexts/data-model/graph/snapshots/neighborhood-hub-REQ1.md Snapshot update reflecting promoted frontier node and label changes.
src/agents/contexts/data-model/graph/snapshots/neighborhood-hub-REQ1-hops2.md Snapshot update reflecting promoted frontier node and label changes.
src/agents/contexts/data-model/graph/snapshots/neighborhood-hub-REQ1-compact.md Snapshot update reflecting promoted frontier node and label changes.
src/agents/contexts/data-model/graph/snapshots/graph-overview-kind-coverage-matrix.md Snapshot updates: legend, plan codes, and edges after slice removal.
src/.pi/extensions/subagents/TOPOLOGY.md Updates extension documentation for product-enabled subagents.
src/.pi/extensions/commands/index.ts Uses operational-mode labels in notifications/completions and improves unknown-mode message.
src/.pi/extensions/chrome/index.ts Displays operational-mode label in chrome footer instead of raw id.
src/.pi/extensions/tests/commands-runtime-switch.test.ts Updates expectations for new mode labeling in notifications.
src/.pi/extensions/tests/chrome.test.ts Updates footer-line expectation for new mode labeling.
memory/SPEC.md Records D103-L plan-plane decision and updates cross-references/future-direction notes.
memory/PLAN.md Adds planning-process-model frontier and updates sequencing list.
memory/cards/orchestrator-tool-port--plan-check-tool.md Adds CueLoop liftout doc to cold-start reads for FE-1107.
docs/design/ELICITATION_QUESTIONS.md Updates plan-plane kind set and question prompt guidance after slice removal.
docs/design/CUELOOP_PATTERN_LIFTOUT.md Adds CueLoop prior-art pattern liftout for orchestrator-tool-port.
.fixtures/seeds/yamlbase/base.json Promotes plan slice nodes to frontier in the seed.
.fixtures/seeds/rd-loop/base.json Promotes plan slice nodes to frontier in the seed.
.fixtures/seeds/kind-coverage-matrix/base.json Promotes plan slice node to frontier in the seed.
.fixtures/seeds/fable/base.json Promotes plan slice nodes to frontier in the seed.
.fixtures/seeds/edge-hub-neighborhood/base.json Promotes plan slice node to frontier in the seed.
.fixtures/seeds/edge-category-directions/base.json Promotes plan slice node to frontier in the seed.
.fixtures/seeds/dumpchat/base.json Promotes plan slice nodes to frontier in the seed.
.fixtures/seeds/brunch-self/base.json Promotes plan slice nodes to frontier in the seed.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/app/brunch-tui.ts Outdated
Comment on lines +411 to +414
delegatableAgents:
agentState.operationalMode === 'elicit'
? ['explorer', 'researcher', 'projector', 'reviewer']
: [],
Comment thread docs/design/CUELOOP_PATTERN_LIFTOUT.md Outdated
Comment on lines +14 to +16
- **Companion prior art:** the external `../brunch` orchestrator
([`/Users/lunelson/Code/hashintel/brunch/ORCHESTRATOR.md`](/Users/lunelson/Code/hashintel/brunch/ORCHESTRATOR.md)
and `src/orchestrator/src/`), already listed in the card's cold-start reads.
Comment thread memory/SPEC.md
| D99-L | Reviewed advisory capture is graph-persistable but not self-settling. Bulk acquisition from arbitrary sources (brownfield code, referenced documents, pasted specs/plans, design concepts) first produces an assistant-authored digest and discussion; once the user confirms the understanding, graph-shaped material may be persisted with a settlement dimension separate from `basis`. `advisory` settlement means "accepted as observed/source-derived signal, still requiring harmonization against inner-band concerns and later projection"; `settled` means "accepted as current spec truth/commitment for its band." Early outer-band signal is the common advisory case: later-band material captured inside a smaller concern envelope must be carried forward for promotion, rewrite, supersession, or reconciliation rather than treated as globally fixed. Depends on: D63-L, D64-L, D80-L, D81-L, D82-L, D94-L. | Materialized (2026-07-01, Card 5): `NODE_SETTLEMENTS` (`src/graph/schema/kinds.ts`), `GraphNode.settlement` / `GraphEdge.settlement` (nodes/edges tables default `settled`); `mutate_graph`'s `createSettlement` param persists advisory bulk-acquisition material. Design ledger: [`docs/design/SESSION_LOCAL_ELICITATION_GAPS.md`](docs/design/SESSION_LOCAL_ELICITATION_GAPS.md). | active |
| D101-L | Session-local elicitation-gap scratchpad replaces the persisted spec-scoped register (supersedes D65-L). "What still needs asking" is cumulative session state — a todo.ts-style scratchpad the elicitor reads/writes turn-by-turn via a Brunch session-state extension (a new `brunch.elicitation_scratchpad` custom transcript entry following the `src/session/runtime-state.ts` fold pattern, plus read/write tools replacing `read_elicitation_gaps`/`update_elicitation_gaps`). Non-authoritative (I56-L): durable truth stays in the graph; low-confidence noticings land here, not the graph (D81-L). Foreground world reads and subagents receive it in their session snapshots (`src/.pi/extensions/agent-runtime/system-prompts/world-reads.ts`, `src/app/pi-subagents.ts`). Depends on: D65-L, D81-L, D102-L; I56-L. | [`src/session/elicitation-scratchpad.ts`](src/session/elicitation-scratchpad.ts), [`src/session/TOPOLOGY.md`](src/session/TOPOLOGY.md), [`src/.pi/extensions/brunch-data/elicitation/scratchpad-tools.ts`](src/.pi/extensions/brunch-data/elicitation/scratchpad-tools.ts). | active |
| D102-L | A session's scratchpad starts from a thin, graph-derived neutral seed (facts, not scores) and orientation is prompt-guided: the elicitor.md system prompt carries the "new session → establish orientation → focus a vein" directive that turns the neutral seed into a session-specific asking agenda. Orientation is prompt behavior, not a new persisted product primitive; the seed carries no readiness scores or coverage counts (D45-L). Derivation detail is unresolved (A36-L). Depends on: D101-L, D94-L; A36-L. | [`src/agents/contexts/seeds/graph-fact-seed.ts`](src/agents/contexts/seeds/graph-fact-seed.ts), [`src/agents/prompts/elicitor.md`](src/agents/prompts/elicitor.md). Derivation stays the raw-facts shape confirmed 2026-07-01 (A36-L); richer derivation remains open. | active |
| D103-L | Plan plane stops at `frontier`; the durable plan-plane kind set is `{milestone, frontier}` and `slice` is dropped. Rationale: plan-plane graph truth is mostly *projection* from intent/oracle/design down to milestones and frontiers, but the epistemic horizon (fog-of-war) and non-structural sequential dependency bite at the *scoping* level, where extending horizon or gaining parallelism are design-style decision-flow trade-offs made per scope at build time (`ln-scope`/`ln-build`), not durable graph nodes. `slice` was premature: no reader consumed it, and it conflated projectable plan truth with horizon-bounded execution scoping. Buildable slicing is downstream scoping/execution (the ln-scope/ln-build scope-card process unit), not a plan node. Resolves the D94-L held-open REQ/AC plane-relocation tripwire: with plan-plane granularity settled, `requirement`/`criterion` stay intent-plane and acceptance criteria do not become slice-connected plan nodes. A durable accountability node below `frontier` (candidate `scope`, orchestration/executor-owned per D98-L) and the plan-plane epistemic-horizon/decision-flow model are deferred to the planning-persistence future direction, not built here. Relates: D87-L (`unknown` = horizon made first-class on the intent plane), D99-L (advisory/settled epistemic vocabulary). Depends on: D56-L, D94-L. Amends: D56-L (plan-kind enumeration), D83-L (plan-output kind list). Supersedes: the `slice` plan-plane node kind. | [`src/graph/TOPOLOGY.md`](src/graph/TOPOLOGY.md); `PLAN_KINDS` in [`src/graph/schema/kinds.ts`](src/graph/schema/kinds.ts) | active |
Comment on lines +3 to +4
> **Status:** product SPEC-mode wiring active. Normal Brunch launches inject the
> selected parent spec/workspace/session snapshot, spec-bound graph readers, and
Code:
- gallery-component: ANSI-safe width truncation via pi-tui truncateToWidth
- component-preview: deep-link path stops the TUI in finally so a throwing
  entry cannot leave the terminal raw
- graph-fact-seed: zero-count detection uses === undefined, not falsy
- brunch-tui: subagents always registered with the code-owned delegatable
  set; per-mode tool policy (elicitor/executor allowlists) decides
  advertisement instead of boot-time conditional registration
- nodes.ts formatGraphNodeCode: loud descriptive error for persisted
  out-of-enum kinds (e.g. retired slice), naming the reseed remedy

Docs:
- AGENTS.md verification recipe matches package.json (check ends with
  check:promoted-run-paths; verify is fix→test→build)
- dev/TOPOLOGY.md drops nonexistent dev:components:watch
- session/TOPOLOGY.md: scratchpad projection comes from the session-branch
  entries fold, not spec-scoped reads
- subagents/TOPOLOGY.md: Specify-mode terminology + unconditional
  registration semantics
- ELICITATION_QUESTIONS.md scratchpad item description matches real schema
- CUELOOP_PATTERN_LIFTOUT.md drops absolute local path link
- graph/TOPOLOGY.md names the row-order contract (unspecified; consumers sort)

Also refreshes three file snapshots stale since the D103-L slice removal.

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.

2 participants