Skip to content

FE-1402: Define and rehearse the elicitation completion contract - #9320

Merged
lunelson merged 1 commit into
mainfrom
ln/fe-1402-elicitation-completion-contract
Aug 26, 2026
Merged

FE-1402: Define and rehearse the elicitation completion contract#9320
lunelson merged 1 commit into
mainfrom
ln/fe-1402-elicitation-completion-contract

Conversation

@lunelson

@lunelson lunelson commented Aug 25, 2026

Copy link
Copy Markdown
Contributor

🌟 What is the purpose of this PR?

Brunch's interviewer needs a way to tell when the model it is eliciting is complete enough to stop asking, distinct from running out of budget or the expert leaving. This pull request lands the first draft of that completion contract and a manual replay of it over all 44 prefixes of the two baseline transcripts. The draft was written at the level of the coatings-plant domain (a table of twenty demand rows keyed to that plant); the strategy pivot later in this stack (S-007, ADR-0006) found that level wrong and reduced the contract to nineteen invariants on a single function, evaluateCompletion, over kind-level rows. This branch is the record of that draft and the replay; the reduction lands in the FE-1404 branch.

🔗 Related links

  • FE-1402: Define and rehearse the elicitation completion contract (internal)
  • Parent in this stack: FE-1407 / #9319
  • Draft contract as authored here: docs/specs/elicitation-completion.md (rewritten in FE-1404; the version from this branch is preserved at docs/archive/specs/elicitation-completion-2026-08-25-full-draft.md there)
  • Replay: docs/evidence/proofs/design/elicitation-completion-rehearsal.md; plain rendering: docs/evidence/proofs/design/elicitation-completion-plain.md

🚫 Blocked by

🔍 What does this change?

Adds the completion specification, a 44-prefix replay, and a plain-language rendering; amends plugin-contract.md and the SPEC-LEDGER (§9.5 stays pending until a runtime proof exists). Completion is defined as a version-bound, read-time property of the elicited model, kept separate from stopping, delivery, no progress, budget exhaustion, and licensed deferral. The replay records, prefix by prefix, which demand clauses each transcript satisfies and when.

🏗️ Agent notes

Stacked as #9311#9312#9313#9319this branch#9321#9322.

Commit

  • b39783ba46 docs(brunch-agent): rehearse elicitation completion

Status under S-007

Reclassified 2026-08-25 as test-bed material, not authority. The domain-keyed DemandTable, where-scoped clauses, and completion-anchor matching are retired by ADR-0006; the invariants they encoded survive in the rewritten elicitation-completion.md (FE-1404 branch) as tests to write against evaluateCompletion(model, mustKnowRows). The replay is a golden-fixture candidate once re-expressed at kind level. Verdict comment posted on FE-1402.

Verification at authoring

Lint, typecheck, 128 unit tests, build, docs-index 7/7, diff check; contract, replay, and legibility reviews passed. Re-verified at the stack tip: 182/182 core tests.

Pre-Merge Checklist 🚀

🚢 Has this modified a publishable library?

This PR:

  • does not modify any publishable blocks or libraries, or modifications do not need publishing

📜 Does this require a change to the docs?

The changes in this PR:

  • require changes to docs which are made as part of this PR

🕸️ Does this require a change to the Turbo Graph?

The changes in this PR:

  • do not affect the execution graph

⚠️ Known issues

Reviewed on its own, this branch's elicitation-completion.md and plugin-contract.md describe a contract the top of the stack supersedes; read them as the record of the draft, and the FE-1404 branch for the current text.

🐾 Next steps

FE-1497 (branch ln/fe-1497-controller-read-path, above this stack) implements evaluateCompletion with the nineteen invariants as tests.

🛡 What tests cover this?

  • packages/core/test/architecture/docs-index.test.ts — index rows and relative links.
  • packages/core/test/architecture/control-surfaces.test.ts — SPEC-LEDGER row grammar.

