Toolkit Skill Author logo

Toolkit Skill Author

Organization
monte-carlo-data
toolkit-skill-author

Authors or extends a skill in mc-agent-toolkit. Gates for forbidden buckets and name collisions, applies CONTRIBUTING's extend-or-split rules, then edits a peer skill or hands off to Anthropic's skill-creator and walks the registration checklist.

Overview

Publishermonte-carlo-data
Repositorymc-agent-toolkit
Skill nametoolkit-skill-author
Stars
93
Forks
5
Bundled files
9
LicenseApache-2.0
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 9 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by monte-carlo-data on GitHub. Read the source before you install it.

Installation

Install the Toolkit Skill Author AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/monte-carlo-data/mc-agent-toolkit/tree/main/.claude/skills/toolkit-skill-author
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/monte-carlo-data/mc-agent-toolkit.git /tmp/mc-agent-toolkit
mkdir -p .claude/skills
cp -r /tmp/mc-agent-toolkit/.claude/skills/toolkit-skill-author .claude/skills/toolkit-skill-author
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Toolkit Skill Author in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Toolkit Skill Author on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Toolkit Skill Author is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

toolkit-skill-author

Pre-load

bash
!test -f CONTRIBUTING.md || (echo "CONTRIBUTING.md missing — run from repo root." && exit 1)

Verify skill-creator is callable in this session. Scan the available-skills list for a skill named skill-creator (bare or namespaced, e.g. skill-creator:skill-creator). If absent, abort with exactly this message:

skill-creator plugin is required. Run /plugin install skill-creator@claude-plugins-official, enable it, then restart this session and re-run /toolkit-skill-author.

Do not fall back to manually scaffolding SKILL.md — the handoff is core to the workflow.

Load authoritative context:

bash
!cat CONTRIBUTING.md
!bash .claude/skills/toolkit-skill-author/scripts/find-peers.sh skills
  • @.claude/skills/toolkit-skill-author/references/decision-rules.md
  • @.claude/skills/toolkit-skill-author/references/handoff-preamble.md
  • @.claude/skills/toolkit-skill-author/references/registration-checklist.md

Phase 0 — Parse intent and apply gates

From the contributor's initial prompt, extract (without asking yet):

  • target_name — did they name a specific skill (e.g., "extend monitoring-advisor", "create a skill called foo-bar")?
  • action — extend, new, or unknown.
  • bucket — did they state a capability bucket?

Apply the gates below before any survey question. Each gate halts when it fires.

Gate A — Forbidden bucket

If bucket is Agent-routing (or a synonym like "agent routing", "routing skill"), refuse:

Agent-routing skills are owned by the toolkit core team per CONTRIBUTING § Capability buckets — not authored via /toolkit-skill-author. Halting.

Do not proceed. If bucket is unstated, this gate re-applies after Q1.

Gate B — Name collision (new-skill intent)

If action is new and target_name is given, lowercase both target_name and each existing skill directory name, then check:

  • Exact match (equal strings): refuse with "<target_name> already exists in skills/. Pick a different name, or switch to extend." Do not proceed.
  • Near match. Split both names on - into token lists. Fire if either (a) the two lists share any token, or (b) any token in one list is a substring of any token in the other list. Example: monitor-advisor ↔ monitoring-advisor fires via (a) shared advisor and (b) monitor ⊂ monitoring. When fired, surface the overlap and ask: "<target_name> overlaps with existing <existing>. Did you mean to extend <existing>, or proceed with a new name?" Wait for an answer before continuing.

Gate C — Fast-path for clear extend

If action is extend and target_name names an existing skill:

  • Re-check the bucket. If target_name is one of the agent-routing skills (context-detection, incident-response, proactive-monitoring), fire Gate A's refusal — those are owned by the core team and cannot be extended via /toolkit-skill-author either.
  • Otherwise: skip the Phase 1 survey, use the initial prompt as the extension description, and jump directly to Phase 2a — Extend. If the prompt is missing fields the handoff preamble needs (purpose, phrasings, output artifact), ask only for those specific fields — do not re-run the full Q1–Q4 survey.

Otherwise, continue to Phase 1. New-skill requests always run the decision tree — the gate against hidden collisions is the tree itself.

Phase 1 — Decision survey

Ask these four questions one at a time, waiting for each answer.

  1. Capability bucket. Trust / Incident Response / Monitoring / Prevent / Optimize / Setup. Agent-routing is not offered. If the contributor writes in Agent-routing, fire Gate A and halt.
  2. Primary MCP surface or data input. E.g. Monte Carlo GraphQL, BigQuery INFORMATION_SCHEMA, Sentry issues. One or two items.
  3. One-line purpose. Plain language — no pushy triggers.
  4. 2–3 example user prompts. Quote them literally.

Decision

Apply the 4-step test from decision-rules.md against the peers dumped by find-peers.sh. The dump shows every skill's name + description + when_to_use; reason directly about which skills could plausibly activate on the Q4 prompts.

