Repository navigation
Product close-out: record design decisions as product defaults, add CI - #6
baozhoutao wants to merge 1 commit into
Conversation
The maintainer ruling of 2026-09-02 takes this system forward as a standard product: every open decision closes along the AI-recommended path. Record that as documentation truth and give the repo a CI workflow so `main` and every PR run the same gate that already exists locally. - docs/03: a 放行记录 line under each of D-01 / D-02 / D-03 reading 「按推荐路径执行(产品默认)」 with the ruling date; the 执行说明 paragraph and the section heading no longer describe the decisions as pending, and each 待确认点 becomes a resolved 产品默认 statement. - docs/01: one 「产品默认」 line on Q-01~Q-05, Q-07~Q-09 and Q-11 giving the adopted option and why. Q-06, Q-10 and Q-12 stay open and untouched. - docs/04: rows 6, 10, 11 and 12 now cite the product default instead of a pending question. Rows 7 and 18 and the statistics line already carry their target wording from #2, so they are left as they are. - README: the doc table no longer calls the decisions pending, and a new 「产品默认口径」 section lists all twelve defaults plus the three questions that remain open. - .github/workflows/ci.yml: new. push to main + pull_request, Node 22 and pnpm 10 to match `engines`, `pnpm install --frozen-lockfile` then validate, typecheck and test as separate steps so a red run names the failing gate. Job name `verify`, so the check reads `CI / verify`. No code change: src/, scripts/, test/ and package.json are untouched. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VR2khJ3Me96btawVsfG6jb
os-project-dev-review — PR #6Tier: light (docs-only + a new CI workflow; no runtime code in the diff) Reviewed cold against work item #3, General quality
Triggers match the work item ( The docs are well written — each "产品默认" line gives a reason rather than just a letter, and the reasons are mostly good ones (Q-08's "flow-per-department would move the flow definition from the plan to the subject, which fights per-version freezing" is exactly the right argument). The problem is not the prose; it is that five of the newly asserted defaults describe behavior the code does not have, and Library-specific checks① Change-surface / no out-of-scope edits — PASS. ② Self-report reconciliation — MIXED.
The What the self-report does not mention is the reconciliation that matters most for a closeout PR: whether the code backs the defaults now being asserted as truth. For Q-03, Q-04 and Q-09 it does not — see findings. ③ Forbidden-trace check — PASS (none). ④ Ruling landed in user-visible copy — PASS (one nit). Extra checks requested.
Findings🔴 🟡 Q-09's guarantee is unenforced, and 🟡 Q-04 names an approval chain that is not segregated — and it is now the only control. 🟡 Q-02's stated reason is inverted ( 🟡 🟡 CI pins action majors that GitHub has already deprecated. The green run's own annotation says: "Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: ⚪ Q-07's reset does not cover the re-submit path ( ⚪ ⚪ ⚪ ⚪ Generated by Claude Code |
|
On hold — not merged. Maintainer ruling (2026-09-02): the design proposal ( Generated by Claude Code |
|
Closing as superseded. The "product default" framing this PR recorded has been replaced by the customer's written confirmation of the design proposal (docs/00, all 17 items confirmed on 2026-09-02; items 13/14/15 = A). The documentation baseline and CI workflow are re-specified in a new work item that starts from the current main; the ci.yml draft here is reused there with updated action majors. Generated by Claude Code |
Work item #3. Documentation and CI configuration only — no code change.
The maintainer ruling of 2026-09-02 takes this system forward as a standard product: every open decision closes along the AI-recommended path rather than waiting for item-by-item sign-off. This PR records that as documentation truth and gives the repo a CI workflow, so
mainand every PR run the same gate that already exists locally aspnpm verify.What changed
docs/03-方案分级.md— each of the three multi-path proposals (D-01 organisation subject, D-02 scoring engine, D-03 review state machine) now ends in a 放行记录 line reading 「按推荐路径执行(产品默认)」 with the 2026-09-02 ruling date and the executed path. The 执行说明 paragraph and the section heading no longer describe the decisions as pending, and each 待确认点 has become a resolved 产品默认 statement. The trailing global record is replaced by a 决策台账 closing note, so exactly three 放行记录 lines exist.docs/01-需求解读报告.md— one 「产品默认:…」 line appended to Q-01Q-05, Q-07Q-09 and Q-11, each naming the adopted option and why. Q-06, Q-10 and Q-12 remain open and are untouched.docs/04-需求符合度清单.md— rows 6, 10, 11 and 12 now cite the product default instead of a pending question; row 12 in particular loses 「疑点 Q-04 待拍板」. No verdict (✅/README.md— the document table no longer calls the decisions pending, and a new 「产品默认口径」 section tabulates all twelve defaults (D-01~D-03 plus the nine questions) and names the three questions that remain open..github/workflows/ci.yml— new. Triggers onpushtomainand onpull_request. Node 22 and pnpm 10 to match theenginesfield,pnpm install --frozen-lockfile, thenpnpm validate/pnpm typecheck/pnpm testas three separate steps so a red run names the failing gate without opening the log. WorkflowCI, jobverify, so the check readsCI / verify.src/,scripts/,test/andpackage.jsonare untouched, as the work item requires.Evidence
Acceptance criterion 4 — no hit, and the ruling vocabulary is gone from the README too:
Exactly three release records in
docs/03, all in the target wording:Nine product-default lines in
docs/01, on exactly the nine closed questions:The workflow parses, and the check name resolves as intended:
Local gate at
a9ab27e, the same command the workflow runs:Diff scope, confined to the five declared files:
Baseline differences from the work item description
Two sub-items of the work item were already in their target state on
main, landed by #2, and were therefore left alone rather than re-applied:docs/04row 7 is already ✅ and row 18 already describes the dynamic record sharing;The statistics line was consequently not re-synced: this PR changes no verdict, so nothing in the counts moved. One pre-existing inconsistency is noted for triage rather than fixed here — the statistics line counts 21 ✅ / 3⚠️ , which treats row 4 (xlsx direct import) as ⚠️ in line with the exit paragraph below it, while row 4's own 态 cell reads ✅. Recounting the 态 column alone gives 22 ✅ / 2 ⚠️ . Reconciling the two would flip a compliance verdict, which is outside this work item.
Verification of
CI / verifyitself can only happen once GitHub runs the workflow on this PR; its conclusion is reported on the work item.🤖 Generated with Claude Code
https://claude.ai/code/session_01VR2khJ3Me96btawVsfG6jb
Generated by Claude Code