fix(voice): speak first without loosening truth or question-slot rules #48
Closed
jesse
wants to merge 0 commits from
codex/agent-voice-20260901 into staging
pull from: codex/agent-voice-20260901
merge into: :staging
:main
:staging
:codex/full-reading-module-parity-20261018
:codex/marriage-match-p1-20261017
:codex/upstream-sync8-20261017
:codex/people-archive-limit-20-20261017
:codex/rectification-narrower-delivery-20261016
:codex/api-server-service-extract-20261013
:codex/dasha-unify-20261013
:codex/python-hygiene-20261013
:codex/contracts-helpers-dedupe-20261013
:codex/pl9-render-split-20261013
:codex/consult-route-split-20261013
:codex/beta-safety-net-20261014
:codex/beta-capacity-20261014
:codex/answer-effort-ab-20261013
:codex/api-chart-subprocess-gate-20261013
:codex/chart-ascendant-row-20261015
:codex/data-layer-types-20261013
:codex/release-path-production-20261014
:codex/beta-main-path-20261014
:codex/frontend-dead-code-20261013
:codex/consult-prep-parallel-20261013
:codex/report-reference-perf-20261013
:codex/home-sidebar-rerender-20261013
:codex/node-runtime-resources-20261013
:codex/api-disk-cache-retention-20261013
:codex/rect-scoring-perf-20261013
:codex/upstream-sync7-20261014
:codex/rectification-step0-entry-20261013
:codex/report-focus-card-20261013
:codex/report-translation-gaps-20261013
:codex/composer-first-glyph-clip-20261013
:codex/agent-loop-pilot-20261013
:codex/rectification-offer-opened-state-20261012
:codex/rectification-nearest-boundary-opening-20261012
:codex/rectification-d12-parent-probes-research-20261012
:codex/rectification-explicit-entry-20261012
:codex/consult-career-type-residual-20261009
:codex/consult-card-full-source-20261007
:codex/rashi-dashas-native-20261008
:codex/ephemeris-nutation-20261008
:codex/report-full-data-edition-20261007
:codex/special-lagnas-native-20261008
:codex/upstream-sync6-20261007
:codex/rectification-delivery-dup-adopt-20261006
:codex/consult-conversational-answer-20261006
:codex/consult-latency-quickwins-20261005
:codex/rectification-nadi-seconds-research-20261005
:codex/gate-log-volume-20261004
:codex/astrologer-rulings-batch6-20261004
:codex/consult-timeline-no-plan-20261001
:codex/consult-answer-clock-20261001
:codex/consult-plain-answer-20261001
:codex/rectification-varga-resolution-fix-20261001
:review/rectification-varga-resolution-20260930
:codex/jev-intent-v2-20260927
:codex/consult-evidence-card-research-20260927
:codex/people-archive-p1-20260924
:codex/chart-dasha-western-redesign-20260924
:codex/home-page-split-20260925
:codex/report-reader-main-20260924
:codex/rectification-midnight-date-anchor-20260920
:codex/rectification-cross-midnight-gate-fix-20260920
:codex/rectification-cross-midnight-20260920
:codex/owner-case-purge-20260919
:codex/rectification-jev-intent-research-fix2-20260919
:codex/rectification-jev-intent-research-fix-20260919
:codex/rectification-jev-intent-classifier-research-20260919
:docs/three-channel-redesign-20260918
:codex/session-list-single-source-fix-20260917
:codex/session-list-single-source-20260917
:codex/rectification-session-composer-guard-20260917
:codex/chart-copy-trim-20260917
:codex/rectification-dead-d9-choice-fix-20260916
:codex/rectification-mobile-timeline-readout-20260917
:codex/session-capacity-bool-assert-20260916
:codex/home-state-lowering-20260915
:codex/freeze-metric-change-20260915
:codex/rectification-engine-memoization-fix-20260915
:codex/consultation-session-capacity-20260915
:codex/consultation-context-memory-20260915
:codex/consultation-external-evidence-cache-20260915
:codex/rectification-request-dossier-cache-20260915
:codex/rectification-settled-render-split-20260915
:codex/rectification-engine-memoization-20260915
:codex/rectification-failure-attribution-20260915
:fix/sidebar-hard-nav
:codex/rectification-spoken-orphan-20260914
:codex/rectification-targeted-collect-spoken-focus-20260913
:codex/rectification-house-lord-gochara-research-20260913
:codex/rectification-new-minute-inherit-20260908
:codex/rectification-same-year-probe-dedupe-20260908
:codex/rectification-probe-replay-loss-20260908
:codex/rectification-range-delivery-fix-20260907
:codex/rectification-range-delivery-card-20260907
:codex/rectification-stale-compare-fix-20260907
:codex/rectification-declared-uncertainty-20260907
:codex/report-md-page-20260906
:codex/rectification-collect-vs-offer-consistency-20260905
:codex/rectification-probe-answer-covers-domain-20260905
:codex/rectification-quality-probe-dedupe-20260904
:codex/rectification-post-adopt-verify-20260904
:codex/report-candidate-range-20260904
:codex/report-sensitivity-crash-20260904
:codex/rectification-adopt-narration-fix2-20260904
:codex/rectification-adopt-narration-fix-20260904
:codex/rectification-adopt-narration-20260904
:codex/repo-hygiene-20260903
:codex/rectification-ux-20260903
:codex/rectification-ux-20260902
:codex/diagnose-rectification-request-20260827
:fix/staging-gate-checkout-retry
No Reviewers
Labels
Clear labels
agent/待执行
agent/待真机
agent/待规划
agent/待验收
agent/执行中
agent/排队
agent/规划中
agent/试点
agent/部署中
agent/需拍板
agent/验收中
ready-for-agent
wayfinder:map
wayfinder:task
Grok 领:按任务书实现
产品负责人真机走查
Claude 领:诊断并写任务书
Claude 领:验收 Grok 回报的 SHA
锁:Grok 执行中
任务书已写好,等前置单合入 staging 后由 Claude 改成 agent/待执行;循环两侧都不处理
锁:Claude 规划中
试点期只处理带此标签的 issue
已推 staging,等部署核对(脚本自动)
需要产品负责人决定
锁:Claude 验收中
Fully specified, ready for an agent
Wayfinder map issue holding the notes and child tickets
Wayfinder child ticket
No labels
Milestone
No items
No Milestone
Projects
Clear projects
No projects
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: root/Jyotisha#48
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
Agent 可见输出改成先说人话,再守红线。基线是当时的
origin/staging@8617eb56;提交前已并入当前origin/staging(8b7eda9f,skill-parity 任务书)。顺序:任务 0 对照 → A → B → C → E → D。frontend/src/lib/rectification-agentic/user-copy.ts。user_meaning仍给模型/审计;用户可见面走engineMeaningToDisplayCopy。Python 引擎字段未改。skill 仍是 10.0.14。任务 0 · 事故 case
f83d9b42改前 / 改后形状:Skill 10.0.14;开场窗 04:45–05:15(30 分钟)收到 05:00–05:07(7 分钟);代表分钟 05:00。改前串按
8617eb56硬编码 + route 直出复排,冻在ACCIDENT_CASE_BEFORE_COPY。改后由accidentCaseHardcodedTurns从 copy 模块重建。校正 assistant 串
对照里开场不再出现语义重复的两连问(E-1)。
婚姻主题咨询开场三段
改前: 第一眼就是
## 统一参数与原始结构,然后## 关系,文末## 技法审计表。改后: 先 3–6 句无标题口语(方向 + 一句承接),再
## 统一参数与原始结构→## 关系→## 技法审计表(Level 2 顺序不变)。红线 1 · 真实性 / 边界语义
natalSpokenReportContract+ consult user turn)。answer_policy/ precise-timing 守卫未动。containsBoundarySemantics+REPRESENTATIVE_MINUTE_DISCLAIMER。事故 case 交付句见上表。frontend/tests/agent-voice-copy-contract.test.ts(delivery/adopt 语义、中间轮不含完整边界句);rectification-provisional-adopt.test.tsB2;rectification-answer-choice.test.ts采用叙述。红线 2 · 问题槽归属
GENERIC_COLLECT_QUESTION仍由spokenFollowupForUser/ focus.prompt 写出,不由模型自拟。rectification-server-focus.test.ts、rectification-decision-authority.test.tsinvariant 3(answer_choice仍把p_assistant_message === currentQuestion.prompt写入历史)、agent-voice-copy-contract.test.ts的 prompt 源扫描。任务 E-1 · 结构化判定(不得用正文正则)
shouldPersistFocusPromptTurn为 false 仅当:action === "opening"且 (kind === "collect_spoken"或intent === "collect_method_evidence") 且assistantBodyPresent === true。矩阵(测试锁定):
源码证明:
shouldPersistFocusPromptTurn函数体没有.test(/.match(/.search(/includes(。stream 路径把assistantBodyPresent: Boolean(result.answerText?.trim())传入,只问「有没有非空正文」,不问正文说了什么。BUG-467 记在docs/BUG_HISTORY.md(复发自 BUG-460;不得用正文字符串判断「是否已问过」)。任务 E-2 · user_meaning 分层
用户可见(已改走 display copy):
rectification-board.tsx)ConfirmationGateDisclosure)event_quality选择卡 prompt(choice-card.ts)prospectiveWindowsNarration/ hostNarration 附加句仍进模型/审计(原样,含「不得…」):
sessionOutcomeView、buildNextUserAction、skill verification report、probe briefs、Python 引擎user_meaning引擎字段未删、未改语义。
文案 旧 → 新 → 保留的语义约束
UNVERIFIED_BIRTH_TIME_NOTICE按任务书跳过。测试断言若从逐字旧句改为语义匹配,上表即对应清单。机器腔词表(≥8 条,含本次清理的全部旧词)在
agent-voice-copy-contract.test.ts。Test plan
cd frontend && ./node_modules/.bin/tsc --noEmitexit 0rectification-*非数据库测试 fail=0(730)consultation-*/consult-*/chat-*fail=0(289,含 voice contract)agent-voice-copy-contract.test.ts:词表、边界语义、E-1 矩阵、E-2 display copyjyotisha.chat上跑开场双问或婚姻咨询rectification-*-database.test.ts:本机 Docker 下有 3 条database migration failed(并行时)/ 串行重试后 PR-4 与 agent-api migration 仍失败。本 PR 未改 SQL 或 migration runner;与文案无关。ingest P0、v9 open、evidence lifecycle、legacy backfill、profile gating(重试)已绿。未验证
没有在线上 staging 用事故 case 走一遍真实模型开场。对照与红线证明来自本机源码和测试。
Pull request closed