一键导入
skill-authoring
Use when creating or editing a SKILL.md. 자연어 트리거: '스킬 만들어줘', '새 스킬 추가', '스킬 작성해줘', 'skill 만들기', '스킬 프론트매터 고쳐줘', 'create a skill', 'edit SKILL.md'.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Use when creating or editing a SKILL.md. 자연어 트리거: '스킬 만들어줘', '새 스킬 추가', '스킬 작성해줘', 'skill 만들기', '스킬 프론트매터 고쳐줘', 'create a skill', 'edit SKILL.md'.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Claude advisor tool strategy for cost-optimized quality retention. Sonnet executor + Opus advisor pattern reduces API cost by ~50% while maintaining near-Opus quality on complex judgment calls. Auto-activates when discussing model cost optimization, executor-advisor delegation, or advisor API integration. Triggers: advisor, cost optimization, model strategy, executor-advisor, advisor tool
로컬 관측성(observability) 스킬 — Claude Code hook 이벤트를 JSONL 큐로 fan-out하고 localhost WebSocket 브로드캐스트로 대시보드에 노출. 외부 전송 0건, Artibot 내부 전용. Auto-activates when: building a local hook monitor, an on-device agent dashboard, or an observability surface. Triggers: hook monitor, agent dashboard, event tap, local telemetry, claude code hooks, 훅 모니터, 이벤트 대시보드, 관측성.
Distill a person, role, or character into a reusable persona skill via the 6-layer schema. Use when the user wants to compile a colleague, an internal role archetype, or an authoring style into a persona-* skill — not when invoking an existing persona.
프롬프트 캐시 최적화 전략 — Dynamic Boundary 배치, 토큰 예산 관리, 정적·동적 영역 분리. 자연어 트리거: '프롬프트 캐시 최적화해줘', '토큰 예산 관리', '캐시 효율 높여줘', 'CLAUDE.md 레이아웃 정리'.
Dynamic tool approval predicates and the bash command allowlist. Use when the user asks about HITL approvals or tightening the pre-bash gate. Triggers: tool approval, approval predicate, bash allowlist, pre-bash, permission gate, HITL.
Coding standards and style guide enforcing immutability, error handling, file organization, and naming conventions. Auto-activates when: writing or modifying code, code review, creating new files or components. Triggers: code, write, edit, implement, component, function, class, style, 코드 작성, 코딩 스타일, 코드 리뷰, 구현, 컴포넌트, 함수
| context | fork |
| disable-model-invocation | true |
| name | skill-authoring |
| description | Use when creating or editing a SKILL.md. 자연어 트리거: '스킬 만들어줘', '새 스킬 추가', '스킬 작성해줘', 'skill 만들기', '스킬 프론트매터 고쳐줘', 'create a skill', 'edit SKILL.md'. |
| lang | ["en","ko"] |
| platforms | ["claude-code","gemini-cli","codex-cli","cursor"] |
| level | 2 |
| triggers | ["SKILL.md 만들어줘","새 스킬 추가","스킬 작성","skill 만들기","create a skill","새 스킬","스킬 추가"] |
| agents | ["doc-updater","architect"] |
| tokens | ~3K |
| category | meta |
| whenNotToUse | Editing a skill's body content when the frontmatter is already correct and the change is a minor prose fix. Do not apply the full pressure-test loop for trivial description typos. |
How to author a new Artibot SKILL.md that survives adversarial conditions and passes CI gates.
Before writing a word of the skill, observe how an agent fails without it.
Anti-pattern: Writing a skill because a concept "seems useful". Skills authored without a pressure test become dead weight — they load tokens every session but change no behavior.
The description frontmatter field is read by the model before loading the skill body. If it summarizes the workflow, the model acts on the summary and never reads the body — this is the Claude Skips Onboarding (CSO) failure.
Compliant description: answers only "WHEN does this skill fire?" — triggers, activation conditions, example user utterances.
Non-compliant description: contains pipeline steps, numbered sequences, arrow chains, or procedural verb lists ("decomposes, executes, verifies").
The lint gate scripts/ci/lint-skill-descriptions.js enforces this automatically:
Run locally: node scripts/ci/lint-skill-descriptions.js (exits non-zero on new violations). CI runs npm run skill:check.
Triggers are what the model matches against incoming user utterances to decide whether to load this skill at all.
Rules:
Format: YAML array under triggers: key. Each item is a string, quoted if it contains colons or special chars.
Do not embed @filename references in skill bodies to force-load other files.
Reason: Each @file expands inline into the context window at load time. A skill that loads three other files has effectively consumed three files worth of tokens before the agent has done a single thing. On long sessions, this starves the model of working context when it needs it most.
Instead: Reference by name only. Write see the principles skill or consult ARCHITECTURE.md — let the agent decide whether to read it.
"I honored the spirit of this skill" is not an acceptable completion claim.
If a step in this skill is skipped, state explicitly: which step, why it was blocked, what was done instead. Rationalization is the pattern where an agent reframes a shortcut as compliance. The table below captures the common forms:
| Rationalization | Rebuttal |
|---|---|
| "The description already has enough triggers, no need to count" | R1 is a hard count — fewer than 3 activation signals fails CI regardless of gut feel |
| "The body explains the workflow, so the description summary is fine" | CSO fires before the body loads; the description summary becomes the only guidance the model acts on |
| "This skill is simple enough to skip the pressure test" | Skipping the pressure test is how skills end up doing nothing in adversarial conditions |
| "I'll add triggers later when the skill is more mature" | A skill with weak triggers is invisible to the model — it never fires, so it never matures |
| "@-links make the skill self-contained and easy to use" | Self-contained at the cost of context window is a net loss; reference by name, load on demand |
When a skill misbehaves, name the failure precisely before fixing it — a vague complaint produces a vague fix.
Anchor behavior with single words the model already has compressed meaning for from pretraining (tight, idempotent, tracer bullet) instead of multi-sentence restatements.
description and body: in the description it raises activation confidence (the model recognizes the concept and fires the skill); in the body the same word keeps execution consistent with what the description promised.| Field | Required | Rule |
|---|---|---|
name | Yes | Must match directory name exactly (CI enforces) |
description | Yes | CSO-compliant: triggers only, ≥3 signals, no workflow prose |
context | Yes | One of: fork, forked, native, shared |
triggers | Yes | Non-empty array of activation utterances (≥3, include Korean) |
platforms | Recommended | Array from valid list (claude-code, gemini-cli, codex-cli, cursor) |
level | Recommended | 1–5 integer |
category | Recommended | One of the valid categories in gen-skill-docs.js |
whenNotToUse | Recommended | Single sentence scoping when NOT to load this skill |
tokens | Recommended | Estimated token cost string, e.g. "~2K" |
agents | Recommended | Which agents most benefit from this skill |
disable-model-invocation: true | Situational | 릴리즈·스케줄·세션로그류처럼 모델이 임의 자동호출하면 안 되는 스킬에 추가 — 자동호출 차단 |
allowed-tools: [...] | Recommended | 스킬이 실제 사용하는 도구만 최소 화이트리스트로 명시 — 과다권한 차단 |
node scripts/ci/lint-skill-descriptions.js — must show no NEW violations for skill-authoring.npm run skill:check — exits 0.triggers: array — at least 3, at least 1 Korean utterance.