agentsclimarketplace

Legacy

Skill 40508597/rwgj_sy/shared/legacy

任务架构通用智能体能力包 · 跨 Codex/Claude/Trae/Cursor 等 9+ 平台

Install
npx -y skills add 40508597/rwgj_sy --skill legacy

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

用结构化 JSON 架构文件管理 AI 编程项目的完整生命周期。 触发词:任务架构、架构JSON、模块化管理、按架构编写、结构化编程。 五个命令:/分析架构、/创建架构、/修改架构、/追加架构。 五大机制:最大主动性设计、功能簇展开、交互完整性、多层递进设计、分治设计法。

SKILL.md

31.7 KB, as published. Nobody here has run it

任务架构 — AI 编程项目架构管理

最高原则:architecture.json 是唯一真相源

architecture.json ≡ 项目的全部真相
  任何改动,必须先改 JSON,再改代码。代码追随 JSON,JSON 不追随代码。

三条铁律:

  1. JSON 先行:需求变更、功能新增、Bug修复、重构——一律先改 JSON,再改代码。
  2. JSON 是法官:代码与 JSON 不一致时,JSON 是对的,修正代码。
  3. 禁止代码漂移:代码中不得出现 JSON 未定义的模块/文件/接口。需要超出范围时,先更新 JSON。

五大核心机制

机制1: 最大主动性设计(工程层面)
  → 让项目"能用":主动补全安全/日志/监控/部署/测试

机制2: 功能簇展开(产品层面)
  → 让功能"完整":用户说一个功能名,AI 展开为一组天然绑定的子功能

机制3: 交互完整性(体验层面)
  → 让交互"到位":每个操作有完整的请求→反馈→异常→恢复闭环

机制4: 多层递进设计(认知层面)
  → 让 AI "想得深":分阶段输出,每阶段聚焦一个层面

机制5: 分治设计法(执行层面)
  → 让 AI "不遗漏":大功能拆小块,每块深度设计

架构的五个维度

项目类型功能数据交互运行时入口
web-fullstack
web-backend✅(API)
web-frontend✅(状态)✅(路由)
cli✅(配置)✅(命令)
desktop✅(菜单)
mobile
embedded/iot
library/sdk✅(公开API)

最大主动性设计

用户描述的是"想要什么",AI 的职责是思考"应该是什么"。

设计前必须自问

维度问题最小保障
安全数据如何保护?认证鉴权?敏感信息脱敏?环境变量存密钥
可观测怎么排查问题?日志在哪?关键指标?结构化日志到stdout
容错外部服务挂了怎么办?统一错误响应格式
部署怎么部署?健康检查?Dockerfile+健康检查
数据数据存哪?备份?迁移?数据库迁移脚本
扩展以后会不会塌?模块化目录结构

补全规则

  • 商业级标配(日志/错误处理/健康检查/迁移)→ 直接纳入,不询问
  • 有多个合理方案(如"Redis vs PG 做缓存")→ 询问用户选择
  • 用户描述的功能之外发现重要缺失 → 主动建议,附理由

功能簇展开

用户说的是一个功能名称,AI 应理解这个名称背后是一组天然绑定的子功能。"做一个卡密系统"不等于"做一个卡密生成页面","做一个菜单栏"不等于"画一条横条"。

核心原则

用户说的 ≠ 用户需要的全部
一个功能名 = 一个功能簇(核心功能 + 衍生功能 + 关联功能)

"菜单栏" →
  不只是菜单条本身,天然包含:
    每个菜单项的点击行为、下拉子菜单、快捷键绑定、
    菜单项的启用/禁用状态、右键上下文菜单、系统托盘菜单
  → 这些不是"额外功能",是"菜单栏"这个词自带的东西

"卡密系统" →
  不只是卡密生成,天然包含:
    生成(单条/批量/模板)、管理列表、验证接口、
    使用记录、状态管理(未用/已用/过期/禁用)、导出
  → 这些不是用户忘了说,是"卡密系统"这个词的完整含义

