agentleFS
markshustmarkshust/hcf/.claude/CLAUDE.md

hcf

CLAUDE.md79 starsChanged 35 days agoMITView on GitHub

A Claude Code plugin for autonomous development orchestration with parallel TDD execution. This repo is the plugin — it contains no application code, only markdown (skills, agents, docs) and bash (hooks, tests). This file is HCF's own project config. It is not the template shipped to users — that lives inline in skills/project-setup/SKILL.md, and editing this file has no effect on what /hcf:project-setup generates. Do not invoke hcf:plan-create or hcf:plan-orchestrate for work in this repo. HCF cannot bootstrap itself: plan-orchestrate…

  • Commits and pushes

The file

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

3 rules. About 0 are common, 1 is distinctive, and 2 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈1

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 2

    Very specific

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

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

    Do not invoke hcf:plan-create or hcf:plan-orchestrate for work in this repo.

    line 13
  2. Distinctive:

    Commit the changelog + version bump together.

    line 71
  3. Very specific:

    Run claude plugin tag --push — auto-generates a tag in the form hcf--v{version} (note the double dash between plugin name and v) and pushes …

    line 72

≈ “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

HCF

A Claude Code plugin for autonomous development orchestration with parallel TDD execution. This repo is the plugin — it contains no application code, only markdown (skills, agents, docs) and bash (hooks, tests).

This file is HCF's own project config. It is not the template shipped to users — that lives inline in skills/project-setup/SKILL.md, and editing this file has no effect on what /hcf:project-setup generates.

Do not use HCF to build HCF

Do not invoke hcf:plan-create or hcf:plan-orchestrate for work in this repo. HCF cannot bootstrap itself: plan-orchestrate requires .claude/testing.md and .claude/code-standards.md, which this repo deliberately does not have, and its hook agents would resolve against the very agents/ directory being edited. Work here directly, TDD where practical.

The plugin's own workflow is for consumer projects.

Commands

# Run the full test suite (no dependencies; bash 3.2 compatible)
./tests/run-tests.sh

# Run one suite
./tests/run-tests.sh test-parse

# Lint shell
shellcheck hooks/*.sh tests/*.sh

Key Conventions

  • Shell must run on bash 3.2 (stock macOS /bin/bash). No declare -A, no mapfile, no ${var,,}. Use parallel indexed arrays instead of associative ones.
  • LC_ALL=C on every sort and awk, or ordering differs between a macOS en_US.UTF-8 user and a Linux C one.
  • BSD tools only — no grep -P, no GNU sed -i semantics, no awk gensub. The plugin ships to macOS and Linux.
  • Never ls "$DIR"/*.md — plugin install paths contain spaces. Use shopt -s nullglob with a for glob loop, and quote every path expansion.
  • Hook scripts self-locate via ${BASH_SOURCE[0]}; project root comes from ${CLAUDE_PROJECT_DIR:-$PWD}.
  • ${CLAUDE_PLUGIN_ROOT} is only set for hooks.json entries, not for a skill's Bash calls. Skills use the Base directory for this skill value the harness states at load.
  • HOOKS.md is the authoritative reference for the hook system. Skills point there rather than restating the routine — restating it is what caused #4.
  • Hook discovery is hooks/discover-hooks.sh. Never enumerate agent files by hand or write a glob loop to do it.
  • Any change to shell behavior needs a test in tests/test-*.sh; the runner auto-discovers them.

Release Process

This repo is a Claude Code plugin published via its own marketplace manifest. Releases are cut in their own PR — feature PRs never bump the version, they only add entries under [Unreleased] in CHANGELOG.md.

To cut a release:

  1. Move entries from [Unreleased] to a new [X.Y.Z] — YYYY-MM-DD section in CHANGELOG.md. Add a new comparison link at the bottom and update the [Unreleased] link to point to the new tag.
  2. Bump version in both .claude-plugin/plugin.json and .claude-plugin/marketplace.json (must match, or claude plugin tag refuses).
  3. Commit the changelog + version bump together.
  4. Run claude plugin tag --push — auto-generates a tag in the form hcf--v{version} (note the double dash between plugin name and v) and pushes it. --dry-run previews without creating anything.
  5. Mirror to GitHub Releases: gh release create hcf--v{version} --title "hcf--v{version}" --notes-file <changelog-section> --latest. Always pass --latest — without it GitHub picks the "Latest" badge by creation timestamp, which is wrong given this repo's tags are already out of chronological order.
  6. Users update via /plugin marketplace update hcf, then /plugin install hcf@hcf, then /reload-plugins. The reload step is non-obvious and required.

Versioning: semver, read as BREAKING.FEATURE.FIX. New phases / agents / skills = minor. Removing a generated file is treated as minor since existing user data isn't destroyed.

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.