Skip to content
Agentmart
Submit a tool

skill-authoring

Principles for writing skills that behave the same way every run — use when adding, editing, or reviewing a skill in this plugin

Skill by GongYuanCaiJi

IndexedMIT
Write a review

Chalk Labs

Need help deploying skill-authoring?

Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.

Book a call

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/gongyuancaiji-skill-authoring

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Principles for writing skills that behave the same way every run — use when adding, editing, or reviewing a skill in this plugin

Use cases: writing

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/skill-authoring

What's inside

Skill name
skill-authoring
Description
Principles for writing skills that behave the same way every run — use when adding, editing, or reviewing a skill in this plugin
License
MIT
Instructions
147 lines in SKILL.md · view on GitHub

Files (1)

  • SKILL.md

SKILL.md (first lines)

# Skill Authoring

A skill exists to get determinism out of a stochastic system. **Predictability**
is the goal, and it means the agent takes the same *process* every run — not that
it produces the same output. Every rule below serves that.

`docs/PLUGIN-ASSEMBLY-STANDARD.md` already fixes the *structure* a skill body
should take. This is about what makes the content inside that structure work.

Adapted from `writing-great-skills` in
[mattpocock/skills](https://github.com/mattpocock/skills) (MIT), with the
invocation section rewritten for how this plugin actually loads skills.

## When To Use

- Writing a new skill, or reviewing one in a PR.
- A skill fires when it should not, or fails to fire when it should.
- A skill behaves differently run to run on the same input.
- Deciding whether something should be a skill at all, or a command, or prose in
  `CLAUDE.md`.

## When Not To Use

- For the mechanical checklist — file layout, registration, required sections.
  That is `docs/PLUGIN-ASSEMBLY-STANDARD.md` and the CI suites.
- For writing prompts that are not skills. That is `skill-meta-prompt`.

## Inputs

The skill under construction or review, and an honest answer to: what should the
agent do differently because this exists?

## Workflow

### Invocation: explicit by default

Every shipped command and skill carries `disable-model-invocation: true`.
Claude Code therefore keeps Octopus out of model context until the user chooses
an `/octo:*` command. This is a hard platform gate, not a prose reminder.

Command bodies that need reusable instructions load the entire source file
directly from
`${HOME}/.claude-octopus/plugin/.claude/skills/<name>/SKILL.md`; they do not call
the Skill tool. `${HOME}/.claude-octopus/plugin` is the stable, self-healed path
available to model tool calls; `CLAUDE_PLUGIN_ROOT` is a hook/runtime variable
and may be absent from that context. The command must treat the loaded body as
the active instructions in the current conversation, follow its steps in order,
and pass the user's text as workflow arguments rather than executable path
content. This keeps explicit commands composable without reopening automatic
model invocation.

Plain-language routing is a separate, legacy-compatible opt-in controlled by
`OCTOPUS_AUTO_ROUTER_MODE=suggest|invoke`. Its default is `off`. New skills must
never depend on prompt-keyword auto-routing for reachability.

### Writing the description

The description does two jobs: say what the skill is, and list the branches that
should trigger it. It sits in the context window every turn, so it earns harder
pruning than the body.

- Lead with the word that does the invoking.
- **One trigger per branch.** Synonyms that rename the same branch are
  duplication: "use for test-first development … when the user wants TDD" is one
  branch written twice.
- Cut identity that the body already carries. Triggers, plus any "when another
  skill needs this" clause, and nothing else.
- Beware collision. With this many skills the scarce resource is trigger space,
  not skill count. Before adding a trigger phrase, check whether an existing
  skill or `hooks/user-prompt-submit.sh` already claims it. The hook is opt-in,
  but overlapping phrases still degrade routing for users who enable it.

### Information hierarchy

Content is either a **step** (an ordered action) or **reference** (a rule or fact
consulted on demand). A skill can be all of one, or both. Place each piece on the
rung it belongs:

1. **In-skill step** — what the agent does, in order.
2. **In-skill reference** — consulted while working. A flat set of peer rules is
   a legitimate shape, not a smell.
3. **External reference** — pushed into a sibling file and reached by a pointer,
   loaded only when the pointer fires. `skills/blocks/` is where shared ones live.

Push too little down and the top bloats; push too much and the agent never finds
what it needs. Branching is the cleanest test: inline what every run needs, push
behind a pointer what only some runs reach.

### Completion criteria

Every step ends on a condition that says the work is done. Make it:

- **Checkable** — can the agent tell done from not-done without guessing?
- **Exhaustive where it matters** — "every changed file accounted for" rather
  than "review the changes". A vague criterion invites stopping early on
  something that looks finished.

"Produce a summary" is not a completion criterion. "Every boundary in the table
maps to a real handoff in the setup" is.

### Enforcement, and its cost

A body that names the orchestrator script directly is required by
`tests/unit/test-mandatory-compliance.sh` to carry a `MANDATORY COMPLIANCE` block
and a `PROHIBITED` list. That is deliberate for skills that dispatch providers
and spend money. It is dead weight on an advisory skill — so if a skill only
advises, refer to workflows by their `/octo:` command names and skip the
ceremony rather than adding a compliance block nobody needs.

## Provider Or Data Priority

1. The existing skills, as worked examples of the conventions.
2. `docs/PLUGIN-ASSEMBLY-STANDARD.md` for required structure.
3. The CI suites, which encode constraints prose does not mention.

## Stop Or Checkpoint Rules

- Stop before adding a skill whose triggers overlap an existing one. Extend the
  existing skill instead; a near-duplicate makes both harder to reach.

From GongYuanCaiJi/dsh-claude-octopus, MIT.

Signals

Stars
0
Forks
0
Open issues
0
Last commit (this folder)
Aug 15, 2026 (2 months ago)
Last release
Aug 15, 2026 (2 months ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from GongYuanCaiJi

Done for you

Rather not set it up yourself?

Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.

See how we build AI agents →Read the case studies

Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.

launches shipped
50+
launches shipped
media placements
500+
media placements
founders on every account
2
founders on every account

Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block

Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.

Get skill-authoring running in your business

Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.

Goes to the Chalk Labs founders, not the newsletter. Privacy

Need help deploying skill-authoring?

CallGet help
Cite this page

skill-authoring. Agent Mart. https://agentmart.dev/skills/gongyuancaiji-skill-authoring (last updated 2026-10-24)