You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[Decision] Two states in DESIGN.md §03 are dead ends: a started obligation cannot go overdue, a partly paid instalment cannot be completed #10
Governing text: DESIGN.md §03 (the two lines above); AGENTS.md → Delivery process → a code PR never touches DESIGN.md §01–§04 without a needs-user-decision first.
Card 03 (#3, PR #9) implemented both tables literally. in_progress: ['done', 'waived'] and partial: [] are in the merged hook today, refusing anything else with 422 INVALID_STATE. Nothing is broken; the product simply cannot express two states a user will reach.
Question 1 — obligations
pending → overdue is drawn. in_progress → overdue is not. So an obligation nobody has touched can be marked late, and one someone has started cannot.
Option
Consequence
1A — add the edge
Card 09's daily sweep can flag every late obligation. One line in §03, one entry in the machine.
1B — confirm it is deliberate
Started work is chased through its due date, never moved into arrears. Card 09 must then skipin_progress rows, and §03 has to say so, or the next reader files it as a bug.
Recommendation: 1A. The asymmetry is hard to read as intent, and the state it excludes is the more serious one.
Question 2 — payment instalments
partial has no outgoing edge at all. Elsewhere §03 marks terminal states explicitly; here it is terminal only by omission.
The row settles where it started. Matches how a person describes it: "they paid half, then the rest."
2B — confirm partial is terminal
The remainder is a further instalment row. Coherent, and it fits the unique (contract, seq) shape, but it must be stated — "partial" as a permanent resting state reads as a dead end.
Recommendation: 2A, or 2B stated explicitly. Either works; the silence does not.
四棱分析(两问共用,差异已注明)
实际业务需求 — 偏 A。两条都是真实会走到的路径:一份已经在做的义务照样会迟;一笔分两次付的款照样要有付清的那一刻。第二问的 B 选项是有业务原型的(按期次逐行结清,每行只结一次),所以它不是错的,只是必须说出来;第一问的 B 选项则要求「已开始的事不进逾期」,这在法务催办的语境里很难成立。
Card 09 (F13/F14 and the daily sweeps) is the consumer and is not yet dispatched. Answering before it is dispatched costs nothing; answering after means a second pass over contract.hook.ts and a §03 edit anyway. Decision card #6 (termination_reason) touches the same file and the same section — answering both together makes them one edit.
Claim: PM loop round 2 (seat repo:hotclm) — member of a folded family dispatch; chain head is #6.
Session: session_01R3n3GGzobdegM4HUzah1iR
Branch: claude/issue-6-design-rulings (shared with #6 and #14 — named for the chain head)
Worktree: hotclm-issue-6
Domain: repo:hotclm
File surface: DESIGN.md §03 only — the two state-table rows
Container & model: S, mode:subagent, model: default judgement tier
Clause-②: no
Thread-read: 5604409219 (this seat's ruling comment on this card, 2026-09-09T15:0xZ)
Serial constraints cleared: see the chain-head claim on #6 for the full check and the five folding gates. In flight alongside: #39 (card 09), file-surface disjoint (src/ vs DESIGN.md).
This card's share of the shared PR: clm_obligation.status gains in_progress → overdue; clm_payment_plan.status gains partial → paid and partial → overdue. The code half (the hook's transition map) lands in #39, so the PR here carries Refs #10, ⛔ not Fixes — this card closes when #39 lands.
Activity
zhuangjianguo commentedon Sep 9, 2026
裁定:1A + 2A —— 两条边都补
维护者裁决,2026-09-09,常设决裁批第 1 批,逐字:
本卡两问都是业务问题(设计方案第 3 章的两张状态表自身不完整,与平台能力无关)⇒ 按席位推荐 1A + 2A。
in_progress → overdue。已开始但迟了的义务可以被标逾期 —— 消除「更轻的状态能进逾期、更重的不能」这个不对称。partial → paid(以及partial → overdue)。付了一半的款可以结清,也可以转逾期 ——partial不再是死胡同。Governing text(录裁前重跑):
DESIGN.md§03 两行状态表(clm_obligation.status/clm_payment_plan.status);AGENTS.md→ 代码 PR 不得在无needs-user-decision的情况下改 §01–§04。该前置条件现已满足。鲜度门:正文最后编辑 2026-09-07T13:25:41Z,其后本卡零评论。
裁后执行
DESIGN.md§03 requires a termination reason but declares no field for it #6):两行状态表各加边 ——in_progress→done/waived/overdue;partial→paid/overdue。in_progress: ['done','waived']改为含'overdue',partial: []改为['paid','overdue']。in_progress行 —— 这正是本卡防错轴点名要避免的静默少报。状态转换:
needs-user-decision→pm:queue(同一笔标签写入)。partial有了出边,不再需要在文档里解释它为什么是终态。⛔ 不需要额外的文档补丁。Generated by Claude Code
zhuangjianguo commentedon Sep 9, 2026
Claim: PM loop round 2 (seat
repo:hotclm) — member of a folded family dispatch; chain head is #6.Session:
session_01R3n3GGzobdegM4HUzah1iRBranch:
claude/issue-6-design-rulings(shared with #6 and #14 — named for the chain head)Worktree:
hotclm-issue-6Domain:
repo:hotclmFile surface:
DESIGN.md§03 only — the two state-table rowsContainer & model:
S,mode:subagent,model: default judgement tierClause-②: no
Thread-read:
5604409219(this seat's ruling comment on this card, 2026-09-09T15:0xZ)Serial constraints cleared: see the chain-head claim on #6 for the full check and the five folding gates. In flight alongside: #39 (card 09), file-surface disjoint (
src/vsDESIGN.md).This card's share of the shared PR:
clm_obligation.statusgainsin_progress → overdue;clm_payment_plan.statusgainspartial → paidandpartial → overdue. The code half (the hook's transition map) lands in #39, so the PR here carriesRefs #10, ⛔ notFixes— this card closes when #39 lands.Generated by Claude Code
docs(design): record four maintainer rulings in DESIGN.md §03, §06 an…
docs(design): make §09 self-consistent and stop §02 promising turnaround
WIP: card 09 scheduled jobs — INCOMPLETE AND UNREVIEWED