From 2d8586d3e014f242be7fac3bd97eb212da2f6a8a Mon Sep 17 00:00:00 2001 From: James Ross Date: Sun, 31 May 2026 20:33:29 -0700 Subject: [PATCH 1/3] docs: add Graft Echo readiness ASAP cards --- docs/BEARING.md | 48 +- ...cho-typescript-integration-requirements.md | 641 ++++++++++++++++++ ...aft-fake-echo-shaped-typescript-witness.md | 87 +++ ...uctural-history-echo-package-descriptor.md | 81 +++ ...ctural-history-evidence-label-alignment.md | 84 +++ ...ral-reading-port-generated-model-parity.md | 74 ++ 6 files changed, 1001 insertions(+), 14 deletions(-) create mode 100644 docs/design/CORE_graft-echo-typescript-integration-requirements.md create mode 100644 docs/method/backlog/asap/CORE_graft-fake-echo-shaped-typescript-witness.md create mode 100644 docs/method/backlog/asap/CORE_graft-structural-history-echo-package-descriptor.md create mode 100644 docs/method/backlog/asap/CORE_structural-history-evidence-label-alignment.md create mode 100644 docs/method/backlog/asap/CORE_structural-reading-port-generated-model-parity.md diff --git a/docs/BEARING.md b/docs/BEARING.md index fd910582..dc634695 100644 --- a/docs/BEARING.md +++ b/docs/BEARING.md @@ -82,16 +82,17 @@ parsing. ## Next Target -The immediate focus is **schema authority before substrate migration**. This is -locked as a 5-slice execution plan. +The immediate focus is **schema authority before substrate migration**. The +near-term work is locked as a Graft-only pre-Echo execution plan with a hard +Echo integration gate after generated-model parity is proven. 1. Keep `main` clean after the `v0.8.0` release. 2. Treat the Wesley-backed structural-history generation gate as the active quality invariant: generated TypeScript must be regenerated from GraphQL in CI through the pinned Wesley CLI and fail if hand-edited. -3. Pull +3. Pull the `asap/` cards that decompose [CORE_structural-history-schema-and-echo-migration](./method/backlog/up-next/CORE_structural-history-schema-and-echo-migration.md) - as the next design/implementation cycle. + into Graft-only pre-Echo slices. 4. Define Graft's canonical structural-history facts in GraphQL before adapting any additional git-warp model output. 5. Use the existing Wesley toolchain to derive TypeScript/Zod/read-models, @@ -118,22 +119,41 @@ locked as a 5-slice execution plan. regenerate-and-diff CI validation for `schemas/graft-structural-history.graphql` -> generated artifacts. -2. **Slice 1 — Schema-first foundation** - Execute the first slice of - `CORE_structural-history-schema-and-echo-migration.md`: - GraphQL as source of truth + Wesley-generated TS/Zod contracts + - drift checks. - -3. **Slice 2 — Structural reading adapter boundary** - Map current `StructuralReadingPort` payloads to the generated model and +2. **Slice 1 — Evidence label alignment** + Pull + [`CORE_structural-history-evidence-label-alignment`](./method/backlog/asap/CORE_structural-history-evidence-label-alignment.md): + establish `echo-native`, `git-warp-imported`, and + `fallback-translated` evidence posture before runtime migration. + +3. **Slice 2 — Echo package descriptor** + Pull + [`CORE_graft-structural-history-echo-package-descriptor`](./method/backlog/asap/CORE_graft-structural-history-echo-package-descriptor.md): + define the deterministic structural-history package descriptor Graft + expects Echo to install later. + +4. **Slice 3 — Fake Echo-shaped TypeScript witness** + Pull + [`CORE_graft-fake-echo-shaped-typescript-witness`](./method/backlog/asap/CORE_graft-fake-echo-shaped-typescript-witness.md): + prove the Graft-side app-safe Echo seam with a deterministic fake before + depending on a real Echo runtime. + +5. **Slice 4 — StructuralReadingPort generated-model parity** + Pull + [`CORE_structural-reading-port-generated-model-parity`](./method/backlog/asap/CORE_structural-reading-port-generated-model-parity.md): + map current `StructuralReadingPort` payloads to the generated model and preserve existing behavior while adding parity coverage. -4. **Slice 3 — Trust defect remediation** +6. **Echo integration gate** + Stop before claiming real `echo-native` evidence unless Echo exposes the + required TypeScript-facing runtime/client, retained-evidence posture, and + versioned package compatibility surface. + +7. **Trust defect remediation** Track `WARP_bijou-local-history-stale-after-branch-transition.md` as active high-priority follow-up if and only if stale local history is observed in dogfooding; otherwise it remains deferred behind slice 4. -5. **Slice 4 — Follow-on architecture debt** +8. **Follow-on architecture debt** Finish the remaining schema-facing debt: `CLEAN_remaining-structural-warp-reads-bypass-structural-reading-port.md`, then `CLEAN_technical-teardown-contract-ledger-can-stale-without-tests.md`. diff --git a/docs/design/CORE_graft-echo-typescript-integration-requirements.md b/docs/design/CORE_graft-echo-typescript-integration-requirements.md new file mode 100644 index 00000000..fab4689d --- /dev/null +++ b/docs/design/CORE_graft-echo-typescript-integration-requirements.md @@ -0,0 +1,641 @@ +# Graft Echo TypeScript Integration Requirements + +Status: planning packet. + +Source: post-`v0.8.0` Graft schema-authority planning and Echo contract-host +gap investigation. + +## Hill + +Graft can integrate with Echo from TypeScript through an app-safe, generated +contract-host client surface while preserving Graft-owned structural semantics +and keeping Echo generic. + +This document names what Graft needs from Echo, what Graft must build itself, +what should remain out of Echo core, and when a Rust rewrite would be worth +considering. + +## Executive Summary + +The next Graft work does not require Echo to learn Graft semantics. Echo should +not add built-in concepts such as symbols, dead code, parser runs, structural +churn, git-warp imports, or Graft evidence labels. + +Graft needs Echo to provide a generic app-safe contract-host substrate that can +be consumed from TypeScript: + +```text +Graft-authored GraphQL schema + -> Wesley-generated contract artifacts + -> Echo-compatible package metadata + -> app-safe TypeScript/Node client + -> submit intent / observe outcome / request bounded query reading + -> retained evidence posture and recovery evidence +``` + +The main Echo requirements are therefore generic substrate and packaging +requirements: + +1. App-safe TypeScript/Node integration surface. +2. Versioned Echo artifacts and compatibility metadata. +3. Durable retained evidence recovery. +4. WAL/WSC causal-history storage and export posture. +5. Product-facing typed outcome and obstruction mapping. +6. Optional structural-history-shaped consumer fixture. + +None of those require Echo core to know Graft domain nouns. + +## Current Assumptions + +- Graft remains TypeScript for now. +- Graft integrates with Echo from TypeScript, Node, or a TypeScript-facing + package/transport. +- Echo remains a generic deterministic WARP runtime over witnessed causal + history. +- Wesley remains the compiler boundary for GraphQL-authored contracts. +- Graft owns structural-history semantics. +- Echo owns generic admission, execution, readings, receipts, retained evidence + posture, and replay surfaces. +- git-warp remains a migration/import/fallback source until parity is proven. + +## Non-goals + +- Do not rewrite Graft in Rust as part of the next schema-authority work. +- Do not add Graft semantic concepts to Echo core. +- Do not hand-port git-warp's graph model into Echo. +- Do not make Echo responsible for deciding whether a fact is + `echo-native`, `git-warp-imported`, or `fallback-translated`. +- Do not expose trusted Echo runtime control through Graft's app-facing + TypeScript integration. +- Do not require durable Echo retention for the first schema/model alignment + slice. +- Do not block Graft's next schema-first work on Echo release packaging. + +## Graft-Owned Responsibilities + +Graft must own these pieces. + +| Responsibility | Graft requirement | +| :--- | :--- | +| Structural semantics | Define canonical structural-history facts in `schemas/graft-structural-history.graphql`. | +| Evidence labels | Preserve Graft-level labels: `echo-native`, `git-warp-imported`, and `fallback-translated`. | +| Port boundary | Keep `StructuralReadingPort` as the Graft-facing read boundary while moving payloads toward generated types. | +| Public behavior | Preserve current API, CLI, and MCP outputs while the substrate changes underneath. | +| Package identity | Define a Graft structural-history package descriptor for Echo installation. | +| Adapter policy | Map Echo outcomes, readings, retained posture, and obstructions into Graft's own DTOs. | +| Migration parity | Compare Echo-backed outputs against current git-warp-backed outputs before demoting git-warp. | +| Import provenance | Preserve git-warp source provenance when facts are imported into the canonical Graft schema. | +| Fallback posture | Keep fallback git-warp reads explicitly labeled as fallback-translated evidence. | + +Graft should expose a dependency boundary like: + +```text +API / CLI / MCP use case + -> StructuralReadingPort + -> generated Graft structural-history model + -> Echo client adapter or git-warp fallback adapter + -> normalized Graft payload +``` + +The Graft codebase should not spread Echo runtime concepts through tools, +commands, or public response objects. + +## Echo-Owned Responsibilities + +Echo should own these pieces generically. + +| Responsibility | Echo requirement | +| :--- | :--- | +| App-safe submission | Accept canonical generated intent bytes without ticking or executing synchronously. | +| Outcome observation | Expose typed applied, rejected, pending, unknown, and obstructed intent outcomes. | +| Query readings | Support bounded QueryView readings through installed generated observers. | +| Contract hosting | Install generated contract packages with mutation handlers and read-only query observers. | +| Compatibility verification | Reject generated packages that do not match ABI, schema hash, codec, registry, helper API, or generator expectations. | +| Retained evidence posture | Expose available/missing retained material posture without faking success. | +| Durable recovery | Distinguish local retention posture from restart-proof retained material recovery. | +| Replay proof | Preserve deterministic replay of accepted submissions, receipts, outcomes, and readings. | +| Release packaging | Publish or document versioned artifacts that TypeScript consumers can depend on. | + +Echo should not own these pieces: + +| Non-responsibility | Reason | +| :--- | :--- | +| Symbol identity | Graft semantic model. | +| Dead symbol definition | Graft semantic model. | +| Structural churn meaning | Graft semantic model. | +| git-warp import classification | Graft migration policy. | +| Graft fallback labels | Graft evidence policy. | +| Review readiness policy | Graft product/API behavior. | + +## Required TypeScript Integration Surface + +Because Graft is TypeScript, the key Echo requirement is not "more Echo core +semantics." It is a TypeScript-consumable app-safe client surface. + +Graft needs a TypeScript-facing Echo client that can do this: + +```ts +interface EchoContractClient { + installOrVerifyPackage?(request: EchoPackageInstallRequest): Promise; + submitIntent(request: EchoIntentSubmissionRequest): Promise; + observeIntentOutcome(submissionId: string): Promise; + observeQuery(request: EchoQueryObservationRequest): Promise; + loadRetainedEvidence?(request: EchoRetainedEvidenceRequest): Promise; +} +``` + +The exact names do not matter. The authority boundary does. + +### App-safe TypeScript methods + +The app-facing TypeScript surface may expose: + +| Method family | Purpose | +| :--- | :--- | +| Generated intent helpers | Build canonical operation vars and envelopes. | +| Package compatibility checks | Verify the generated package fits the Echo runtime. | +| Intent submission | Submit canonical intent bytes and receive stable submission identity. | +| Intent outcome observation | Poll for pending, applied, rejected, unknown, or obstructed outcome. | +| Bounded query observation | Request a QueryView reading with explicit basis, aperture, rights, and budget. | +| Retained evidence posture | Inspect available/missing retained material refs. | +| Retained evidence load | Load retained bytes by semantic coordinate when the configured host allows it. | + +### Forbidden TypeScript methods + +The app-facing TypeScript surface must not expose: + +| Forbidden method family | Reason | +| :--- | :--- | +| `tick`, `step`, `superTick`, or scheduler controls | Application code must not create ticks. | +| Trusted runtime start/stop/drain control | Host policy, not application behavior. | +| Package installation authority, unless explicitly separated as trusted host API | Installing packages changes runtime-owner configuration. | +| WAL append or recovery mutation | Durable recovery authority is trusted-host scope. | +| Raw kernel object mutation | Graft should operate through generated contracts and readings. | +| Scheduler fault recovery | Trusted runtime control plane. | + +If Echo publishes both app and trusted-host packages, they should be physically +separate entry points. Graft should import only the app-safe entry point for +normal operation. + +## Echo Requirements Matrix + +### R1. App-safe Node/TypeScript client + +Status: required for direct Graft integration. + +Graft needs a TypeScript/Node client or equivalent transport wrapper that +preserves Echo's app/host authority split. + +Acceptance criteria: + +- TypeScript can submit canonical generated intent bytes. +- TypeScript can observe intent outcome without ticking. +- TypeScript can request bounded QueryView readings. +- TypeScript can inspect contract evidence and retained posture. +- The app package does not export scheduler, package-install, WAL, or recovery + authority. +- Examples do not call trusted runtime control from application code. + +Graft impact: + +- Without this, Graft can still proceed with schema work and fake Echo-shaped + witnesses. +- Real Echo-backed Graft in Node will require either this surface, a daemon + client, or a CLI bridge. + +### R2. Versioned Echo artifact and compatibility story + +Status: required before release-grade Graft/Echo integration. + +Graft needs deterministic dependency and compatibility metadata so a Graft CI +job can prove that its generated structural-history package fits the Echo +runtime it is using. + +Acceptance criteria: + +- Echo documents package names and versions for the runtime/client artifacts. +- Echo exposes supported Echo contract ABI version. +- Echo exposes supported WASM ABI version if a WASM package ships. +- Echo exposes supported contract-host helper API version. +- Echo names compatible Wesley generator versions. +- Echo package install rejects incompatible schema hash, artifact hash, codec, + registry layout, helper API, or generator version. +- Local sibling checkout overrides are documented as development-only. + +Graft impact: + +- Graft can pin Echo package/runtime versions in `package.json` or CI. +- Graft can fail fast when generated artifacts drift from the runtime. +- Graft release checks can avoid "works on my sibling checkout" behavior. + +### R3. Durable retained evidence recovery + +Status: required before Echo can be Graft's primary durable structural-history +substrate. + +Echo already has local retained evidence posture and semantic retention +concepts, but Graft needs a durable recovery story before claiming that +structural readings are recoverable evidence rather than process-local +observations. + +Acceptance criteria: + +- Echo distinguishes query identity, semantic retention coordinate, and content + hash. +- Retained reading payload refs can survive restart when backed by configured + storage. +- Retained reading envelope refs can survive restart when backed by configured + storage. +- Retained receipt refs can survive restart when backed by configured storage. +- Missing retained material returns typed missing-retention posture. +- Cache hits are not treated as evidence unless semantic coordinate and content + digest match. +- Durable recovery evidence names WAL/WSC or equivalent storage proof. + +Graft impact: + +- Graft can label an Echo-backed structural reading as `echo-native` only when + the fact was written/read through the generated Echo-backed structural-history + model. +- Graft should not imply durable evidence if Echo only reports local missing or + process-local retained posture. +- Graft should surface unavailable or degraded retained material honestly. + +### R4. WAL/WSC causal-history storage and export posture + +Status: required for portable, recoverable structural-history archives. + +Graft's structural history may eventually need to move across machines, +workspaces, CI jobs, or archives. Echo should define how WAL and WSC carry +causal-history evidence without making graph facts the bootstrap recovery +authority. + +Acceptance criteria: + +- Echo documents WAL bytes as durable commit authority. +- Echo documents WARP graph WAL nodes as projected evidence, not recovery + authority. +- Echo defines ref-only WSC export. +- Echo defines self-contained WSC export. +- Echo defines CAS-addressed WSC export. +- Echo defines unavailable WAL or retained material posture. +- Echo avoids absolute host paths as causal identity. + +Graft impact: + +- Graft can eventually export/import structural-history evidence without + preserving host-specific paths. +- Graft can distinguish portable evidence from local-only evidence. +- Graft can avoid accidentally treating transient graph projections as durable + truth. + +### R5. Product-facing outcome and obstruction mapping + +Status: required for good Graft adapter ergonomics. + +Graft needs typed outcomes and obstructions that can be mapped into Graft +freshness/residual/evidence posture without stringly catch-all error handling. + +Acceptance criteria: + +- Unsupported operation is typed. +- Unsupported query is typed. +- Admission obstruction is typed. +- Runtime fault is typed. +- Missing retention is typed. +- Stale basis is typed. +- Residual reading is typed. +- Budget exceeded is typed. +- Applied and rejected outcomes carry receipt evidence. +- Runtime faults do not masquerade as lawful domain rejections. + +Graft impact: + +- `StructuralReadingPort` can map Echo failures into Graft posture: + `current`, `stale`, `incomparable`, `unknown`, `partial`, `budget-limited`, + `rights-limited`, `unavailable`, `obstructed`, or `degraded`. +- Public Graft outputs can remain stable while internal error handling becomes + more precise. + +### R6. Structural-history-shaped external fixture + +Status: optional but useful. + +Echo already has a serious external consumer proof fixture. A +structural-history-shaped fixture would add confidence that Echo's generic +contract-host path works for a Graft-like read-heavy package without making +Graft semantics part of Echo core. + +Acceptance criteria: + +- Fixture package installs through the generic package boundary. +- Fixture uses structural-history-like operation/query names in test code only. +- Query observer returns bounded structural reading bytes. +- Reading carries query identity. +- Reading carries contract evidence. +- Reading carries retained evidence posture. +- Echo core does not gain Graft symbols, parser runs, or git-warp nouns. + +Graft impact: + +- Provides cross-repo confidence before a real Graft/Echo integration PR. +- Should not block Graft schema-first work. + +## Graft Integration Modes + +### Mode A. Fake Echo-shaped transport + +Use a Graft-local fake transport to prove the app-facing contract without a real +Echo dependency. + +Use this for: + +- first schema/model tests; +- DTO/evidence label mapping; +- public behavior preservation; +- parity fixtures. + +Pros: + +- Fast. +- No cross-repo dependency. +- Good for RED/GREEN cycles. + +Cons: + +- Does not prove real Echo package compatibility. +- Does not prove retention/replay. + +### Mode B. Echo CLI or daemon bridge + +Use a process boundary from TypeScript to a real Echo host. + +Use this for: + +- early real Echo witness if Node/WASM package is not ready; +- CI experiments; +- avoiding Rust rewrite while preserving host authority split. + +Pros: + +- Works from TypeScript. +- Keeps trusted runtime authority out of Graft process if designed correctly. +- Can be replaced later by a Node/WASM package. + +Cons: + +- Needs stable CLI/daemon contract. +- Process management and error mapping can become glue debt. +- Harder to package for npm. + +### Mode C. App-safe Node/WASM package + +Use a published app-safe Echo package from Graft TypeScript. + +Use this for: + +- release-grade Graft/Echo integration; +- npm-friendly distribution; +- stable generated contract workflows. + +Pros: + +- Best fit for current Graft TypeScript architecture. +- Can preserve app/host split if package exports are strict. +- Stronger than shelling out. + +Cons: + +- Requires Echo JS/WASM/Node release surface. +- Requires careful package export tests to avoid leaking trusted authority. + +### Mode D. Rewrite Graft in Rust + +This is not the recommendation for the next work. + +Rust may become compelling only if the cost of maintaining a TypeScript-to-Echo +bridge exceeds the cost of moving Graft's core engine to Rust. + +## Rust Rewrite Consideration + +There is a real argument for Rust, but it is not yet decisive. + +### Reasons to keep Graft TypeScript now + +- Graft is already a TypeScript MCP/API/CLI-oriented project. +- Existing public surfaces are TypeScript/Node-friendly. +- The immediate work is schema authority, generated DTO alignment, and adapter + boundaries, not hot-path runtime execution. +- Echo's app-safe client boundary should make TypeScript consumption viable. +- A rewrite would delay schema-authority work and risk broad behavioral drift. +- Graft's value is governed structural reading and provenance for agents, not + raw runtime throughput yet. + +### Reasons Rust could become compelling later + +- If Graft needs in-process Echo runtime hosting rather than an app-safe client. +- If TypeScript/WASM boundary costs dominate structural reading latency. +- If structural parsing, indexing, and retention become CPU-bound enough that + Rust materially changes product capability. +- If Graft becomes a long-running daemon that must share memory/substrate types + with Echo. +- If generated contract handlers are Rust-first and TypeScript bindings remain + second-class. +- If Graft needs strong compile-time guarantees around evidence typing that are + too awkward in TypeScript. + +### Rust decision gate + +Do not rewrite because "Echo is Rust." Consider Rust only if at least three of +these become true: + +- A real Echo-backed Graft witness cannot be made reliable through an app-safe + TypeScript client. +- The TypeScript bridge forces duplicated contract/runtime models that Wesley + cannot eliminate. +- Performance profiling shows TypeScript is the bottleneck for structural + reading workloads. +- npm packaging cannot safely preserve Echo's app/host authority split. +- Graft daemon operation requires direct Rust Echo runtime hosting. +- The adapter layer becomes more complex than the Graft domain model. + +Until then, the better architecture is: + +```text +Rust Echo substrate + -> app-safe TypeScript client or daemon bridge + -> TypeScript Graft structural intelligence +``` + +Not: + +```text +rewrite Graft before schema authority is real +``` + +## Suggested Echo Planning Cards + +### `PLATFORM_graft-app-safe-typescript-client` + +Hill: + +Echo exposes or documents an app-safe TypeScript/Node integration surface that +lets Graft submit generated contract intents, observe outcomes, request bounded +QueryView readings, inspect retained evidence posture, and verify compatibility +without receiving trusted runtime authority. + +Acceptance criteria: + +- TypeScript can submit canonical generated intent bytes. +- TypeScript can observe typed outcomes. +- TypeScript can request bounded query readings. +- TypeScript can inspect retained evidence posture. +- App package does not export tick, package install, WAL append, runtime + recovery, or raw mutation authority. +- Trusted-host package, if published, is a separate entry point. +- Example integrates a generated non-jedit package without app nouns in Echo + core. + +### `PLATFORM_graft-ready-retained-evidence-recovery` + +Hill: + +Echo can recover retained contract evidence needed by a Graft structural reading +after restart, or report typed missing-retention posture without fake success. + +Acceptance criteria: + +- Retained reading payload recovery fixture. +- Retained reading envelope recovery fixture. +- Retained receipt recovery fixture. +- Missing coordinate and missing content remain distinct. +- Recovery proof names WAL/WSC or configured durable storage evidence. + +### `RELEASE_echo-contract-host-artifact-set` + +Hill: + +Echo publishes or documents a versioned contract-host artifact set that Graft +can consume without relying on undocumented sibling checkout paths. + +Acceptance criteria: + +- Runtime ABI/version documented. +- WASM ABI/version documented if shipped. +- Helper API version documented. +- Compatible Wesley generator range documented. +- Package metadata verification fixture. +- Release dry-run checks metadata. +- Local sibling override documented as dev-only. + +### `PLATFORM_structural-history-contract-consumer-fixture` + +Hill: + +Echo proves a structural-history-shaped generated contract package can install, +emit bounded query readings, attach evidence, and replay without adding Graft +domain nouns to Echo core. + +Acceptance criteria: + +- Fixture uses structural-history-like operation/query names only in test code. +- Package installs through generic boundary. +- Query observer returns bounded payload bytes. +- Reading identity and retained posture are present. +- Replay converges. +- Echo core remains app-neutral. + +## Suggested Graft Planning Cards + +### `CORE_structural-history-evidence-label-alignment` + +Hill: + +Graft aligns `StructuralReadingPort` evidence labels with +`schemas/graft-structural-history.graphql` while preserving current public +behavior. + +Acceptance criteria: + +- Generated schema model names `ECHO_NATIVE`, `GIT_WARP_IMPORTED`, and + `FALLBACK_TRANSLATED`. +- Graft DTOs can represent `echo-native`, `git-warp-imported`, and + `fallback-translated`. +- Existing git-warp-backed readings remain fallback-translated or imported, not + native. +- Public command outputs are unchanged unless explicitly authorized. + +### `CORE_graft-structural-history-echo-package-descriptor` + +Hill: + +Graft defines the structural-history package descriptor it would install into +Echo, without requiring a real Echo runtime dependency in the first slice. + +Acceptance criteria: + +- Package identity includes schema path, schema hash, artifact hash, codec ID, + operation/query IDs, and compatibility metadata. +- Descriptor derives from generated artifacts or manifest data. +- Hand-maintained duplicate model is rejected by tests. +- No Echo core dependency is required. + +### `CORE_graft-fake-echo-shaped-contract-witness` + +Hill: + +Graft proves its Echo-facing adapter contract through a fake Echo-shaped +transport before depending on real Echo runtime packaging. + +Acceptance criteria: + +- Fake client supports submit intent, observe outcome, observe query, and + retained posture. +- Graft maps fake Echo outcomes into `StructuralReadingPort`. +- Parity fixtures compare fallback git-warp readings with generated model + readings. +- Tests fail if Graft leaks trusted-host authority into the app-facing adapter. + +## Sequencing Recommendation + +Recommended parallel plan: + +| Step | Repo | Work | +| :--- | :--- | :--- | +| 1 | Graft | Align evidence labels and generated structural-history model. | +| 2 | Graft | Define Echo package descriptor shape from schema/generated manifest. | +| 3 | Graft | Build fake Echo-shaped TypeScript witness. | +| 4 | Echo | Plan app-safe TypeScript/Node client surface. | +| 5 | Echo | Finish retained evidence durability boundary. | +| 6 | Echo | Finish package publish/versioning artifact story. | +| 7 | Graft + Echo | Add real local Echo witness from TypeScript. | +| 8 | Graft | Move selected structural reads to Echo-backed primary path after parity. | + +This keeps Graft moving now while giving Echo a focused list of generic +requirements. + +## Open Questions + +1. Should Graft's first real Echo integration use a Node/WASM package, an Echo + daemon/CLI bridge, or a Rust helper process? +2. Should package installation be entirely trusted-host scope, with Graft + receiving only a preinstalled app-safe client, or should Graft own a local + trusted-host mode for development? +3. What is the minimum Echo artifact set Graft can depend on in CI without + requiring a sibling Echo checkout? +4. Should retained structural reading payloads be required for all + `echo-native` readings, or can some native readings report durable receipt + evidence with missing payload posture? +5. Should Graft's npm package eventually bundle an Echo client, peer-depend on + one, or discover an external Echo host? + +## Decision Record + +For now: + +- Keep Graft TypeScript. +- Do not require Echo changes for the next Graft schema-authority slice. +- Plan Echo work around app-safe TypeScript consumption, durable retention, + WAL/WSC export posture, and versioned package artifacts. +- Revisit Rust only after a real TypeScript Echo witness exposes unacceptable + complexity, performance, or authority-boundary problems. diff --git a/docs/method/backlog/asap/CORE_graft-fake-echo-shaped-typescript-witness.md b/docs/method/backlog/asap/CORE_graft-fake-echo-shaped-typescript-witness.md new file mode 100644 index 00000000..3d7740db --- /dev/null +++ b/docs/method/backlog/asap/CORE_graft-fake-echo-shaped-typescript-witness.md @@ -0,0 +1,87 @@ +--- +title: "Graft fake Echo-shaped TypeScript witness" +feature: core +kind: architecture +legend: CORE +lane: asap +priority: 3 +effort: L +requirements: + - "Graft proves the Echo-facing TypeScript seam before depending on Echo runtime changes" + - "The fake witness is deterministic and local" + - "Graft does not reach through the app/host authority boundary" + - "No real Echo durability claim is made" +acceptance_criteria: + - "Graft has an app-safe Echo-shaped TypeScript client interface for structural-history usage" + - "A deterministic fake implementation supports the needed submit/query/observe flows" + - "Tests prove Graft uses the interface rather than Echo internals" + - "No Echo repository change is required" +--- + +# Graft fake Echo-shaped TypeScript witness + +## Hill + +Graft proves the shape of its future Echo integration from TypeScript before +requiring a real Echo runtime. + +This slice deliberately uses a fake or fixture-backed witness. Its purpose is +to validate the Graft-side adapter, authority boundary, and developer ergonomics +without smuggling Graft semantics into Echo. + +## Design Packet + +Primary design packet: +[`docs/design/CORE_graft-echo-typescript-integration-requirements.md`](../../../design/CORE_graft-echo-typescript-integration-requirements.md) + +Related migration card: +[`docs/method/backlog/up-next/CORE_structural-history-schema-and-echo-migration.md`](../up-next/CORE_structural-history-schema-and-echo-migration.md) + +## Required Boundary + +The fake witness should model the app-safe surface Graft needs, not Echo's +internal host machinery. + +Expected capabilities: + +| Capability | Purpose | +| :--- | :--- | +| submit | Accept structural-history writes or mutations in the package shape Graft expects. | +| query | Read structural-history facts through the generated model. | +| observe | Model the eventual observer flow if the Graft surface requires it. | +| retained evidence posture | Represent whether evidence is retained, missing, obstructed, or unavailable without claiming real durability. | +| obstruction mapping | Convert substrate failures into Graft-owned diagnostics. | + +## Scope + +1. Define the minimal TypeScript interface Graft expects from an Echo-backed + structural-history adapter. +2. Add a deterministic fake implementation for tests and local development. +3. Exercise the interface through Graft application code rather than direct + fake calls. +4. File any real Echo client gaps discovered by this witness as explicit Echo + planning work, not as hidden Graft assumptions. + +## Non-goals + +- Do not change Echo. +- Do not add Graft semantics to Echo. +- Do not claim crash-safe retained evidence. +- Do not require Rust bindings or a real Echo daemon. +- Do not replace git-warp-backed behavior in public surfaces. + +## Test Strategy + +1. Add focused tests for submit/query/observe paths required by the structural + history integration. +2. Add authority-boundary tests proving Graft depends on the app-safe interface, + not Echo internals. +3. Keep fake outputs deterministic and fixture-backed. + +## Playback Questions + +1. Does the fake witness expose the minimum Graft actually needs from Echo? +2. Can the fake be swapped for a real Echo TypeScript client later without + changing Graft's domain model? +3. Are all missing Echo capabilities written down as generic substrate needs + rather than Graft-specific semantics? diff --git a/docs/method/backlog/asap/CORE_graft-structural-history-echo-package-descriptor.md b/docs/method/backlog/asap/CORE_graft-structural-history-echo-package-descriptor.md new file mode 100644 index 00000000..85025ea3 --- /dev/null +++ b/docs/method/backlog/asap/CORE_graft-structural-history-echo-package-descriptor.md @@ -0,0 +1,81 @@ +--- +title: "Graft structural-history Echo package descriptor" +feature: core +kind: architecture +legend: CORE +lane: asap +priority: 2 +effort: M +requirements: + - "Graft describes the Echo package it expects before requiring real Echo execution" + - "The descriptor is deterministic and derived from schema authority" + - "Version and artifact identity are explicit" + - "No Echo runtime change is required" +acceptance_criteria: + - "Graft has a deterministic structural-history package descriptor" + - "The descriptor records package identity, schema identity, generated artifact identity, Wesley CLI version, and operation/query identifiers" + - "Descriptor drift fails in Graft-local checks" + - "No real Echo installation or Echo code change is required" +--- + +# Graft structural-history Echo package descriptor + +## Hill + +Graft defines the contract package shape it expects Echo to install later, while +keeping this slice entirely inside Graft. + +This descriptor is a planning and drift artifact. It should answer: "What +would Graft hand to Echo?" It should not require Echo to run that package yet. + +## Design Packet + +Primary design packet: +[`docs/design/CORE_graft-echo-typescript-integration-requirements.md`](../../../design/CORE_graft-echo-typescript-integration-requirements.md) + +Related migration card: +[`docs/method/backlog/up-next/CORE_structural-history-schema-and-echo-migration.md`](../up-next/CORE_structural-history-schema-and-echo-migration.md) + +## Descriptor Contents + +The descriptor should be deterministic and should avoid machine-local paths. +Expected fields include: + +| Field | Purpose | +| :--- | :--- | +| package identity | Names the Graft structural-history contract package. | +| schema identity | Records the GraphQL schema path, version, and hash. | +| generated artifact identity | Records the generated TypeScript artifact and hash. | +| Wesley CLI version | Captures the generator version that produced the artifact. | +| codec or target identity | Names the intended Echo-facing contract format. | +| operation/query identifiers | Names the commands, mutations, or queries Graft expects to expose. | + +## Scope + +1. Define a Graft-owned descriptor format for the structural-history Echo + package. +2. Generate or check the descriptor from schema and generated artifact facts. +3. Add drift coverage so hand-edited descriptors or generated artifacts fail. +4. Document that the descriptor is a pre-runtime contract boundary. + +## Non-goals + +- Do not install the package into a real Echo runtime. +- Do not require an Echo TypeScript client. +- Do not change Echo. +- Do not change Wesley semantics. +- Do not claim Echo-backed storage or replay is active. + +## Test Strategy + +1. Add deterministic descriptor generation or checking tests. +2. Assert schema hash, generated artifact hash, and Wesley version are stable + and machine-independent. +3. Add a stale descriptor fixture or mutation test if the existing test harness + makes that practical. + +## Playback Questions + +1. Can a reviewer identify the exact package Graft expects Echo to host later? +2. Does the descriptor prove the generated artifact came from schema authority? +3. Would a machine-local path or ambient generator version change the output? diff --git a/docs/method/backlog/asap/CORE_structural-history-evidence-label-alignment.md b/docs/method/backlog/asap/CORE_structural-history-evidence-label-alignment.md new file mode 100644 index 00000000..0916bb8b --- /dev/null +++ b/docs/method/backlog/asap/CORE_structural-history-evidence-label-alignment.md @@ -0,0 +1,84 @@ +--- +title: "Structural history evidence label alignment" +feature: core +kind: architecture +legend: CORE +lane: asap +priority: 1 +effort: M +requirements: + - "Graft owns structural-history semantics" + - "Evidence provenance is explicit in generated structural-history facts" + - "git-warp-derived facts never masquerade as Echo-native witnesshood" + - "Existing public command behavior remains unchanged" +acceptance_criteria: + - "The structural-history schema/model names the evidence labels echo-native, git-warp-imported, and fallback-translated" + - "Current StructuralReadingPort payloads can carry or map to the evidence label taxonomy" + - "Documentation explains when each evidence label is valid" + - "No Echo code or Echo semantics are changed" +--- + +# Structural history evidence label alignment + +## Hill + +Graft makes structural-history provenance explicit before runtime migration, so +facts imported from git-warp or translated through fallback paths cannot be +confused with Echo-native facts. + +This is the first Graft-only slice after the Wesley hermetic generation gate. +The goal is not to move storage. The goal is to make evidence posture visible +in the schema-backed model that later storage work must preserve. + +## Design Packet + +Primary design packet: +[`docs/design/CORE_graft-echo-typescript-integration-requirements.md`](../../../design/CORE_graft-echo-typescript-integration-requirements.md) + +Related migration card: +[`docs/method/backlog/up-next/CORE_structural-history-schema-and-echo-migration.md`](../up-next/CORE_structural-history-schema-and-echo-migration.md) + +## Required Evidence Labels + +| Label | Meaning | +| :--- | :--- | +| `echo-native` | The fact was written, retained, and read through the Echo-backed structural-history path. | +| `git-warp-imported` | The fact came from git-warp and was imported into the canonical Graft structural-history model with source provenance preserved. | +| `fallback-translated` | The fact was read through a git-warp compatibility path after the schema model exists. | + +These labels are separate from Continuum witnesshood. A fact can be +Continuum-shaped without being a Continuum-native witness. + +## Scope + +1. Define the evidence label taxonomy in the schema-backed structural-history + model. +2. Ensure the current `StructuralReadingPort` payloads can map to the taxonomy. +3. Document the current source for each label and the transition rules for the + Echo migration. +4. Preserve current public command output unless a later design packet + explicitly authorizes a surface change. + +## Non-goals + +- Do not change Echo. +- Do not change Wesley semantics. +- Do not claim any current git-warp fact is `echo-native`. +- Do not delete fallback git-warp paths. +- Do not change public command output as part of this slice. + +## Test Strategy + +1. Add focused tests around evidence label normalization or mapping. +2. Add fixture coverage that proves git-warp-backed current facts become + `git-warp-imported` or `fallback-translated`, not `echo-native`. +3. Keep assertions deterministic and local to Graft. + +## Playback Questions + +1. Can a reviewer tell whether a structural-history fact is native, imported, + or fallback-translated? +2. Can current `StructuralReadingPort` payloads enter the generated model + without losing provenance? +3. Does any test or doc imply Echo runtime authority before Echo is actually in + the loop? diff --git a/docs/method/backlog/asap/CORE_structural-reading-port-generated-model-parity.md b/docs/method/backlog/asap/CORE_structural-reading-port-generated-model-parity.md new file mode 100644 index 00000000..02f975a2 --- /dev/null +++ b/docs/method/backlog/asap/CORE_structural-reading-port-generated-model-parity.md @@ -0,0 +1,74 @@ +--- +title: "StructuralReadingPort generated-model parity" +feature: core +kind: architecture +legend: CORE +lane: asap +priority: 4 +effort: L +requirements: + - "Current StructuralReadingPort payloads map into the generated structural-history model" + - "Current public command behavior is preserved" + - "git-warp evidence remains provenance-preserving and non-native" + - "No Echo runtime dependency is introduced" +acceptance_criteria: + - "Current StructuralReadingPort payloads have a tested generated-model mapping" + - "Parity fixtures show current git-warp-backed readings produce equivalent public behavior" + - "Mapped evidence is labeled git-warp-imported or fallback-translated as appropriate" + - "The slice does not require Echo changes" +--- + +# StructuralReadingPort generated-model parity + +## Hill + +Graft proves that current structural reads can enter the generated +structural-history model without changing public behavior. + +This is the last clearly Graft-only pre-Echo slice. After this point, further +claims about Echo-native structural history should require a real Echo runtime +or an explicit integration gate. + +## Design Packet + +Primary design packet: +[`docs/design/CORE_graft-echo-typescript-integration-requirements.md`](../../../design/CORE_graft-echo-typescript-integration-requirements.md) + +Related migration card: +[`docs/method/backlog/up-next/CORE_structural-history-schema-and-echo-migration.md`](../up-next/CORE_structural-history-schema-and-echo-migration.md) + +## Scope + +1. Map current `StructuralReadingPort` payloads into the generated + structural-history model. +2. Preserve current public command behavior while changing the internal model + boundary. +3. Add parity fixtures for representative git-warp-backed readings. +4. Label mapped facts as `git-warp-imported` or `fallback-translated`, never + `echo-native`. +5. Document any uncovered behavior that blocks real Echo-backed replacement. + +## Non-goals + +- Do not change Echo. +- Do not delete git-warp fallback paths. +- Do not claim Echo-native evidence. +- Do not change public command output. +- Do not broaden the migration into unrelated WARP reads. + +## Test Strategy + +1. Add fixture-driven mapping tests for representative + `StructuralReadingPort` payloads. +2. Add public-surface parity tests where current behavior depends on those + payloads. +3. Assert evidence labels explicitly in mapped outputs. +4. Keep real Echo runtime tests out of this slice. + +## Playback Questions + +1. Can existing structural reads pass through the generated model without + public behavior drift? +2. Are imported and fallback-translated facts clearly distinguished? +3. Is there a precise gate before any follow-on work claims real Echo-native + evidence? From 95bb919782be8c06cf320cc65eeb32ff367b0f5b Mon Sep 17 00:00:00 2001 From: James Ross Date: Sun, 31 May 2026 21:23:14 -0700 Subject: [PATCH 2/3] docs: refresh backlog dependency DAG --- docs/method/backlog/dependency-dag.dot | 9 + docs/method/backlog/dependency-dag.svg | 851 +++++++++++++------------ 2 files changed, 449 insertions(+), 411 deletions(-) diff --git a/docs/method/backlog/dependency-dag.dot b/docs/method/backlog/dependency-dag.dot index a492918f..cdf058a1 100644 --- a/docs/method/backlog/dependency-dag.dot +++ b/docs/method/backlog/dependency-dag.dot @@ -10,6 +10,15 @@ digraph backlog { ranksep=0.55 nodesep=0.2 + subgraph cluster_asap { + label="asap (4)" labeljust=l fontsize=9 fontcolor="#555555" + style=rounded color="#cccccc" bgcolor="#fafafa" + asap_CORE_graft_fake_echo_shaped_typescript_witness [label="CORE-graft-fake-echo-shaped-typescript-witness - L" fillcolor="#E5E7EB" penwidth=2] + asap_CORE_graft_structural_history_echo_package_descriptor [label="CORE-graft-structural-history-echo-package-descriptor - M" fillcolor="#E5E7EB" penwidth=2] + asap_CORE_structural_history_evidence_label_alignment [label="CORE-structural-history-evidence-label-alignment - M" fillcolor="#E5E7EB" penwidth=2] + asap_CORE_structural_reading_port_generated_model_parity [label="CORE-structural-reading-port-generated-model-parity - L" fillcolor="#E5E7EB" penwidth=2] + } + subgraph cluster_up_next { label="up-next (1)" labeljust=l fontsize=9 fontcolor="#555555" style=rounded color="#cccccc" bgcolor="#fafafa" diff --git a/docs/method/backlog/dependency-dag.svg b/docs/method/backlog/dependency-dag.svg index ed7c5f53..3a76d3a4 100644 --- a/docs/method/backlog/dependency-dag.svg +++ b/docs/method/backlog/dependency-dag.svg @@ -4,839 +4,868 @@ - + backlog - -Active backlog graph generated from docs/method/backlog/*/*.md + +Active backlog graph generated from docs/method/backlog/*/*.md -cluster_up_next - -up-next (1) +cluster_asap + +asap (4) -cluster_v0_8_0 - -v0.8.0 (26) +cluster_up_next + +up-next (1) -cluster_bad_code - -bad-code (3) +cluster_v0_8_0 + +v0.8.0 (26) -cluster_cool_ideas - -Cool Ideas (76) +cluster_bad_code + +bad-code (3) -cluster_external - -External blockers +cluster_cool_ideas + +Cool Ideas (76) -cluster_unresolved - -Unresolved internal refs +cluster_external + +External blockers +cluster_unresolved + +Unresolved internal refs + + cluster_legend - -Legend + +Legend - + +asap_CORE_graft_fake_echo_shaped_typescript_witness + +CORE-graft-fake-echo-shaped-typescript-witness - L + + + +asap_CORE_graft_structural_history_echo_package_descriptor + +CORE-graft-structural-history-echo-package-descriptor - M + + + +asap_CORE_structural_history_evidence_label_alignment + +CORE-structural-history-evidence-label-alignment - M + + + +asap_CORE_structural_reading_port_generated_model_parity + +CORE-structural-reading-port-generated-model-parity - L + + + up_next_CORE_structural_history_schema_and_echo_migration - -CORE-structural-history-schema-and-echo-migration - XL + +CORE-structural-history-schema-and-echo-migration - XL - + v0_8_0_CORE_c_structural_parsing - -CORE-c-structural-parsing - M + +CORE-c-structural-parsing - M - + v0_8_0_CORE_cpp_structural_parsing - -CORE-cpp-structural-parsing - L + +CORE-cpp-structural-parsing - L - + v0_8_0_CORE_csharp_structural_parsing - -CORE-csharp-structural-parsing - M + +CORE-csharp-structural-parsing - M - + v0_8_0_CORE_go_structural_parsing - -CORE-go-structural-parsing - S + +CORE-go-structural-parsing - S - + v0_8_0_CORE_hcl_structured_config - -CORE-hcl-structured-config - M + +CORE-hcl-structured-config - M - + v0_8_0_CORE_java_structural_parsing - -CORE-java-structural-parsing - M + +CORE-java-structural-parsing - M - + v0_8_0_CORE_json_structured_config - -CORE-json-structured-config - S + +CORE-json-structured-config - S - + v0_8_0_CORE_jupyter_notebook_structure - -CORE-jupyter-notebook-structure - M + +CORE-jupyter-notebook-structure - M - + v0_8_0_CORE_kotlin_structural_parsing - -CORE-kotlin-structural-parsing - M + +CORE-kotlin-structural-parsing - M - + v0_8_0_CORE_php_structural_parsing - -CORE-php-structural-parsing - M + +CORE-php-structural-parsing - M - + v0_8_0_CORE_pr_review_structural_summary - -CORE-pr-review-structural-summary - M + +CORE-pr-review-structural-summary - M - + v0_8_0_CORE_python_structural_parsing - -CORE-python-structural-parsing - S + +CORE-python-structural-parsing - S - + v0_8_0_CORE_ruby_structural_parsing - -CORE-ruby-structural-parsing - M + +CORE-ruby-structural-parsing - M - + v0_8_0_CORE_shell_structural_parsing - -CORE-shell-structural-parsing - M + +CORE-shell-structural-parsing - M - + v0_8_0_CORE_sql_structural_parsing - -CORE-sql-structural-parsing - M + +CORE-sql-structural-parsing - M - + v0_8_0_CORE_structural_test_coverage_map - -CORE-structural-test-coverage-map - M + +CORE-structural-test-coverage-map - M - + v0_8_0_CORE_swift_structural_parsing - -CORE-swift-structural-parsing - M + +CORE-swift-structural-parsing - M - + v0_8_0_CORE_toml_structured_config - -CORE-toml-structured-config - S + +CORE-toml-structured-config - S - + v0_8_0_CORE_tool_context_injection_contracts - -CORE-tool-context-injection-contracts - M + +CORE-tool-context-injection-contracts - M - + v0_8_0_CORE_yaml_structured_config - -CORE-yaml-structured-config - M + +CORE-yaml-structured-config - M - + v0_8_0_SURFACE_git_graft_enhance_provenance_hints - -SURFACE-git-graft-enhance-provenance-hints + +SURFACE-git-graft-enhance-provenance-hints - + v0_8_0_SURFACE_pr_feedback_resolution_ledger - -SURFACE-pr-feedback-resolution-ledger - M + +SURFACE-pr-feedback-resolution-ledger - M - + v0_8_0_SURFACE_review_cooldown_status - -SURFACE-review-cooldown-status - S + +SURFACE-review-cooldown-status - S - + v0_8_0_TEST_bounded_subprocess_policy - -TEST-bounded-subprocess-policy - S + +TEST-bounded-subprocess-policy - S - + v0_8_0_WARP_dead_symbol_detection - -WARP-dead-symbol-detection - S + +WARP-dead-symbol-detection - S - + v0_8_0_WARP_symbol_history_timeline - -WARP-symbol-history-timeline - S + +WARP-symbol-history-timeline - S - + cool_ideas_WARP_temporal_structural_search - -WARP-temporal-structural-search - M + +WARP-temporal-structural-search - M v0_8_0_WARP_symbol_history_timeline->cool_ideas_WARP_temporal_structural_search - - -blocked_by/blocking + + +blocked_by/blocking - + bad_code_CLEAN_remaining_structural_warp_reads_bypass_structural_reading_port - -CLEAN-remaining-structural-warp-reads-bypass-structural-reading-port - M + +CLEAN-remaining-structural-warp-reads-bypass-structural-reading-port - M - + bad_code_CLEAN_technical_teardown_contract_ledger_can_stale_without_tests - -CLEAN-technical-teardown-contract-ledger-can-stale-without-tests - M + +CLEAN-technical-teardown-contract-ledger-can-stale-without-tests - M - + bad_code_WARP_bijou_local_history_stale_after_branch_transition - -WARP-bijou-local-history-stale-after-branch-transition - M + +WARP-bijou-local-history-stale-after-branch-transition - M - + cool_ideas_bounded_neighborhood_for_references - -bounded-neighborhood-for-references - S + +bounded-neighborhood-for-references - S - + cool_ideas_CI_001_causal_collapse_visualizer - -CI-001-causal-collapse-visualizer - L + +CI-001-causal-collapse-visualizer - L - + cool_ideas_CI_002_deterministic_scenario_replay - -CI-002-deterministic-scenario-replay - L + +CI-002-deterministic-scenario-replay - L - + cool_ideas_CI_003_mcp_native_diff_protocol - -CI-003-mcp-native-diff-protocol - M + +CI-003-mcp-native-diff-protocol - M - + cool_ideas_CLEAN_CODE_parallel_agent_merge_shared_file_loss - -CLEAN-CODE-parallel-agent-merge-shared-file-loss - M + +CLEAN-CODE-parallel-agent-merge-shared-file-loss - M - + cool_ideas_CLEAN_contract_ledger_schema_and_lint - -CLEAN-contract-ledger-schema-and-lint - M + +CLEAN-contract-ledger-schema-and-lint - M - + cool_ideas_CORE_agent_handoff_protocol - -CORE-agent-handoff-protocol - M + +CORE-agent-handoff-protocol - M - + cool_ideas_CORE_auto_focus - -CORE-auto-focus - L + +CORE-auto-focus - L - + cool_ideas_CORE_capture_range - -CORE-capture-range - S + +CORE-capture-range - S - + cool_ideas_CORE_constructor_in_disguise_lint - -CORE-constructor-in-disguise-lint - M + +CORE-constructor-in-disguise-lint - M - + cool_ideas_CORE_context_budget_forecasting - -CORE-context-budget-forecasting - M + +CORE-context-budget-forecasting - M - + cool_ideas_CORE_conversation_primer - -CORE-conversation-primer - M + +CORE-conversation-primer - M - + cool_ideas_CORE_cross_session_resume - -CORE-cross-session-resume - S + +CORE-cross-session-resume - S - + cool_ideas_CORE_graft_as_teacher - -CORE-graft-as-teacher - S + +CORE-graft-as-teacher - S - + cool_ideas_CORE_graft_teach_learning_receipts - -CORE-graft-teach-learning-receipts - S + +CORE-graft-teach-learning-receipts - S - + cool_ideas_CORE_graft_tool_client - -CORE-graft-tool-client - M + +CORE-graft-tool-client - M - + cool_ideas_CORE_horizon_of_readability - -CORE-horizon-of-readability - M + +CORE-horizon-of-readability - M - + cool_ideas_CORE_lagrangian_policy - -CORE-lagrangian-policy - XL + +CORE-lagrangian-policy - XL - + cool_ideas_CORE_migrate_to_slice_first_reads - -CORE-migrate-to-slice-first-reads + +CORE-migrate-to-slice-first-reads - + cool_ideas_CORE_multi_agent_conflict_detection - -CORE-multi-agent-conflict-detection - L + +CORE-multi-agent-conflict-detection - L - + cool_ideas_CORE_policy_playground - -CORE-policy-playground - S + +CORE-policy-playground - S - + cool_ideas_CORE_policy_profiles - -CORE-policy-profiles - M + +CORE-policy-profiles - M - + cool_ideas_CORE_self_tuning_governor - -CORE-self-tuning-governor - M + +CORE-self-tuning-governor - M - + cool_ideas_CORE_session_knowledge_map - -CORE-session-knowledge-map - S + +CORE-session-knowledge-map - S - + cool_ideas_CORE_speculative_read_cost - -CORE-speculative-read-cost - S + +CORE-speculative-read-cost - S - + cool_ideas_CORE_structural_session_replay - -CORE-structural-session-replay - M + +CORE-structural-session-replay - M - + cool_ideas_CORE_wire_primitives_into_runtime - -CORE-wire-primitives-into-runtime - M + +CORE-wire-primitives-into-runtime - M - + cool_ideas_monitor_tick_ceiling_tracking - -monitor-tick-ceiling-tracking - S + +monitor-tick-ceiling-tracking - S - + cool_ideas_WARP_background_indexing - -WARP-background-indexing - M + +WARP-background-indexing - M cool_ideas_monitor_tick_ceiling_tracking->cool_ideas_WARP_background_indexing - - -blocked_by/blocking + + +blocked_by/blocking - + cool_ideas_SURFACE_active_causal_workspace_status - -SURFACE-active-causal-workspace-status - M + +SURFACE-active-causal-workspace-status - M - + cool_ideas_SURFACE_ide_native_graft_integration - -SURFACE-ide-native-graft-integration - XL + +SURFACE-ide-native-graft-integration - XL cool_ideas_SURFACE_active_causal_workspace_status->cool_ideas_SURFACE_ide_native_graft_integration - - -blocked_by/blocking + + +blocked_by/blocking - + cool_ideas_SURFACE_attach_to_existing_causal_session - -SURFACE-attach-to-existing-causal-session - M + +SURFACE-attach-to-existing-causal-session - M - + cool_ideas_SURFACE_bijou_daemon_control_plane_actions - -SURFACE-bijou-daemon-control-plane-actions - L + +SURFACE-bijou-daemon-control-plane-actions - L - + cool_ideas_SURFACE_bijou_daemon_status_live_refresh - -SURFACE-bijou-daemon-status-live-refresh - M + +SURFACE-bijou-daemon-status-live-refresh - M - + cool_ideas_SURFACE_git_graft_enhance_expanded_git_subcommands - -SURFACE-git-graft-enhance-expanded-git-subcommands + +SURFACE-git-graft-enhance-expanded-git-subcommands - + cool_ideas_SURFACE_graft_review_pr_number_adapter - -SURFACE-graft-review-pr-number-adapter - M + +SURFACE-graft-review-pr-number-adapter - M - + cool_ideas_SURFACE_init_dry_run - -SURFACE-init-dry-run - S + +SURFACE-init-dry-run - S - + cool_ideas_SURFACE_local_history_dag_render_mode_and_count_legend - -SURFACE-local-history-dag-render-mode-and-count-legend - S + +SURFACE-local-history-dag-render-mode-and-count-legend - S - + cool_ideas_SURFACE_non_codex_instruction_bootstrap_parity - -SURFACE-non-codex-instruction-bootstrap-parity - M + +SURFACE-non-codex-instruction-bootstrap-parity - M - + cool_ideas_SURFACE_offer_rename_refactor - -SURFACE-offer-rename-refactor - L + +SURFACE-offer-rename-refactor - L - + cool_ideas_SURFACE_opened_workspace_paths - -SURFACE-opened-workspace-paths - M + +SURFACE-opened-workspace-paths - M - + cool_ideas_SURFACE_terminal_activity_browser_tui - -SURFACE-terminal-activity-browser-tui - L + +SURFACE-terminal-activity-browser-tui - L - + cool_ideas_traverse_plus_query_hydration_helper - -traverse-plus-query-hydration-helper - S + +traverse-plus-query-hydration-helper - S - + cool_ideas_WARP_adaptive_projection_selection - -WARP-adaptive-projection-selection - L + +WARP-adaptive-projection-selection - L - + cool_ideas_WARP_agent_action_provenance - -WARP-agent-action-provenance - XL + +WARP-agent-action-provenance - XL cool_ideas_WARP_agent_action_provenance->cool_ideas_CI_001_causal_collapse_visualizer - - -blocked_by/blocking + + +blocked_by/blocking - + cool_ideas_WARP_causal_write_tracking - -WARP-causal-write-tracking - L + +WARP-causal-write-tracking - L cool_ideas_WARP_agent_action_provenance->cool_ideas_WARP_causal_write_tracking - - -blocked_by/blocking + + +blocked_by/blocking - + cool_ideas_WARP_intent_and_decision_events - -WARP-intent-and-decision-events - M + +WARP-intent-and-decision-events - M cool_ideas_WARP_agent_action_provenance->cool_ideas_WARP_intent_and_decision_events - - -blocked_by/blocking + + +blocked_by/blocking - + cool_ideas_WARP_provenance_dag - -WARP-provenance-dag - L + +WARP-provenance-dag - L cool_ideas_WARP_agent_action_provenance->cool_ideas_WARP_provenance_dag - - -blocked_by/blocking + + +blocked_by/blocking - + cool_ideas_WARP_auto_breaking_change_detection - -WARP-auto-breaking-change-detection - L + +WARP-auto-breaking-change-detection - L - + cool_ideas_WARP_budget_elasticity - -WARP-budget-elasticity - M + +WARP-budget-elasticity - M - + cool_ideas_WARP_causal_blame_for_staged_artifacts - -WARP-causal-blame-for-staged-artifacts - L + +WARP-causal-blame-for-staged-artifacts - L - + cool_ideas_WARP_codebase_entropy_trajectory - -WARP-codebase-entropy-trajectory - M + +WARP-codebase-entropy-trajectory - M - + cool_ideas_WARP_counterfactual_refactoring - -WARP-counterfactual-refactoring - XL + +WARP-counterfactual-refactoring - XL cool_ideas_WARP_codebase_entropy_trajectory->cool_ideas_WARP_counterfactual_refactoring - - -blocked_by/blocking + + +blocked_by/blocking - + cool_ideas_WARP_codebase_signature - -WARP-codebase-signature - L + +WARP-codebase-signature - L - + cool_ideas_WARP_structural_impact_prediction - -WARP-structural-impact-prediction - XL + +WARP-structural-impact-prediction - XL cool_ideas_WARP_counterfactual_refactoring->cool_ideas_WARP_structural_impact_prediction - - -blocked_by/blocking + + +blocked_by/blocking - + cool_ideas_WARP_degeneracy_warning - -WARP-degeneracy-warning - M + +WARP-degeneracy-warning - M - + cool_ideas_WARP_drift_sentinel - -WARP-drift-sentinel - M + +WARP-drift-sentinel - M - + cool_ideas_WARP_footprint_parallelism - -WARP-footprint-parallelism - XL + +WARP-footprint-parallelism - XL - + cool_ideas_WARP_graft_pack - -WARP-graft-pack - M + +WARP-graft-pack - M - + cool_ideas_WARP_grouped_aggregate_queries - -WARP-grouped-aggregate-queries - M + +WARP-grouped-aggregate-queries - M - + cool_ideas_WARP_intentional_degeneracy_privacy - -WARP-intentional-degeneracy-privacy - M + +WARP-intentional-degeneracy-privacy - M - + cool_ideas_WARP_minimum_viable_context - -WARP-minimum-viable-context - M + +WARP-minimum-viable-context - M - + cool_ideas_WARP_outline_diff_commit_trailer - -WARP-outline-diff-commit-trailer - S + +WARP-outline-diff-commit-trailer - S - + cool_ideas_WARP_projection_safety_classes - -WARP-projection-safety-classes - M + +WARP-projection-safety-classes - M cool_ideas_WARP_provenance_dag->cool_ideas_WARP_causal_blame_for_staged_artifacts - - -blocked_by/blocking + + +blocked_by/blocking - + cool_ideas_WARP_reasoning_trace_replay - -WARP-reasoning-trace-replay - M + +WARP-reasoning-trace-replay - M cool_ideas_WARP_provenance_dag->cool_ideas_WARP_reasoning_trace_replay - - -blocked_by/blocking + + +blocked_by/blocking - + cool_ideas_WARP_rulial_heat_map - -WARP-rulial-heat-map - L + +WARP-rulial-heat-map - L - + cool_ideas_WARP_semantic_drift_in_sessions - -WARP-semantic-drift-in-sessions - M + +WARP-semantic-drift-in-sessions - M - + cool_ideas_WARP_semantic_merge_conflict_prediction - -WARP-semantic-merge-conflict-prediction - L + +WARP-semantic-merge-conflict-prediction - L - + cool_ideas_WARP_session_filtration - -WARP-session-filtration - L + +WARP-session-filtration - L - + cool_ideas_WARP_shadow_structural_workspaces - -WARP-shadow-structural-workspaces - XL + +WARP-shadow-structural-workspaces - XL - + cool_ideas_WARP_speculative_merge - -WARP-speculative-merge - XL + +WARP-speculative-merge - XL - + cool_ideas_WARP_stale_docs_checker - -WARP-stale-docs-checker - M + +WARP-stale-docs-checker - M cool_ideas_WARP_stale_docs_checker->cool_ideas_WARP_drift_sentinel - - -blocked_by/blocking + + +blocked_by/blocking - + cool_ideas_WARP_structural_drift_detection - -WARP-structural-drift-detection - M + +WARP-structural-drift-detection - M - + cool_ideas_WARP_symbol_heatmap - -WARP-symbol-heatmap - M + +WARP-symbol-heatmap - M - + cool_ideas_WARP_technical_debt_curvature - -WARP-technical-debt-curvature - L + +WARP-technical-debt-curvature - L - + external_git_warp_observer_geometry_ladder__Rung_2_4_ - -git-warp observer geometry ladder (Rung 2-4) + +git-warp observer geometry ladder (Rung 2-4) external_git_warp_observer_geometry_ladder__Rung_2_4_->cool_ideas_CORE_migrate_to_slice_first_reads - - -blocked_by_external + + +blocked_by_external - + unresolved_CLEAN_CODE_export_diff_semver_signature_as_patch - -missing: CLEAN_CODE_export-diff-semver-signature-as-patch + +missing: CLEAN_CODE_export-diff-semver-signature-as-patch unresolved_CLEAN_CODE_export_diff_semver_signature_as_patch->cool_ideas_WARP_auto_breaking_change_detection - - -blocked_by + + +blocked_by unresolved_CLEAN_CODE_export_diff_semver_signature_as_patch->cool_ideas_WARP_semantic_merge_conflict_prediction - - -blocked_by + + +blocked_by - + leg_v08 - -v0.8.0 + +v0.8.0 - + leg_v07 - -v0.7.0 + +v0.7.0 - + leg_bad - -bad-code + +bad-code - + leg_idea - -cool-ideas + +cool-ideas - + leg_external - -external blocker + +external blocker - + leg_unresolved - -unresolved ref + +unresolved ref From 895d9c990ee16187a9264d82f7dca9f1a86960f7 Mon Sep 17 00:00:00 2001 From: James Ross Date: Sun, 31 May 2026 21:58:18 -0700 Subject: [PATCH 3/3] docs: address Echo readiness review findings --- ...cho-typescript-integration-requirements.md | 64 +- ...aft-fake-echo-shaped-typescript-witness.md | 2 + ...uctural-history-echo-package-descriptor.md | 2 + ...ral-reading-port-generated-model-parity.md | 2 + docs/method/backlog/dependency-dag.dot | 3 + docs/method/backlog/dependency-dag.svg | 661 +++++++++--------- 6 files changed, 410 insertions(+), 324 deletions(-) diff --git a/docs/design/CORE_graft-echo-typescript-integration-requirements.md b/docs/design/CORE_graft-echo-typescript-integration-requirements.md index fab4689d..4d20d765 100644 --- a/docs/design/CORE_graft-echo-typescript-integration-requirements.md +++ b/docs/design/CORE_graft-echo-typescript-integration-requirements.md @@ -45,6 +45,23 @@ requirements: None of those require Echo core to know Graft domain nouns. +## Acceptance Criteria + +- Graft-owned responsibilities and Echo-owned responsibilities are explicitly + separated. +- Echo requirements are stated as generic substrate, packaging, retention, + outcome, and TypeScript integration needs, not as Graft-domain semantics. +- The app-safe TypeScript client surface excludes trusted host authority such as + package installation, ticking, WAL mutation, runtime recovery, and scheduler + control. +- The first four Graft slices can proceed without Echo repository changes: + evidence label alignment, Echo package descriptor, fake Echo-shaped TypeScript + witness, and `StructuralReadingPort` generated-model parity. +- The Echo integration gate is explicit before any follow-on work claims real + `echo-native` evidence. +- Rust rewrite criteria are named as a later decision gate, not as scope for the + next Graft schema-authority work. + ## Current Assumptions - Graft remains TypeScript for now. @@ -136,7 +153,9 @@ Graft needs a TypeScript-facing Echo client that can do this: ```ts interface EchoContractClient { - installOrVerifyPackage?(request: EchoPackageInstallRequest): Promise; + verifyPackageCompatibility?( + request: EchoPackageCompatibilityRequest, + ): Promise; submitIntent(request: EchoIntentSubmissionRequest): Promise; observeIntentOutcome(submissionId: string): Promise; observeQuery(request: EchoQueryObservationRequest): Promise; @@ -146,6 +165,11 @@ interface EchoContractClient { The exact names do not matter. The authority boundary does. +Package installation is not part of the app-safe client. App code may verify +that its generated package metadata is compatible with the configured Echo host, +but mutation of the installed package registry belongs to a separate trusted-host +entry point. + ### App-safe TypeScript methods The app-facing TypeScript surface may expose: @@ -168,7 +192,7 @@ The app-facing TypeScript surface must not expose: | :--- | :--- | | `tick`, `step`, `superTick`, or scheduler controls | Application code must not create ticks. | | Trusted runtime start/stop/drain control | Host policy, not application behavior. | -| Package installation authority, unless explicitly separated as trusted host API | Installing packages changes runtime-owner configuration. | +| Package installation authority | Installing packages changes runtime-owner configuration and must live in a trusted-host API. | | WAL append or recovery mutation | Durable recovery authority is trusted-host scope. | | Raw kernel object mutation | Graft should operate through generated contracts and readings. | | Scheduler fault recovery | Trusted runtime control plane. | @@ -580,12 +604,12 @@ Acceptance criteria: - Hand-maintained duplicate model is rejected by tests. - No Echo core dependency is required. -### `CORE_graft-fake-echo-shaped-contract-witness` +### `CORE_graft-fake-echo-shaped-typescript-witness` Hill: Graft proves its Echo-facing adapter contract through a fake Echo-shaped -transport before depending on real Echo runtime packaging. +TypeScript witness before depending on real Echo runtime packaging. Acceptance criteria: @@ -596,6 +620,23 @@ Acceptance criteria: readings. - Tests fail if Graft leaks trusted-host authority into the app-facing adapter. +### `CORE_structural-reading-port-generated-model-parity` + +Hill: + +Graft maps current `StructuralReadingPort` payloads into the generated +structural-history model while preserving public command behavior. + +Acceptance criteria: + +- Current `StructuralReadingPort` payloads have a tested generated-model + mapping. +- Parity fixtures show current git-warp-backed readings produce equivalent + public behavior. +- Mapped evidence is labeled `git-warp-imported` or `fallback-translated`, not + `echo-native`. +- No Echo runtime dependency is introduced. + ## Sequencing Recommendation Recommended parallel plan: @@ -614,6 +655,21 @@ Recommended parallel plan: This keeps Graft moving now while giving Echo a focused list of generic requirements. +## Playback Questions + +1. Can a human tell which Graft slices can proceed before Echo changes are + required? +2. Can a reviewer verify that Echo is not asked to learn Graft domain semantics? +3. Does the app-safe TypeScript surface avoid trusted host authority such as + package installation, ticking, WAL mutation, runtime recovery, and scheduler + control? +4. Can a future agent identify the Echo integration gate before claiming real + `echo-native` evidence? +5. Do the suggested Graft planning cards match the actual `asap/` cards and + their intended order? +6. Is the Rust rewrite decision deferred behind concrete TypeScript integration + evidence instead of treated as near-term scope? + ## Open Questions 1. Should Graft's first real Echo integration use a Node/WASM package, an Echo diff --git a/docs/method/backlog/asap/CORE_graft-fake-echo-shaped-typescript-witness.md b/docs/method/backlog/asap/CORE_graft-fake-echo-shaped-typescript-witness.md index 3d7740db..70e6a9f6 100644 --- a/docs/method/backlog/asap/CORE_graft-fake-echo-shaped-typescript-witness.md +++ b/docs/method/backlog/asap/CORE_graft-fake-echo-shaped-typescript-witness.md @@ -6,6 +6,8 @@ legend: CORE lane: asap priority: 3 effort: L +blocked_by: + - "CORE_graft-structural-history-echo-package-descriptor" requirements: - "Graft proves the Echo-facing TypeScript seam before depending on Echo runtime changes" - "The fake witness is deterministic and local" diff --git a/docs/method/backlog/asap/CORE_graft-structural-history-echo-package-descriptor.md b/docs/method/backlog/asap/CORE_graft-structural-history-echo-package-descriptor.md index 85025ea3..d44a6673 100644 --- a/docs/method/backlog/asap/CORE_graft-structural-history-echo-package-descriptor.md +++ b/docs/method/backlog/asap/CORE_graft-structural-history-echo-package-descriptor.md @@ -6,6 +6,8 @@ legend: CORE lane: asap priority: 2 effort: M +blocked_by: + - "CORE_structural-history-evidence-label-alignment" requirements: - "Graft describes the Echo package it expects before requiring real Echo execution" - "The descriptor is deterministic and derived from schema authority" diff --git a/docs/method/backlog/asap/CORE_structural-reading-port-generated-model-parity.md b/docs/method/backlog/asap/CORE_structural-reading-port-generated-model-parity.md index 02f975a2..0a2b8543 100644 --- a/docs/method/backlog/asap/CORE_structural-reading-port-generated-model-parity.md +++ b/docs/method/backlog/asap/CORE_structural-reading-port-generated-model-parity.md @@ -6,6 +6,8 @@ legend: CORE lane: asap priority: 4 effort: L +blocked_by: + - "CORE_graft-fake-echo-shaped-typescript-witness" requirements: - "Current StructuralReadingPort payloads map into the generated structural-history model" - "Current public command behavior is preserved" diff --git a/docs/method/backlog/dependency-dag.dot b/docs/method/backlog/dependency-dag.dot index cdf058a1..dacc9c59 100644 --- a/docs/method/backlog/dependency-dag.dot +++ b/docs/method/backlog/dependency-dag.dot @@ -157,6 +157,9 @@ digraph backlog { unresolved_CLEAN_CODE_export_diff_semver_signature_as_patch [label="missing: CLEAN_CODE_export-diff-semver-signature-as-patch" fillcolor="#F2F2F2" penwidth=1 style="rounded,dashed,filled"] } + asap_CORE_graft_fake_echo_shaped_typescript_witness -> asap_CORE_structural_reading_port_generated_model_parity [label="blocked_by"] + asap_CORE_graft_structural_history_echo_package_descriptor -> asap_CORE_graft_fake_echo_shaped_typescript_witness [label="blocked_by"] + asap_CORE_structural_history_evidence_label_alignment -> asap_CORE_graft_structural_history_echo_package_descriptor [label="blocked_by"] cool_ideas_monitor_tick_ceiling_tracking -> cool_ideas_WARP_background_indexing [label="blocked_by/blocking"] cool_ideas_SURFACE_active_causal_workspace_status -> cool_ideas_SURFACE_ide_native_graft_integration [label="blocked_by/blocking"] cool_ideas_WARP_agent_action_provenance -> cool_ideas_CI_001_causal_collapse_visualizer [label="blocked_by/blocking"] diff --git a/docs/method/backlog/dependency-dag.svg b/docs/method/backlog/dependency-dag.svg index 3a76d3a4..a6f437bb 100644 --- a/docs/method/backlog/dependency-dag.svg +++ b/docs/method/backlog/dependency-dag.svg @@ -4,868 +4,889 @@ - - + + backlog - -Active backlog graph generated from docs/method/backlog/*/*.md + +Active backlog graph generated from docs/method/backlog/*/*.md cluster_asap - -asap (4) + +asap (4) cluster_up_next - -up-next (1) + +up-next (1) cluster_v0_8_0 - -v0.8.0 (26) + +v0.8.0 (26) cluster_bad_code - -bad-code (3) + +bad-code (3) cluster_cool_ideas - -Cool Ideas (76) + +Cool Ideas (76) cluster_external - -External blockers + +External blockers cluster_unresolved - -Unresolved internal refs + +Unresolved internal refs cluster_legend - -Legend + +Legend asap_CORE_graft_fake_echo_shaped_typescript_witness - -CORE-graft-fake-echo-shaped-typescript-witness - L + +CORE-graft-fake-echo-shaped-typescript-witness - L + + + +asap_CORE_structural_reading_port_generated_model_parity + +CORE-structural-reading-port-generated-model-parity - L + + + +asap_CORE_graft_fake_echo_shaped_typescript_witness->asap_CORE_structural_reading_port_generated_model_parity + + +blocked_by asap_CORE_graft_structural_history_echo_package_descriptor - -CORE-graft-structural-history-echo-package-descriptor - M + +CORE-graft-structural-history-echo-package-descriptor - M + + + +asap_CORE_graft_structural_history_echo_package_descriptor->asap_CORE_graft_fake_echo_shaped_typescript_witness + + +blocked_by asap_CORE_structural_history_evidence_label_alignment - -CORE-structural-history-evidence-label-alignment - M + +CORE-structural-history-evidence-label-alignment - M - - -asap_CORE_structural_reading_port_generated_model_parity - -CORE-structural-reading-port-generated-model-parity - L + + +asap_CORE_structural_history_evidence_label_alignment->asap_CORE_graft_structural_history_echo_package_descriptor + + +blocked_by up_next_CORE_structural_history_schema_and_echo_migration - -CORE-structural-history-schema-and-echo-migration - XL + +CORE-structural-history-schema-and-echo-migration - XL v0_8_0_CORE_c_structural_parsing - -CORE-c-structural-parsing - M + +CORE-c-structural-parsing - M v0_8_0_CORE_cpp_structural_parsing - -CORE-cpp-structural-parsing - L + +CORE-cpp-structural-parsing - L v0_8_0_CORE_csharp_structural_parsing - -CORE-csharp-structural-parsing - M + +CORE-csharp-structural-parsing - M v0_8_0_CORE_go_structural_parsing - -CORE-go-structural-parsing - S + +CORE-go-structural-parsing - S v0_8_0_CORE_hcl_structured_config - -CORE-hcl-structured-config - M + +CORE-hcl-structured-config - M v0_8_0_CORE_java_structural_parsing - -CORE-java-structural-parsing - M + +CORE-java-structural-parsing - M v0_8_0_CORE_json_structured_config - -CORE-json-structured-config - S + +CORE-json-structured-config - S v0_8_0_CORE_jupyter_notebook_structure - -CORE-jupyter-notebook-structure - M + +CORE-jupyter-notebook-structure - M v0_8_0_CORE_kotlin_structural_parsing - -CORE-kotlin-structural-parsing - M + +CORE-kotlin-structural-parsing - M v0_8_0_CORE_php_structural_parsing - -CORE-php-structural-parsing - M + +CORE-php-structural-parsing - M v0_8_0_CORE_pr_review_structural_summary - -CORE-pr-review-structural-summary - M + +CORE-pr-review-structural-summary - M v0_8_0_CORE_python_structural_parsing - -CORE-python-structural-parsing - S + +CORE-python-structural-parsing - S v0_8_0_CORE_ruby_structural_parsing - -CORE-ruby-structural-parsing - M + +CORE-ruby-structural-parsing - M v0_8_0_CORE_shell_structural_parsing - -CORE-shell-structural-parsing - M + +CORE-shell-structural-parsing - M v0_8_0_CORE_sql_structural_parsing - -CORE-sql-structural-parsing - M + +CORE-sql-structural-parsing - M v0_8_0_CORE_structural_test_coverage_map - -CORE-structural-test-coverage-map - M + +CORE-structural-test-coverage-map - M v0_8_0_CORE_swift_structural_parsing - -CORE-swift-structural-parsing - M + +CORE-swift-structural-parsing - M v0_8_0_CORE_toml_structured_config - -CORE-toml-structured-config - S + +CORE-toml-structured-config - S v0_8_0_CORE_tool_context_injection_contracts - -CORE-tool-context-injection-contracts - M + +CORE-tool-context-injection-contracts - M v0_8_0_CORE_yaml_structured_config - -CORE-yaml-structured-config - M + +CORE-yaml-structured-config - M v0_8_0_SURFACE_git_graft_enhance_provenance_hints - -SURFACE-git-graft-enhance-provenance-hints + +SURFACE-git-graft-enhance-provenance-hints v0_8_0_SURFACE_pr_feedback_resolution_ledger - -SURFACE-pr-feedback-resolution-ledger - M + +SURFACE-pr-feedback-resolution-ledger - M v0_8_0_SURFACE_review_cooldown_status - -SURFACE-review-cooldown-status - S + +SURFACE-review-cooldown-status - S v0_8_0_TEST_bounded_subprocess_policy - -TEST-bounded-subprocess-policy - S + +TEST-bounded-subprocess-policy - S v0_8_0_WARP_dead_symbol_detection - -WARP-dead-symbol-detection - S + +WARP-dead-symbol-detection - S v0_8_0_WARP_symbol_history_timeline - -WARP-symbol-history-timeline - S + +WARP-symbol-history-timeline - S cool_ideas_WARP_temporal_structural_search - -WARP-temporal-structural-search - M + +WARP-temporal-structural-search - M - + v0_8_0_WARP_symbol_history_timeline->cool_ideas_WARP_temporal_structural_search - - -blocked_by/blocking + + +blocked_by/blocking bad_code_CLEAN_remaining_structural_warp_reads_bypass_structural_reading_port - -CLEAN-remaining-structural-warp-reads-bypass-structural-reading-port - M + +CLEAN-remaining-structural-warp-reads-bypass-structural-reading-port - M bad_code_CLEAN_technical_teardown_contract_ledger_can_stale_without_tests - -CLEAN-technical-teardown-contract-ledger-can-stale-without-tests - M + +CLEAN-technical-teardown-contract-ledger-can-stale-without-tests - M bad_code_WARP_bijou_local_history_stale_after_branch_transition - -WARP-bijou-local-history-stale-after-branch-transition - M + +WARP-bijou-local-history-stale-after-branch-transition - M cool_ideas_bounded_neighborhood_for_references - -bounded-neighborhood-for-references - S + +bounded-neighborhood-for-references - S cool_ideas_CI_001_causal_collapse_visualizer - -CI-001-causal-collapse-visualizer - L + +CI-001-causal-collapse-visualizer - L cool_ideas_CI_002_deterministic_scenario_replay - -CI-002-deterministic-scenario-replay - L + +CI-002-deterministic-scenario-replay - L cool_ideas_CI_003_mcp_native_diff_protocol - -CI-003-mcp-native-diff-protocol - M + +CI-003-mcp-native-diff-protocol - M cool_ideas_CLEAN_CODE_parallel_agent_merge_shared_file_loss - -CLEAN-CODE-parallel-agent-merge-shared-file-loss - M + +CLEAN-CODE-parallel-agent-merge-shared-file-loss - M cool_ideas_CLEAN_contract_ledger_schema_and_lint - -CLEAN-contract-ledger-schema-and-lint - M + +CLEAN-contract-ledger-schema-and-lint - M cool_ideas_CORE_agent_handoff_protocol - -CORE-agent-handoff-protocol - M + +CORE-agent-handoff-protocol - M cool_ideas_CORE_auto_focus - -CORE-auto-focus - L + +CORE-auto-focus - L cool_ideas_CORE_capture_range - -CORE-capture-range - S + +CORE-capture-range - S cool_ideas_CORE_constructor_in_disguise_lint - -CORE-constructor-in-disguise-lint - M + +CORE-constructor-in-disguise-lint - M cool_ideas_CORE_context_budget_forecasting - -CORE-context-budget-forecasting - M + +CORE-context-budget-forecasting - M cool_ideas_CORE_conversation_primer - -CORE-conversation-primer - M + +CORE-conversation-primer - M cool_ideas_CORE_cross_session_resume - -CORE-cross-session-resume - S + +CORE-cross-session-resume - S cool_ideas_CORE_graft_as_teacher - -CORE-graft-as-teacher - S + +CORE-graft-as-teacher - S cool_ideas_CORE_graft_teach_learning_receipts - -CORE-graft-teach-learning-receipts - S + +CORE-graft-teach-learning-receipts - S cool_ideas_CORE_graft_tool_client - -CORE-graft-tool-client - M + +CORE-graft-tool-client - M cool_ideas_CORE_horizon_of_readability - -CORE-horizon-of-readability - M + +CORE-horizon-of-readability - M cool_ideas_CORE_lagrangian_policy - -CORE-lagrangian-policy - XL + +CORE-lagrangian-policy - XL cool_ideas_CORE_migrate_to_slice_first_reads - -CORE-migrate-to-slice-first-reads + +CORE-migrate-to-slice-first-reads cool_ideas_CORE_multi_agent_conflict_detection - -CORE-multi-agent-conflict-detection - L + +CORE-multi-agent-conflict-detection - L cool_ideas_CORE_policy_playground - -CORE-policy-playground - S + +CORE-policy-playground - S cool_ideas_CORE_policy_profiles - -CORE-policy-profiles - M + +CORE-policy-profiles - M cool_ideas_CORE_self_tuning_governor - -CORE-self-tuning-governor - M + +CORE-self-tuning-governor - M cool_ideas_CORE_session_knowledge_map - -CORE-session-knowledge-map - S + +CORE-session-knowledge-map - S cool_ideas_CORE_speculative_read_cost - -CORE-speculative-read-cost - S + +CORE-speculative-read-cost - S cool_ideas_CORE_structural_session_replay - -CORE-structural-session-replay - M + +CORE-structural-session-replay - M cool_ideas_CORE_wire_primitives_into_runtime - -CORE-wire-primitives-into-runtime - M + +CORE-wire-primitives-into-runtime - M cool_ideas_monitor_tick_ceiling_tracking - -monitor-tick-ceiling-tracking - S + +monitor-tick-ceiling-tracking - S cool_ideas_WARP_background_indexing - -WARP-background-indexing - M + +WARP-background-indexing - M - + cool_ideas_monitor_tick_ceiling_tracking->cool_ideas_WARP_background_indexing - - -blocked_by/blocking + + +blocked_by/blocking cool_ideas_SURFACE_active_causal_workspace_status - -SURFACE-active-causal-workspace-status - M + +SURFACE-active-causal-workspace-status - M cool_ideas_SURFACE_ide_native_graft_integration - -SURFACE-ide-native-graft-integration - XL + +SURFACE-ide-native-graft-integration - XL - + cool_ideas_SURFACE_active_causal_workspace_status->cool_ideas_SURFACE_ide_native_graft_integration - - -blocked_by/blocking + + +blocked_by/blocking cool_ideas_SURFACE_attach_to_existing_causal_session - -SURFACE-attach-to-existing-causal-session - M + +SURFACE-attach-to-existing-causal-session - M cool_ideas_SURFACE_bijou_daemon_control_plane_actions - -SURFACE-bijou-daemon-control-plane-actions - L + +SURFACE-bijou-daemon-control-plane-actions - L cool_ideas_SURFACE_bijou_daemon_status_live_refresh - -SURFACE-bijou-daemon-status-live-refresh - M + +SURFACE-bijou-daemon-status-live-refresh - M cool_ideas_SURFACE_git_graft_enhance_expanded_git_subcommands - -SURFACE-git-graft-enhance-expanded-git-subcommands + +SURFACE-git-graft-enhance-expanded-git-subcommands cool_ideas_SURFACE_graft_review_pr_number_adapter - -SURFACE-graft-review-pr-number-adapter - M + +SURFACE-graft-review-pr-number-adapter - M cool_ideas_SURFACE_init_dry_run - -SURFACE-init-dry-run - S + +SURFACE-init-dry-run - S cool_ideas_SURFACE_local_history_dag_render_mode_and_count_legend - -SURFACE-local-history-dag-render-mode-and-count-legend - S + +SURFACE-local-history-dag-render-mode-and-count-legend - S cool_ideas_SURFACE_non_codex_instruction_bootstrap_parity - -SURFACE-non-codex-instruction-bootstrap-parity - M + +SURFACE-non-codex-instruction-bootstrap-parity - M cool_ideas_SURFACE_offer_rename_refactor - -SURFACE-offer-rename-refactor - L + +SURFACE-offer-rename-refactor - L cool_ideas_SURFACE_opened_workspace_paths - -SURFACE-opened-workspace-paths - M + +SURFACE-opened-workspace-paths - M cool_ideas_SURFACE_terminal_activity_browser_tui - -SURFACE-terminal-activity-browser-tui - L + +SURFACE-terminal-activity-browser-tui - L cool_ideas_traverse_plus_query_hydration_helper - -traverse-plus-query-hydration-helper - S + +traverse-plus-query-hydration-helper - S cool_ideas_WARP_adaptive_projection_selection - -WARP-adaptive-projection-selection - L + +WARP-adaptive-projection-selection - L cool_ideas_WARP_agent_action_provenance - -WARP-agent-action-provenance - XL + +WARP-agent-action-provenance - XL - + cool_ideas_WARP_agent_action_provenance->cool_ideas_CI_001_causal_collapse_visualizer - - -blocked_by/blocking + + +blocked_by/blocking cool_ideas_WARP_causal_write_tracking - -WARP-causal-write-tracking - L + +WARP-causal-write-tracking - L - + cool_ideas_WARP_agent_action_provenance->cool_ideas_WARP_causal_write_tracking - - -blocked_by/blocking + + +blocked_by/blocking cool_ideas_WARP_intent_and_decision_events - -WARP-intent-and-decision-events - M + +WARP-intent-and-decision-events - M - + cool_ideas_WARP_agent_action_provenance->cool_ideas_WARP_intent_and_decision_events - - -blocked_by/blocking + + +blocked_by/blocking cool_ideas_WARP_provenance_dag - -WARP-provenance-dag - L + +WARP-provenance-dag - L - + cool_ideas_WARP_agent_action_provenance->cool_ideas_WARP_provenance_dag - - -blocked_by/blocking + + +blocked_by/blocking cool_ideas_WARP_auto_breaking_change_detection - -WARP-auto-breaking-change-detection - L + +WARP-auto-breaking-change-detection - L cool_ideas_WARP_budget_elasticity - -WARP-budget-elasticity - M + +WARP-budget-elasticity - M cool_ideas_WARP_causal_blame_for_staged_artifacts - -WARP-causal-blame-for-staged-artifacts - L + +WARP-causal-blame-for-staged-artifacts - L cool_ideas_WARP_codebase_entropy_trajectory - -WARP-codebase-entropy-trajectory - M + +WARP-codebase-entropy-trajectory - M cool_ideas_WARP_counterfactual_refactoring - -WARP-counterfactual-refactoring - XL + +WARP-counterfactual-refactoring - XL - + cool_ideas_WARP_codebase_entropy_trajectory->cool_ideas_WARP_counterfactual_refactoring - - -blocked_by/blocking + + +blocked_by/blocking cool_ideas_WARP_codebase_signature - -WARP-codebase-signature - L + +WARP-codebase-signature - L cool_ideas_WARP_structural_impact_prediction - -WARP-structural-impact-prediction - XL + +WARP-structural-impact-prediction - XL - + cool_ideas_WARP_counterfactual_refactoring->cool_ideas_WARP_structural_impact_prediction - - -blocked_by/blocking + + +blocked_by/blocking cool_ideas_WARP_degeneracy_warning - -WARP-degeneracy-warning - M + +WARP-degeneracy-warning - M cool_ideas_WARP_drift_sentinel - -WARP-drift-sentinel - M + +WARP-drift-sentinel - M cool_ideas_WARP_footprint_parallelism - -WARP-footprint-parallelism - XL + +WARP-footprint-parallelism - XL cool_ideas_WARP_graft_pack - -WARP-graft-pack - M + +WARP-graft-pack - M cool_ideas_WARP_grouped_aggregate_queries - -WARP-grouped-aggregate-queries - M + +WARP-grouped-aggregate-queries - M cool_ideas_WARP_intentional_degeneracy_privacy - -WARP-intentional-degeneracy-privacy - M + +WARP-intentional-degeneracy-privacy - M cool_ideas_WARP_minimum_viable_context - -WARP-minimum-viable-context - M + +WARP-minimum-viable-context - M cool_ideas_WARP_outline_diff_commit_trailer - -WARP-outline-diff-commit-trailer - S + +WARP-outline-diff-commit-trailer - S cool_ideas_WARP_projection_safety_classes - -WARP-projection-safety-classes - M + +WARP-projection-safety-classes - M - + cool_ideas_WARP_provenance_dag->cool_ideas_WARP_causal_blame_for_staged_artifacts - - -blocked_by/blocking + + +blocked_by/blocking cool_ideas_WARP_reasoning_trace_replay - -WARP-reasoning-trace-replay - M + +WARP-reasoning-trace-replay - M - + cool_ideas_WARP_provenance_dag->cool_ideas_WARP_reasoning_trace_replay - - -blocked_by/blocking + + +blocked_by/blocking cool_ideas_WARP_rulial_heat_map - -WARP-rulial-heat-map - L + +WARP-rulial-heat-map - L cool_ideas_WARP_semantic_drift_in_sessions - -WARP-semantic-drift-in-sessions - M + +WARP-semantic-drift-in-sessions - M cool_ideas_WARP_semantic_merge_conflict_prediction - -WARP-semantic-merge-conflict-prediction - L + +WARP-semantic-merge-conflict-prediction - L cool_ideas_WARP_session_filtration - -WARP-session-filtration - L + +WARP-session-filtration - L cool_ideas_WARP_shadow_structural_workspaces - -WARP-shadow-structural-workspaces - XL + +WARP-shadow-structural-workspaces - XL cool_ideas_WARP_speculative_merge - -WARP-speculative-merge - XL + +WARP-speculative-merge - XL cool_ideas_WARP_stale_docs_checker - -WARP-stale-docs-checker - M + +WARP-stale-docs-checker - M - + cool_ideas_WARP_stale_docs_checker->cool_ideas_WARP_drift_sentinel - - -blocked_by/blocking + + +blocked_by/blocking cool_ideas_WARP_structural_drift_detection - -WARP-structural-drift-detection - M + +WARP-structural-drift-detection - M cool_ideas_WARP_symbol_heatmap - -WARP-symbol-heatmap - M + +WARP-symbol-heatmap - M cool_ideas_WARP_technical_debt_curvature - -WARP-technical-debt-curvature - L + +WARP-technical-debt-curvature - L external_git_warp_observer_geometry_ladder__Rung_2_4_ - -git-warp observer geometry ladder (Rung 2-4) + +git-warp observer geometry ladder (Rung 2-4) - + external_git_warp_observer_geometry_ladder__Rung_2_4_->cool_ideas_CORE_migrate_to_slice_first_reads - - -blocked_by_external + + +blocked_by_external unresolved_CLEAN_CODE_export_diff_semver_signature_as_patch - -missing: CLEAN_CODE_export-diff-semver-signature-as-patch + +missing: CLEAN_CODE_export-diff-semver-signature-as-patch - + unresolved_CLEAN_CODE_export_diff_semver_signature_as_patch->cool_ideas_WARP_auto_breaking_change_detection - - -blocked_by + + +blocked_by - + unresolved_CLEAN_CODE_export_diff_semver_signature_as_patch->cool_ideas_WARP_semantic_merge_conflict_prediction - - -blocked_by + + +blocked_by leg_v08 - -v0.8.0 + +v0.8.0 leg_v07 - -v0.7.0 + +v0.7.0 leg_bad - -bad-code + +bad-code leg_idea - -cool-ideas + +cool-ideas leg_external - -external blocker + +external blocker leg_unresolved - -unresolved ref + +unresolved ref