fix(rectification): 有题就接着问,题问完才出卡;引导窗口不再硬贴领域
出卡时机只看题源有没有空:撤回「门槛达标就短路采集线」的写法,同时 按 D2 保住「题源全空就按现行规则出卡」——门槛只在还有题可问时挡住 出卡,precision_gate_met 改成只上报(新挂在决策与公开投影上),不再 单独决定时机。引导窗口题在无领域轨道上改问开放题,一个时间窗只问一 次;录入卡提交的是「YYYY 年 M 月,<领域>方面有一件事」,不再是题干 的三选一列表。记忆化 golden 只补一个新键并冻结墙钟。离线回放改成注 入真值方向的边界事件,另跑一组反方向对照。Skill 10.0.28。 BUG-747~752 Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JUei7K13cYxLHE3Axe4A45
This commit is contained in:
co-authored by
Claude Fable 5.1
parent
a396bbe076
commit
dc732825d8
@@ -1793,6 +1793,8 @@ _GUIDED_TRACK_DOMAIN = {
|
||||
"nara:d9": "relationship",
|
||||
"nara:d10": "career",
|
||||
}
|
||||
#: Windows whose track carries no domain are asked open (BUG-749).
|
||||
GUIDED_ANY_DOMAIN = "any"
|
||||
|
||||
|
||||
def _guided_track_starts(
|
||||
@@ -1883,20 +1885,6 @@ def guided_collect_windows(
|
||||
}
|
||||
now = today or date.today()
|
||||
lo, hi = birth_year + 5, min(now.year, birth_year + 80)
|
||||
remaining_layers = _differing_layers(work)
|
||||
fallback = [
|
||||
domain
|
||||
for domain in _probe_domains(
|
||||
remaining_layers,
|
||||
[item for item in (request.get("events") or []) if isinstance(item, dict)],
|
||||
d1_differs="d1" in remaining_layers,
|
||||
)
|
||||
if domain not in declined
|
||||
]
|
||||
if not fallback:
|
||||
fallback = [domain for domain in GUIDED_DOMAIN_ORDER if domain not in declined]
|
||||
if not fallback:
|
||||
return []
|
||||
vim_cache: dict[tuple[Any, ...], list[date]] = {}
|
||||
narayana_cache: dict[tuple[Any, ...], list[date] | None] = {}
|
||||
starts_by_time: dict[str, dict[str, list[date]]] = {}
|
||||
@@ -1916,7 +1904,6 @@ def guided_collect_windows(
|
||||
)
|
||||
rows: list[dict[str, Any]] = []
|
||||
seen: set[tuple[int, int, int, str]] = set()
|
||||
unlayered_index = 0
|
||||
for left, right in _representative_pairs(work):
|
||||
left_time = str(_context_time(left) or "")
|
||||
right_time = str(_context_time(right) or "")
|
||||
@@ -1944,14 +1931,16 @@ def guided_collect_windows(
|
||||
right_n = len(gathered) - left_n
|
||||
if left_n < 1 or right_n < 1:
|
||||
continue
|
||||
# BUG-749: only the D9 / D10 Narayana tracks carry a domain.
|
||||
# Vimshottari and natal Narayana boundaries say nothing about
|
||||
# which area of life moved, so the window is asked open
|
||||
# ("any") instead of being round-robined onto one domain.
|
||||
track_domain = _GUIDED_TRACK_DOMAIN.get(track)
|
||||
if track_domain and track_domain not in declined:
|
||||
domain = track_domain
|
||||
else:
|
||||
domain = fallback[unlayered_index % len(fallback)]
|
||||
unlayered_index += 1
|
||||
if domain in declined:
|
||||
continue
|
||||
domain = (
|
||||
track_domain
|
||||
if track_domain and track_domain not in declined
|
||||
else GUIDED_ANY_DOMAIN
|
||||
)
|
||||
for year, month_lo, month_hi in _guided_year_windows(gathered):
|
||||
if year < lo or year > hi:
|
||||
continue
|
||||
|
||||
Reference in New Issue
Block a user