展开三维度

设计前,按三个维度自动展开功能簇:

第1维:功能使用流程
  "这个东西的完整使用链路是什么?"
  卡密:创建→分发→使用→验证→记录→管理→统计  → 每步对应子功能

第2维:功能生命周期
  "这个东西从生到死经历什么状态?"
  卡密:未使用→已使用→已过期→已禁用  → 每个状态需要对应操作和页面

第3维:生产上下文
  "这个功能在真实产品中跟什么关联?"
  卡密→谁创建的?(账号)→怎么来的?(支付)→异常怎么办?(风控)
  → 关联功能可能需要一并考虑

展开流程

用户描述需求 → AI 第一个动作(不写代码,不画界面):

1. 功能簇展开:
   输入:"[用户说的功能名]"
   输出:
     核心功能簇(第1维,功能自身的完整使用链路)
     衍生功能簇(第2维,生命周期管理)
     关联功能簇(第3维,生产中的上下文关联)

2. 向用户汇报功能全景:
   "这个功能按标准应包含:核心①-⑥,衍生⑦-⑨,关联⑩-⑪。
    建议优先做核心簇,衍生和关联根据你的实际场景决定。"

3. 用户确认范围 → 进入拆块+逐块设计

展开深度

默认标准展开(核心+衍生全部列出,让用户砍),不能默认浅展开(浅展开=用户说一个只做一个=现在的行为)。

深度何时用内容
标准展开默认核心+衍生全部列出,用户砍
浅展开用户明确说"只做XX,其他不要"只展开核心簇
深展开大型项目/用户要求完整方案核心+衍生+关联全部列出,标注依赖

交互完整性

AI 设计任何东西时,自动检查"这个交互完整吗"——不是用户提醒,是 AI 在设计完成后自动对照检查表补全。

全局铁律(所有项目类型,所有组件/接口/命令)

□ 请求闭环:请求→处理中→成功反馈→失败处理,缺一不可
□ 错误信息:"出了什么问题 + 建议怎么做",禁止 "Error: 500"
□ 进度反馈:超过 1 秒的操作必须有进度指示
□ 中断恢复:Ctrl+C/关闭/超时必须有清理逻辑

按项目类型的检查包

设计任何组件/接口/命令时,根据项目类型自动加载对应检查包,逐项对照。未覆盖的项必须补充到设计中。

Web/桌面/移动:
  表单:校验+loading+成功反馈+失败处理+键盘提交+未保存离开确认
  列表:骨架屏+空引导+加载失败重试+分页/无限滚动
  详情:骨架屏+不存在提示+加载失败重试+操作后状态同步
  操作(删/改):确认弹窗(含操作对象名称)+操作loading+成功toast+失败toast+列表刷新
  搜索:输入防抖300ms+搜索loading+无结果引导+错误重试
  全局:网络断开提示+登录过期重新引导

CLI:
  命令:--help完整+参数校验+长操作进度+错误退出码非零+Ctrl+C清理
  管道:--json/--quiet模式+stdin/stdout支持
  全局:--version+配置文件缺失引导

API/后端:
  接口:统一响应格式+每个错误码有具体描述+列表接口有分页信息+请求ID
  全局:健康检查端点+OpenAPI文档+可写操作返回变更后资源

库/SDK:
  公开API:类型标注+异常有清晰层级+每个异常触发条件文档说明+默认值合理
  全局:README有3行快速开始+CHANGELOG+每个公开函数有docstring

嵌入式/IoT:
  硬件交互:断线重连策略+看门狗/掉电保存+状态指示(LED/显示屏/串口)
  全局:启动自检序列+错误恢复流程文档

触发时机

阶段3逐块设计时,每个块的设计末尾:
  1. 识别当前设计的组件/接口/命令类型
  2. 加载对应项目类型的检查包
  3. 逐项对照 → 自动补全未覆盖的项
  4. 在设计输出末尾标注"交互完整性: 通过N/M项, N项未覆盖(附原因)"

