agentleFS
tjdwls101010tjdwls101010/Harness-Creator/CLAUDE.md

Harness-Creator

CLAUDE.md4 starsChanged 57 days agoMITView on GitHub

This repo builds harness-creator, a meta-skill that designs, generates, and validates Claude Code harnesses (CLAUDE.md, rules, skills, hooks, permissions, agents, workflows) for other projects through a structured interview.

The file

We split this CLAUDE.md into the rules it gives an agent

1 rule. About 0 are common, 0 are distinctive, and 1 is very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈0

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 1

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    No mid-sentence hard line-wraps in any markdown written here (SKILL.md, references, this file, generated harness output).

    line 16

≈ “Common” is an estimate: at least 1 in 5 of the 26,980 CLAUDE.md files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
CLAUDE.md

harness-creator

This repo builds harness-creator, a meta-skill that designs, generates, and validates Claude Code harnesses (CLAUDE.md, rules, skills, hooks, permissions, agents, workflows) for other projects through a structured interview.

Where things live

  • The skill itself: .claude/skills/harness-creator/ — SKILL.md is the orchestrator, references/ holds per-component authoring guides, scripts/ holds the Python CLIs it calls.
  • The record of what was decided and why: CHANGELOG.md's [Unreleased] section plus the commit and pull-request bodies behind it. There is no separate spec file — the generation plans under docs/plan/ were removed along with .claude/harness-spec.md, for the reason the changelog gives: a record nothing keeps honest can be silently wrong, which is worse than none for a skill whose value is that its gotchas are true. Git is often incomplete but never wrong about what changed. If you change a decision, say in the commit body which decision it supersedes, since history cannot be edited in place.
  • Self-test fixtures for the scripts: tests/fixtures/ at the repo root, not inside the skill — anything under the skill directory ships to plugin users, so dev-only fixtures stay outside it.
  • Local reference snapshots the plan was researched against: .tmp/docs_claude/ and .tmp/skill-creator/ — gitignored, not part of this repo's own history.

Working on this repo

  • This repo is dogfooding its own output shape: .claude/skills/harness-creator/ is simultaneously (a) a project skill for this repo and (b) the plugin's skill component (.claude-plugin/plugin.json's skills field points here). Don't duplicate the skill elsewhere.
  • Daily development loop is the symlink, not the plugin install: ~/.claude/skills/harness-creator → this repo's skill directory. Edits are reflected immediately in a fresh session. Only install the plugin via the local marketplace when smoke-testing the distribution path itself, and uninstall it afterward — running both at once double-registers the skill under two different names (bare harness-creator vs. harness-creator:harness-creator).
  • No mid-sentence hard line-wraps in any markdown written here (SKILL.md, references, this file, generated harness output). Line breaks only at sentence/list/paragraph boundaries — hard wraps break Edit-tool string matching and pollute diffs, and renderers soft-wrap anyway.
  • Every claim the skill makes about Claude Code mechanics (hook exit codes, matcher syntax, CLAUDE.md loading semantics, etc.) must be checked against the live docs at https://code.claude.com/docs/en/<page> before being written into a reference file — this skill's entire value is gotcha density, and a wrong gotcha is worse than no gotcha. Require a verbatim sentence from the page and treat "no such sentence exists" as an answer that settles it: a summarizing fetch will invent a version number rather than report an absence. The snapshot in .tmp/docs_claude/ is a research artifact, not a source to verify against — checking claims against it is how six wrong gotchas shipped.
  • A reference states the client behavior a model cannot observe at runtime, as the failure shape that changes a placement decision, and not the client-owned value behind it; a number the project itself chooses keeps its reason. SKILL.md's authoring philosophy carries the rule.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.