❓ How to test this?

  1. Checkout the branch.
  2. Read docs/evidence/proofs/design/elicitation-completion-rehearsal.md against the baseline transcripts under docs/evidence/evaluations/process-model-elicitation/baseline/transcripts/.
  3. Run npx vitest run in packages/core.

📹 Demo

Documentation only.

@vercel

vercel Bot commented Aug 25, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
hash Ready Ready Preview Aug 26, 2026 1:00pm
petrinaut Ready Ready Preview Aug 26, 2026 1:00pm
petrinaut-docs Ready Ready Preview Aug 26, 2026 1:00pm
1 Skipped Deployment
Project Deployment Actions Updated (UTC)
hashdotdesign-tokens Ignored Ignored Preview Aug 26, 2026 1:00pm

Request Review

@github-actions github-actions Bot added area/infra Relates to version control, CI, CD or IaC (area) area/libs Relates to first-party libraries/crates/packages (area) type/eng > frontend Owned by the @frontend team labels Aug 25, 2026
@lunelson lunelson changed the title docs(brunch-agent): rehearse elicitation completion FE-1402: Define and rehearse the elicitation completion contract Aug 25, 2026
@lunelson
lunelson marked this pull request as ready for review August 25, 2026 12:13
@cursor

cursor Bot commented Aug 25, 2026

Copy link
Copy Markdown

PR Summary

Low Risk
Documentation-only specification and manual replay evidence; no runtime, auth, or data-path changes. Design may be superseded on later stack branches per PR notes.

Overview
Adds a provisional read-time completion contract for when a target document is “complete enough,” kept separate from stopping, delivery, budget limits, no-progress advisories, and licensed deferral.

New docs: elicitation-completion.md specifies version-bound evaluateCompletion inputs, presence vs slot demand algebra, universal active-anchor support, an evidence-bearing CompletionReport, conservative unevaluable-divergence for diverged slots, and read-time deferral licensing over existing capture/session/delivery authorities (no new persistence). elicitation-completion-rehearsal.md manually replays all 44 FE-1361 transcript prefixes with a versioned CPS demand table, clause ledgers, C1 no-progress at E09, and C2 never-asked ramp-scrap gaps. elicitation-completion-plain.md is the legibility pass.

Updates: plugin-contract.md gains plugin/demand-table versions, typed DemandClause / staticFloor, and pointers to the completion spec. INDEX.md indexes the three artifacts. SPEC-LEDGER.md §9.5 stays pending but records FE-1402 design evidence; runtime proof is still open.

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

@github-actions github-actions Bot added area/deps Relates to third-party dependencies (area) area/tests New or updated tests area/apps labels Aug 26, 2026
@lunelson
lunelson force-pushed the ln/fe-1402-elicitation-completion-contract branch from d0270d3 to 09119dd Compare August 26, 2026 12:53
@github-actions github-actions Bot removed area/deps Relates to third-party dependencies (area) area/tests New or updated tests area/apps labels Aug 26, 2026
@cursor

cursor Bot commented Aug 26, 2026

Copy link
Copy Markdown

Merge activity

  • Aug 26, 12:53 PM UTC: Graphite rebased this pull request, because this pull request is set to merge when ready.

Define a version-bound read-time completion contract and replay it over every FE-1361 transcript prefix. Keep completion distinct from stopping, delivery, no progress, budget exhaustion, and licensed deferral.

Review dispositions: corrected source timing and replay evidence, split occurrence from repair clauses, removed speculative/persisted state, preserved conservative divergence, and retained SPEC-LEDGER pending status until runtime proof exists.

Verified: lint, typecheck, 128 unit tests, build, docs-index 7/7, diff check; contract, replay, and legibility reviews PASS.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/infra Relates to version control, CI, CD or IaC (area) area/libs Relates to first-party libraries/crates/packages (area) type/eng > frontend Owned by the @frontend team

Development

Successfully merging this pull request may close these issues.

3 participants