多层递进设计(分阶段输出)

核心问题:一次思维过程中同时思考 10+ 个模块,思考深度必然被稀释。

解决方案:分阶段输出。每个阶段只聚焦一个层面,前阶段结论锁定后作为下一阶段的输入前提。这不是多次 API 调用,而是 Agent 在单次执行中将思维过程阶段化。

四阶段递进

阶段1:商业化全景分析
  聚焦:"这个项目按商业标准应该是什么样"
  输出:项目类型、技术栈推荐、五大维度初稿、补全清单
  ↓ 结论锁定

阶段2:拆块 + 骨架设计
  聚焦:"怎么拆块 + 基础设施怎么定义"
  输入:阶段1的全景文档
  输出:拆块清单(含优先级和依赖)+ 骨架 architecture.json(仅基础设施)
  ↓ 结论锁定

阶段3:逐块深度设计
  聚焦:每次只关注"一个块的完整细节"
  输入:骨架JSON + 前面块的接口签名摘要 + 当前块要求
  输出:当前块完整设计(接口/异常/测试/数据表/组件树)+ 更新JSON + 代码 + 测试
  ↓ 自动进入下一块

阶段4:集成验证
  聚焦:"接口一致性、依赖完整性、跨模块矛盾"
  输出:验证报告 + 修复建议

阶段间信息传递

只传结论,不传思考过程。 每个阶段把前一阶段的输出作为既定前提,不需要重新分析。

architecture.json 的四层递进结构

核心问题:扁平 JSON 把所有信息堆在同一层级——路由、接口签名、组件树、数据库字段全混在一起。AI 做任何任务都要吞下全部细节,导致"东一块西一块"——它无法区分"全局骨架"和"局部细节"。

解决方案:将 architecture.json 设计为四个递进层级。AI 做不同任务时读不同深度:

第1层:项目骨架          第1次读取(任何操作的第一步)
  ├── 项目身份(类型/语言/框架)
  ├── 入口结构(路由树/CLI命令树)
  ├── 模块拓扑(节点列表+依赖图,只有名称和关系)
  ├── 页面拓扑(页面列表+依赖的模块)
  └── 数据拓扑(表列表+所属模块)
  → AI 读完就知道"项目有几层、入口在哪、谁依赖谁"
  → 加新功能时,只需这一层就能判断新模块应该插在哪里

第2层:接口契约          需要调用已有模块时读取
  ├── 每个模块的导出接口签名(名称+参数类型+返回类型+可能异常)
  └── 每个模块的依赖声明(依赖谁+使用哪些接口)
  → AI 知道"能调用什么、怎么调用、会出什么错"
  → 写新模块代码时,只读它依赖模块的第2层

第3层:实现清单          开始写具体模块代码时读取
  ├── 每个模块的文件列表(路径+说明)
  ├── 每张数据库表定义(字段/约束/索引/迁移路径)
  └── 每个页面的组件树骨架(组件名+嵌套关系)
  → AI 知道"要创建哪些文件、每个文件写什么"

第4层:完整细节          写具体函数/组件代码或调试时读取
  ├── 每个接口的完整参数说明+实现约束+测试用例
  ├── 每个组件的属性列表+交互事件链+五态展示
  └── 每个页面的布局+接口调用时序
  → 写具体代码时不需要猜任何东西

关键规则:永远不要一次性把第4层的全部内容喂给 AI。
只传当前任务相关模块的第4层。

防越层规则(硬约束):

使用 architecture.json 时(修改/编码/调试),AI 必须:

  1. 先声明:本次任务需要读哪几层、哪些模块
  2. 只读声明的层和模块:编码 m6 时,只读 m6 的第3-4层 + m6依赖模块的第2层
  3. 不得以"了解项目全貌"为由读取无关模块的第4层细节
  4. 如果发现需要额外信息,再次声明补充读取,而不是一次性全读

