Files
gaokao-volunteer-system/docs/ACTIVE_EXECUTION_BOARD_2026-06-17.md
Hermes 7d31d75145
Some checks failed
CI / pytest (Python 3.10) (push) Has been cancelled
CI / pytest (Python 3.11) (push) Has been cancelled
CI / pytest (Python 3.12) (push) Has been cancelled
feat(cli): add order delegation + doctor self-check (phase 3)
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.)
2026-06-17 18:05:16 +08:00

4.0 KiB
Raw Blame History

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/*.yaml27 省2026 版)
    • data/rules/loader.py RuleLoader.from_truth_root
    • data/rules/audit_engine.py AuditEngine.audit_plan
    • data/rules/cli.py rules {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
  • 提交链:
    • ae4835e rules truth source loader + rules CLI
    • 8a61b8f phase1.5 verify 收口 + 旧 checker 迁移
  • 三仓: gitea / origin / tksea 同步至 edc5b11

1.2 执行 Phase 2 Batch 1 — 国家级专业目录 MVP

  • 已落地:
    • data/majors_catalog/models.py NationalMajor
    • data/majors_catalog/loader.py MajorsCatalogLoader
    • data/majors_catalog/national/2024.json + national/latest.json13 个 curated subset
    • data/majors_catalog/cli.py majors {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.json1 所校级骨架样本)
    • data/majors_catalog/cli.py majors school-status / school-verify --year
    • tests/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_plan
    • data/rules/cli.py audit 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 条线再漂)

  1. 状态查询一律走本文件 + docs/CURRENT_STATE.md §0
  2. 设计层 Phase 编号不等于执行层 Phase 编号;引用必须带"执行/设计"前缀
  3. 新写"待做"必须指明属于哪个执行 Phase
  4. 历史评审/历史快照/历史整改计划三类文件不再进入本板追踪
  5. docs-only commit 必须在 commit message 标注"docs-only",避免与代码 commit 混轨

4. 与本板同步的当前任务文档

  • /home/long/.hermes/docs/tasks/current/TASK-20260617-gaokao-optimization-batch2.md