fix(consult): keep career type off significators and warm off the compute cap

The career checklist now says significators are only for strength and affliction. Chart-save warm no longer takes a heavy-compute slot.

Biography severe conflicts fell from 3 to 1. One career answer still names a direction from a planet nature, so this is not accepted for merge. Not pushed.
This commit is contained in:
jesse-ux
2026-10-09 10:28:44 +08:00
parent 3ad8e80077
commit fc3a2e680d
8 changed files with 195 additions and 3 deletions
@@ -13,6 +13,7 @@ import test from "node:test";
import { fileURLToPath } from "node:url";
import {
CAREER_SIGNIFICATOR_STRENGTH_RULE,
CONDENSED_CHECKLIST_SOURCE,
CONSULT_BRIEF_CHECKLIST_SOURCE,
CONSULTATION_CONDENSED_CHECKLISTS,
@@ -76,6 +77,25 @@ async function writerPrompt(domain: "career" | "marriage" | "wealth") {
return toolResultText(result.prompts[writer]);
}
test("career significators stay strength and affliction, and the system prompt is unchanged", () => {
const career = CONSULTATION_CONDENSED_CHECKLISTS.career!;
assert.equal(career[0]!.startsWith("事业题只讲盘上的力量、阻力和时间"), true);
assert.equal(career.filter((line) => line === CAREER_SIGNIFICATOR_STRENGTH_RULE).length, 1);
assert.match(CAREER_SIGNIFICATOR_STRENGTH_RULE, /自然代表星、Jaimini 代表星、大运主星/);
assert.match(CAREER_SIGNIFICATOR_STRENGTH_RULE, /不按星的本性推断职业类型、做事方式或台前 \/ 幕后/);
const mastra = readFileSync(new URL("../src/mastra/index.ts", import.meta.url), "utf8");
const natal = mastra.slice(
mastra.indexOf("const jyotishInstructions"),
mastra.indexOf("const generalJyotishInstructions"),
);
assert.equal(natal.includes(CAREER_SIGNIFICATOR_STRENGTH_RULE), false);
assert.equal(natal.includes("不按星的本性推断职业类型"), false);
// 原值: 无此断言
// 新值: jyotishInstructions 源码切片 15,291 字符,且不含本条
// 原因: 产品 2026-10-09 要求规则只进事业清单,系统提示长度不变(仍 ≤ 26.6K)
assert.equal(natal.length, 15_291);
});
test("each condensed list is 5–8 lines", () => {
// 原值:全部清单 5–8 行,且只有 career / marriage / wealth 三份;
// 新值:这三份仍 5–8 行;另有 TASK-consult-affliction-reading-20261001 定稿的 8 份(2–6 行,按任务书原文,不凑行数),
@@ -100,7 +120,7 @@ test("the writer's prompt carries the condensed list with the three layers and t
// 原值(2): career 必含「事业形态」
// 新值(2): 改为必含「不替用户断定他做哪一行」(CAREER_FIELD_ASK_RULE)
// 原因(2): 产品 2026-10-02「行业不猜,问用户」,删掉「先讲一生事业形态:公众型还是幕后型」(BUG-1176)
career: ["接触", "机会出现", "成形", "公开落地", "不替用户断定他做哪一行", "事业必成", "d9 段", "KP 精确宫头仍 blocked"],
career: ["接触", "机会出现", "成形", "公开落地", "不替用户断定他做哪一行", "事业必成", "d9 段", "KP 精确宫头仍 blocked", "不按星的本性推断职业类型"],
marriage: [
// 原值: "心动接触", "关系成对", "社会法律落地"
// 新值: 三件事用生活说法,并写明回答里不报层名