违反此规则 = JSON 的四层设计被架空,退化为扁平 JSON。

完整 Schema 见 references/schemas.md

分治设计法

大功能 → 拆小块清单 → 逐块深度设计 → 自动推进 → 集成验证。

单块设计标准

每块必须达到:另一个不熟悉项目的开发者能独立写出完整代码。

每块设计按四层递进输出到 architecture.json:

  • 第1层补充:把当前块加入模块拓扑+依赖图+页面拓扑+数据拓扑
  • 第2层完整:当前块的导出接口完整签名 + 依赖声明(不允许省略任何参数/异常)
  • 第3层完整:文件列表(1-5文件)、关联数据表DD、页面组件树骨架
  • 第4层完整:每个接口的实现约束+测试用例、每个组件的属性/事件/五态
  • 交互完整性检查:设计完成后自动对照项目类型的检查包,逐项确认或补全,标注检查结果

块的大小控制

项目类型一个块大约等于
后端1个模块(2-5文件)+ 关联1-2张表
前端1个页面 + 完整组件树(3-10组件)
全栈1个后端模块 + 1个对应前端页面
CLI1个命令 + 参数/选项/错误码

拆块原则

✅ 好:"用户管理系统" → ①数据库连接 ②用户模型+表 ③CURD服务 ④API路由 ⑤登录页 ⑥管理页
❌ 差:"用户管理系统" → ①所有后端 ②所有前端(太大了)

四个命令

/分析架构 — 从代码逆向生成架构

触发:已有项目代码,想纳入架构管理。

流程

  1. 扫描项目目录结构,识别技术栈和框架
  2. 分析模块边界(目录结构 + import关系 + 类/函数职责聚类)
  3. 提取每个模块的导出接口(函数签名、类方法)
  4. 构建模块依赖图(从 import 语句推导)
  5. 对照完整性检查清单(见 references/schemas.md),标记已有覆盖和缺失项
  6. 生成 architecture.json
  7. 汇报:架构概况 + 完整性检查结果(已覆盖/缺失/建议补充)

关键:主动指出缺失的基础设施模块(没有日志?没有迁移?没有健康检查?),这些是已有项目最常见的缺口。

/创建架构 — 从零搭建项目架构

触发:新项目从零开始。

流程

阶段1:全景分析
  1. 理解需求 → 功能簇展开(标准展开列出核心+衍生子功能→用户确认范围)
  2. 确定项目类型 → 五大维度启用哪些
  3. 最大主动性设计:主动补全缺失关注点
  4. 推荐技术栈

阶段2:拆块+骨架
  4. 拆块清单(名称、优先级、依赖关系)
  5. 基础设施模块详细定义(配置/日志/错误/迁移/健康检查)
  6. 运行时+入口架构定义
  7. 生成骨架 architecture.json(不包含业务模块)

阶段3:逐块设计
  8. 按依赖顺序自动逐块深度设计 → 更新JSON → 编码 → 测试
  9. 每块完成后提取接口签名摘要,传给下一块

阶段4:集成验证
  10. 检查接口一致性 → 汇报总结

禁止:在阶段2预定义业务模块。骨架JSON只有基础设施。业务模块只在阶段3逐块加入。

/修改架构 — 修改已有内容

触发:修改已存在的模块/文件/接口/表/组件/路由等任何已在 JSON 中的内容。

与 /追加架构 的边界

  • 改已有模块的任何东西(文件/接口/状态)→ /修改架构
  • 新增一个 JSON 中不存在的模块 → /追加架构
  • 给已有模块新增文件或导出接口 → /修改架构(不是追加,是修改已有模块)

