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,精确推送该标签并核对远程引用。