FE-1164: Point plan and scope card at the stacked ask-terminal branch#304
Conversation
7a30b1f to
a9b403d
Compare
8096240 to
6f994ee
Compare
PR SummaryLow Risk Overview Build and scope discipline — Review tooling — New Plan and design reconciliation — Reviewed by Cursor Bugbot for commit 11d68ec. Bugbot is set up for automated code reviews on this repo. Configure here. |
There was a problem hiding this comment.
Pull request overview
This PR completes the FE-1164 structured-exchange cutover by introducing ask as the sole live terminal tool, shifting offer terminals to declared ask({ continues }) continuations, and updating the surrounding schemas/projections, TUI components, probes, and agent guidance to match the new ask-first contract.
Changes:
- Replace
present_question+request_responseusage withask(standalone + continuation) across session wiring, sweep classification, probes, and tests. - Add declared
askcontinuations to offer presents (present_candidates,present_digest,present_review_set) and thread option/markdown rendering through shared TUI markdown-body helpers. - Update schema/projection topology docs and agent skill/prompt guidance to teach the new
askcontract.
Reviewed changes
Copilot reviewed 108 out of 108 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| TESTING_FINDINGS.md | Adds FE-1164 Beat 6 walkthrough findings and fixes summary. |
| src/web/TOPOLOGY.md | Updates web exchanges panel wording to reflect preserved request-detail vocabulary post-ask cutover. |
| src/treedocs.yaml | Updates tree docs for new/renamed exchange modules and projections. |
| src/session/structured-exchange-loop/synthetic-tool-call.ts | Adjusts synthetic toolCall argument shape for ask. |
| src/session/structured-exchange-loop/pending-exchange.ts | Builds pending options from declared continuations; adds candidates pending path. |
| src/session/structured-exchange-loop/accepted-response.ts | Switches minted toolName from request_response to ask for accepted responses. |
| src/session/exchange-projection.ts | Tightens request/present closure logic to require tool_meta.prev. |
| src/session/tests/structured-exchange-loop.test.ts | Updates tests to expect ask tool results and continuation-fed options. |
| src/session/tests/exchange-projection.test.ts | Updates projection tests for ask toolName and ask next-tool metadata. |
| src/projections/session/sweep-watermark.ts | Includes ask tool results in conversational sweep tail classification. |
| src/projections/session/sweep-watermark.test.ts | Adds regression test ensuring ask tool results participate in sweep tails. |
| src/probes/structured-exchange-ordering-proof.ts | Refactors ordering proof from present/request to ask-only flow. |
| src/probes/public-rpc-parity-proof.ts | Updates parity proof to require ask coverage and validate ask option richness. |
| src/probes/tests/structured-exchange-ordering-proof.test.ts | Updates ordering proof test expectations for the ask event/toolResult sequence. |
| src/probes/tests/public-rpc-parity-proof.test.ts | Updates parity proof test assertions for new tool coverage and JSONL strings. |
| src/probes/tests/present-digest-supersession-proof.test.ts | Pins sweep behavior for both live ask and legacy request_response digest terminals. |
| src/probes/tests/present-candidates-supersession-proof.test.ts | Adds supersession proof for candidates with live ask and legacy terminals. |
| src/exchanges/TOPOLOGY.md | Updates exchange topology to describe ask terminal + preserved request-detail discriminants. |
| src/exchanges/text.ts | Adds shared optional-text normalization helpers. |
| src/exchanges/schemas/TOPOLOGY.md | Updates schema topology docs for ask params and ask continuation wiring. |
| src/exchanges/schemas/shared.ts | Introduces ask continuation declaration schema and updates offer tool_meta.next to ask. |
| src/exchanges/schemas/request.ts | Adds zAskDetails to request details union and adjusts outcome-key typing. |
| src/exchanges/schemas/present.ts | Allows optional ask continuation declaration on offer present details. |
| src/exchanges/schemas/params.ts | Defines ask params for standalone vs continuation-by-reference usage with validation. |
| src/exchanges/schemas/tests/present.test.ts | Updates offer present schema tests for next: ask and continuation payloads. |
| src/exchanges/schemas/tests/params.test.ts | Adds parsing tests for zAskParams including reserved ids and blanks. |
| src/exchanges/recovery.ts | Treats offer presents as continued by ask; skips legacy present_question in incomplete scan. |
| src/exchanges/projections/request-response/choices.ts | Reuses shared text normalizer instead of local helper. |
| src/exchanges/projections/request-response/choice.ts | Reuses shared text normalizer instead of local helper. |
| src/exchanges/projections/present-review-set.ts | Sets next: ask and declares review-set ask continuation payload. |
| src/exchanges/projections/present-question.ts | Refactors to shared text normalization. |
| src/exchanges/projections/present-digest.ts | Sets next: ask and declares digest review continuation payload. |
| src/exchanges/projections/present-candidates.ts | Sets next: ask and declares candidates continuation payload. |
| src/exchanges/projections/ask.ts | Adds canonical standalone ask request-details projection. |
| src/exchanges/projections/tests/present-digest.test.ts | Updates digest projection expectations for next: ask and continuation presence. |
| src/exchanges/projections/tests/present-candidates.test.ts | Updates candidates projection expectations for next: ask and continuation payload. |
| src/exchanges/tests/recovery.test.ts | Updates recovery tests around declared offer continuations and completion. |
| src/dev/component-preview/registry.ts | Adds rich-body previews and an ask transcript renderer preview entry. |
| src/dev/component-preview/exchange-fixtures.ts | Adds an ask fixture using projectAsk + formatAsk. |
| src/dev/tests/web-driver-streaming.exchange-convergence.test.ts | Updates web-driver convergence test from request_response to ask. |
| src/dev/tests/web-driver-streaming-support.ts | Updates helper functions to look for ask tool events/results. |
| src/dev/tests/tier-2-harness.test.ts | Updates Tier-2 boot assertions to use ask in the exchange tool triad. |
| src/app/tests/brunch-tui.test.ts | Updates tool registration/allowlist expectations to include ask and remove request_response. |
| src/agents/skills/propose/SKILL.md | Updates propose chain to use ask(continues) for candidate recognition and review terminals. |
| src/agents/skills/propose/references/present-review-set.md | Updates review-set drafting chain to ask({ continues }). |
| src/agents/skills/propose/references/oracle.md | Updates oracle proposal chain to use ask(continues). |
| src/agents/skills/propose/references/intent.md | Updates intent proposal chain to use ask(continues). |
| src/agents/skills/propose/references/design.md | Updates design proposal chain to use ask(continues). |
| src/agents/skills/project/SKILL.md | Updates project chain to use ask(continues) for recognition and terminals. |
| src/agents/skills/project/references/intent-to-design.md | Updates intent-to-design chain to use ask(continues). |
| src/agents/skills/project/references/design-to-oracle.md | Updates design-to-oracle chain to use ask(continues). |
| src/agents/skills/ingest/SKILL.md | Updates digest flow to use ask({ continues }) for declared review terminal. |
| src/agents/skills/elicit/SKILL.md | Updates elicitation guidance to use ask directly for focused questions. |
| src/agents/runtime/elicitor/active-tools.ts | Replaces present_question/request_response with ask in live elicitor allowlist. |
| src/agents/runtime/elicitor/tests/active-tools.test.ts | Updates allowlist test expectations for ask. |
| src/agents/references/readiness-bands.md | Updates ingest/sweep flow diagram to use ask continuation terminal. |
| src/agents/prompts/executor.md | Updates Execute-mode backfill guidance to use ask. |
| src/agents/prompts/elicitor.md | Updates elicitor prompt guidance: ask standalone + ask continuation-by-reference. |
| src/agents/contexts/exchanges/TOPOLOGY.md | Updates formatter topology to add ask and describe preserved request-detail discriminants. |
| src/agents/contexts/exchanges/present-review-set.ts | Adds render-honesty elisions for continuation declaration fields. |
| src/agents/contexts/exchanges/present-digest.ts | Adds render-honesty elisions for continuation declaration fields. |
| src/agents/contexts/exchanges/present-candidates.ts | Adds render-honesty elisions for continuation declaration fields. |
| src/agents/contexts/exchanges/ask.ts | Adds model-facing ask formatter and render-honesty elisions. |
| src/agents/contexts/exchanges/tests/ask.test.ts | Adds formatter validity + render-honesty + snapshot coverage for ask. |
| src/agents/contexts/exchanges/snapshots/ask-tuples.md | Adds snapshots for ask transcript tuples across outcomes. |
| src/.pi/README.md | Adds Pi extension tool-name documentation (needs updates for ask cutover). |
| src/.pi/extensions/exchanges/TOPOLOGY.md | Updates Pi exchange extensions topology to describe ask as only registered terminal. |
| src/.pi/extensions/exchanges/shared/required-input.test.ts | Adds tests for required input re-prompt behavior. |
| src/.pi/extensions/exchanges/shared/markdown.ts | Re-homes markdown theme creation into shared component helper. |
| src/.pi/extensions/exchanges/shared/choices-editor.ts | Switches normalizeOptionalText import to exchanges/text helper. |
| src/.pi/extensions/exchanges/index.ts | Registers ask and retires present_question/request_response from implemented tools. |
| src/.pi/extensions/tests/registry.test.ts | Updates registry expectations to include ask and remove present_question registration. |
| src/.pi/extensions/tests/exchanges-extension.test.ts | Updates structured-exchange guidance tests to teach ask + continuations. |
| src/.pi/extensions/tests/exchange-family-completeness.test.ts | Updates exchange family coverage table for ask and preserved request_* discriminants. |
| src/.pi/extensions/tests/commands-runtime-switch.test.ts | Updates runtime switch test to ensure ask is in active tools. |
| src/.pi/extensions/tests/ask-runtime-mount.test.ts | Adds mounted-TUI runtime tests for ask across modes (text/single/multi/cancel). |
| src/.pi/extensions/tests/agent-runtime-system-prompts.test.ts | Updates prompt-pack topology test tool lists (currently duplicates ask). |
| src/.pi/extensions/tests/agent-runtime-runtime.test.ts | Updates runtime-state tool list expectations to include ask. |
| src/.pi/extensions/tests/agent-runtime-authority-matrix.test.ts | Updates authority matrix tool sets to include ask. |
| src/.pi/components/TOPOLOGY.md | Documents new exchange markdown body helper component. |
| src/.pi/components/multi-choice-picker.ts | Adds optional markdown body + border labels rendered inside the picker box. |
| src/.pi/components/exchange-markdown-body.ts | Adds shared markdown theme + body-to-lines renderer for exchange components. |
| src/.pi/components/exchange-decision-picker.ts | Adds optional markdown body + border labels; adjusts choice-start offsets. |
| src/.pi/components/exchange-answer-editor.ts | Switches prompt to markdown body rendering and fixes multiline corruption issues. |
| src/.pi/components/tests/exchange-decision-picker.test.ts | Adds tests for markdown body rendering and border labels in pickers. |
| src/.pi/components/tests/exchange-answer-editor.test.ts | Updates tests for markdown body behavior and multiline rendering safety. |
| src/.pi/components/tests/exchange-answer-editor.harness.test.ts | Updates harness tests to use body prop instead of prompt. |
| memory/cards/tool-schema-convergence--ledger.md | Updates ledger for ask cutover and tool count rebase. |
| docs/design/STRUCTURED_EXCHANGE_ANSWERING_PATHS.md | Updates design doc to describe ask-based answering paths A/B/C. |
| .agents/skills/ln-scope/SKILL.md | Adds oracle-binding and invariants-preserved guidance for scope cards. |
| .agents/skills/ln-review/SKILL.md | Adds card-conformance leaf-walk guidance for reviews. |
| .agents/skills/ln-review/references/contract-lenses.md | Extends contract lenses with skipped-test and precedence-ladder warnings. |
| .agents/skills/ln-build/SKILL.md | Strengthens ln-build completion reporting and anti-skip guidance. |
| .agents/skills/ln-build/references/sliced-execution.md | Updates sliced execution loop to require leaf-by-leaf oracle walk. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
6f994ee to
be31e97
Compare
Co-authored-by: Cursor <cursoragent@cursor.com>
…lenses; correct premature done status Co-authored-by: Cursor <cursoragent@cursor.com>
…reserved section, leaf-by-leaf completion, no silent skips Co-authored-by: Cursor <cursoragent@cursor.com>
…UI-only narrowing named, empty-answer divergence documented Co-authored-by: Cursor <cursoragent@cursor.com>
…ergences) and add ln-review card-conformance walk Co-authored-by: Cursor <cursoragent@cursor.com>
…to 4, guard ask's union-free schema Co-authored-by: Cursor <cursoragent@cursor.com>
…167, close component-dx, prune Horizon, fold blank-carriers into FE-1163 ledger Co-authored-by: Cursor <cursoragent@cursor.com>
F18: the free-text answer editor rendered its whole markdown body as one accent-colored line, so multi-line bodies broke the rounded-box borders and corrupted differential height accounting; it now renders through the shared markdown-body helper like the pickers, and the preview entry uses the rich multi-line body. F19: free-text asks with commentPrompt now collect the comment (schema/projection/formatter widened with answered.comment). F20: optional comment collection is opt-in — omitting commentPrompt skips the step; schema-required comments are still always collected. Co-authored-by: Cursor <cursoragent@cursor.com>
…nder honesty The capture sweep classifier admitted only request_* toolNames, silently excluding every post-D116-L terminal (all persist under 'ask') — the digest supersession proof stayed green only because its fixtures used the retired wire shape. The classifier now admits 'ask' plus legacy request_*, the digest proof rides real toolNames including the product-minted message itself, and a named regression test pins the classifier. Also: ask gains the render-honesty oracle every other formatter has (real ASK_CONTENT_ELISIONS, per-branch leaf checks, zAskDetails parses, and a writer-owned five-branch golden replacing the orphaned ask-tuples.md), plus direct collectRequiredInput re-prompt tests. Co-authored-by: Cursor <cursoragent@cursor.com>
ln-sync retirement/reduction pass: retire validated A33-L, repair the D116-L ask-cutover drift across SPEC rows (D27-L/D100-L/D110-L/I23-L), lexicon, and verification notes; compress PLAN Context and retire the three closed-arc blocks to one-liners (full blocks archived); fix the stale web TOPOLOGY request_response line. Record the witness-audit outcome on I57-L and the FE-1164 plan entry, and add the scoped verification-closure card (ask runtime-mount battery + candidates supersession probe) with its ln-oracles design, pointed from the frontier definition. Co-authored-by: Cursor <cursoragent@cursor.com>
…s-gap closure The 2026-07-08 drop's re-open condition fired the same day (builder hit the git-host-promotion-port full-suite timeout twice; passes in isolation and on this machine's full run). PLAN now owes an ln-diagnose session. Co-authored-by: Cursor <cursoragent@cursor.com>
ed755a8 to
7030fc2
Compare
be31e97 to
0dacac9
Compare
Merge activity
|