流程

  1. 读取 architecture.json,定位目标模块
  2. 影响范围分析(修改前必做):
    • 从依赖图找出所有依赖目标模块的下游模块
    • 判断变更级别:接口级(破坏性)还是实现级(非破坏性)
    • 接口级变更 → 列出所有受影响的下游接口调用点
  3. 更新 JSON + 追加变更记录
  4. 级联处理
    • 接口签名变化 → 重置所有下游模块状态为"计划中",按依赖顺序重新验证
    • 内部实现变化 → 只改当前模块状态,下游模块不受影响
    • 删除导出 → 检查下游是否存在悬空依赖,如有则必须同步修改下游
  5. 按更新后的 JSON 修改代码 + 运行受影响模块的测试

安全修改模式

变更类型影响范围处理方式
改函数内部实现仅当前模块改代码→跑测试→完成
新增导出接口仅当前模块更新JSON→加代码→加测试
改接口参数(新增可选参数)当前模块向后兼容,下游不受影响
改接口参数(改类型/删参数)当前+所有下游先更新所有下游的调用代码,再改当前模块
改数据库表结构当前+所有操作该表的模块先写迁移脚本,再依次更新各模块
拆分模块新增模块+原模块+下游先创建新模块→迁移接口→更新下游引用→删除旧代码
合并模块合并后的模块+下游先创建合并模块→迁移所有接口→更新下游引用→删除旧模块

/追加架构 — 新增不存在的模块

触发:新增 JSON 中不存在的模块/功能。

流程

  1. 读取 architecture.json
  2. 功能簇展开(用户说的功能名 → 展开核心+衍生子功能 → 用户确认范围)
  3. 确认后自动拆块 → 逐块深度设计 → 自动推进
  4. 全部完成后汇报

单块模式:如果新增内容不超过一个块的规模,直接深度设计+编码+测试。

状态流转

模块状态:计划中 → 编写中 → 待测试 → 测试中 → 已完成
              │         │           │
              └── 已废弃 ←── 修复中 ←─┘

文件状态:计划中 → 编写中 → 已完成 → 待审查
              │         │
              └── 已废弃 ←── 修复中

转换规则

  • 模块依赖的所有模块必须"已完成",该模块才能"编写中"
  • 模块下所有文件"已完成"后,模块自动变为"待测试"
  • 测试失败 → 相关模块和文件变为"修复中"

拆分原则

应该拆(满足任一):有独立对外接口、被其他模块依赖、可独立编译测试、职责明显不同。 不应该拆(满足任一):仅内部辅助函数、会循环依赖、文件预计<50行、拆分后高度耦合。 粒度:一个模块 1~5 个文件。超过 5 个考虑再拆,但必须有职责上的理由。

工作流程

从 JSON 到代码

architecture.json 就绪
    ↓
按优先级顺序,每个模块:
  1. 读第1层确认依赖模块是否全部"已完成"(是则继续,否则等待)
  2. 读第2层获取当前模块的接口契约(导出什么+依赖谁)
  3. 读第3层获取文件清单+数据表DD→创建目录和文件骨架
  4. 读第4层获取当前模块的完整细节→按接口签名填充实现→按测试用例生成测试
  5. 运行测试 → 通过则标记"已完成" → 进入下一模块

四层读取逐模块递进:写 m6 时只读 m6 的第4层 + 它依赖模块(m4, m2)的第2层。不读无关模块的任何层。

完整开发流程

/创建架构 或 /分析架构 → architecture.json 就绪
    ↓
逐块设计 + 编码 + 测试 → 自动推进直到全部"已完成"
    ↓
集成验证 → 最终产物

中断恢复

读取 architecture.json 的状态字段即可知道:哪些已完成、哪些进行中、下一个该做什么。

调试与排错

architecture.json 也是排错地图。当出现 Bug 时,利用 JSON 的以下信息快速定位:

定位流程

