Skip to content

FE-811: Elicitor cross-cut groundwork and read/project/render cleanup#177

Merged
lunelson merged 34 commits into
nextfrom
ln/fe-811-poc-live-ship-blockers
Jun 8, 2026
Merged

FE-811: Elicitor cross-cut groundwork and read/project/render cleanup#177
lunelson merged 34 commits into
nextfrom
ln/fe-811-poc-live-ship-blockers

Conversation

@lunelson

@lunelson lunelson commented Jun 6, 2026

Copy link
Copy Markdown
Contributor

What This Branch Actually Landed

  • reconciles the elicitor cross-cut into canonical planning, including coverage-frontier language, the D65-L elicitation_backlog promotion, and the remaining temporary cross-cut residue
  • broadens graph, workspace, and session read coverage with list-by-kind, list-by-band, related, gaps, and context reads used by observer/render work
  • retires snapshot as an architecture noun in favor of the read -> project -> render split, and realigns exchange renderers under src/renderers/exchanges
  • lands the pin-only freestyle strategy and ordinary-message explicit-text capture as part of the elicitor cross-cut completion work
  • adds the supporting fixture, preview, probe, and skill/test updates needed to make those seams legible and verifiable

Not This PR

  • this is not the final poc-live-ship-gate frontier itself; the FE-811 branch name is now mostly historical stack ancestry

lunelson commented Jun 6, 2026

Copy link
Copy Markdown
Contributor Author

@lunelson lunelson changed the title Prune stale scope cards FE-811: Elicitor cross-cut groundwork and read/project/render cleanup Jun 8, 2026
@lunelson lunelson marked this pull request as ready for review June 8, 2026 08:16
Copilot AI review requested due to automatic review settings June 8, 2026 08:16
@cursor

cursor Bot commented Jun 8, 2026

Copy link
Copy Markdown

PR Summary

Low Risk
Changes are mostly planning docs, agent skills, and fixture/report data; no runtime product code appears in the diff, so merge risk is low aside from agents following updated PLAN sequencing.

Overview
Reconciles the elicitor cross-cut into canonical planning and agent workflow: adds Mode: coverage scope files and row-driven ln-build loops, documents horizontal coverage frontiers in ln-plan/ln-consult/ln-scope, and introduces contract / ambient-contract review cues in ln-review and ln-judo-review.

Adds temporary memory/CROSS_CUT_PLAN.md (READ/WRITE/KNOW row ledger) and reshapes memory/PLAN.md: elicitation-backlog is active; poc-live-ship-gate moves next with live-mention work parked; new follow-ons graph-observed-shapes, runtime-affordances-and-legality, and horizon exchanges-and-generalized-capture.

Architecture and design docs retire snapshot as a noun in favor of graph/context reads, active vs graph_truth projections, and projections/exchanges + renderers/exchanges naming; probe/fixture docs use graph-overview.json and repo-relative artifact paths with <ephemeral-workspace> instead of machine-local cwd/absolute paths.

Fixture work adds hand-authored spread seeds (edge-spread, kind-band-spread, workspace-spread), Bilal port duplicate-edge precedence (source over synthetic on key collision) with tests, and normalized committed report.json artifacts under .fixtures/runs/.

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

"sessionJsonl": "runs/fixture-curation/fixture-curation-2026-06-05T104440Z/session.jsonl",
"transcriptMarkdown": "runs/fixture-curation/fixture-curation-2026-06-05T104440Z/transcript.md",
"reportJson": "runs/fixture-curation/fixture-curation-2026-06-05T104440Z/report.json",
"graphSnapshotJson": "runs/fixture-curation/fixture-curation-2026-06-05T104440Z/graph-snapshot.json"

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Stale graph artifact field name

Medium Severity

Committed probe report.json files still expose artifacts.graphSnapshotJson pointing at graph-snapshot.json, while the same change retires that naming in .fixtures/README.md and probe writers persist graphOverviewJson and graph-overview.json. Portable path edits alone leave reference runs on a different contract than new runs and docs.

