본문으로 건너뛰기
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.

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

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.md382026년 10월 22일 업데이트

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.md382026년 10월 22일 업데이트

complain

무료

Surfaces what the agent would change and kept to itself — a decision it would make differently, effort it saw wasted, a better route to the goal, a fact the user lacks, friction in the tools, permissions, setup or docs the work ran on. Use when you hold one of these and have not said it.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

saadshahd/moo.md382026년 10월 22일 업데이트

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.md382026년 10월 22일 업데이트

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.md382026년 10월 22일 업데이트

Have the agents behind rival answers to one question check each other's answers, then pick on the evidence. Use when independent answers to one question disagree, or would, and no test, file or run can settle which is right.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

saadshahd/moo.md382026년 10월 22일 업데이트

saadshahd의 스킬 모두 보기

이 스킬의 문제 신고