Bug 报告 → 确定出问题的模块编号
    │
    ├── 查 JSON 的 依赖 字段 → 是上游传错数据,还是本模块逻辑错误?
    │   如果上游接口返回的数据不对 → 追溯到上游模块
    │
    ├── 查 JSON 的 接口.导出 → 实际调用参数是否符合接口签名?
    │   参数类型不匹配 → 调用方的问题
    │   参数正确但结果错误 → 本模块实现问题
    │
    ├── 查 JSON 的 接口.可能异常 → 这个异常是否被正确处理?
    │   未列出的异常 → JSON 定义不完整,需更新
    │   已列出但未捕获 → 代码实现遗漏
    │
    └── 查 JSON 的 测试用例 → 这个 Bug 场景是否有覆盖?
        没有 → 先补测试用例到 JSON,再修代码
        有但测试未发现 → 测试实现有误,修正测试

常见排错模式

症状JSON 诊断修复方式
模块A调用模块B报错检查B的接口签名和可能异常如A的参数不符合签名→修A;如B少列了异常→更新B的JSON
数据表字段缺失检查数据架构中的表定义表定义不完整→/修改架构补字段+写迁移
组件状态异常检查组件的状态展示五态定义某态未定义→补定义;实现不符合定义→修代码
循环依赖报错检查依赖图/修改架构重构去除循环
测试通过但线上异常检查测试用例是否覆盖该场景补测试用例到JSON→补测试代码→复现→修复

修复后必须做的事

  1. 更新 JSON 变更记录(原因写明 Bug 根因)
  2. 补充测试用例到 JSON(覆盖本次 Bug 场景)
  3. 检查是否有同类问题存在于其他模块(同类接口、同类组件)

项目优化

优化项目 = 优化 architecture.json,然后重新生成代码。 不存在"绕过 JSON 直接优化代码"的路径。

优化发现:定期检查 architecture.json 中的以下信号自动发现优化点:

信号1: 模块文件数 > 5 → 考虑拆分
信号2: 模块文件数 = 1 且 < 50行 → 考虑与相关模块合并
信号3: 依赖链深度 > 4 → 中间层可能过度抽象
信号4: 同一模块被 5+ 个模块依赖 → 考虑是否过于中心化
信号5: 测试用例仅覆盖 happy path → 补充边界和异常测试
信号6: 变更记录中同一模块频繁修改 → 接口设计可能不稳定
信号7: 多个模块有相同的导出签名 → 提取公共接口/基类
信号8: 组件树的属性很多但默认值为空 → 组件可能过度设计

优化决策矩阵

优化目标识别方式操作
性能优化(接口不变)分析/监控发现瓶颈更新目标模块变更记录 → 改实现 → 跑测试
重构拆分模块文件 > 5 或职责混杂/修改架构拆成2个模块 → 定义新接口和依赖 → 逐模块重写
重构合并小模块且高度耦合/修改架构合并 → 更新接口列表 → 合并代码
消除循环依赖依赖图分析发现环/修改架构重构依赖关系 → 可能需要提取公共接口
补充测试覆盖测试用例缺少边界/异常更新JSON测试用例 → 补测试代码
升级框架/库项目信息中的版本号/修改架构更新项目信息+受影响模块接口 → 逐模块适配
提取公共代码多模块重复的导出签名/追加架构新增公共模块 → /修改架构让各模块依赖公共模块

优化原则

  • 先改 JSON 再改代码——优化的第一步永远是更新 architecture.json
  • 一次优化只做一件事——不要同时拆分+合并+升级
  • 每次优化后跑全部受影响模块的测试——不只是当前模块
  • 优化完成后在变更记录中注明"为什么优化"(性能数据?可维护性?)

智能关联路由

architecture.json 的节点之间有天然的关联关系。修改一个节点时,AI 沿着关联链自动"联想"到受影响的其他节点——不需要死记硬背规则,而是理解节点之间的牵引关系。

关联链模型

JSON 中的每个节点都属于某种类型,不同节点类型之间存在固定的关联牵引力:

