Repository navigation
Give freeform an upper witness without restoring a length cap - #843
Conversation
atomchung
left a comment
There was a problem hiding this comment.
BLOCK — the upper witness repeats the same provenance on two floors.
The three researched claims already satisfy C2 by naming source + date inline (WDGT 8-K, investor presentation, Northstar Ratings). The final caliber line then lists the same three sources and dates again. That teaches the generation path to pay twice for the same provenance, directly against D6 and D7's “nothing appears on two floors” rule—the exact semantic class the deterministic E-5…E-8 checks intentionally cannot catch.
Smallest repair: keep the inline source/date beside each public fact, and reduce the end block to the book/pricing frame plus material gaps, e.g. (帳本 8/14、價格 8/14 收盤;未評反壟斷通過機率與交易後估值). Apply the same edit to the corpus copy and the fenced generation-path copy, then rerun both CI groups.
Everything else in the two-file slice is appropriately bounded: compact lower witnesses remain, the richer scene is explicitly an upper—not default—witness, the freeform/plain-conversation scope is consistent with the existing route contract, and no engine/state/privacy/execution boundary changes. GitHub cannot accept an approval from the repository owner, so this is recorded as a blocking COMMENT review.
Blocker repaired and re-reviewedCommit
Final semantic review found no remaining blocker. The PR still changes exactly two synchronized surfaces: the freeform generation-path exemplar and its canonical corpus copy. It changes no engine, schema, persistence, execution state, privacy boundary, or other route. Verification on the exact final tree:
Mechanical and semantic acceptance for this PR are complete. Behavioral acceptance is deliberately still open: #836 requires the frozen simple-lookup versus research-heavy owner-live comparison before this pattern expands to another surface. Merge remains an owner decision. |
The four hunks below sat inside the compact-witness commit of #851, so dropping that commit would have silently dropped them too. They belong with the rest of the history cut: - the "revised by owner ruling 2026-07-30 (#561) from the original four-column table" narrative on the positions view - "Since #830, *where* they go is a rule" and "since #830 that block separates ..." (the rules stand; the dating goes) - "and #823 did not build one" Also corrects the maintainer-guide row for #834, which still named freeform_positions_view as freeform's exemplar after #843 made it freeform_research_depth. No second fence, no test change. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
#851) * docs(instructions): drop history narratives from the instruction surface An instruction file is read as instructions, not as a changelog. Past-tense sentences about what a rule used to be, which PR changed it, and when the owner ruled, all cost budget and invite the model to reason about the repository's history instead of the user's question. Removed: qa/SKILL.md's three narrated asides, book-refresh.md's "and the answer changed with #523", first-review.md's "now gated rather than trusted", condition-slots.md's "It used to be the one thing thrown away", decision-framing.md's "no longer says it a second time" and its History block, and trade-consequence.md's dated owner-ruling paragraph plus the "Deleted, and what replaced each" table (three renderings becomes two, because two is what there are). server.js's MCP tool description becomes a contract rather than one line, with a `.describe()` on each input field: a tool description is read by a model choosing whether to call it, so precision is worth more than brevity. 60/60 offline suites pass. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> * docs(instructions): drop the history narratives in freeform-answers.md The four hunks below sat inside the compact-witness commit of #851, so dropping that commit would have silently dropped them too. They belong with the rest of the history cut: - the "revised by owner ruling 2026-07-30 (#561) from the original four-column table" narrative on the positions view - "Since #830, *where* they go is a rule" and "since #830 that block separates ..." (the rules stand; the dating goes) - "and #823 did not build one" Also corrects the maintainer-guide row for #834, which still named freeform_positions_view as freeform's exemplar after #843 made it freeform_research_depth. No second fence, no test change. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * docs(instructions): correct three claims the history cut left stale or loose Found by the independent review of #851 (Codex and Antigravity) and checked against the code before changing anything: - docs/maintainer-guide.md, the #830 row, still said trade-consequence.md "states a reason per keep and per delete". The per-delete table is gone, so the row now says what the file does: a reason per kept fact. - fomo_submit_demo_choice described `locale` as the language of its "confirmation text", but the tool returns one fixed English string and only echoes `locale` back. The description now says that. - qa/SKILL.md Step 6 said archive-receipt makes "converting a miss" part of the walkthrough. The gate (`verify --require-findings`) requires a recorded disposition, and `--no-findings` and `not-episodable:` are legal ones, so the sentence now says "recording where each miss went". No behaviour change. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
User outcome
A simple lookup stays short. A research-heavy decision can carry several sourced increments when each one changes the call, instead of being implicitly compressed toward a corpus in which every positive exemplar was under 400 characters.
Current behavior / evidence
Change
freeform_research_depthpositive with eight distinct increments, explicit source/as-of provenance, an engine-owned portfolio consequence, a contextual research judgment, and observable falsifiers;references/freeform-answers.md;Scope / non-goals
This is deliberately one surface. It changes no engine, schema, persisted state, transaction lifecycle, execution truth, privacy boundary, or other conversational route.
consider,no_book, andweekly_readremain unchanged until owner-live evidence shows they need the same treatment.Acceptance
freeformstays inside the corpus's 3–5 positive-exemplar range;Privacy / rollout / recovery
All issuers, ratings sources, prices, dates, holdings, and deal facts are synthetic. The change is reversible by restoring the previous freeform fence and removing one fixture scene; no migration or recovery path is involved.
Refs #836. This PR does not close it: the issue remains open until owner-live evidence decides whether any other surface needs an upper witness.