Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsCommunityBlog
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

Back to skills

Skill Author

ASecurity

Fill a scaffolded Zynkr skill stub into a shippable SKILL.md — claim the sheetId, write frontmatter that satisfies SKILL_SPEC.md, replace every <!-- TODO --> marker with real steps, and self-check against the same validate-skill.ts engine /skill-qa will run. The build stage of the skill pipeline, between /skill-triager and /skill-qa. Trigger on 'write this skill', 'fill the stub', 'author the SKILL.md', 'finish skill <slug>', '把這個 skill 寫完', '填 stub', or '/skill-author'.

20 stars
0 votes
0 copies
1 views
Added 9/19/2026
ai-agentsgoshellbashawsgit

Works with

cli

Security Analysis

A100/100

Scanned 9/19/2026

Install to Claude Code

$npx -y skills add peter-tu-zynkr/zynkr-skill-builder --skill skill-author --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Skill Author?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Skill Author
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/peter-tu-zynkr-skill-author/badge)](https://www.skillsdirectory.com/skills/peter-tu-zynkr-skill-author)

More formats (shields.io, HTML) on the badges page.

Download Zip
Files
SKILL.md
---
name: skill-author
sheetId: "6.12"
description: "Fill a scaffolded Zynkr skill stub into a shippable SKILL.md — claim the sheetId, write frontmatter that satisfies SKILL_SPEC.md, replace every <!-- TODO --> marker with real steps, and self-check against the same validate-skill.ts engine /skill-qa will run. The build stage of the skill pipeline, between /skill-triager and /skill-qa. Trigger on 'write this skill', 'fill the stub', 'author the SKILL.md', 'finish skill <slug>', '把這個 skill 寫完', '填 stub', or '/skill-author'."
category: engineer
project: skill-author
platform: claude
status: WIP
author: Peter Tu
input: "A scaffolded stub: a `skill/<slug>` branch, a folder under `skills/**`, a path to a SKILL.md, or the approved proposal issue the stub came from."
process: "Locate the stub → read the contract (SKILL_SPEC.md + taxonomy) → claim the next free sheetId → write frontmatter → replace every TODO marker with real steps → run validate-skill.ts → hand off to /skill-qa."
output: "A completed SKILL.md on the working branch: schema-valid frontmatter, a real body with no `<!-- TODO -->` markers left, and a green local validator run."
synergy: ["skill-triager", "skill-qa", "skill-publish"]
handoff: ["skill-qa"]
executed_by: internal-user
execution_mode: llm
house-style: bound

---

# skill-author

```bash
npx skills add https://github.com/peter-tu-zynkr/zynkr-skill-builder --skill skill-author
```

The **build stage** of the skill pipeline. `/skill-triager` fires a `repository_dispatch` that opens a
`skill/<slug>` branch with a stub `SKILL.md` — schema-valid frontmatter and a body full of
`<!-- TODO -->` markers. This skill turns that stub into something shippable, then hands it to
`/skill-qa`.

> **Where this fits:** `/skill-sourcer` → `/skill-triager` → **`/skill-author`** → `/skill-qa` →
> `/skill-publish` → `/skill-triager` (confirm-ship). It authors; it does not triage, QA, or publish.

**It owns the Zynkr-specific half of authoring.** A general-purpose skill writer knows what a good
skill looks like; it does not know this repo's frontmatter contract, its sheetId economy, its taxonomy
keys, or what `/skill-qa` rejects. Those are the things that get a skill sent back. You may still call
the `skill-creator` plugin for prose — treat it as a tool, not as a stage.

---

## Step 1 — Locate the stub

Resolve the target, in priority order:

1. An explicit path to a `SKILL.md` → use it.
2. A skill-folder path → `./SKILL.md` inside it.
3. A `skill/<slug>` branch → `git fetch origin <branch> && git switch <branch>`, then
   `skills/**/<slug>/SKILL.md`.
4. A proposal issue ref (`#N`) → read the issue, take the slug from the board's `build Target Path`
   basename or the title token after `—`, then resolve as (3).
5. A bare slug → glob `skills/**/<slug>/SKILL.md`. More than one match → list them and ask which.

If nothing resolves, ask once: **"Point me at the stub — a path, slug, or `skill/<slug>` branch."**

> **No stub yet?** That means `/skill-triager` has not dispatched the build. Say so and stop — do not
> hand-create the folder. The scaffold carries the issue link and the branch name that
> `/skill-publish` later reads.

## Step 2 — Read the contract before writing anything

Two files govern the result. Read them; do not work from memory:

| Read | For |
|---|---|
| `SKILL_SPEC.md` | Required frontmatter, the taxonomy keys, attribution rules, the picture fields |
| `skills/6-engineer/skill-sourcer/references/taxonomy.md` | Which of the ten categories this belongs in |

The `category:` value is the **taxonomy key**, not the folder name — `6-engineer/` takes
`category: engineer`. Getting this wrong is the single most common validator failure.

## Step 3 — Claim the sheetId

`sheetId` is the marketplace content id and it is **required in practice**. Format `N.NN` — category
number, dot, two-digit serial.

```bash
grep -rhoE '^sheetId: *"6\.[0-9]{2}"' skills/*/*/SKILL.md | sort -u          # declared today
grep -ohE '"6\.[0-9]{2}"' generated/*.json | sort -u                         # + every burned id
```

Three rules that bite:

- **Burned ids stay burned.** An id that appears in `generated/id-redirects.json` or in the generated
  index belongs to a renamed or retired skill. Never reuse it, even if no file declares it today.
- **Count agent files too.** The id namespace maps to the assistant-index Sheet, where sub-agents
  occupy their own rows.
- **Duplicates are not caught by the PR check.** `validate-skill.ts` does not inspect `sheetId`;
  a clash only throws inside `ingest.ts`, *after* merge. Check the whole tree before you pick.

## Step 4 — Write the frontmatter

Required: `name` · `category` · `project` · `platform` · `status` · `author`. Strongly recommended:
`description` · `input` · `process` · `output` · `synergy` · `sheetId`.

- `name` must equal the folder name and the H1. Folder = name = slug = what the user types.
- `status` is one of `Done` · `WIP` · `Not started` · `Pause` · `Out dated`. A stub arrives
  `Not started`; move it to `WIP` when the body is real.
- `author` is the **original** creator. If any of `upstream_repo` / `original_source_url` /
  `original_author` is set, **all three** must be — the validator enforces all-or-nothing.

**The `description` is the trigger.** The harness reads it to decide whether the skill fires, so it
carries the trigger phrases — English and 中文 — and a boundary clause naming the neighbouring skills
it should *not* hijack. Write it as one line; keep it specific.

## Step 5 — Replace every TODO marker

The stub body carries `<!-- TODO -->` markers. **None may survive.** Structure the body the way the
rest of the repo does:

1. `# <slug>` — the H1, matching `name`.
2. The one-line install snippet in a `bash` fence.
3. A short paragraph saying what the skill is for, plus a **「Where this fits」** blockquote when it
   sits in a relay.
4. Numbered `## Step N — ...` sections that a reader can actually follow.
5. A closing **`## Done`** section: what to summarise, and what to ask next.

Two habits worth keeping: state the **boundary** (what this skill does *not* do, and which skill owns
that instead), and prefer a table over prose whenever you are listing rules.

> **Watch the fences.** The H1 check does not strip fenced code blocks, so a shell comment at
> column 0 inside a ```bash fence is counted as a second `# heading`. Put such comments at the end of
> the line instead.

> **Never paste a machine-specific absolute path** (`/Users/...`) into the body. It is an ERROR-tier
> finding, and it is the leak `/skill-qa` most often catches.

## Step 6 — Optional: declare the picture

If the skill sits in a relay or has an internal flow worth drawing, add the picture fields —
`handoff` · `steps` · `flow` · `executed_by` · `execution_mode`. `SKILL_SPEC.md` carries the grammar;
`skills/1-brand-marketing/zynkr-slide` is the worked example.

Two rules that decide whether the drawing is right:

- **Prefer `handoff` over `synergy` for a relay.** `synergy` is symmetric, so Atlas has to guess a
  direction and draws the chain both ways. Declaring `handoff` — even `[]` — stops that guess for this
  file.
- **An orchestrator lists all its stages, in order; a stage lists only its next one.** That is what
  makes the flow render as a sequence rather than a pointer.

## Step 7 — Self-check, then hand off

Run the same engine `/skill-qa` and CI run, so a local pass means a green gate:

```bash
npx tsx scripts/validate-skill.ts skills/<N-cat>/<slug>/SKILL.md --tier=all
```

Fix every ERROR. Fix WARNs unless you can say why they stand. Then commit to the `skill/<slug>` branch
and hand off:

> "`<slug>` is written and the validator is clean. Running `/skill-qa` before publish."

Do **not** publish from here — `/skill-qa` is the gate and `/skill-publish` is the closer.

## Done

Summarise in three lines: what the skill does, which `sheetId` it claimed, and the validator result.
Then ask: **"Run `/skill-qa` on it now?"**

## House style

Writing style is **not owned by this file**. The house voice lives in two Google Docs under
`[@] 寫作指南` (`12DBdFz3SK22ie9im_ThFMI7IBRXsTZsV`), read at runtime:

- 《[2.0] Zynkr 通用風格指南 House Voice》 `10bOIQwRm9Pxwgct4hlwCwK_B4Pipai1HqBPZKzyRHSE` —
  the universal core, plus the addendum for this surface
- 《[3.2] 禁用詞清單 Forbidden Words》 `1N5sHLP4qzmmhpCGsi6KElxi1z0MFe4QZ0Q_35T10Uyg`

Read both before producing client- or reader-facing text, and scan the draft against 《[3.2]》
before handing it over. If Drive is unreachable, say so in the output rather than proceeding
unchecked. Never re-implement either list inside this file.

Attribution

peter-tu-zynkrpeter-tu-zynkr
View sourceMore from peter-tu-zynkr →
SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Related Skills

Caveman

Ultra-compressed communication mode that cuts output tokens while keeping technical accuracy. Levels: lite, full, ultra and the wenyan variants. Use for /caveman, "caveman mode", "talk like caveman", "be brief" or "less tokens".

1066601 votes

Hyperplan

Adversarial multi-agent planning skill. Self-orchestrates 5 hostile category members (unspecified-low, unspecified-high, deep, ultrabrain, artistry) via team-mode for ruthless cross-critique debate, distills only the defensible insights, then MANDATORILY hands the distilled insight bundle to the `plan` agent for executable plan formalization. Use when planning needs maximum rigor and surfacing of weak assumptions, blind spots, and over-engineering. Triggers: 'hyperplan', 'hpp', '/hyperplan', ...

686011 votes

Mcp Code Execution

Routes multi-tool workflows through MCP servers for large datasets and pipelines. Use when Bash tool overhead is limiting throughput on data-heavy tasks.

3351 votes

catchup

Recovers the conversation and failed tool calls of a previous Codex, Claude Code, Antigravity, Cline, Copilot CLI, Cursor, DeepSeek Harness, Kimi, OpenCode, Pi Agent, or ZCode session. Use when the user says "catch up", "what did the last session do", "get me up to speed", "I switched agents", asks to recover/summarize a previous session before continuing, or asks to diagnose or report a catchup failure. Do NOT use for the current conversation, git history, or any non-agent log.

651 votes

math-skill

A comprehensive mathematical reasoning skill for AI assistants — handles arithmetic to research-level problems with rigorous step-by-step reasoning, systematic verification, and transparent uncertainty handling

381 votes
View all in ai-agents →