Problem Definition: <short title>
Problem Definition:【免费下载链接】spec-kit Toolkit to help you get started with Spec-Driven Development项目地址: https://gitcode.com/GitHub_Trending/sp/spec-kitSlug: ASSESS_SLUGCreated: ISO 8601 dateInputs used: intake.md? | research.md? | user input onlyProblem StatementOne or two sentences, in the problem space.Affected Users StakeholdersUsers: —Stakeholders: — interest / decision powerGoalsNon-GoalsSuccess Metrics(baseline: current value / unknown)Cost of InactionOpen Questions[NEEDS CLARIFICATION: …]模板头部有三个元数据字段值得注意 - Slug 使工件可回溯到评估目录与其余四个工件保持一致句柄 - Created 采用 ISO 8601 日期保证时间可机器解析 - Inputs used 显式记录本定义实际使用了哪些上游输入intake.md? / research.md? / 仅用户输入这让定义是否建立在证据上一目了然也为 decide 阶段评分时的溯源提供依据。 Success Metrics 中每个信号都要求附带 (baseline: current value / unknown)——这直接服务于第 6 步的基线思维没有基线度量的目标在 decide 的Value vs. cost of inaction评分中难以自证。 执行完毕后define 向用户回报三样东西slug独占一行、problem.md 的路径、未决问题的计数以及下一步指令 __SPECKIT_COMMAND_ASSESS_SHAPE__ slugASSESS_SLUG。 ## 下游消费problem.md 如何驱动 shape 与 decide 理解 define 的价值最好的方式看它的两个直接消费者。 **shape 阶段的消费**见 [speckit.assess.shape.md](https://link.gitcode.com/i/aafdb32600c28d9b082c2344641ba51b)problem.md 是**强制前置**若不存在停止并指导用户先运行 define——在没有已定义问题的情况下塑形会诱导真空中的方案设计。shape 必须读取 problem.md以及存在的 research.md/intake.md确保所生成的 2–3 个概念级选项address the stated goals, respect the non-goals, and are grounded in evidence——即选项对准定义的目标、尊重非目标、有证据支撑。这正是 define 刻意产出 Goals/Non-Goals 分离结构的原因Non-Goals 会被 shape 直接继承为推荐选项的 Out of Scope。 **decide 阶段的消费**见 [speckit.assess.decide.md](https://link.gitcode.com/i/4df33b085703681d438cbf261091d38b)decide 用六个显式标准给想法打分每项评级 strong | adequate | weak | unknown 并附一行来自工件的论据其中两项直接以 problem.md 为数据源 | 标准 | 数据来源 | |------|----------| | Problem validity问题是否真实且值得解决 | problem.md research.md | | Value vs. cost of inaction解决它是否胜过不行动 | problem.md | 换言之define 第 1 步的 Problem Statement 决定了Problem validity一栏第 6 步的 Cost of Inaction 决定了Value vs. inaction一栏。若 problem.md 中充斥未标记的杜撰内容或含糊的定性目标decide 的评分只能给出 weak/unknown而 go 结论硬性要求 problem validity adequate 且证据强度 adequate绝不接受 weak/unknown——问题定义的质量因此直接卡住了 go 的门槛。 ### __SPECKIT_COMMAND_*__ 占位符的解析机制 命令文档中出现的 __SPECKIT_COMMAND_ASSESS_SHAPE__、__SPECKIT_COMMAND_ASSESS_DECIDE__ 等并非字面量而是 spec-kit 的命令引用占位符。从源码看[extensions/__init__.py](https://link.gitcode.com/i/6efcb733a2c0e62591c36b9a13df09fa) 在安装扩展命令时通过正则 r__SPECKIT_COMMAND_([A-Z][A-Z0-9_]*)__ 将其替换为实际的调用形式[integrations/base.py](https://link.gitcode.com/i/9a08dc7e651f2e1a33659c728b1c6129) 中 replace_command_placeholders 方法在针对不同 AI agent按各自的 invoke 分隔符注册命令时执行同样的替换例如解析为 /speckit.assess.shape 或该 agent 对应的命令语法。这种设计的意义在于命令文档是 agent 无关的模板同一个 define 命令可以注册到 Claude Code、Copilot、Gemini 等数十种集成下而跨阶段引用下一步运行 shape在每种 agent 下都渲染为正确的调用串。[specify_cli 包入口](https://link.gitcode.com/i/f6adf695a4c7fc65598cab7d5d95073d) 的文档字符串也说明了这一占位符解析机制。 ## Guardrailsdefine 的五条硬约束 命令文档末尾的 Guardrails 是对前述所有规则的收束也是评估命令执行是否合规的检查清单 - **绝不修改源文件**——只读写操作仅限 .specify/assessments/slug/ 内部 - **绝不滑入方案空间**——不谈特性、API、数据模型或任务 - **绝不杜撰无 intake/research 支撑的用户、度量或目标**——必须标记 [NEEDS CLARIFICATION: …] - **绝不在未确认的情况下覆写已存在的 problem.md** - **若问题根本无法表述**明确说出来并建议重跑 __SPECKIT_COMMAND_ASSESS_INTAKE__ 或 __SPECKIT_COMMAND_ASSESS_RESEARCH__而不是硬凑一份陈述。 最后一条尤其体现漏斗思维define 允许定义不出来作为合法输出并指明回退路径重跑上游阶段而非强行产出工件——这与 README 中杀死一个想法或让评估退回澄清是成功结果而非失败的整体基调一致。 ## 安装与扩展注册 assess 是随 spec-kit 捆绑的分发扩展注册信息见 [extension.yml](https://link.gitcode.com/i/41ea981b45437a4bf7c577dbd9ffa254)扩展 id 为 assess、版本 1.0.0、requires.speckit_version: 0.9.0provides.commands 声明了 intake/research/define/shape/decide 五个命令文件。安装方式 bash specify extension add assess可再随时禁用/启用specify extension disable assess specify extension enable assess【免费下载链接】spec-kit Toolkit to help you get started with Spec-Driven Development项目地址: https://gitcode.com/GitHub_Trending/sp/spec-kit创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考