Filter agent-routing skills out of the candidate set — contributors can't author those, so they can't be extension targets. Current list: context-detection, incident-response, proactive-monitoring. If the toolkit adds new routing skills, update both this list and Gate C's list to match.

Present the verdict:

  • EXTEND <peer> or NEW SKILL.
  • The step that decided, and why.
  • "Proceed with this verdict, or override?"

If the user overrides, capture their reason verbatim — it becomes part of the PR description per CONTRIBUTING.

Phase 2a — Extend

Invoke skill-creator via the Skill tool in improve-existing mode, passing the handoff preamble from references/handoff-preamble.md with MODE=IMPROVE_EXISTING, PEER_NAME=<peer>, and the survey answers (or the initial prompt for the fast-path case).

skill-creator runs its full loop; if the contributor wants a lighter-touch edit, they can tell it mid-flow to skip iteration.

When skill-creator returns:

bash
!rm -rf skills/<peer>/evals/ skills/<peer>-workspace/
!python3 .claude/skills/toolkit-skill-author/scripts/lint-skill.py <peer>

Scratch-artifact cleanup removes skill-creator's iteration files (they drove the loop but aren't the repo's eval format). Lint surfaces any frontmatter violations.

Walk the partial checklist from references/registration-checklist.md via TodoWrite:

  • Signal-definitions update — only if phrasings shifted.
  • /mc catalog update — only if user-facing surface changed.
  • Eval entry update — only if activation surface expanded.

Continue to the shared version-bump step.

Phase 2b — New skill

Extended survey (one at a time)

  1. Output artifact — what the skill produces (file type, diff, notebook, text verdict).
  2. Persona / workflow — who invokes this and during what task.
  3. Disambiguation — how it differs from the nearest peer (by bucket), even if no peer forced a split.

Propose name

Suggest 2–3 kebab-case directory names. Short is better. Re-run Gate B against each candidate:

  • Exact match → drop the candidate.
  • Near match (token-overlap with any existing skill) → drop or explicitly flag.

Only present candidates that survive Gate B. Wait for the contributor to pick one. Before handoff, re-verify skills/<chosen>/ does not exist.

Note the two-level naming: the directory is skills/<chosen>/, but the name field inside the generated SKILL.md frontmatter should be monte-carlo-<chosen> — the canonical prefixed form. The handoff preamble passes both, and lint-skill.py verifies them after scaffold.

Handoff to skill-creator

Invoke via the Skill tool with the handoff preamble from references/handoff-preamble.md, MODE=NEW_SKILL, and all survey answers.

When skill-creator returns:

bash
!rm -rf skills/<name>/evals/ skills/<name>-workspace/
!python3 .claude/skills/toolkit-skill-author/scripts/lint-skill.py <name>

If lint prints ERROR lines, surface them and wait for the contributor to fix (manually or via a regenerate pass) before proceeding.

Full registration checklist

Walk the full checklist from references/registration-checklist.md via TodoWrite, one item per step:

  1. Read the relevant existing file.
  2. Draft the addition.
  3. Show the diff and confirm.
  4. Apply with Edit, or create new files with Write.

If Q1 = Setup, confirm: "Setup skills are exempt from signal-definitions and /mc catalog registration per CONTRIBUTING. Skip those two steps? [Y/n]" — default Y.

Shared — version bump

Both phases converge here.

  1. Propose a level based on what actually changed:
    • New skill → minor per CONTRIBUTING § Version bumping.
    • Extend changed activation surface (phrasings in description or when_to_use) → minor.
    • Extend did not touch activation surface → patch.
  2. "Proceed with this level, or override?" Valid overrides: patch, minor, major.
  3. Run:
    bash
    !./scripts/bump-version.sh <level>
    The script opens $EDITOR for the changelog, then updates all 6 plugin configs and all 6 CHANGELOG.md files.

Done

Tell the contributor:

All changes are staged. Review with git status / git diff --staged, then commit and run /ship to open the PR.

Do not auto-commit or push.

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Toolkit Skill Author AI skill do?

Authors or extends a skill in mc-agent-toolkit. Gates for forbidden buckets and name collisions, applies CONTRIBUTING's extend-or-split rules, then edits a peer skill or hands off to Anthropic's skill-creator and walks the registration checklist.

Why use Toolkit Skill Author on TypingMind?

Because you install it once and use it with any model. Toolkit Skill Author is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Toolkit Skill Author in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/monte-carlo-data/mc-agent-toolkit/tree/main/.claude/skills/toolkit-skill-author. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Toolkit Skill Author?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Toolkit Skill Author?

As many as you like. As long as a model supports skills, you can use Toolkit Skill Author with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Toolkit Skill Author AI skill free?

Yes. It is published on GitHub by monte-carlo-data under the Apache-2.0 license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