本文へ移動
cccskills
無料GitHub で公開

moo-authoring

Use when adding or changing a skill, hook, or runtime file in this repo — including deciding which unit a new capability should be.

インストール方法を見る

含まれるファイル(1)

  • SKILL.md5.5 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

Doctrine for authoring moo's own surfaces.

Frontmatter

A skill's frontmatter carries name and description; read any shipped SKILL.md for the current key set. The description is one line, and Claude Code caps it at 1024 characters.

No when_to_use. Claude Code reads that key and renders it dash-joined onto the description, but every other agent copies SKILL.md verbatim and never reads it, so the text deciding when a skill fires would be invisible wherever it is installed outside Claude Code.

A condition that follows what the skill does is marked Use when <condition>. — a finite clause, never a bare noun phrase or a bare dash. The key name was what marked the condition as a condition; in one string nothing else does, and an unmarked trailing clause reads as more of what the skill produces. A description may also open with the condition and stop there, where naming the capability would discriminate nothing.

A skill that stays in this repo declares metadata.internal: true. The skills.sh installer walks the tree and offers every SKILL.md it finds; that flag is what it filters on.

Version lives in plugin.json only (DRY). The official Claude Code spec does not allow version in SKILL.md frontmatter.

Sizing

  • Size a skill by a deletion pass, never a numeric cap.
  • Put branch-specific content in files the skill opens when the branch is taken, and name them where they are needed.
  • Decision tables > prose explanations.

Token Efficiency

  • Challenge every sentence: "Does Claude need this?"
  • Bullets for enumerable items; a paragraph when the point is one connected argument.
  • No vague terminology; pick one term per concept.

Skill Design

Phrase design decisions as "X over Y: reason".

Unit choice — behavior inlines at build, data references at runtime; a skill's firing is probabilistic, so behavior that must run every time is a hook:

The new thing is...Unit
Data selected per use (catalog, profile, corpus)Runtime file
A trigger + procedure that stands aloneSkill
A trigger only the human perceivesSkill with disable-model-invocation: true
Behavior that must run every time, deterministicallyFunction hook
An unproven ideahunch skill + HYPOTHESIS.md; graduates or dies
Doctrine for this repo's own surfacesRepo-local skill in .claude/skills/; never ships

Composition — name-calls, never imports:

  • Skills compose by name: a composer names a move and invokes it with the Skill tool; a body never inlines another body.
  • New skill when the cognitive mode changes (clarify WHAT ≠ decide HOW ≠ judge unsupervised work; find ≠ fix). One skill = one mode + one gate.
  • Two skills over one when triggers differ; a shared explanation the pair needs lives in this file, which owns skill-design reasoning, not in either skill.
  • A body names a sibling in exactly two places: a refusal, and a route — wherever in the body those sit. There the name is the refusal's or the route's content, and a reader without it is stranded.
  • Ending over hand-off: a finished run states what is now settled and what is still open, in its own words. Naming who handles it next hardcodes the graph n², so one trigger change edits every sibling.

Output form — bound by what the skill hands back, never by one shared sentence. Plain words is the only part that holds across all three:

The Output hands backBound it by
Something the agent restated in its own wordsAs short as it goes with nothing the skill can't afford to drop lost — name that thing, it differs per skill
The user's own words — a record, an amended proposalPreserving them. A compression clause here destroys the result
A structure the reader navigates — verdict then evidence, a case set then a ruleBounding each part where a reader would pad it, never the whole

A cap counted in lines is a compression budget on a handed-back artifact — replace it. A cap on one turn of a loop is pacing, and the rest arrives on the user's next pull — keep it.

Hook Design

Every hook is a function hook: it reaches the human with no model turn. The API is early access; plugin-authoring and /plugin-types are the reference for every event and call.

  • A hook never starts a turn the human didn't ask for: no wake, no $.prompt.submit of its own.
  • What a hook finds waits where the human looks next, the band above the prompt, and appears there only while it holds something. Detail unfolds on a press and folds back.
  • A hook hands to Claude only on the human's Enter: $.prompt.fill a sentence start they finish, with any bulk added as prompt.submit context.
  • Work longer than one dispatch runs unawaited, so the turn's end is never held.
  • State lives in $.state (this session) or $.store (across sessions), never in temp files or module variables. A hot reload drops module variables.
  • A failure shows once, as a toast, and the event passes on.
  • A pane or band is verified on events copied from real session transcripts, one per shape it renders; a synthetic event alone never verifies it.
  • One hooks module per plugin; a second part composes into it. A second registration on the same event and matcher in one plugin is dropped silently.

A hook that spawns headless claude -p copies its flag set from hope/hooks/judge.sh, where each flag is commented at the point of use.

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

anchor

無料

Rewrite a rule so anyone applies it the same way. Use when a stated rule or claim takes the reader's judgment to apply.

日本語の概要は準備中です。原文の説明を表示しています。

saadshahd/moo.md372026年10月1日 更新

clarify

無料

Turn words with two readings into one confirmed ask. Use when the user's words admit two readings that would build different things.

日本語の概要は準備中です。原文の説明を表示しています。

saadshahd/moo.md372026年10月1日 更新

compose

無料

Plan the skills an ask needs, invoke each as its condition arrives. Use when the ask has multiple aspects that different skills carry, or the user named multiple skills.

日本語の概要は準備中です。原文の説明を表示しています。

saadshahd/moo.md372026年10月1日 更新

consult

無料

Bring how named experts would think about the question. Use when the user wants expert thinking on a tradeoff, choice, or stuck problem — not a verdict.

日本語の概要は準備中です。原文の説明を表示しています。

saadshahd/moo.md372026年10月1日 更新

draft

無料

Build the thing the user can't specify, choices surfaced. Use when the user needs something to react to before they can choose.

日本語の概要は準備中です。原文の説明を表示しています。

saadshahd/moo.md372026年10月1日 更新

elicit

無料

Draw out what the user holds but can't say. Use when the user knows something they cannot yet express.

日本語の概要は準備中です。原文の説明を表示しています。

saadshahd/moo.md372026年10月1日 更新

saadshahd のスキルをすべて見る

このスキルの問題を報告する