Agent skill

Ijfw Writing Skills

by FerroxLabs in FerroxLabs/ijfw

Authoring discipline for new IJFW skills. An agent skill from FerroxLabs/ijfw.

MITAuto-check passedAgent Workflows

Install Ijfw Writing Skills

skills CLI
$ npx skills add FerroxLabs/ijfw --skill ijfw-writing-skills -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install FerroxLabs/ijfw ijfw-writing-skills --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/FerroxLabs/ijfw.git skills-src && mkdir -p .claude/skills && cp -r skills-src/claude/skills/ijfw-writing-skills .claude/skills/ijfw-writing-skills && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
ijfw-writing-skills
GitHub stars
212
Token cost
~2.3k tokens
SKILL.md length
974 words
Files
1
Skills in repo
38
Repo updated
First seen
Licence
MIT

At a glance

Authoring discipline for new IJFW skills. An agent skill from FerroxLabs/ijfw.

  • Works in 8 steps: Discovery -- the description is the… → Frontmatter -- the loadable contract → Shape -- terse vs structured → …
  • Creating a new skill
  • SKILL.md covers 1. Discovery -- the…, 2. Frontmatter -- the loadable…, 3. Shape -- terse vs structured and 4. Anti-patterns -- do not…, plus 6 more sections
  • Calls bash

What it does

Ijfw Writing Skills is an agent skill from FerroxLabs/ijfw. Authoring discipline for new IJFW skills. Use when creating a new skill, writing a skill, making a skill that does X, or asked to add a skill. Trigger: create a new skill, write a skill, new skill, make me a skill, skill that does, /ijfw-writing-skills

Its SKILL.md is about 2.3k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Agent Workflows, covering Skill authoring. The repository describes itself as: IJFW — It Just Fcking Works. Ferrox Labs' local-first infrastructure for AI coding agents: shared memory, smart routing, multi-AI cross-audits, disciplined workflow. The licence is MIT.

When your agent uses it

  • Creating a new skill
  • Writing a skill
  • Making a skill that does X
  • Asked to add a skill

Example prompts

  • “/ijfw-writing-skills”

Workflow steps

8 steps, taken from the step headings in SKILL.md.

  1. Discovery -- the description is the trigger surface (CSO)
  2. Frontmatter -- the loadable contract
  3. Shape -- terse vs structured
  4. Anti-patterns -- do not ship these
  5. Validation flow -- always run, always pass
  6. Multi-domain consideration
  7. Where skills live -- canonical layout
  8. When NOT to write a new skill

What it can do on your machine

Read from SKILL.md and the folder at commit eda62f3. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • bash

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Ijfw Writing Skills loads about 2.3k tokens when it runs. Until then it costs about 68 tokens; SKILL.md has 974 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~68
When it runs · the whole SKILL.md, loaded when a task matches
~2.3k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from FerroxLabs/ijfw at commit eda62f3, republished under its MIT licence (© FerroxLabs). 974 words, ~2,267 tokens.

