SuperAPI AI 工具集

plan-storage

数据与分析

查看项目

更新于 10-16 06:05

技能介绍

用途

plan-storage 是一个存储规划访谈技能,用于将计划中(或已存在但未记录)的存储目标转化为位于消费者项目 docs/storage-plans/<dataset>.md 的 Storage Plan markdown 文件。它是一次访谈,而非模板——每一份落地的计划都经过了存储 kill-switch(命名的上游 Ingestion Plan)、存储系统中立性规则、诚实删除机制测试、驻留继承测试、访问控制执行测试以及“这是否真的是 ADR 时刻?”路由测试的压力检验。

Storage Plan 不是基础设施即代码模板——不是 Terraform 模块、不是 DDL 文件、不是 bucket-policy JSON。它是存储层的运营与契约模型:人工撰写的承诺(格式、保留、驻留、访问、分层、分区),实际基础设施应反映这些承诺。实现这些承诺的 IaC 位于消费者的基础设施仓库中,不在本技能范围内——本技能不输出 Terraform、dbt 配置或 DDL。计划是 IaC 应被审查对照的契约,而非其替代品。它是上游一个阶段 Ingestion Plan 的结构类比,刻意由人工撰写,绝不从云 API 推断(不进行 BigQuery INFORMATION_SCHEMA 扫描、不读取 Snowflake 账户使用情况、不列出 S3 bucket)。

主要能力

  • 运行简短的分支式访谈,将存储目标转化为 Storage Plan markdown 文件。
  • 强制存储 kill-switch:要求命名至少一个 docs/ingestion-plans/ 下已接受或草稿状态的 Ingestion Plan。
  • 支持可恢复性检查:扫描现有 Storage Plan 文件,允许继续草稿、开始新计划或列出所有计划及状态。
  • 按存储系统分支布局问题(warehouse、lakehouse、object-store、operational-store、search-index、cache)。
  • 捕获生命周期字段:retention、tiering、deletion_mechanism。
  • 自包含:Storage Plan 契约位于 references/storage-plan.md,执行该契约的 linter 位于 scripts/lint-storage-plan.sh。

使用方式

该技能按九个回合顺序执行,每回合一个问题(Turn 8 为组合回合除外)。两条跨领域规则适用于每个回合:

  • 先推荐再询问:为每个回合的问题先提出一个合理答案,再让用户接受、拒绝或改进。但绝不以此方式编造 kill-switch 答案(Turn 1)。
  • 先探索再询问:如果问题可通过查看项目(docs/ingestion-plans/、docs/sources-of-record/、docs/requirements/、docs/adr/、docs/storage-plans/、CONTEXT.md)回答,先查看再带入回合。

九个回合:

  1. 命名上游 Ingestion Plan(s):询问该存储目标从 docs/ingestion-plans/ 下的哪些 Ingestion Plan 接收数据。若无法命名,触发 kill-switch,不写计划,建议先运行 /plan-ingestion。
  2. 识别数据集:捕获 kebab-case 数据集 slug。若出现多个数据集,选择一个完整深入,其余写为 status: draft 的存根。
  3. 存储系统与格式:捕获 storage_system(warehouse | lakehouse | object-store | operational-store | search-index | cache)和 format(native | parquet | orc | avro | json | delta | iceberg | hudi | row-store)。对 operational-store、search-index、cache 追问是持久记录还是派生副本。
  4. 布局:按存储系统分支询问分区/聚类、文件大小、键/前缀布局、主键/索引、分片/刷新间隔、键命名空间/驱逐策略等。映射到 partition_strategy。
  5. 生命周期(最响亮的回合):分两轮询问 retention 和 tiering,以及 deletion_mechanism(诚实测试)。
  6. 驻留继承测试。
  7. 访问控制执行测试。
  8. 组合回合。
  9. “这是否真的是 ADR 时刻?”路由测试。

输出:每个数据集一个 markdown 文件,位于 docs/storage-plans/<dataset>.md。典型长度为每份计划 8–12 次实质性交流。

适用场景

  • 数据工程团队需要为存储目标建立运营与契约模型时。
  • 已有上游 Ingestion Plan,需要规划对应存储层时。
  • 需要将未记录的现有存储目标正式化为 Storage Plan 时。
  • 需要确保存储层与上游数据血缘图连接、避免孤立存储支出时。

限制

  • 不生成 Terraform、dbt 配置或 DDL。
  • 不替代 IaC,仅作为 IaC 应被审查对照的契约。
  • 绝不从云 API 推断存储计划。
  • 若没有命名的上游 Ingestion Plan,不写计划。
  • status: accepted、status: rejected 和 status: superseded-by-<path> 文件从本技能视角视为不可变,不提供编辑。
  • 关于具体收费、价格、平台支持范围等事实,资料暂未提供。