ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

pm-skills intended-vs-implemented方法论:如何3步找出文档与代码之间的危险差距(完整指南)

pm-skills intended-vs-implemented方法论:如何3步找出文档与代码之间的危险差距(完整指南) pm-skills intended-vs-implemented方法论如何3步找出文档与代码之间的危险差距完整指南【免费下载链接】pm-skillsPM Skills Marketplace: 100 agentic skills, commands, and plugins — from discovery to strategy, execution, launch, and growth.项目地址: https://gitcode.com/GitHub_Trending/pm/pm-skillspm-skills 的intended-vs-implemented 方法论是一套专门用来找出「文档与代码之间的危险差距」的审计方法先写下系统应该做什么意图再到代码里逐条验证实际做了什么实现把两者对不上、且跨越信任边界的不一致当成真正的安全发现来报告。对使用 AI 生成代码的项目来说这恰好能抓住通用扫描器发现不了的那一类漏洞。pm-skills 是一个面向产品经理的技能市场Skills Marketplace包含 100 个 agentic 技能、命令和插件覆盖从产品发现、战略、执行到上线和增长的完整流程。而本文的主角intended-vs-implemented属于其中专为AI 构建的代码服务的pm-ai-shipping插件为什么文档和代码会各说各话 ️AI Agent 写代码很快但它不会留下任何关于意图的记录——系统应该做什么、谁被允许做什么、密钥放在哪里。没有这份记录没有任何人类或审计 Agent 能判断代码是否安全可发布。这就是最危险的差距所在危险差距示例后果文档说仅管理员可调用代码里根本没做权限校验任意用户可越权操作文档说cron-only 接口实际任何人可调用定时任务被伪造触发字段标注仅公开数据查询却带出私有字段隐私数据泄露静态扫描器linter是在真空中扫代码它只能告诉你代码内部自洽无法告诉你代码是否做了你本意要做的事——因为它没有你的意图模型。而最有价值的安全与正确性 Bug恰恰就活在这个差距里。方法核心把意图当假设把代码当证据 完整定义见 intended-vs-implemented/SKILL.md方法可以拆成 3 大步第 1 步确立意图文档即待验证的声明把/documentation/*.md如permissions.md、architecture.md、flows.md当作应该为真的声明源来读。关键心态文档是待验证的声明不是证明。如果这些文档不存在或已过时——无法审计你从未记录的意图本身就是第一条发现应先补文档再审计。第 2 步收集实现证据引用文件 行号才算数对每条文档声明去读真正执行或遗漏执行它的代码实际的鉴权检查、实际的查询过滤、实际的清洗器。上游应该有处理不算证据代码路径才是证据。像 internal only、validated elsewhere 这样的注释一律不可信必须到代码里验证。第 3 步逐边界对比 分级 拒绝含糊结论逐条对比每条文档规则都问——在服务端、在所有路径上是否真的存在执行点判断是否重要跨越这条差距后真实攻击者能否触达不该碰的数据、资金、基础设施或其他租户能才值得报告只影响操作者自己的数据则丢弃。拒绝含糊每条发现必须包含四要素——文档原文引用意图、代码引用实现、攻击者与受害者、具体修复方案。引不出两侧的差距只是待调查的问题不是发现。前置条件先用 shipping-artifacts 把意图写下来 这套方法只在意图先被写下时才生效——这正是它难以被商品化工具复制的原因。配套的 shipping-artifacts/SKILL.md 定义了让 AI 构建的应用可被审查的最小文档集通过/document-app命令反向工程生成存放在/documentation/下核心文档每款应用都需要architecture.md架构与信任边界、flows.md权限实际被执行的旅程、permissions.md资源 × 操作 × 角色矩阵、variables.md配置与密钥的风险映射条件文档有该能力才写emails.md、cron.md、seo.md、automation.md——不适用就写一行无绝不虚构空文档tests.md由/derive-tests从上述文档推导出的测试覆盖地图把每条规则标注为existing / proposed / none三档防止地图虚假变绿一键实操/ship-check 发布前完整检查 如果不想逐条执行ship-check.md 定义的/ship-check命令会按正确顺序跑完整个流程——顺序本身就是重点因为每次审计的质量只取决于它能对比的意图文档质量文档化系统/document-app缺失或过时则先生成生成 Agent 上下文从系统文档派生出CLAUDE.md/AGENTS.md安全审计security-audit-static.md应用 intended-vs-implemented 方法标记代码偏离permissions.md、flows.md之处并自反驳每条候选发现性能审计performance-audit-static.md过度取数、缺失索引、缓存机会推导测试覆盖derive-tests.md让审计中每个确认的发现变成一条回归测试防止同一差距在下次 AI 编辑后悄悄重现编译 Shipping Packet文档清单、测试覆盖、安全/性能摘要、发布阻断项Launch Blockers与建议行动供人工签核审计输出遵循固定格式严重级别 · 攻击场景 · 影响 · 修复方案并会明确写出哪些地方建得好以及无法验证、需要人工复核的部分——这是一次代码评审不是安全保证。如何安装 pm-ai-shipping 插件 ⚙️克隆 pm-skills 仓库git clone https://gitcode.com/GitHub_Trending/pm/pm-skills在你的 AI 编码工具中通过 Add marketplace 添加该仓库启用pm-ai-shipping插件安装后即可触发命令完整说明见 pm-ai-shipping/README.md命令作用/pm-ai-shipping:ship-check完整发布检查序列产出 Shipping Packet/pm-ai-shipping:document-app反向工程出审查所需系统文档/pm-ai-shipping:security-audit-static静态安全审计应用本方法论/pm-ai-shipping:performance-audit-static静态性能审计/pm-ai-shipping:derive-tests把文档意图转成测试覆盖地图新手常见误区 ⚠️没写文档就审计没有意图记录时文档缺失才是第一条发现先跑/document-app把注释当证据应该在上游处理了 不算数必须引用到具体文件与代码路径把所有不一致都报成漏洞只报告跨越信任、数据、租户边界的差距丢弃表面漂移编造意图来制造差距文档沉默时就如实说文档沉默把 proposed 测试当已有覆盖tests.md中只有仓库里真实存在的测试才标 existing小结 ✅intended-vs-implemented 方法论的精髓一句话已记录但没执行本身就是一条发现已执行但没记录则是文档过期的信号。它为安全与性能审计补上了通用工具缺失的意图轴让 AI 构建的代码在发布前真正可审查。想做的事入口理解方法论pm-ai-shipping/skills/intended-vs-implemented/SKILL.md生成意图文档pm-ai-shipping/skills/shipping-artifacts/SKILL.md一键发布检查pm-ai-shipping/commands/ship-check.md单独跑安全审计pm-ai-shipping/commands/security-audit-static.md【免费下载链接】pm-skillsPM Skills Marketplace: 100 agentic skills, commands, and plugins — from discovery to strategy, execution, launch, and growth.项目地址: https://gitcode.com/GitHub_Trending/pm/pm-skills创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表