Additional Locations (1)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit f9274fc. Configure here.

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

This PR completes a broad “snapshot → read/project/render” terminology and topology cleanup across the web sidecar, RPC layer, Pi extensions, graph query surface, and probes/tests—while adding new context-read tools, expanding graph read modes, and landing the pin-only freestyle strategy plus ordinary-message explicit-text capture support.

Changes:

  • Renames workspace “snapshot” to workspace “state” across RPC/web query keys, subscriptions, routes, and docs.
  • Replaces graph “snapshot” reads with an expanded graph/queries read surface (overview, neighborhood, slices, related, gaps) and wires it through the runtime and Pi tools.
  • Adds/updates render-preview + golden preview infrastructure, portable probe artifact paths, and exchange projector/renderer re-homing under projections/exchanges + renderers/exchanges.

Reviewed changes

Copilot reviewed 189 out of 196 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
src/web/subscriptions/brunch-updates.ts Update invalidation topics/keys from workspace.snapshotworkspace.state.
src/web/routes/spec.tsx Route loader + components now read/render workspace state.
src/web/README.md Update topology docs and query-key examples to workspace.state.
src/web/query-keys.ts Rename workspace key family from snapshot() to state().
src/web/queries/workspace.ts Rename queryOptions + RPC method from snapshot → state.
src/web/queries/graph.ts Point graph web types at graph/queries instead of snapshot module.
src/web/features/graph/GraphOverview.tsx Update GraphOverview type import path.
src/session/structured-exchange-loop.ts Re-home exchange projectors/renderers; round-trip respondsToPresentTool.
src/session/structured-exchange-loop.test.ts Add test proving present_candidates provenance survives and affects capture tool.
src/session/runtime-state.ts Add freestyle strategy id; export strategy id list.
src/session/runtime-state.test.ts Test freestyle parsing; rename mention watermark field to seenLsn.
src/session/README.md Update lexicon from snapshot language to context/read language.
src/session/jsonl-session-viability.test.ts Update mention payload field name to seenLsn.
src/scripts/render-preview.ts New CLI script for deterministic renderer previews from seeded fixtures.
src/scripts/README.md Document new render-preview utility and updated print-mode wording.
src/rpc/websocket.ts Use WebSocket.OPEN-based readiness predicate for send safety.
src/rpc/web-host.test.ts Update RPC method names/expectations to workspace.state.
src/rpc/README.md Update method catalog (workspace.state, session.submitMessage) and topic list.
src/rpc/protocol.test.ts Update protocol tests to use workspace.state.
src/rpc/product-updates.ts Rename update topic union + selected-session updates to workspace.state.
src/rpc/methods/workspace.ts Rename read method to workspace.state; project via projectWorkspaceState.
src/rpc/methods/registry.ts Make method registry enforce uniqueness (throw on duplicates).
src/rpc/methods/registry.test.ts New tests for duplicate-method detection and indexing.
src/renderers/workspace/workspace-state.ts New print-mode renderer for workspace state.
src/renderers/workspace/workspace-state.test.ts Update print-mode tests to state projector/renderer.
src/renderers/workspace/workspace-snapshot.ts Remove snapshot renderer (replaced by workspace-state).
src/renderers/workspace/workspace-context.ts New renderer for workspace cwd inventory / workspace overview context.
src/renderers/toon.ts Update docstring terminology from “snapshots” to “context”.
src/renderers/structured-exchange/capture-review.ts Remove retired structured-exchange capture stub.
src/renderers/structured-exchange/capture-choices.ts Remove retired structured-exchange capture stub.
src/renderers/structured-exchange/capture-choice.ts Remove retired structured-exchange capture stub.
src/renderers/structured-exchange/capture-candidate.ts Remove retired structured-exchange capture stub.
src/renderers/structured-exchange/capture-answer.ts Remove retired structured-exchange capture stub.
src/renderers/session/runtime-frame.ts New renderer for selected-session runtime “frame” context.
src/renderers/session/runtime-frame.test.ts Golden-style preview test for runtime-frame rendering.
src/renderers/session/previews/runtime-frame-ready.md New locked preview artifact for runtime-frame rendering.
src/renderers/README.md Update renderer topology: structured-exchange → exchanges, snapshot → state.
src/renderers/markdown.ts Update docstring references to renderers/exchanges/*.
src/renderers/graph/reconciliation-needs.ts Update terminology from snapshot → context.
src/renderers/graph/overview.ts Update terminology from snapshot → context.
src/renderers/graph/neighborhood.ts Update terminology from snapshot → context.
src/renderers/graph/neighborhood.test.ts Add locked preview test for graph neighborhood preview output.
src/renderers/graph/previews/neighborhood-code-health-R1.preview.md New preview artifact for neighborhood renderer/script output.
src/renderers/graph/previews/neighborhood-code-health-R1.md New golden snapshot for neighborhood preview locking.
src/renderers/exchanges/request-review.ts Update imports to projections/exchanges/*.
src/renderers/exchanges/request-choices.ts Update imports to projections/exchanges/*.
src/renderers/exchanges/request-choice.ts Update imports to projections/exchanges/*.
src/renderers/exchanges/request-answer.ts Update imports to projections/exchanges/*.
src/renderers/exchanges/present-review-set.ts Update imports to projections/exchanges/*.
src/renderers/exchanges/present-question.ts Update imports to projections/exchanges/*.
src/renderers/exchanges/present-options.ts Update imports to projections/exchanges/*.
src/renderers/exchanges/present-candidates.ts Update docstring path reference to projections/exchanges/*.
src/README.md Update repo topology/migration notes (snapshot → state; structured-exchange → exchanges).
src/projections/workspace/workspace-state.ts Rename DTO + projector to WorkspaceState / projectWorkspaceState.
src/projections/workspace/workspace-context.ts New workspace context projection types + constructors.
src/projections/topology-boundaries.test.ts Update structured-exchange exception list paths to exchanges.
src/projections/structured-exchange/capture-review.ts Remove retired projection stub.
src/projections/structured-exchange/capture-choices.ts Remove retired projection stub.
src/projections/structured-exchange/capture-choice.ts Remove retired projection stub.
src/projections/structured-exchange/capture-candidate.ts Remove retired projection stub.
src/projections/structured-exchange/capture-answer.ts Remove retired projection stub.
src/projections/session/runtime-state.ts Rename mention watermark field read to seenLsn.
src/projections/session/runtime-policy.ts Allow freestyle strategy for elicitor role.
src/projections/README.md Update topology doc: structured-exchange → exchanges; snapshot → state.
src/projections/graph/reconciliation-needs.ts Update docstring references to graph/queries.
src/projections/graph/overview.ts Update docstring references to graph/queries.
src/projections/graph/neighborhood.ts Import NeighborhoodResult from graph/queries and stop leaking edge ids in edge strings.
src/projections/exchanges/review-set-payload.ts New adapter from review-set details payload → graph review-set proposal payload.
src/projections/exchanges/request-review.ts New canonical projector for request_review details.
src/projections/exchanges/request-choices.ts New canonical projector for request_choices details.
src/projections/exchanges/request-choice.ts Add present-tool provenance → capture-tool derivation in tool_meta.
src/projections/exchanges/request-choice.test.ts New tests proving request_choice next-tool depends on present tool.
src/projections/exchanges/request-answer.ts New canonical projector for request_answer details.
src/projections/exchanges/present-review-set.ts New canonical projector for present_review_set details + payload bridging.
src/projections/exchanges/present-question.ts Update docstring path reference for renderer.
src/projections/exchanges/present-options.ts New canonical projector for present_options details.
src/projections/exchanges/present-candidates.ts Update docstring path reference for renderer.
src/probes/submit-message-capture-proof.test.ts New probe test proving submitMessage capture path commits graph truth.
src/probes/public-rpc-parity-proof.ts Make persisted artifact refs fixture-relative + scrub ephemeral cwd.
src/probes/public-rpc-parity-proof.test.ts Update artifact assertions to fixture-relative refs + cwd scrubbing.
src/probes/propose-graph-commit-proof.ts Switch graph reads to queries; make artifacts portable + scrub cwd.
src/probes/propose-graph-commit-proof.test.ts Update artifact assertions to fixture-relative refs.
src/probes/project-graph-review-cycle-proof.ts Make artifacts portable + scrub cwd; rename graph artifact naming.
src/probes/project-graph-review-cycle-proof.test.ts Update artifact assertions to fixture-relative refs.
src/probes/portable-report.ts New helper to scrub ephemeral temp cwd from persisted reports.
src/probes/fixture-curation-loop.ts Make artifacts portable + scrub cwd; rename graph artifact naming.
src/probes/fixture-curation-loop.test.ts Update artifact assertions and add portability check.
src/probes/capture-response-to-graph-proof.ts Make artifacts portable + scrub cwd; update GraphOverview import.
src/probes/capture-response-to-graph-proof.test.ts Update artifact assertions to fixture-relative refs + cwd scrubbing.
src/graph/workspace-store.ts Expand spec-scoped read surface (kinds/bands/related/gaps) via graph/queries.
src/graph/spec-ownership.test.ts Switch snapshot reader imports to queries.
src/graph/seed-fixtures.test.ts Add coverage fixtures tests and edge-category coverage assertions.
src/graph/review-set.test.ts Switch graph overview read import to queries.
src/graph/render-preview.ts New seeded-fixture harness used by render-preview script/tests.
src/graph/README.md Update topology and naming: snapshot → queries; add preview harness docs.
src/graph/policy/category-policy.ts Update doc comment terminology from snapshot → active-context.
src/graph/index.ts Re-export expanded query read surface/types from graph/queries.
src/graph/export-fixtures.ts Switch GraphOverview import source to queries.
src/graph/capture/structured-response.ts Add explicit-text capture entrypoint; preserve repeated labels via suffixed refs.
src/graph/capture/structured-response.test.ts Add tests for repeated labels and explicit-text capture source prefix.
src/app/brunch.ts Print mode now renders workspace state (project + render state).
src/app/brunch.test.ts Update print/RPC parity tests + product update topics to workspace.state.
src/app/brunch-tui.ts Rename injected graph deps from snapshots → reads; add expanded read surface.
src/app/brunch-tui.test.ts Ensure new context tools are registered/available.
src/.pi/skills/strategies/README.md Document new freestyle strategy and constraints.
src/.pi/skills/strategies/freestyle.md New strategy guidance (pin-only; capture discipline).
src/.pi/skills/methods/read-snapshot.md Remove obsolete method doc (snapshot terminology retired).
src/.pi/skills/methods/read-context.md New method doc aligned with context/read terminology.
src/.pi/extensions/system-prompts/index.ts Rename prompt bundle snapshotscontext; graphSnapshotsgraphReads.
src/.pi/extensions/graph/tool-schemas.ts Expand read_graph modes + projection parameter; add related/gaps schema.
src/.pi/extensions/graph/command-adapter.ts Add related-nodes formatting; make overview formatting heading-configurable.
src/.pi/extensions/exchanges/shared/editor-fallback.ts Update imports for exchanges projector/renderers.
src/.pi/extensions/exchanges/schemas/README.md Update projector/renderer topology docs to new exchanges paths.
src/.pi/extensions/exchanges/request-review.ts Update imports to new exchanges projector/renderer paths.
src/.pi/extensions/exchanges/request-choices.ts Update imports to new exchanges projector/renderer paths.
src/.pi/extensions/exchanges/request-choice.ts Update imports to new exchanges projector/renderer paths.
src/.pi/extensions/exchanges/request-answer.ts Update imports to new exchanges projector/renderer paths.
src/.pi/extensions/exchanges/present-review-set.ts Update imports to new exchanges projector/renderer paths.
src/.pi/extensions/exchanges/present-question.ts Update imports to new exchanges projector/renderer paths.
src/.pi/extensions/exchanges/present-options.ts Update imports to new exchanges projector/renderer paths.
src/.pi/extensions/exchanges/index.ts Correct tool-result details export alias to the full RequestDetails union.
src/.pi/extensions/context/get-cwd.ts Replace old concept stub with real read_workspace_context implementation.
src/.pi/extensions/AUDIT.md Remove retired audit snapshot (stale/obsolete).
src/.pi/brunch-pi-extensions.ts Add context extension; make prompting registration order declarative (no splice).
src/.pi/agents/state.test.ts Ensure context tools appear in active tool sets; add freestyle pin-only checks.
src/.pi/agents/README.md Update doc terminology from snapshots to context.
src/.pi/agents/index.ts Rename exported prompt bundle type to AgentPromptContextBundle.
src/.pi/agents/contexts/node.ts Update neighborhood type import to graph/queries.
src/.pi/agents/contexts/node.test.ts Update expected edge rendering (no #id: prefix).
src/.pi/agents/contexts/graph.ts Update GraphOverview import path to graph/queries.
src/.pi/agents/contexts/graph.test.ts Update GraphOverview import path to graph/queries.
src/.pi/agents/compose.ts Rename pushed “snapshots” to pushed “context blocks” in prompt composer.
src/.pi/agents/compose.test.ts Update prompt composition tests for context renames + freestyle pinning.
src/.pi/tests/structured-exchange-boundaries.test.ts Update structured-exchange projector root to projections/exchanges.
src/.pi/tests/prompting.test.ts Update prompt-pack topology tests for graphReads + context tool activation.
src/.pi/tests/operational-mode.test.ts Update active tool list expectations to include read_session_context.
src/.pi/tests/extension-registry.test.ts Add context extension to explicit registry + tool list.
package.json Add render script entry for render-preview.
memory/cards/project-graph-review-cycle--real-probe.md Remove retired card (superseded/rolled into canonical planning).
memory/cards/poc-live-ship-gate--live-mention-autocomplete.md Update status and terminology (reads vs snapshots).
memory/cards/dev-seed-fixtures--semantic-graph-mutations.md Update terminology (graph readers) and planning notes.
docs/testing/seeded-dev-rpc.md Rename artifact from graph-snapshot to graph-overview.
docs/praxis/manual-testing.md Update wording away from “snapshot” terminology.
docs/praxis/ln-skills.md Add coverage-frontier guidance and routing.
docs/design/SPEC_INITIATIVE_MODEL.md Update snapshot wording to state replacement wording.
docs/architecture/prd.md Update snapshot wording to context/state wording.
docs/architecture/pi-wrapper-comparative.md Update print mode wording to state render.
.fixtures/seeds/workspace-spread/README.md New multi-spec workspace seed documentation.
.fixtures/seeds/workspace-spread/beta-commitments.json New seed fixture for commitments-grade workspace spread.
.fixtures/seeds/workspace-spread/alpha-grounding.json New seed fixture for grounding-grade workspace spread.
.fixtures/seeds/kind-band-spread/README.md New coverage fixture documentation for kind/band spread.
.fixtures/seeds/kind-band-spread/coverage-matrix.json New seed fixture covering all node kinds + readiness bands.
.fixtures/seeds/edge-spread/README.md New edge-category coverage fixture documentation.
.fixtures/seeds/bilal-port/duplicate-edge-policy.ts New dedupe policy module for seed porting (source outranks synthetic).
.fixtures/seeds/bilal-port/duplicate-edge-policy.test.ts Tests for dedupe precedence and keying behavior.
.fixtures/seeds/bilal-port/_port-script.ts Integrate dedupe precedence policy for edge emission.
.fixtures/runs/public-rpc-parity/2026-05-29-public-rpc-parity/report.json Scrub ephemeral cwd + make artifact refs relative.
.fixtures/runs/propose-graph-commit/2026-06-04-retry-diagnostics/report.json Scrub ephemeral cwd + make artifact refs relative.
.fixtures/runs/propose-graph-commit/2026-06-04-existing-code-ref/report.json Scrub ephemeral cwd + make artifact refs relative.
.fixtures/runs/propose-graph-commit/2026-06-04-ambiguity-no-overcommit/report.json Scrub ephemeral cwd + make artifact refs relative.
.fixtures/runs/propose-graph-commit/2026-06-02-propose-graph-commit/report.json Scrub ephemeral cwd + make artifact refs relative.
.fixtures/runs/project-graph-review-cycle/2026-06-06-project-graph-review-cycle/report.json Scrub ephemeral cwd + make artifact refs relative; update report text encoding.
.fixtures/runs/fixture-curation/fixture-curation-2026-06-05T104440Z/report.json Scrub ephemeral cwd + make artifact refs relative; update report text encoding.
.fixtures/README.md Rename artifact naming from graph-snapshot.json → graph-overview.json.
.agents/skills/ln-scope/SKILL.md Add Mode: coverage scope file semantics.
.agents/skills/ln-review/SKILL.md Extend review rubric with contract-integrity category and cues.
.agents/skills/ln-plan/SKILL.md Add coverage-frontier shape guidance (not a third posture).
.agents/skills/ln-judo-review/SKILL.md Add ambient-contract reliance cues + category.
.agents/skills/ln-consult/SKILL.md Add routing guidance for coverage-frontier planning.
.agents/skills/ln-build/SKILL.md Add execution loop for Mode: coverage ledgers.

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

Comment on lines +253 to +258
const sourceCode = source ? formatGraphNodeCode(source.kind, source.kindOrdinal) : `#${edge.sourceId}`;
const targetCode = target ? formatGraphNodeCode(target.kind, target.kindOrdinal) : `#${edge.targetId}`;
const direction = result.anchors.some((anchor) => anchor.id === edge.sourceId)
? 'outgoing'
: 'incoming';
lines.push(` - ${sourceCode} -[${edge.category}/${direction}]-> ${targetCode}`);
const handle = stringField(data.handle);
const title = stringField(data.title);
const seenLsn = integerField(data.snapshottedLsn);
const seenLsn = integerField(data.seenLsn);
@graphite-app graphite-app Bot changed the base branch from ln/fe-809-project-graph-review-cycle to graphite-base/177 June 8, 2026 10:23
lunelson and others added 7 commits June 8, 2026 11:26
Tests only; intentionally failing until the following commits land:
- seed-port duplicate-edge precedence (source outranks synthetic)
- portable, fixture-relative probe artifact references
- request_choice next-tool metadata for options and candidates

Amp-Thread-ID: https://ampcode.com/threads/T-019e9df9-7f47-77b8-9672-bdf06fad412b
Co-authored-by: Amp <amp@ampcode.com>
… union

The export aliased a single request_choice variant, so consumers (the
structured-exchange RPC proof) typed terminal details as one variant
instead of the full request-details union. Alias RequestDetails so the
public terminal-details type names every request outcome.

Amp-Thread-ID: https://ampcode.com/threads/T-019e9df9-7f47-77b8-9672-bdf06fad412b
Co-authored-by: Amp <amp@ampcode.com>
Replace the per-instance client.OPEN readiness check with an
isWebSocketOpen predicate that reads against the runtime WebSocket.OPEN
constant from ws. Transport delivery behavior is unchanged.

Amp-Thread-ID: https://ampcode.com/threads/T-019e9df9-7f47-77b8-9672-bdf06fad412b
Co-authored-by: Amp <amp@ampcode.com>
Place the prompting registrar at its named position in the extension
list via a conditional spread when prompt context exists, replacing the
numeric extensions.splice(4, 0, ...) insertion. Registration order is
unchanged.

Amp-Thread-ID: https://ampcode.com/threads/T-019e9df9-7f47-77b8-9672-bdf06fad412b
Co-authored-by: Amp <amp@ampcode.com>
Derive the capture tool from the present tool the request answers:
present_options answers with capture_choice, present_candidates with
capture_candidate. Only answered responses carry tool_meta.next.

Amp-Thread-ID: https://ampcode.com/threads/T-019e9df9-7f47-77b8-9672-bdf06fad412b
Co-authored-by: Amp <amp@ampcode.com>
Split probe artifact writing into absolute disk paths (used for
mkdir/writeFile) and fixture-root-relative references persisted into the
report JSON, for the project-graph-review-cycle and fixture-curation
probes. Rewrite the two committed reports to the portable contract so
they no longer carry developer-machine absolute paths.

Amp-Thread-ID: https://ampcode.com/threads/T-019e9df9-7f47-77b8-9672-bdf06fad412b
Co-authored-by: Amp <amp@ampcode.com>
lunelson and others added 19 commits June 8, 2026 11:26
Close the D66-L freestyle + generalized-capture rows in the cross-cut
ledger (Seam 2 auto-capture, Seam 3a freestyle, Seam 3b generalized
capture all built) and delete the exhausted scope card.

Scope two follow-on slices:
- crosscut-know--elicitation-backlog: D65-L flat-table substrate tracer
  (table + CommandExecutor mutation + seed at createSpec + read-back),
  retiring A24-L; per-turn driver + capture-reflection left as an
  unscoped follow-on.
- crosscut-know--resource-body-depth: deepen the thin .pi/skills
  goal/strategy/lens/method bodies.

Drift correction: exchange-tool .description()/promptGuidelines row
marked built (all 7 exchange tools already carry both).

Amp-Thread-ID: https://ampcode.com/threads/T-019ea2fc-9f12-767d-bd7a-08497f7307fd
Co-authored-by: Amp <amp@ampcode.com>
Align the D65-L substrate card with the snapshot-retirement migration
(35eff39): the backlog read-back is a domain read in graph/queries.ts,
not src/projections/ (reserved for reusable multi-consumer DTOs). Adds a
topology note and updates boundary crossings, D52-L obligation,
verification, and touched paths.
@lunelson lunelson force-pushed the graphite-base/177 branch from e422e5d to 46469ce Compare June 8, 2026 11:26
@lunelson lunelson force-pushed the ln/fe-811-poc-live-ship-blockers branch from f9274fc to c692b0f Compare June 8, 2026 11:26
@graphite-app graphite-app Bot changed the base branch from graphite-base/177 to next June 8, 2026 11:26
@graphite-app

graphite-app Bot commented Jun 8, 2026

Copy link
Copy Markdown

Merge activity

  • Jun 8, 11:26 AM UTC: Graphite rebased this pull request, because this pull request is set to merge when ready.

@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.

There are 2 total unresolved issues (including 1 from previous review).

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 c692b0f. Configure here.


const deduped = dedupeSeedEdgesByPrecedence(edgeCandidates);
const brunchEdges = deduped.edges;
stats.edges_dropped_duplicate_after_collapse = deduped.duplicatesDropped;

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Port script fix without seed regen

Medium Severity

The Bilal port script now resolves duplicate edges with source-over-synthetic precedence, but the committed <slug>.json seed files in this commit are not regenerated. npm run seed still loads JSON produced under the old first-wins rule.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit c692b0f. Configure here.

@lunelson lunelson merged commit e577d0a into next Jun 8, 2026
12 checks passed
@lunelson lunelson deleted the ln/fe-811-poc-live-ship-blockers branch June 8, 2026 11:33
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