docs-only + cli: extend scripts/gaokao-cli with two thin wrappers
without changing data/rules, data/majors_catalog, or rules/_truth.
- gaokao-cli order <subcommand> delegates argv to data.orders.cli.main
with the 'order' prefix stripped, so callers can use the unified
command face without changing the existing orders parser.
- gaokao-cli doctor <json?> returns a single self-check payload that
reuses RuleLoader + MajorsCatalogLoader (no new dependencies, no
gaokato/ scaffolding). Truth-root or catalog-root failures degrade
gracefully with structured {error, ok=false} sections instead of
raising.
- tests/test_cli_doctor_phase3.py covers: help text, order delegation
to list subcommand, doctor ok-path, doctor failure-path.
Also re-aligns docs/ACTIVE_EXECUTION_BOARD_2026-06-17.md (new) +
docs/CURRENT_STATE.md (single execution口径) + rules/majors source-
of-truth index files so design-phase numbering no longer drifts from
execution-phase numbering. Pre-existing 2026-06-16 optimization board
and 2026-06-17 phase2 plan are demoted to historical snapshots.
P0_P1_P2 remediation plan §4 historical cards get a red warning
banner so they are not re-read as current pending.
Verification:
- focused: 4 passed
- dev-verify: 770 passed, 1 failed
(alipay_sim E2E failure pre-existed this commit; caused by an
uncommitted upstream edit in admin/routes/web_public.py that
rewires payment_return -> /portal/{token}/payment-success while
the E2E still asserts /portal/{token}/status; out of scope for
this commit and intentionally not touched.)
4.0 KiB
4.0 KiB
ACTIVE_EXECUTION_BOARD_2026-06-17
真相源:
docs/CURRENT_STATE.md§0 设计快照:docs/DESIGN_RULES_TRUSTED_CLI_2026-06-16.md优化计划:docs/plans/2026-06-16-optimization-program.md状态: 已收口 / 未启动 两段式
1. 已收口(执行 Phase 1 / 1.5 / 2)
1.1 执行 Phase 1 + 1.5 — 规则真相源化
- 已落地:
rules/_truth/national.yaml(国家级规则)rules/_truth/province/*.yaml(27 省,2026 版)data/rules/loader.pyRuleLoader.from_truth_rootdata/rules/audit_engine.pyAuditEngine.audit_plandata/rules/cli.pyrules {status,verify}scripts/migrate_province_rules_to_truth.py(从PROVINCE_RULES一次性迁移)tests/test_rules_truth_phase1.py+tests/test_audit_cli_major_validation_phase2.py
- 提交链:
ae4835erules truth source loader + rules CLI8a61b8fphase1.5 verify 收口 + 旧 checker 迁移
- 三仓: gitea / origin / tksea 同步至
edc5b11
1.2 执行 Phase 2 Batch 1 — 国家级专业目录 MVP
- 已落地:
data/majors_catalog/models.pyNationalMajordata/majors_catalog/loader.pyMajorsCatalogLoaderdata/majors_catalog/national/2024.json+national/latest.json(13 个 curated subset)data/majors_catalog/cli.pymajors {status,lookup,verify,changes}tests/test_majors_catalog_phase2.py+tests/test_majors_cli_phase2.py
- 提交:
36ad58a feat(majors): add phase2 national catalog mvp
1.3 执行 Phase 2 Batch 2 — 校级招生目录骨架
- 已落地:
data/majors_catalog/schools/2026/10001.json(1 所校级骨架样本)data/majors_catalog/cli.pymajors school-status / school-verify --yeartests/test_majors_school_catalog_phase2.py+tests/test_majors_school_cli_phase2.py
- 提交:
6b1157f feat(majors): add school catalog skeleton and verification
1.4 执行 Phase 2 Batch 3 — audit_engine 接入 major_validation
- 已落地:
data/rules/audit_engine.py_validate_majors接入audit_plandata/rules/cli.pyaudit run --province --plan --truth-root --catalog-root --json- 输出口径:
MAJORS.not_found/MAJORS.non_active tests/test_audit_engine_major_validation_phase2.py+tests/test_audit_cli_major_validation_phase2.py
- 提交:
edc5b11 feat(audit): validate majors in structured audit flow
2. 未启动(执行 Phase 3 = 统一 CLI 命令面)
这是当前唯一未启动且不依赖外部前置的 P1 主目标。 Lane D(设计)的 Phase 4 = Lane E(执行)的 Phase 3,请勿混淆。
2.1 范围
按 6/16 优化计划 Phase 4 / 设计层 Phase 4 收敛:
gaokao-cli {order,share,delivery,retention,payment,backup,channel,doctor}收纳gaokao-cli doctor最小自检(已有 loader / engine / CLI 调用面,不依赖gaokato/)- 旧
scripts/gaokao-*wrapper 的 deprecation warning docs/CLI_API_MAPPING.md同步"已落地命令清单"节
2.2 暂不进入本轮
gaokato/services/*与gaokato/transport/*(设计层 Phase 5 = 执行层 Phase 4)gaokato/capabilities/registry.py(等 doctor 落地后再用其 JSON 输出作为初版源)- 退出码统一改写(沿用各子 CLI 现状,不与 Lane D 退出码收口任务冲突)
2.3 不可触发的真源改动
- 不改
data/rules/loader.py字段 - 不改
data/majors_catalog/*数据契约 - 不改
rules/_truth/*yaml - 不重写
data/orders/cli.py状态机
3. 收口规则(防止 4 条线再漂)
- 状态查询一律走本文件 +
docs/CURRENT_STATE.md§0 - 设计层 Phase 编号不等于执行层 Phase 编号;引用必须带"执行/设计"前缀
- 新写"待做"必须指明属于哪个执行 Phase
- 历史评审/历史快照/历史整改计划三类文件不再进入本板追踪
- docs-only commit 必须在 commit message 标注"docs-only",避免与代码 commit 混轨
4. 与本板同步的当前任务文档
/home/long/.hermes/docs/tasks/current/TASK-20260617-gaokao-optimization-batch2.md