Download SKILL.mdSave it as .claude/skills/ijfw-writing-skills/SKILL.md (or your agent's skills folder).
name
ijfw-writing-skills
description
Authoring discipline for new IJFW skills. Use when creating a new skill, writing a skill, making a skill that does X, or asked to add a skill. Trigger: create a new skill, write a skill, new skill, make me a skill, skill that does, /ijfw-writing-skills
since
1.5.0

IJFW Writing Skills -- author a new skill correctly

A skill is a thin loadable trigger surface. The description: is what Claude reads to decide whether to hot-load the body. Get the description wrong and the skill never fires; get the body wrong and the skill misfires when it does fire. This file teaches you to do both right on the first try.

Iron rule: a skill IS its trigger. If the description does not match the words a user would naturally say, the skill does not exist -- it is documentation no one reads.


1. Discovery -- the description is the trigger surface (CSO)

The description: field is the only thing Claude sees at routing time. Treat it like a search-engine snippet, not like a definition.

Shape: start with "Use when ...", end with Trigger: <verbatim phrases>, /<command-name>.

Forbidden words (enforced by scripts/lint/check-skill-descriptions.sh, case-insensitive whole-word): step, steps, phase, phases, mode, modes, workflow, stage, process, sub-skill, skill-name. These signal "the description summarises the body" and cause Claude to skip the body and follow the description shortcut.

Hard cap: 1024 characters. Aim for under 300.

yaml
# BAD -- defines the topic, uses forbidden word "process"
description: "Skill for the code review process. Reviews PRs."

# BAD -- workflow summary, uses "phases" and "steps"
description: "Use when reviewing code -- runs three phases, fifteen steps, two passes."

# GOOD -- triggers only, verbatim phrases, slash-command alias
description: "One-line code review comments. Trigger: review, code review, PR review, /ijfw-review"

# GOOD -- "Use when X" + trigger list
description: "Authoring discipline for new IJFW skills. Use when creating a new skill, writing a skill. Trigger: create a new skill, new skill, /ijfw-writing-skills"

2. Frontmatter -- the loadable contract

Required:

  • name: -- letters, digits, hyphens only. Must match the directory name. Prefix with ijfw- for IJFW skills.
  • description: -- see section 1.

Optional but recommended:

  • since: "1.5.0" -- required for all v1.5.0+ skills so version filters can target them.
  • allowed-tools: -- explicit tool list. Omit only when the skill truly needs every tool. Be explicit when you can.
  • model: -- only when the skill must pin a specific model (rare).
  • argument-hint: -- shown after the slash command in the picker.

First line above frontmatter: <!-- IJFW: narration-not-applicable --> (or narration-applicable) -- declares how the skill interacts with the narration hook.


3. Shape -- terse vs structured

Skill kindShapeLengthExample
One-shot trigger (single output)Terse: frontmatter + 5-30 line body<60 linesijfw-review (43 lines), ijfw-debug (52 lines)
Multi-move disciplineStructured: numbered moves with green-light gates80-180 linesijfw-tdd (104 lines), this file
Reference / API docStructured + references/ filesheader in SKILL.md, weight in references/offload heavy content

Hot-load on trigger, unload when done. Nothing in the body should pretend to be always-loaded -- the user will only see it when the trigger fires.


4. Anti-patterns -- do not ship these

  1. Description-as-definition. "Skill for the code review process" tells Claude what the skill IS. Claude needs to know WHEN to load it. Rewrite as "Use when reviewing code. Trigger: review, /ijfw-review".
  2. Forbidden workflow keywords in description. step, phase, mode, workflow, stage, process, sub-skill, skill-name -- the lint will FAIL the build. Use trigger phrases instead.
  3. Overlap with existing skills. Before writing, list claude/skills/ and read any neighbour whose name or trigger overlaps. Extend an existing skill rather than fragmenting the trigger surface.
  4. Embedded prompts for the user to paste. The skill IS the prompt. The user just speaks the trigger -- they should never see "copy this and paste into chat".
  5. Undeclared tool dependencies. If the skill calls Bash, Edit, or an MCP tool, either declare them in allowed-tools: or accept inherit-everything. Do not silently assume tools exist.
  6. Documentation about the topic. A skill explains how to DO a thing, not how the thing works in the abstract. If you want to teach concepts, write a reference file under references/ and link from a skill that DOES something with the concept.
  7. Skill that is really an agent. If the work needs an isolated context window or a different model, write an agent (claude/agents/<name>.md) and dispatch via the Agent tool. Skills are for in-context discipline; agents are for delegated work.

Show full SKILL.md (388 more words)Show less

5. Validation flow -- always run, always pass

After writing the file:

bash
# 1. Lint CSO discipline. Must show PASS for your new skill, no new FAILs.
bash scripts/lint/check-skill-descriptions.sh 2>&1 | grep -E "<your-skill-name>|FAIL"

# 2. Trigger-test in a fresh Claude session. Open a new conversation and say
#    one of the verbatim trigger phrases from your description. Confirm the
#    skill loads and runs as expected. If it does not fire, your description
#    does not match how users actually speak -- rewrite and re-test.

A skill that lints PASS but does not fire on its own trigger is broken. Both checks must pass before commit.


6. Multi-domain consideration

IJFW skills should work across software, books, campaigns, and design wherever the discipline transfers. TDD applies to code AND book continuity AND campaign metrics; review applies to PRs AND chapter drafts AND landing-page copy. Write skills domain-neutral by default.

Domain-specific is rare and must be justified: e.g. ijfw-ui-spec is intentionally frontend-only because UI contracts have no analogue in book writing. When you go domain-specific, name it in the description so the trigger surface stays honest: "Use when designing a frontend feature".


7. Where skills live -- canonical layout

claude/skills/<skill-name>/
  SKILL.md                # required, ~140-180 lines max for structured skills
  references/             # heavy reference material the skill links to
    <topic>.md
  prompts/                # reusable prompt fragments the skill renders
    <name>.txt
  templates/              # boilerplate the skill emits
    <name>.template.md

Cross-platform skills also land at codex/skills/<name>/SKILL.md, gemini/extensions/ijfw/skills/<name>/SKILL.md, hermes/skills/<name>/SKILL.md, wayland/skills/<name>/SKILL.md. The lint script checks every present platform.


8. When NOT to write a new skill

You want to ...Do this instead
Extend behaviour of an existing triggerEdit the existing skill. Adding a second skill for the same trigger fragments routing.
Run heavy work in an isolated contextWrite an agent at claude/agents/<name>.md with model: + allowed-tools: + a body that gets dispatched via the Agent tool.
Enforce a mechanical ruleWrite a hook (claude/hooks/) or a lint script (scripts/lint/). Hooks are deterministic; skills are judgment calls.
Document a concept users should readAdd a doc under docs/. Skills are loaded on trigger, not for browsing.
Pin a project conventionAdd it to CLAUDE.md or AGENTS.md. Skills are reusable across projects; conventions are local.

Done When

  • claude/skills/<name>/SKILL.md exists with correct frontmatter (name, description, since: if v1.5.0+).
  • Description starts with "Use when" and lists verbatim trigger phrases plus the /slash-command alias.
  • Description contains NO forbidden words (step, phase, mode, workflow, stage, process, sub-skill, skill-name).
  • Description under 1024 chars.
  • bash scripts/lint/check-skill-descriptions.sh shows your skill as PASS and introduces no new FAILs.
  • Trigger-tested in a fresh Claude session -- the skill actually fires when a user speaks a trigger phrase.
  • Shape matches purpose: terse (<60 lines) for one-shot, structured (80-180 lines) for multi-move discipline.
  • No overlap with an existing skill (or the existing skill was extended instead).
  • If declared since: "1.5.0", picked up by version filters.

References

  • Lint: scripts/lint/check-skill-descriptions.sh -- the authoritative CSO rules.
  • Terse skill format: claude/skills/ijfw-review/SKILL.md.
  • Structured discipline format: claude/skills/ijfw-tdd/SKILL.md, claude/skills/ijfw-debug/SKILL.md.
  • Agent format (when a skill is not the right shape): claude/agents/*.md.

© FerroxLabs, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in claude/skills/ijfw-writing-skills of FerroxLabs/ijfw.

Open the folder on GitHubat commit eda62f3

Compare with similar skills

Ijfw Writing Skills next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Ijfw Writing Skills compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Ijfw Writing Skills this skillFerroxLabs/ijfw212—~2.3kAutomated safety check: PassMIT
Skill CreatorAzure/azqr79689 repos~8.2kAutomated safety check: PassApache-2.0
Claude Code Skill Developer Guidediet103/claude-code-infrastructure-showcase10k11 repos~3.5kAutomated safety check: PassMIT
Darwin Skill Optimizeralchaincyf/darwin-skill6.2k1 repos~4.7kAutomated safety check: PassMIT
Claude Code Command Developmentanthropics/claude-plugins-official38k10 repos~4.8kAutomated safety check: PassApache-2.0
Claude Code Plugin Structureanthropics/claude-plugins-official38k10 repos~3.4kAutomated safety check: PassApache-2.0

Similar skills

  • Skill Creator

    Azure/azqr

    Official

    Create new skills, modify and improve existing skills, and measure skill performance.

    796 GitHub starsUsed in 89 repos~8.2k tokens
    Agent WorkflowsAuto-check passed
  • Claude Code Skill Developer Guide

    diet103/claude-code-infrastructure-showcase

    A guide to creating and managing Claude Code skills with auto-activation: skill-rules.json triggers, hooks, enforcement levels, YAML frontmatter and progressive disclosure.

    10k GitHub starsUsed in 11 repos~3.5k tokens
    Agent WorkflowsAuto-check passed
  • Darwin Skill Optimizer

    alchaincyf/darwin-skill

    Scores SKILL.md files on a nine-dimension rubric, then improves them in a keep-or-revert loop with independent judge agents, test prompts, git history and human checkpoints.

    6.2k GitHub starsUsed in 1 repo~4.7k tokens
    Agent WorkflowsAuto-check passed
  • Claude Code Command Development

    anthropics/claude-plugins-official

    Official

    Explains how to write Claude Code slash commands: Markdown files with YAML frontmatter, arguments, file references, bash context and interactive prompts.

    38k GitHub starsUsed in 10 repos~4.8k tokens
    Agent WorkflowsAuto-check passed
  • Claude Code Plugin Structure

    anthropics/claude-plugins-official

    Official

    Explains the directory layout, plugin.json manifest and component organization of a Claude Code plugin, including auto-discovery and portable paths.

    38k GitHub starsUsed in 10 repos~3.4k tokens
    Agent WorkflowsAuto-check passed
  • Skill Release Gate

    rohitg00/ai-engineering-from-scratch

    Evaluates an Agent Skill bundle before release for structure, trigger quality, artifact improvement, script correctness, safety, installed-tree integrity and host portability.

    67k GitHub stars~1k tokensUpdated today
    Agent WorkflowsAuto-check passed

More from FerroxLabs/ijfw

All 38 skills in this repo
  • Ijfw Agents Md

    FerroxLabs/ijfw

    Maintain canonical AGENTS.md (open spec). An agent skill from FerroxLabs/ijfw.

    212 GitHub stars~2.7k tokensUpdated 6 days ago
    Auto-check passed
  • Ijfw Design

    FerroxLabs/ijfw

    A skill your agent uses when the user says: 'design', 'redesign', 'UI', 'UX', 'dashboard', 'page', 'component', 'make it look better', 'polish', 'pretty', 'professional', 'user experience'…

    212 GitHub stars~2.2k tokensUpdated 6 days ago
    Auto-check passed
  • A skill your agent uses when a milestone is shipping and you need to archive its artifacts, generate a summary, and seed the next milestone.

    212 GitHub stars~1.5k tokensUpdated 6 days ago
    Auto-check passed
  • Ijfw Critique

    FerroxLabs/ijfw

    Challenge decisions, surface counter-arguments, flag assumptions.

    212 GitHub stars~1.2k tokensUpdated 6 days ago
    Auto-check passed
  • Ijfw Cross Audit

    FerroxLabs/ijfw

    Generate a cross-platform multi-model audit (Trident) on a diff, brief, or artifact.

    212 GitHub stars~594 tokensUpdated 6 days ago
    Auto-check passed
  • Ijfw Debug

    FerroxLabs/ijfw

    Root-cause analysis with hypothesis tracking. An agent skill from FerroxLabs/ijfw.

    212 GitHub stars~578 tokensUpdated 6 days ago
    Auto-check passed

Categories

Questions about Ijfw Writing Skills

What does Ijfw Writing Skills do?

Authoring discipline for new IJFW skills. An agent skill from FerroxLabs/ijfw. Ijfw Writing Skills is an agent skill from FerroxLabs/ijfw. Authoring discipline for new IJFW skills.

When should I use Ijfw Writing Skills?

Ijfw Writing Skills fits situations like: creating a new skill; writing a skill; making a skill that does X; asked to add a skill.

How do I install Ijfw Writing Skills in Claude Code?

Run `npx skills add FerroxLabs/ijfw --skill ijfw-writing-skills -a claude-code`. Or copy the skill folder (claude/skills/ijfw-writing-skills in FerroxLabs/ijfw) into .claude/skills/ijfw-writing-skills in your project. Claude Code loads it when a task matches its description.

How do I install Ijfw Writing Skills in Codex?

Run `npx skills add FerroxLabs/ijfw --skill ijfw-writing-skills -a codex`. Or copy the skill folder (claude/skills/ijfw-writing-skills in FerroxLabs/ijfw) into .agents/skills/ijfw-writing-skills in your project. Codex loads it when a task matches its description.

Can I use Ijfw Writing Skills in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add FerroxLabs/ijfw --skill ijfw-writing-skills -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/ijfw-writing-skills, .gemini/skills/ijfw-writing-skills, .github/skills/ijfw-writing-skills and .opencode/skills/ijfw-writing-skills in your project.

What does Ijfw Writing Skills need to run?

Going by SKILL.md and its folder, Ijfw Writing Skills needs the command-line tools its instructions call (bash).

Does Ijfw Writing Skills access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Ijfw Writing Skills safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Ijfw Writing Skills use?

Ijfw Writing Skills is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Ijfw Writing Skills use?

About 2.3k tokens (SKILL.md is roughly 9.1k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Ijfw Writing Skills?

Skills that share tags, products or a category with Ijfw Writing Skills: Skill Creator (Azure/azqr, 796 stars), Claude Code Skill Developer Guide (diet103/claude-code-infrastructure-showcase, 10k stars), Darwin Skill Optimizer (alchaincyf/darwin-skill, 6.2k stars) and Claude Code Command Development (anthropics/claude-plugins-official, 38k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Ijfw Writing Skills?

FerroxLabs (a GitHub user) maintains it in FerroxLabs/ijfw, which has 212 GitHub stars. The repository holds 38 skills in this directory. The repository was last updated on October 5, 2026.

Source: FerroxLabs/ijfw on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.