feat(consult): prompt and Skill read from the evidence card (Skill 6.9.17)

The natal system prompt now says: the card in claim_cards is the chart
evidence for this answer, quote it as given, look up one further section of
this calculation with read-consultation-evidence before writing, and read
evidence_card.backstage as a confidence cap. The "use every executed layer"
and must_use_layers sentences are replaced; local_layers paths now point at
the card. SKILL.md 关联技法完整调取 / 0.0.1 and router 0.7 state that the
full result stays in receipts, the 本轮技法 panel and reports while web chat
answers from the card; computing the full spectrum is unchanged. Skill and
package version 6.9.16 -> 6.9.17 (tests/run_all.py 三栏).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017eEAG8HD3mm8gsKXgk8uU8
This commit is contained in:
Jesse_Chen
2026-09-27 02:54:11 +08:00
co-authored by Claude Opus 5.5
parent 850f18605b
commit 147ebc1789
9 changed files with 42 additions and 23 deletions
+5 -1
View File
@@ -45,7 +45,11 @@ test("keeps strength, Ashtakavarga, and timing evidence available to the answer
assert.match(workflowSource, /dasha_sub_periods: modules\.dasha_sub_periods/);
assert.match(workflowSource, /varga_spectrum: modules\.varga_spectrum/);
assert.match(workflowSource, /technique_audit_table: consumerContext\.technique_audit_table/);
assert.match(agentSource, /evidence_contract\.technique_audit_table/);
// 原值: assert.match(agentSource, /evidence_contract\.technique_audit_table/)(提示要求模型通读审计表)
// 新值: 审计表仍由工作流带回、留在服务端回执与「本轮技法」面板;提示改为数据卡是清单、审计记录留在服务端
// 原因: TASK-consult-evidence-card-20260927 D3/T4(推翻「technique_audit_table is the invocation record… Use every executed layer」)
assert.doesNotMatch(agentSource, /evidence_contract\.technique_audit_table/);
assert.match(agentSource, /the full invocation record \(executed \/ blocked \/ not applicable per technique\) stays with the server/);
assert.match(workflowSource, /evidence_contract:/);
assert.match(workflowSource, /missing_route_layers: consumerContext\.missing_route_layers/);
assert.match(workflowSource, /answer_policy: consumerContext\.answer_policy/);
@@ -32,6 +32,9 @@ test("web consult compute and projection keep the live skill's locally computed
assert.match(attach, /search_transit_triggers/);
assert.match(workflow, /transits: context\.local_layers\.transits/);
assert.match(workflow, /must_use_layers/);
assert.match(instructions, /must_use_layers is the executed shortlist/);
// 原值: assert.match(instructions, /must_use_layers is the executed shortlist/)
// 新值: 计算照旧全谱系(上面几条不变),提示改为「数据卡是这次回答的清单」
// 原因: TASK-consult-evidence-card-20260927 D3/T4:只改给模型看什么,BUG-287 的计算口径不变
assert.match(instructions, /The evidence card is the shortlist for this answer/);
assert.doesNotMatch(instructions, /AGENTS\.md/);
});
@@ -16,7 +16,11 @@ test("product voice uses a spoken opener then the skill Level 2 report skeleton"
assert.match(voice, /Yoga table/);
assert.match(voice, /Do not write 统一参数与原始结构 or 技法审计表 into the body/);
assert.match(voice, /governed_support_only_candidate_ready/);
assert.match(voice, /Skip an executed layer the question needs/);
// 原值: assert.match(voice, /Skip an executed layer the question needs/)
// 新值: 「不许为了短而漏掉问题需要的卡上事实」;写答案的模型只读数据卡
// 原因: TASK-consult-evidence-card-20260927 D1/T4(推翻「用尽每个已执行层」的口径)
assert.match(voice, /Skip a card fact the question needs/);
assert.doesNotMatch(voice, /Skip an executed layer/);
// 原值: assert.match(voice, /你更适合把已经积累的专业能力做成长期事业/) —— 它是 Good 例。
// 新值: 同一句改断言成 Bad 例(下方 voice-opener-shape 测试里锁住它在 Bad 段)。
// 原因: 产品判定这句像顾问报告——没有反差、没说谁在推谁在修、没有可扮演的象。
@@ -39,7 +43,12 @@ test("product voice uses a spoken opener then the skill Level 2 report skeleton"
assert.match(binding, /present its Level 2 report template in the chat body after a 3-6 sentence spoken reply/);
assert.match(mastra, /The bound skill method is this product's answering contract/);
assert.match(mastra, /Do not use a restricted technique/);
assert.match(mastra, /must_use_layers is the executed shortlist/);
// 原值: assert.match(mastra, /must_use_layers is the executed shortlist/)
// 新值: 数据卡是这次回答的清单;卡外数据只能用补取工具取一次
// 原因: TASK-consult-evidence-card-20260927 D1/D3/T4,must_use_layers 与审计表不再进模型上下文
assert.match(mastra, /The evidence card is the shortlist for this answer/);
assert.match(mastra, /call read-consultation-evidence once, before writing any answer text/);
assert.doesNotMatch(mastra, /must_use_layers is the executed shortlist|Use every executed layer/);
assert.match(mastra, /do not invent it from model knowledge/);
assert.match(mastra, /search_period is the searched observation window/);
assert.match(voice, /## 先回答你的问题/);