Authoring Skills logo

Authoring Skills

Organization
friday-platform
authoring-skills

Authors new agent skills that follow the Anthropic + agentskills.io specification. Use when the user asks to create, draft, review, or refactor a skill, write a SKILL.md file, lay out reference files, or bundle scripts. Covers frontmatter rules, 500-line / 5000-token body budgets, one-level-deep reference layout, progressive disclosure, gotchas sections, control calibration, the evaluation-first authoring loop, and the lint gate before publish.

Overview

Publisherfriday-platform
Repositoryfriday-studio
Skill nameauthoring-skills
Stars
102
Forks
5
Bundled files
7
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.

  • 7 bundled files

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

  • Open source

    Published by friday-platform on GitHub. Read the source before you install it.

Installation

Install the Authoring Skills 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/friday-platform/friday-studio/tree/main/packages/system/skills/authoring-skills
  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/friday-platform/friday-studio.git /tmp/friday-studio
mkdir -p .claude/skills
cp -r /tmp/friday-studio/packages/system/skills/authoring-skills .claude/skills/authoring-skills
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Authoring Skills 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 Authoring Skills 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 Authoring Skills 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.

Authoring skills

A skill is a bundle of instructions loaded into an agent's context window on demand. This skill covers how to write one that is concise, discoverable, calibrated to its task, and testable.

Copy this checklist into the response when starting a skill:

Skill authoring:
- [ ] 1. Capture real expertise (hands-on task or project artifacts — not LLM synthesis)
- [ ] 2. Write frontmatter: `name` (gerund form) + `description` (3rd person, what + when)
- [ ] 3. Draft SKILL.md body — gotchas first, then workflow, then references
- [ ] 4. Extract overflow into references/ (one level deep from SKILL.md)
- [ ] 5. Bundle scripts only when the agent would reinvent the logic each run
- [ ] 6. Write ≥3 evaluation cases, baseline without the skill, then with
- [ ] 7. Run scripts/lint_skill.py and address every error
- [ ] 8. Test with a fresh agent instance (Claude-A / Claude-B loop)

1. Start from real expertise

Skills generated from LLM general knowledge come out vague ("handle errors appropriately", "follow best practices"). Useful skills are grounded in project-specific material.

Two paths:

Extract from a hands-on task. Complete a real task with the agent, correcting as you go. Then distil the reusable pattern. Pay attention to: the sequence of steps that actually worked, the corrections you had to make, the input/output shapes, and the project-specific context you had to supply.

Synthesise from project artifacts. Feed internal docs, runbooks, API specs, code review comments, version history, and postmortems into the draft. Real incident reports outperform any "best practices" blog post because they capture your schemas, failure modes, and conventions.

2. Frontmatter

Full field spec: references/frontmatter.md.

Quick rules:

  • name: lowercase, hyphens, ≤64 chars, gerund-form preferred (processing-pdfs, creating-workspaces). Never contains anthropic or claude.
  • description: ≤1024 chars, third person, answers what + when. This field alone drives skill discovery — every other token in SKILL.md is invisible to the router.

Good:

yaml
description: Extracts text and tables from PDF files, fills forms, and merges documents. Use when working with PDFs or when the user mentions forms or document extraction.

Bad:

yaml
description: I can help with PDFs.         # first person, no trigger
description: Does stuff with files.        # meaningless

user-invocable: false is for runtime-composed system skills. Author skills should leave this at its default (true) so load_skill and @friday/... references keep working. Marking your own skill user-invocable: false does not trigger auto-loading — the runtime currently auto-composes no skills.

3. Body

Default assumption: the agent is already smart. Include only what it would otherwise get wrong.

Budgets (enforced by scripts/lint_skill.py):

  • ≤500 lines, ≤5000 tokens in SKILL.md → warning.
  • ≤800 lines, ≤8000 tokens → error.

Move overflow to references/<topic>.md, one level deep. Never chain references through nested files — Claude partial-reads nested content and drops information.

Recommended section order (adapt for the task):

  1. Heading + one-paragraph summary.
  2. Progress checklist in a fenced code block — the agent copies and checks off.
  3. Gotchas — the highest-value section in most skills. Concrete corrections to mistakes the agent would make without being told. See references/patterns.md.
  4. Workflow — ordered steps with validation gates. See references/patterns.md for the validation loop and plan-validate-execute patterns.
  5. Output templates when the format is prescribed.
  6. Reference pointers — each says which file and when to load it. "See references/api-errors.md if the API returns a non-200 status" is useful; "see references/ for details" is not.

4. Calibrate control

Match specificity to fragility. Most skills mix all three levels — calibrate each section independently. See references/control-calibration.md.

Task profileFreedomForm
Many valid paths, context-dependentHighDescribe intent and success criteria
Preferred pattern, some variation fineMediumPseudocode or parameterised script
Fragile, must-sequence, error-proneLowExact command, "do not modify"