FE-1164: Point plan and scope card at the stacked ask-terminal branch
Co-authored-by: Cursor cursoragent@cursor.com
FE-1164: Add rich-body exchange pickers
FE-1164: Cut standalone questions over to ask
FE-1164: Add declared ask continuations
FE-1164: Scope review-fix slice; graduate skip and ladder-amputation lenses; correct premature done status
Co-authored-by: Cursor cursoragent@cursor.com
Amend ln-scope/ln-build: oracle-bound acceptance leaves, invariants-preserved section, leaf-by-leaf completion, no silent skips
Co-authored-by: Cursor cursoragent@cursor.com
FE-1164: Close ask review fixes
FE-1164: Close review-fix residue: shared review-comment predicate, TUI-only narrowing named, empty-answer divergence documented
Co-authored-by: Cursor cursoragent@cursor.com
Harden ln-build completion reporting (leaf table, oracle-inverted divergences) and add ln-review card-conformance walk
Co-authored-by: Cursor cursoragent@cursor.com
Re-base FE-1163 sweep ledger for the ask cutover: exchanges family 5 to 4, guard ask's union-free schema
Co-authored-by: Cursor cursoragent@cursor.com
Plan hygiene after the merge wave: batch outer-loop residue into FE-1167, close component-dx, prune Horizon, fold blank-carriers into FE-1163 ledger
Co-authored-by: Cursor cursoragent@cursor.com