ワンクリックで
alembic-migration
编写、校验 Alembic 迁移,保证 schema 演进唯一通过「ORM 模型 + 迁移链」落地,不触碰冻结的 migrations/db.sql baseline。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
编写、校验 Alembic 迁移,保证 schema 演进唯一通过「ORM 模型 + 迁移链」落地,不触碰冻结的 migrations/db.sql baseline。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
契约治理三件套的「值层」。核对同一个物理契约值(MQ topic/group、OSS bucket、消息字段名/别名、内部 HTTP 路径等)在 .env/.env.example/代码生效点/Java 对端多处是否逐字相等,找出配置漂移与死值,防止消息收不到/文件取不到。本 skill 只比对「同一个值在多处是否一致」,不判断结构/语义是否破坏对端(那是结构层,转 contract-guard),也不改文档。
指导 LLM 如何使用 toLink-Rag 项目的 MQ 消息中台进行消息收发、定义新消息类型以及处理多厂商适配逻辑。
当用户认为当前模块代码实现完毕,且当前分支应为 dev,需要从 dev 基于当前修改创建规范分支、提交并发起合并到 dev 的 GitHub PR 时使用;也用于发布收口,即直接创建 dev -> master 的 release PR,不新建 release 分支。适用于“从 dev 新建分支”“把当前修改提 PR”“实现完成创建 feature/refactor 分支并 PR”“发布新版本”“dev 合并 master”等交付收口场景。本 skill 是交付链终点,并在建分支/提 PR 前执行收口门槛:测试未过、契约文档失同步、acceptance 未提升者拒绝收口。
当用户要求把需求、功能、技术方案、架构改造、故障复盘、项目治理实践或实现过程写成博客/技术文章时必须使用;尤其适用于“写一篇博客”“生成技术博客”“把这个需求写成文章”“根据这个功能写博客”“把项目实现讲清楚”等请求。使用时要基于用户给出的需求和 toLink-Rag 当前仓库的真实代码、文档、契约、配置与测试证据完成分析,默认输出 Markdown 到 `.specs/blog/《博客名称》.md`。文章须采用「少量
把项目里已有的内部组件(如 MQ 中台、解析 pipeline、缓存层、对象存储)抽象成一份「项目自有 skill」,让 AI 每次接入都自动复用该组件的架构边界与约定。读组件真实代码,提炼「架构定位 / 职责边界 / 已落地清单 / 扩展点 / 红线」五要素,按统一原型生成 SKILL.md,登记到 .ai/skills/README.md 注册表并跑校验。
当用户要提 issue、登记 bug、记录新需求时使用;自动识别所属项目,生成结构化 issue 内容,先在 Linear 建主记录、再在 GitHub 建镜像,并双向回链。用户说"提个 issue""记一下这个 bug""把这个需求登记一下""同步到 Linear 和 GitHub""别再依赖 Linear 自动同步"时都应触发,即使没有明确说出"Linear"或"GitHub"。
| name | alembic-migration |
| description | 编写、校验 Alembic 迁移,保证 schema 演进唯一通过「ORM 模型 + 迁移链」落地,不触碰冻结的 migrations/db.sql baseline。 |
| when_to_use | 当用户改动 src/models/**.py、要求新增/修改表字段、写数据库迁移、对齐 ORM 与 DDL、或排查迁移链断裂时激活。触发示例:'给这个模型加个字段'、'写个迁移'、'alembic 迁移怎么写'、'schema 改了要同步什么'、'升级数据库结构'。若用户只是要建表 DDL 规范(命名/索引/类型),转 mysql-ddl-conventions;只要同步文档转 doc-maintenance-sync。 |
toLink-Rag 的 schema 权威源是 ORM 模型 + Alembic 迁移链。任何字段/表的新增或修改,
都只能改 src/models/**.py 并补一条 migration,不得修改 migrations/db.sql
(0001 baseline 冻结快照)。本 skill 把"改模型 → 写迁移 → 校验 → 同步文档"固化为可执行流程。
src/models/**.py(本次改动的 ORM 模型,真值源)migrations/(迁移链入口)与 migrations/versions/*.py(已有迁移,找当前 head)alembic.ini / migrations/env.py(迁移运行配置与 target_metadata)migrations/db.sql(只读,0001 baseline,禁改)docs/api/schemas/mysql.md(数据模型文档,需同步)scripts/quality/doc-sync-rules.yaml(机器强制同步规则)src/models/**.py → 必须新增 migrations/versions/*.py。src/models/**.py → 必须同步 docs/api/schemas/mysql.md。migrations/db.sql。down_revision 指向的那个 revision),
新迁移的 down_revision 必须接在 head 后,避免出现多头(multiple heads)。
.venv/bin/alembic heads
.venv/bin/alembic history | head
src/models/<table>.py 增改字段/索引,类型与约束遵循
mysql-ddl-conventions(snake_case、状态用 VARCHAR、时间戳、COMMENT 等)。.venv/bin/alembic revision --autogenerate -m "add xxx to yyy"
或手写 upgrade()/downgrade()。检查:
upgrade() 与 ORM 改动完全一致(列名、类型、nullable、default、index);downgrade() 能精确回滚(drop 对应列/索引),不要留空;.venv/bin/alembic upgrade head
.venv/bin/alembic downgrade -1
.venv/bin/alembic upgrade head
docs/api/schemas/mysql.md 中该表的字段说明。python scripts/quality/check_docs_sync.py --staged
.venv/bin/alembic heads # 必须只有一个 head
mysql.md 的同步要点。upgrade() / downgrade() 的对称性说明。alembic upgrade head 与 check_docs_sync.py。migrations/db.sql 加字段。downgrade() 留 pass(无法回滚)。ALTER TABLE 手动改线上库绕过迁移链。