Architecture
Decision state lives in ~/decide/. If that folder is missing or empty, run setup.md.
CODEBLOCK0
When to Use
Use when the agent faces a consequential choice that can change architecture, workflow, cost, publish behavior, vendor selection, or long-term project direction.
This skill is for branching decisions, not for generic preferences or execution lessons. It should stay compatible with self-improving: self-improving learns how to work better, while decide learns how to choose safely when the choice has lasting consequences.
Quick Reference
| Topic | File |
|---|
| Setup guide | INLINECODE5 |
| Memory template |
memory-template.md |
| Migration guide |
migration.md |
| Decision components |
components.md |
| Confidence calibration |
confidence.md |
| Exceptions and always-ask cases |
exceptions.md |
Use those files as a decision safety stack: first know the structure, then calibrate confidence, then verify exceptions before reusing any past choice.
Decision Workflow
- 1. Frame the decision as a real question, not as a vague feeling.
- Gather the components that materially affect the answer.
- Read
~/decide/memory.md, then the smallest relevant file in ~/decide/domains/, then check ~/decide/decisions.md for a materially similar record. - Reuse a past choice only if the question, the key components, and the exception boundaries still line up.
- If anything important is missing or changed, ask first and log the answer once the human decides.
Core Rules
1. Default Conservative on Consequential Choices
- - Frameworks, architectures, migrations, vendors, publish paths, spending, and irreversible branches should default to asking the human.
- Safer failure means asking one question too many, not silently picking the wrong branch.
- A recommendation is good; an unvalidated autonomous choice is not.
2. A Decision Requires Components, Not Vibes
- - Every major decision should be framed as a question plus the components that materially affect the answer.
- Components can include product surface, client type, reversibility, budget, timeline, team size, project constraints, and long-term maintenance cost.
- If the needed components are missing, the decision is not ready for autonomy.
3. Reuse Only When the Context Materially Matches
- - A stored rule is reusable only when the question and the key components match closely enough to make the same choice still rational.
- Matching one signal is not enough. "Same framework choice" is weak if client, surface, constraints, or risk changed.
- If there is any serious mismatch, ask first.
- Exceptions beat defaults. A confirmed default is still invalid when a domain override or high-stakes exception changes the branch.
4. Promote Patterns Only After Human Confirmation
- - Repeatedly seeing the same decision in the same context makes a candidate rule, not an autonomous permission.
- After enough similar decisions, ask: "When this is true plus this plus this, should I default to X?"
- Only promote the pattern after explicit confirmation.
5. Log the Full Decision, Not Just the Outcome
- - Store the question, components, chosen option, rationale, confidence, and outcome.
- A naked note like "use React Native" is too weak; it must say when and why.
- Good logs prevent false autonomy later.
6. Keep Workspace Routing Non-Destructive
- - Use setup to add small AGENTS and SOUL snippets that force decision retrieval before major choices.
- Show the exact snippet and wait for explicit approval before writing any workspace file.
- The routing must make it hard to skip the decision log when a consequential branch appears.
7. Never Let Decision Memory Shadow Other Skills
- - Use
self-improving for execution quality, corrections, and reusable work habits. - Use
escalate for ask-vs-act boundaries across actions broadly. - Use
decide only for major branching choices where the structure of the context determines the answer.
Common Traps
These failures usually come from pattern-matching too early or from collapsing a major decision into a shallow preference.
| Trap | Why It Fails | Better Move |
|---|
| Reusing a rule because the question sounds similar | Important components may have changed | Compare question plus key components before reusing |
| Treating one-off emergency choices as defaults |
Stress decisions rarely generalize well | Log them, but keep them unconfirmed unless repeated |
| Autodeciding after reading only memory.md | Exceptions and domain overrides get missed | List domains, read the smallest relevant override, then check decisions |
| Turning execution preferences into decision rules | Blurs compatibility with
self-improving | Keep major branching choices in
decide, workflow lessons elsewhere |
| Applying a framework or vendor rule across clients blindly | Client and surface often change the optimal answer | Ask again when client, platform, scope, or constraints differ |
Data Storage
Local state lives in ~/decide/:
- - durable decision rules, approval boundaries, and confirmed defaults in INLINECODE20
- major decision records in INLINECODE21
- domain-specific component models, overrides, and exceptions in INLINECODE22
The packaged guides components.md, confidence.md, and exceptions.md stay in the skill itself and act as references, not as the user's live memory.
Security & Privacy
- - This skill stores local decision notes in
~/decide/. - It may read workspace steering files such as the AGENTS file and SOUL file so that decision retrieval happens before major choices.
- It may suggest small non-destructive edits to those files during setup, but it must show the snippet and wait for explicit approval before any write.
- It should prefer asking to guessing whenever a decision can affect money, production, publishing, deletion, contracts, or long-term architecture.
- It never modifies its own
SKILL.md.
Related Skills
Install with
clawhub install <slug> if user confirms:
- -
escalate - Control broad ask-vs-act boundaries around risky actions - INLINECODE30 - Learn execution lessons without conflating them with decision rules
- INLINECODE31 - Keep broader long-term context and user continuity
- INLINECODE32 - Push the next step while respecting confirmed decision defaults
Feedback
- - If useful: INLINECODE33
- Stay updated: INLINECODE34
架构
决策状态存储在 ~/decide/ 目录中。如果该文件夹缺失或为空,请运行 setup.md。
text
~/decide/
├── memory.md # 持久化决策规则、审批边界和已确认的默认项
├── decisions.md # 包含问题、组件、选定方案和结果的主要决策记录
└── domains/ # 特定领域的决策组件、覆盖规则和例外情况
使用时机
当智能体面临可能改变架构、工作流程、成本、发布行为、供应商选择或长期项目方向的重大选择时使用。
此技能适用于分支决策,而非一般偏好或执行经验。它应与 self-improving 保持兼容:self-improving 学习如何更好地工作,而 decide 学习如何在选择具有持久影响时安全地做出决策。
快速参考
memory-template.md |
| 迁移指南 | migration.md |
| 决策组件 | components.md |
| 置信度校准 | confidence.md |
| 例外情况和始终询问案例 | exceptions.md |
将这些文件作为决策安全栈使用:首先了解结构,然后校准置信度,最后在复用任何过往选择前验证例外情况。
决策工作流程
- 1. 将决策表述为一个真实的问题,而非模糊的感觉。
- 收集对答案有实质性影响的组件。
- 读取 ~/decide/memory.md,然后读取 ~/decide/domains/ 中最相关的文件,再检查 ~/decide/decisions.md 中是否有实质相似的记录。
- 仅当问题、关键组件和例外边界仍然一致时,才复用过往选择。
- 如果任何重要信息缺失或发生变化,先询问,待人类决定后记录答案。
核心规则
1. 对重大选择默认保守
- - 框架、架构、迁移、供应商、发布路径、支出和不可逆分支应默认询问人类。
- 更安全的失败意味着多问一个问题,而非默默选择错误的分支。
- 提出建议是好的,但未经验证的自主选择则不然。
2. 决策需要组件,而非直觉
- - 每个重大决策应表述为一个问题加上对答案有实质性影响的组件。
- 组件可包括产品表面、客户端类型、可逆性、预算、时间线、团队规模、项目约束和长期维护成本。
- 如果所需组件缺失,则该决策尚未准备好进行自主处理。
3. 仅在上下文实质匹配时复用
- - 仅当问题和关键组件足够匹配,使得相同选择仍然合理时,存储的规则才可复用。
- 匹配单一信号是不够的。如果客户端、表面、约束或风险发生变化,相同的框架选择就是薄弱的。
- 如果存在任何严重不匹配,先询问。
- 例外情况优先于默认项。当领域覆盖规则或高风险例外情况改变分支时,已确认的默认项仍然无效。
4. 仅在人类确认后推广模式
- - 在相同上下文中反复看到相同决策,仅构成候选规则,而非自主权限。
- 在足够多的相似决策后,询问:当此条件成立且此条件也成立时,我是否应默认选择 X?
- 仅在获得明确确认后推广该模式。
5. 记录完整决策,而非仅记录结果
- - 存储问题、组件、选定方案、理由、置信度和结果。
- 像使用 React Native这样简单的备注过于薄弱;必须说明何时以及为何使用。
- 良好的日志可防止后续的虚假自主决策。
6. 保持工作空间路由非破坏性
- - 使用设置添加小的 AGENTS 和 SOUL 代码片段,强制在重大选择前进行决策检索。
- 显示确切的代码片段,并在写入任何工作空间文件前等待明确批准。
- 路由必须使得在出现重大分支时难以跳过决策日志。
7. 绝不让决策记忆遮蔽其他技能
- - 使用 self-improving 处理执行质量、修正和可复用的工作习惯。
- 使用 escalate 处理广泛操作中的询问与行动边界。
- 仅将 decide 用于上下文的结构决定答案的主要分支选择。
常见陷阱
这些失败通常源于过早进行模式匹配,或将重大决策简化为浅层偏好。
| 陷阱 | 失败原因 | 更好的做法 |
|---|
| 因问题听起来相似而复用规则 | 重要组件可能已改变 | 复用前比较问题及关键组件 |
| 将一次性紧急选择视为默认项 |
压力下的决策通常难以泛化 | 记录它们,但除非重复出现,否则保持未确认状态 |
| 仅读取 memory.md 后自主决策 | 遗漏了例外情况和领域覆盖规则 | 列出领域,读取最小的相关覆盖规则,然后检查决策记录 |
| 将执行偏好转化为决策规则 | 模糊了与 self-improving 的兼容性 | 将主要分支选择保留在 decide 中,工作流程经验放在别处 |
| 盲目跨客户端应用框架或供应商规则 | 客户端和表面通常改变最优答案 | 当客户端、平台、范围或约束不同时重新询问 |
数据存储
本地状态存储在 ~/decide/ 中:
- - 持久化决策规则、审批边界和已确认的默认项存储在 ~/decide/memory.md
- 主要决策记录存储在 ~/decide/decisions.md
- 特定领域的组件模型、覆盖规则和例外情况存储在 ~/decide/domains/
打包的指南 components.md、confidence.md 和 exceptions.md 保留在技能本身中,作为参考,而非用户的实时记忆。
安全与隐私
- - 此技能将本地决策记录存储在 ~/decide/ 中。
- 它可能读取工作空间引导文件(如 AGENTS 文件和 SOUL 文件),以便在重大选择前进行决策检索。
- 它可能在设置过程中建议对这些文件进行小的非破坏性编辑,但必须显示代码片段并在任何写入前等待明确批准。
- 当决策可能影响资金、生产、发布、删除、合同或长期架构时,应优先询问而非猜测。
- 它从不修改自身的 SKILL.md。
相关技能
如果用户确认,使用 clawhub install
安装:
- - escalate - 控制围绕风险操作的广泛询问与行动边界
- self-improving - 学习执行经验,避免与决策规则混淆
- memory - 保持更广泛的长期上下文和用户连续性
- proactivity - 在尊重已确认的决策默认项的同时推动下一步
反馈
- - 如果觉得有用:clawhub star decide
- 保持更新:clawhub sync