Provide defaults, not menus. Pick one tool, mention a single fallback, then stop.

5. Use patterns, not prose

A reusable structure beats a paragraph of description. Pattern library in references/patterns.md:

  • Gotchas — concrete environment-specific facts.
  • Template — concrete input/output example; agents pattern-match on structure.
  • Checklist inside a fenced code block — the agent copies and checks off as it progresses.
  • Validation loop — do → validate → fix → repeat.
  • Plan-validate-execute — for batch or destructive operations.
  • Examples — ≥3 input/output pairs when output style matters.

6. Bundle scripts only when reusable

When the agent reinvents the same logic across runs, write a script once and put it in scripts/. See references/scripts.md.

Scripts must:

  • Handle error conditions explicitly — do not punt to the agent.
  • Justify every constant ("3 retries balances reliability vs latency" — not RETRIES = 5 with no comment).
  • Use forward slashes in all paths.
  • Declare dependencies. Do not assume packages are installed.

State whether the agent should execute the script (usually) or read it as reference (rarely).

7. Evaluate before polishing

Write evals before writing extensive documentation. See references/evaluation.md.

  1. Run target tasks without the skill. Document specific failures.
  2. Write ≥3 evaluation cases that capture the gap.
  3. Baseline score without the skill.
  4. Write the minimal skill that closes the gap.
  5. Rerun. Read execution traces, not just final outputs — wasted exploration reveals vague instructions; ignored references reveal weak triggers.
  6. Iterate: add to gotchas when the agent makes a correctable mistake; cut sections the agent never uses.

The Claude-A / Claude-B loop is the core iteration pattern: Claude A helps you refine the skill, Claude B (a fresh instance with the skill loaded) performs real tasks, and observations from Claude B drive the next revision.

Gotchas

  • name contains anthropic or claude — rejected by the validator. Use a task-based gerund instead.
  • First-person description (I can …, You can …) — the description goes into the router system prompt; mixed person breaks discovery. Third person only.
  • Nested references — Claude partial-reads with head -100 when files are linked from other linked files. Keep reference depth = 1 from SKILL.md.
  • Reference file >100 lines without a table of contents — partial-reads miss later sections. Add a ## Contents list at the top.
  • Time-sensitive prose (before August 2025) — goes stale. Put superseded info in a collapsed <details> block labelled "Old patterns".
  • Offering multiple options as equals (you can use pypdf, pdfplumber, PyMuPDF, or pdf2image) — agent spends context choosing. Pick one default plus one fallback; stop there.
  • Inconsistent terminology — one term per concept throughout. Do not mix "field"/"box"/"element" or "extract"/"pull"/"get".
  • Skill under 20 lines — likely redundant with the base model. Confirm via eval before shipping.
  • Explaining general concepts — "A PDF is a portable document format…". The agent knows. Cut it.
  • Workspace-specific configuration — does not belong in a skill. Put it in workspace.yml.

When NOT to write a skill

  • The task is one-off → write it in the prompt.
  • The base model already handles it → confirm via eval.
  • The content is environment config → workspace.yml or friday.yml.
  • The content is a single function → a bundled script is enough; no skill wrapper needed.

Lint before publish

bash
python scripts/lint_skill.py path/to/skill/

Errors (fail publish): frontmatter schema violation, body >800 lines or >8000 tokens, broken reference links, backslash paths, first-person description, reserved name substrings, reference depth >1.

Warnings (informational): body >500 lines or >5000 tokens, description missing "Use when …" clause, time-sensitive phrasing, reference file >100 lines without a table of contents.

References

  • references/frontmatter.md — field-by-field spec, good/bad description examples.
  • references/control-calibration.md — high/medium/low freedom with concrete samples.
  • references/patterns.md — gotchas, templates, checklists, validation loops, plan-validate-execute.
  • references/scripts.md — when to bundle, error handling, constant justification, dependency declaration.
  • references/evaluation.md — eval-first workflow, Claude-A / Claude-B loop, what to watch for in traces.
  • references/anti-patterns.md — full list of what to avoid.

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 Authoring Skills AI skill do?

Authors new agent skills that follow the Anthropic + agentskills.io specification. Use when the user asks to create, draft, review, or refactor a skill, write a SKILL.md file, lay out reference files, or bundle scripts. Covers frontmatter rules, 500-line / 5000-token body budgets, one-level-deep reference layout, progressive disclosure, gotchas sections, control calibration, the evaluation-first authoring loop, and the lint gate before publish.

Why use Authoring Skills on TypingMind?

Because you install it once and use it with any model. Authoring Skills 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 Authoring Skills in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/friday-platform/friday-studio/tree/main/packages/system/skills/authoring-skills. 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 Authoring Skills?

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 Authoring Skills?

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

Is the Authoring Skills AI skill free?

It is published on GitHub by friday-platform. Check the repository for licensing terms. 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 👇