一键导入
write-brief
Generate Brief artifact content and persist it through the Brief and Project context tools.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Generate Brief artifact content and persist it through the Brief and Project context tools.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
| name | write-brief |
| description | Generate Brief artifact content and persist it through the Brief and Project context tools. |
| disable-model-invocation | false |
| response_schema | artifact_write |
| args | {"type":"object","required":["project_root","summary"],"properties":{"project_root":{"type":"string","description":"Absolute path to the active Project root."},"summary":{"type":"object","description":"What the user wants to build, who it is for, and what done feels like."},"project_name":{"type":"string","description":"Optional working name to use if the user has already named the Project."}}} |
Generate the Brief content in the Cairn's plain-language voice, then finish by calling the custom artifact and context tools. Call create_brief_artifact for the user-visible Brief data and call update_project_context for durable Project facts the Cairn and future Sub-agents should remember.
Do not use raw Write or Edit for the Brief or Project context. Do not create replacement files for either one. The Brief artifact tool owns brief.json; the Project context tool owns CONTEXT.md.
Use the structured summary as the source of truth. It should describe:
Read only the provided inputs and any existing Project files needed to understand stable Project facts. If a load-bearing part of the Brief is missing, do not invent it; return outcome: "blocked" with one short message naming the missing decision.
The canonical Brief path is <project>/.cairn/brief.json, but you do not write it directly. The create_brief_artifact and update_brief_artifact tools own that file and its envelope.
The canonical Project context path is <project>/.cairn/CONTEXT.md, but you do not write it directly. The update_project_context tool owns durable context updates.
The app owns Brief presentation. Do not generate HTML, CSS, scripts, or visual markup.
Write in the Cairn's plain-language voice. The user should feel heard, not managed. Avoid engineering vocabulary unless the user used it first and it matters.
Each section should explain what will be built and why it matters. Include concrete implementation details only when they affect the user's experience, for example a required content source, an important device, or a success behavior.
Good section shapes include:
Keep the Brief specific to the user's Project. Do not produce a generic product template, do not expose hidden reasoning, and do not mention this skill.
title: a plain-language Project name or working title.summary: one short paragraph explaining what the Project is.audience: who the Project is for.success: what should feel true when the Project is useful.sections: one or more concrete sections with heading and body.create_brief_artifact with those fields.update_project_context with durable facts from the Brief, such as user vocabulary, settled constraints, product decisions, and open questions. Do not use it as a progress log.After the tool calls finish, return only one JSON object matching artifact_write:
{ "outcome": "complete", "message": "Created the Brief artifact and Project context.", "path": "brief.json" }
Use outcome: "failure" with path: "" when a tool fails and retrying is not safe. Use outcome: "blocked" with path: "" when the inputs lack a user decision needed for the Brief.
Failure and blocked examples:
{ "outcome": "failure", "message": "create_brief_artifact failed validation for data.sections.0.body.", "path": "" }
{ "outcome": "blocked", "message": "The Brief needs the intended audience before I can save it.", "path": "" }
Implement one named Project issue with red-green TDD and return a structured task outcome.
Use when writing or reviewing TypeScript/full-stack code. Encodes principles for type safety (branded types, discriminated unions, end-to-end types), real tests over mocks, OpenTelemetry observability, and picking the right abstractions instead of premature ones.
Use when designing, writing, reviewing, or refactoring React components and features. Covers component boundaries, state ownership, composition, prop design, custom hooks, useEffect avoidance, memoization, Zustand, TanStack Query, loading/error/empty states, async event handling, TypeScript state modeling, and file organization. Trigger for React component design questions, component-tree restructuring, state management choices, data fetching, effect cleanup, reusable UI composition, prop drilling, render performance, error boundaries, optimistic updates, double-submit prevention, race conditions, or organizing a React codebase.
Use only after a fresh slice PRD exists under the Project's .cairn/prds/ folder and the user-approved slice needs to be broken into local implementation issue files.
Use only after the project brief is concrete, the Cairn has proposed a smallest meaningful first slice, and the user has agreed to that slice; silently draft the slice PRD.
Generate Tasks tab content from issue paths and persist it through the Tasks artifact tool.