agentleFS
GuiMoraesDevGuiMoraesDev/taskflow/CLAUDE.md

taskflow

CLAUDE.md1 starsChanged 24 days agoMITView on GitHub

Before touching code, create SCOPE.md, TASKS.md, QUESTIONS.md and PROGRESS.md in docs/projects/<project-name>/. Run /plan-start <project-name> to scaffold them. The plan is split into pull requests - one topic each, under 400 changed lines of code and 600 in total counting tests and docs, the lockfile excluded - and each pull request carries acceptance criteria agreed with the repo owner before any of its tasks start. A pull request has one branch; its first task opens it as a draft, its last…

The file

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

2 rules. About 0 are common, 0 are distinctive, and 2 are 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.

  • 2

    Very specific

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

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

    Before touching code, create SCOPE.md, TASKS.md, QUESTIONS.md and PROGRESS.md in docs/projects/<project-name>/.

    line 5
  2. Very specific:

    Commit messages and pull requests carry no AI signature - no Co-Authored-By trailer for an AI, no "Generated with Claude Code" line - …

    line 40

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

CLAUDE.md

Workflow

Before touching code, create SCOPE.md, TASKS.md, QUESTIONS.md and PROGRESS.md in docs/projects/<project-name>/. Run /plan-start <project-name> to scaffold them.

The plan is split into pull requests - one topic each, under 400 changed lines of code and 600 in total counting tests and docs, the lockfile excluded - and each pull request carries acceptance criteria agreed with the repo owner before any of its tasks start. A pull request has one branch; its first task opens it as a draft, its last marks it ready, and it reaches the default branch only when the repo owner reviews and merges it. Its branch prefix, title prefix, labels, assignee and stacking follow pullRequests in .claude/workflow.json.

One task per commit, applied one at a time. Every task declares the model that must take it, and its change is made by a subagent spawned on that model. Tests come first: each task's tests are derived from the criteria and watched failing for the right reason before the implementation is written to make them pass. The repo owner sees all of a pull request's tests once, up front, with why each matters, and each pull request is reviewed by an independent opus agent before it is marked ready. A task that changes no behaviour says so and why.

SymbolModelScope
🧠opusCrosses module boundaries, or touches the skill procedures and the workflow.json contract every skill reads. Plans, sequencing and findings also run here
⚙️sonnetOne layer, one surface
🔧sonnetMechanical, proven by the gates alone: rename, copy fix, version bump
🙋HumanOnly the repo owner can do it: a merge, a login, a credential

The tier binds the subagent that makes the change, and the mapping lives in .claude/workflow.json. A task applied on the wrong model is a deviation for the session log even when the diff is fine.

Gates before every commit: npm run version:check. There is no lint, type check, unit or e2e suite. The pre-commit hook runs version:check.

Commit messages and pull requests carry no AI signature - no Co-Authored-By trailer for an AI, no "Generated with Claude Code" line - unless .claude/workflow.json sets aiSignature: true.

A bug fix ships a test verified failing against the old behaviour. Deviations from the plan go in the session log.

Git force flags are a last resort. Try the way without force first - --force-with-lease, a stash, a new branch. When force is the only way, the command's description says why it is necessary, not what it does; the guard hook refuses a force flag without one.

Open questions live in QUESTIONS.md, each carrying a recommendation - why, a concrete example per option, the cost, how to reverse it - and a ⬜ / 🚧 / ✅ status that flips the moment it is answered, and sitting in PROGRESS.md directly above the task it blocks. They are put to the repo owner when the run reaches that task and not before, and an answer given ahead of time is recorded with where it came from, rather than re-asked. Questions are for decisions only: anything this repository can answer, the agent reads for itself. An unanswered question blocks its task, whatever its mark. The mark sets how the question is put: 🟦 routine goes over in a line, while ⚠️ critical - hard, unreversible, or carrying a security consequence - leads with what the wrong answer costs.

Commands

npm run version:check  # plugin.json version bumped
npm run check          # the pre-commit gates

Which doc owns what

DocOwns
CLAUDE.mdthe rules: workflow, commands, code standards
README.mdthe plugin: what it does, its skills and agents, how to install it
examples/workflow.example.jsonthe shape of .claude/workflow.json every skill reads

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.