模块拓扑 ──牵引──→ 接口契约(模块定义了什么接口)
接口契约 ──牵引──→ 接口契约(m6.auth 被哪些模块依赖?)
接口契约 ──牵引──→ 入口路由(需要登录的页面依赖 auth.validate_session)
入口路由 ──牵引──→ 页面拓扑(这个路由对应哪个页面?)
页面拓扑 ──牵引──→ 组件树(这个页面由哪些组件构成?)
组件树   ──牵引──→ 完整细节(这个组件的属性和事件是什么?)
数据拓扑 ──牵引──→ 实现清单(这张表的字段和迁移路径是什么?)

联想引擎

修改 JSON 时,分三步自动联想:

第1步:直接联想(我碰了什么,就联想到什么)

碰了 X 节点的 Y 字段
  → 沿着关联链向外辐射一层:X 直接关联的所有节点进入"关注列表"
  → 例如:改了 m6 的接口签名 → 直接联想到所有依赖 m6 的模块

第2步:概念联想(这个改动在业务上意味着什么,还想到了什么)

分析改动的业务语义:
  "加了认证模块" →
    功能簇联想:认证→登录+注册+密码重置+邮箱验证+会话管理+记住我+个人中心
    交互完整性联想:登录(表单类)→校验/loading/成功跳转/失败提示/键盘提交
    工程联想:涉及用户身份→入口路由中哪些页面需要保护;涉及会话→数据拓扑需要sessions表

  "加了菜单栏" →
    功能簇联想:菜单栏→每个菜单项的下拉子菜单+点击行为+快捷键+启用/禁用状态+
               右键上下文菜单+系统托盘+菜单项与路由/命令的绑定
    交互完整性联想:菜单项(操作类)→点击展开/高亮当前项/禁用态tooltip/快捷键提示

  "改了数据库表 users" →
    工程联想:涉及数据迁移→迁移脚本;涉及ORM→依赖此表的所有模块需要检查
    交互完整性联想(API):返回User对象的接口是否需要更新字段?响应格式是否一致?

第3步:一致性联想(改动后,整个 JSON 还自洽吗?)

做完改动后自动检查:
  入口路由中标记"需登录"的页面 → 是否都依赖了 auth.validate_session?
  接口契约中 m6 导出的接口 → 是否都有对应的实现清单(文件列表)?
  数据拓扑中的表 → 是否都有对应的迁移脚本?
  页面拓扑中的页面 → 是否都在入口路由中有路由?
  完整细节中的测试用例 → 是否覆盖了接口契约中列出的所有可能异常?

联想深度控制

改动规模联想深度说明
加一个模块深联想(3层)模块→接口→页面→路由→数据表,全链路联想
改一个接口签名中联想(2层)接口→下游模块→下游模块的调用代码
改内部实现浅联想(1层)只联想本模块的测试用例
修 Bug点联想(0层+补测试)不联想其他节点,只补当前 Bug 场景的测试用例

联想但不盲动

联想出来的节点是"提醒检查",不是"直接修改"。AI 必须:

  1. 列出联想到的所有节点
  2. 逐一判断是否真的受影响
  3. 只修改确认受影响的节点
  4. 对不确定的节点标注"建议人工检查"

优先级与冲突解决

五大机制可能产生冲突。当机制建议不一致时,按以下优先级裁决:

优先级(从高到低):
  1. 用户明确意愿    — 用户说"不要XX",就真的不要,不因为机制建议而绕过
  2. 工程铁律        — 安全/数据保护/不可逆操作的前置确认,不可被机制覆盖
  3. 功能簇展开建议  — 高于交互完整性(先确定做什么,再确定怎么做)
  4. 交互完整性检查  — 高于设计便利性(多写几个状态处理 > 图省事)
  5. 多层递进流程    — 高于执行速度(按阶段走 > 跳步快出)

常见冲突处理示例

