Skip to main content

capsule

Create or update a concept capsule — the conceptual anchor for a project or feature area. Use before writing code on a new project or feature, or when terms and boundaries feel unclear. Defines glossary, invariants, happy-path scenario, and non-goals.

跳到安装

来源信息

仓库
hashintel/labs
最近来源活动
2026年3月23日 12:12
检测到的 SKILL.md 语言
英语
星标
36
分支
14

安装方式

默认使用会先检查来源的 Prompt;你也可以切换为直接命令,或下载本地副本。

检查来源文件

决定是否安装前,请先阅读 SKILL.md,以及 SkillsMP 当前展示的配套文件。

正在显示 SKILL.md

SKILL.md
来源说明 · 只读预览
name
capsule
description
Create or update a concept capsule — the conceptual anchor for a project or feature area. Use before writing code on a new project or feature, or when terms and boundaries feel unclear. Defines glossary, invariants, happy-path scenario, and non-goals.
argument-hint
[project or feature area to define]
# Concept Capsule Create a **concept capsule** — a short, precise document that anchors all subsequent work to a shared vocabulary (ubiquitous language, DDD) and a set of constraints (design by contract). The capsule is the durable semantic authority for a project or feature area. It should change slowly after initial establishment. ## Authority boundary Use the capsule for durable conceptual truths only: - Glossary terms and boundaries - Invariants/laws - One concrete happy path - Permanent non-goals Do **not** use the capsule for: - Phase status, candidate sequencing, or temporary deferments (milestone owns) - Confidence tracking or uncertain hypotheses (assumptions ledger owns) - Decision history with rationale/evidence chronology (roadmap/decisions own) ## Input The project or feature area: $ARGUMENTS If the user hasn't described the domain clearly enough, interview them: 1. What is this thing? (one sentence) 2. What are the key concepts / nouns / entities? 3. What rules must always hold? (invariants) 4. What is the simplest thing it should do? (happy path) 5. What should it explicitly *not* do? (non-goals) ## Output: The Capsule Write a document with exactly these four sections. Keep it to **one screen** (~250-500 words). Each bullet should be **one sentence**. ### 1. Glossary (Ubiquitous Language) 5-15 domain terms with their **exact intended meanings** in this project. These are the names that must appear in code — types, functions, modules, test suites. Format: ``` - **Term**: Definition (one sentence) ``` - If two terms could be confused, clarify the boundary - Every term should eventually have a code home (type, module, function, or test suite) - If you need more than ~15 terms, split into project capsule + feature capsule(s) ### 2. Invariants / Laws 3-10 statements that **must always be true**. Constraints, not features. Format: ``` - An X must always have a Y - X can never be Z while W is true ``` - Each invariant should be testable - Decide where each lives: type system (best), constructor/validator (good), or tests (minimum) - If an invariant can't be stated clearly, the concept isn't understood yet — stop and clarify ### 3. Happy Path (one scenario) A single concrete **input → output** story. This becomes the first integration test. Format: ``` Given: [concrete starting state] When: [concrete action] Then: [concrete observable result] ``` Must be specific ("Given a file `post.md` with front-matter...", not "Given some input..."). ### 4. Non-Goals (exactly two) Two things this project or feature **explicitly will not do**. These prevent scope creep and stop the agent from "helpfully" adding features. Format: ``` - This will NOT do X (because Y) - This will NOT do Z (because W) ``` These are deliberate exclusions, not "not yet" items. ## Capsule change policy Update a capsule when one of these is true: - A glossary term is ambiguous, conflicting, or missing - An invariant is proven wrong, incomplete, or unverifiable - The happy path no longer reflects the first integration scenario - A non-goal is no longer a durable exclusion Do not append changelogs, progress logs, milestone status, or decision journals inside the capsule. When an assumption stabilizes into a durable law, promote it from `docs/assumptions.md` into capsule invariants and track enforcement via `/pragma:contract`. ## Where to put it - `docs/capsule.md` for project-level - `docs/capsule-<feature>.md` for feature-level - If a capsule already exists, update it — don't create a second one ## Validation After writing, check: 1. Can every glossary term map to a code construct? 2. Can every invariant be tested? 3. Is the happy path specific enough to be an integration test? 4. Do the non-goals clearly exclude something the agent might otherwise build? 5. Does the document avoid milestone status, assumption confidence, and historical decision logs? If any check fails, revise before proceeding. ## Lifecycle tail (required) Append to the response: - **State**: `foundation` - **Next**: `/pragma:skeleton` - **Loop**: `/pragma:consult` (default unless user explicitly continues directly)
在 GitHub 查看