feat(consult): annual and timing turns get the shared reading and annual list (product budget decision 2026-10-02)
Annual / timing single-domain turns take the career / marriage / wealth budget: contract + card <= 12,000, total with the checklist <= 18,000. CONSULT_READING_BUDGET_BLOCKED removed; size assertions and the pinned blocker test changed (原值/新值/原因 in the tests and brief 2's progress record); BUG-1160/1161 resolved, BLOCKED.md entry struck through. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01N4f2nya58RoRu4yEmJgRGE
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
071a196d11
commit
ec06d422d3
@@ -65,20 +65,10 @@ const domainMethodology: Readonly<Record<ConsultationDomain, { strictRoute: stri
|
||||
children: { strictRoute: "consult-children", eventJudgment: null },
|
||||
};
|
||||
|
||||
/**
|
||||
* BLOCKED on a product decision (TASK-consult-affliction-reading-20261001,
|
||||
* BUG-1160/1161): a single-domain annual or timing turn is already within a few
|
||||
* hundred characters of the 12,000-character model-visible ceiling asserted by
|
||||
* consult-condensed-checklist-20260927 and consult-evidence-card-20260927
|
||||
* (annual up to 11,918 before this brief). The shared reading (733 characters
|
||||
* as a section) and the annual list (334) would take annual to 12,979 and timing
|
||||
* to 12,257, and those assertions are not this brief's to change. Until the
|
||||
* product re-decides the ceiling, a turn whose plan holds only these domains
|
||||
* keeps the pre-brief method: no shared reading, and annual's list is not
|
||||
* delivered (annual stays in domains_without_strict_checklist). Remove a domain
|
||||
* from this set once its budget is decided.
|
||||
*/
|
||||
export const CONSULT_READING_BUDGET_BLOCKED: ReadonlySet<ConsultationDomain> = new Set(["annual", "timing"]);
|
||||
// Annual and timing single-domain turns used to skip the shared reading and the
|
||||
// annual list on a 12,000-character ceiling (BUG-1160/1161). Product decision
|
||||
// 2026-10-02: they take the career / marriage / wealth budget instead (contract
|
||||
// + card <= 12,000, total with the checklist <= 18,000), so every turn gets both.
|
||||
|
||||
/** Domains whose list was written by the affliction-reading brief rather than condensed from the router. */
|
||||
const BRIEF_WRITTEN_DOMAINS: ReadonlySet<ConsultationDomain> = new Set([
|
||||
@@ -209,17 +199,13 @@ export function consultationMethodologyForDomains(
|
||||
};
|
||||
|
||||
// Once per turn, before anything else (T1), however many domains it plans.
|
||||
if (unique.some((domain) => !CONSULT_READING_BUDGET_BLOCKED.has(domain))) {
|
||||
push(CONDENSED_SHARED_READING_TITLE, CONDENSED_SHARED_READING_SOURCE, sharedConsultationReading());
|
||||
}
|
||||
push(CONDENSED_SHARED_READING_TITLE, CONDENSED_SHARED_READING_SOURCE, sharedConsultationReading());
|
||||
push("Shared mandatory baseline", ROUTER_FILE, markdownSection(router, SHARED_BASELINE_HEADING));
|
||||
|
||||
const withoutChecklist: ConsultationDomain[] = [];
|
||||
for (const domain of unique) {
|
||||
const { strictRoute, eventJudgment } = domainMethodology[domain];
|
||||
const condensed = BRIEF_WRITTEN_DOMAINS.has(domain) && CONSULT_READING_BUDGET_BLOCKED.has(domain)
|
||||
? null
|
||||
: condensedConsultationChecklist(domain, { gender });
|
||||
const condensed = condensedConsultationChecklist(domain, { gender });
|
||||
if (condensed) {
|
||||
push(
|
||||
`${consultationDomainDefinition(domain).label} · ${strictRoute} · 普通对话精简清单`,
|
||||
|
||||
Reference in New Issue
Block a user