Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add instructions/eric-cielo/moflo/claude-mdgit clone --depth 1 https://github.com/eric-cielo/mofloWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/instructions/eric-cielo/moflo/claude-md)<a href="https://agentmods.dev/instructions/eric-cielo/moflo/claude-md"><img src="https://agentmods.dev/badge/instructions/eric-cielo/moflo/claude-md.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.04484 | $0.04484 |
| Opus 5 | $0.02242 | $0.02242 |
| Sonnet 5 | $0.00897 | $0.00897 |
| Haiku 4.5 | $0.00448 | $0.00448 |
Grade B, and why
moflo CLAUDE.md scanned grade B with 2 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 4d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Reads agent configuration directoriesmediumAgent snooping
.claude/, .codex/, .gemini/ hold keys, settings and other credentials a mod has no legitimate need for.
**The default for a defect you find mid-task is to fix it in the PR you are already in.** Filing is the exception and must be earned: name which threshold in `.claude/guidance/shipped/moflo-inline-fixes.md` § 2 the defec Runs shell commandslowCapability
Expected in a hook, worth knowing in a rule or an instructions file.
5. **Shell commands** — `bash`/`grep`/`sed`/`cat`/`find` don't exist on Windows out of the box. Use Node primitives (`fs`, `child_process` with `spawn` not shell, `Glob`/`Grep` tools) instead of shelling out. If you MUST How it starts
The opening of the file, as written. The whole thing — 204 lines — stays where its author put it; the contents beside it link to each section on GitHub.
⚠ Rule #1 — All shipped code MUST be cross-platform (Linux + macOS + Windows)
Hard requirement, no exceptions. Consumers run moflo on Windows dev boxes, macOS laptops, and Linux CI runners. Any code that ships in bin/, src/cli/, .claude/scripts/, or node_modules/moflo/ MUST work identically on all three. The smoke harness runs on all three CI platforms specifically to catch divergence.
Before any change, audit it against the cross-platform checklist:
- Paths — use
path.join,path.sep,path.resolve. NEVER hardcode/or\. NEVER hardcode/tmp,/usr/local,C:\\Users, etc. - Symlinks — POSIX has them; Windows mostly doesn't. If you compare two paths for identity,
fs.realpathSyncBOTH sides first (otherwise/var/folders/...≠/private/var/folders/...on macOS — see #1145). - Case sensitivity — POSIX FS is case-sensitive; macOS APFS + Windows NTFS are case-insensitive by default. Don't write
Foo.tsandfoo.tsin the same directory. - Line endings — files written by moflo MUST use platform-appropriate EOL or be marked
text=autoin.gitattributes. Tests that hash file contents must normalize. - Shell commands —
bash/grep/sed/cat/finddon't exist on Windows out of the box. Use Node primitives (fs,child_processwithspawnnot shell,Glob/Greptools) instead of shelling out. If you MUST shell, branch onprocess.platform. - Process introspection —
tasklist/wmic/Get-CimInstanceon Windows vsps//proc/<pid>/cmdlineon POSIX. Seedaemon-lock.ts:isDaemonProcess*for the right shape. - Spawning daemons — Windows requires
shell: true+ quoted strings (Node 24 DEP0190); POSIX usesdetached: true. Seecommands/daemon.ts:startBackgroundDaemon. - Tempdir + Windows port reservations —
os.tmpdir()is platform-correct; ports 49152-65535 are reserved on Windows (EACCES) — use 40000-44999 in tests. rm/cp/mkdirin spell bash steps — Windows lacks these on PATH. Usenode -ewithfs/osfor file ops in cross-platform spells.
Verify before pushing — don't trust your local OS:
- The smoke harness (
harness/consumer-smoke/run.mjs) covers all three platforms in CI. Watch macOS + Ubuntu runs, not just Windows. tests/system/runs cross-platform;tests/bin/has explicit Windows + POSIX branches.- If your local OS is Windows, mentally simulate the POSIX path (symlinks, case-sensitivity, missing
tasklist). If POSIX, simulate Windows.
Concrete examples of what cross-platform misses look like in practice:
- #1145 follow-up (this session) —
normalizeProjectRootdidn'trealpathSync→ macOS daemon resolved/var/folders/...→/private/var/folders/...while client saw the unresolved path → identity check false-positived → smoke failed on macOS + Ubuntu, passed on Windows. Shipped because verification was Windows-only. feedback_spell_bash_minimal_path.md— spell bash steps on Windows lackmkdir/rm/cpon PATH; usenode -ewith fs/os.feedback_docker_sandbox_git_safe_directory.md—git config --global safe.directorygets overridden by bind-mounted.gitconfig; must use--system.
See feedback_cross_platform_mandatory.md (auto-memory) for the running list.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 4d ago First seen · 204 lines · 4,484 tokens per session scan B 8b649262e1d2
moflo CLAUDE.md is an instructions file published in the GitHub repository eric-cielo/moflo (18 stars, last pushed today), licensed MIT. It adds 4,484 tokens to every session, about $0.0224 per session on Opus 5. A static security scan graded it B with 2 findings (reads agent configuration directories, runs shell commands). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other instructions, from other repositories
kungfu copilot-instructions.md
Copilot instructions for kungfu-systems/kungfu: Read and follow AGENTS.md before proposing or running changes. It is the shared agent router for this repository, including the canonical Shifu development and build entrypoint.
agents CLAUDE.md
Instructions for eloylp/agents, covering claude.md, project overview, directory structure, config model and build & run.
ideate AGENTS.md
Instructions for paultyng/ideate, covering agents.md, build features as mcp tools first, ui second, when to add ui and pattern.
omk CLAUDE.md
Claude Code instructions for dmae97/omk, covering claude.md, precedence (read this first), omk runtime map (what you're operating inside), this repo: open-multi-agent-kit / omk monorepo and build / test / check commands.
orchestrator CLAUDE.md
Claude Code instructions for c9r-io/orchestrator, covering claude.md, forbidden operations, never delete the runtime database and starting a daemon.
icron CLAUDE.md
Instructions for zebbern/icron, covering icron, architecture, key directories, built-in tools and commands.