冲突裁决
功能簇展开建议加注册页 vs 用户说只要登录用户意愿优先,但提醒"没有注册页,用户从哪来?"
交互完整性要求表单有"离开确认" vs 登录页实际不需要交互完整性低优先级,标注"不适用"即可跳过
最大主动性要求加日志 vs 用户项目是 20 行脚本工程铁律让位于用户意愿,但标注"建议日志"
多层递进要求分阶段输出 vs 项目只有 3 个模块用户意愿可选跳过部分阶段,但不跳过一致性校验
分治设计要求拆块 vs 用户想一次性写完分治设计高于速度,但可以让用户选择"连着做不确认"

原则:机制是建议引擎,不是束缚。用户知道自己的项目比机制更清楚。但安全相关(密码明文存储、SQL注入、数据丢失)不可妥协。

关键规则

接口即合同

模块的"导出"是对下游的承诺。修改导出接口时,必须检查所有依赖链上的模块,受影响模块状态重置为"计划中"。

变更记录不可省略

每次修改 JSON 必须在变更记录中追加:时间、操作类型、原因、影响范围。即使只改一行代码的 Bug,也要留痕。

修改后一致性自动校验

每次修改 architecture.json 后,必须立即执行以下校验,不得跳过。校验结果写入变更记录。

校验1:依赖完整性
  遍历所有模块的 依赖.使用接口 → 检查目标模块的 导出 中是否存在该接口
  → 不存在 = 悬空依赖,必须修复

校验2:路由-页面对应
  遍历入口路由中所有路径 → 检查是否有对应的页面拓扑节点
  → 缺失 = 路由指向空白页

校验3:接口-实现对应
  遍历接口契约中所有导出接口 → 检查实现清单中是否有对应的文件
  → 缺失 = 接口只有声明没有实现

校验4:数据表-迁移对应
  遍历数据拓扑中所有表 → 检查是否有迁移脚本路径
  → 缺失 = 表无法创建

校验5:需登录页面-认证依赖
  遍历入口路由中标记"需登录"的路径 → 检查对应页面是否依赖了认证模块
  → 缺失 = 页面缺少认证保护

校验6:测试覆盖异常
  遍历接口契约中每个接口的 可能异常 → 检查完整细节中测试用例是否覆盖了每个异常
  → 缺失 = 异常路径无测试覆盖

校验7:依赖图无环
  从模块拓扑的依赖图检测是否存在循环依赖
  → 存在 = 架构错误,必须重构

校验8:交互完整性
  遍历本次涉及的所有组件/接口/命令
  → 检查是否有交互完整性检查记录
  → 检查是否有未通过的检查项(不含"不适用")
  → 有未通过项 = 设计不完整,必须补全

校验结果格式(写入变更记录的影响范围字段):

"影响范围": "m3, m5 | 校验通过: 7/7" 或 "m3 | 校验未通过: 校验3(接口无实现), 校验6(异常无测试)"

禁止事项

以下任一信号出现,说明设计停留在 Demo 层面:

  • 没有配置管理模块(硬编码URL)
  • 没有错误处理模块(各自try-catch,返回格式不一致)
  • 没有日志模块(靠print排查)
  • 没有数据校验(假设输入总是合法)
  • 没有数据库迁移(手动建表)
  • 测试用例只有happy path
  • 模块依赖图有循环
  • 接口定义只有成功返回没有异常

精细化程度标准

唯一判断标准:一个不熟悉项目的开发者,拿到 architecture.json 后,能否独立写出完整的可运行代码? 能→够了。不能→继续细化。

辅助文件

  • references/principles-card.md — 速记卡:铁律+机制+命令+层级(日常参考)
  • references/quickstart.md — 快速上手:3步开始使用
  • references/schemas.md — 四层递进 JSON Schema + 四层读取策略 + 完整性检查清单
  • references/splitting-guide.md — 拆块策略参考
  • references/commands-cheatsheet.md — 命令速查
  • assets/architecture-template.json — 空白架构模板

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.