Files
a-share-analysis/docs/features/GOV-005-mysql57-charset-baseline/implementation-plan.md

4.5 KiB

MySQL 5.7 字符集与兼容性基线实施计划

For agentic workers: REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (- [ ]) syntax for tracking.

Goal: 将 MySQL 5.7.x、utf8mb4、utf8mb4_general_ci 和禁止 MySQL 8.x 专属能力写入系统架构与开发规范,并以自动化测试锁定。

Architecture: 约束以系统架构定义全局技术基线,以代码开发规范定义实现与 Review 门禁。新增独立 Node.js 静态契约测试读取这两份文档,防止后续删除版本、字符集、排序规则或兼容性要求。

Tech Stack: Markdown、Node.js 内置测试运行器、GitNexus、Git/Gitea。

Global Constraints

  • 数据库服务端固定 MySQL 5.7.x,禁止 MySQL 8.x。
  • 字符集固定 utf8mb4,排序规则固定 utf8mb4_general_ci。
  • 数据库、表、连接、迁移和测试环境必须显式声明或验证基线。
  • 禁止依赖 CTE、窗口函数、函数索引、不可见索引和 utf8mb4_0900_*。
  • 当前只建立规范,不创建数据库、容器、ORM 或生产连接。

Task 1: 建立失败的数据库基线契约测试

Files:

  • Create: tools/governance/mysql-baseline.test.mjs
  • Modify: package.json

Interfaces:

  • Consumes: docs/architecture/system-architecture.md 与 docs/governance/code-development-standards.md。

  • Produces: npm run test:mysql-baseline,验证数据库基线的机器可读证据。

  • Step 1: 编写测试

测试必须断言两份文档包含 MySQL 5.7、utf8mb4、utf8mb4_general_ci,并断言开发规范包含 MySQL 8.x 禁用能力、大小写语义、索引长度、迁移与 Review 要求。

  • Step 2: 验证测试因规范缺失而失败

运行:npm run test:mysql-baseline

预期:失败原因明确指向系统架构或开发规范缺少 MySQL 基线文本。

Task 2: 更新架构与开发规范

Files:

  • Modify: docs/architecture/system-architecture.md
  • Modify: docs/governance/code-development-standards.md

Interfaces:

  • Consumes: Task 1 的断言。

  • Produces: 所有后续数据库、ORM、迁移和部署功能必须遵守的规范。

  • Step 1: 更新系统架构

增加数据库技术基线、第一阶段接口边界以及正式启用 MySQL 时的验证条件。

  • Step 2: 更新开发规范

增加 Schema/表/连接/迁移显式配置、5.7 禁用能力、排序语义、索引预算和 Review 检查。

  • Step 3: 验证测试转绿

运行:npm run test:mysql-baseline && npm run test:governance

预期:全部通过。

Task 3: 完成追溯、Review 与发布

Files:

  • Create: docs/features/GOV-005-mysql57-charset-baseline/manifest.yaml
  • Create: docs/features/GOV-005-mysql57-charset-baseline/prd.md
  • Create: docs/features/GOV-005-mysql57-charset-baseline/requirements.md
  • Create: docs/features/GOV-005-mysql57-charset-baseline/test-plan.md
  • Create: docs/features/GOV-005-mysql57-charset-baseline/gitnexus/impact-plan.md
  • Create: docs/features/GOV-005-mysql57-charset-baseline/gitnexus/after.md
  • Create: docs/features/GOV-005-mysql57-charset-baseline/gitnexus/detected-changes.md
  • Create: docs/features/GOV-005-mysql57-charset-baseline/gitnexus/comparison.md
  • Create: docs/features/GOV-005-mysql57-charset-baseline/qa/test-results.md
  • Create: docs/features/GOV-005-mysql57-charset-baseline/qa/visual-qa.md
  • Create: docs/features/GOV-005-mysql57-charset-baseline/review/code-review.md
  • Create: docs/features/GOV-005-mysql57-charset-baseline/review/standards-review.md
  • Create: docs/features/GOV-005-mysql57-charset-baseline/release-notes.md
  • Create: docs/features/GOV-005-mysql57-charset-baseline/rollback.md
  • Modify: docs/index.md
  • Modify: CHANGELOG.md
  • Modify: VERSION

Interfaces:

  • Consumes: 通过测试的架构和规范。

  • Produces: 可审查、可发布、可回退的 GOV-005 完整档案和 v0.0.4。

  • Step 1: 完成 GitNexus 分析和全部档案

重新索引,检测完整暂存区,记录前后节点、关系、流程和风险。

  • Step 2: 完成双 Review 与门禁

运行:npm run governance:finish -- GOV-005 mysql57-charset-baseline

预期:两份 Review 均为 passed,门禁退出码为 0。

  • Step 3: 中文提交、推送与标签

提交规范变化并推送 main;封存验证结果后创建带注释 v0.0.4,精确推送该标签并核对远程引用。