flfl
Skill19 starsChanged 3 months agoMITView on GitHub
Run /fl on a ticket with moflo's three standing considerations loaded first — cross-platform (Rule #1), consumer blast radius, and dogfooding. Use in the moflo repo itself instead of bare /fl. moflo-internal; never installed into consumer projects.
In this repository30 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- src/CLAUDE.mdCLAUDE.md
- communeSkill
- connector-builderSkill
- distillSkill
- divineSkill
- eldarSkill
- flo-simplifySkill
- floSkill
- floSkill
- guidanceSkill
- healerSkill
- luminariumSkill
- meditateSkill
- memory-optimizationSkill
- memory-patternsSkill
- memory-teamSkill
- memory-worktreeSkill
- optimize-learningsSkill
- perf-auditSkill
- publishSkill
- quickenSkill
- reasoningbank-intelligenceSkill
- reset-epicSkill
- spell-builderSkill
- spell-scheduleSkill
- test-gapsSkill
- vector-searchSkill
- verifySkill
- wardSkill
The file
We split this skill 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
- Very specific: line 34
Follow /fl from there. /flfl adds nothing to the workflow itself — same phases, same gates, same run-mode resolution.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill 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.
Files
$ARGUMENTS/flfl — /fl with moflo's standing considerations loaded first
Purpose: run the normal /fl ticket workflow, but seat the three things that break moflo changes before any research, code, or review happens — not after a reviewer catches them.
These are not a preamble to acknowledge and move past. Hold all three for the whole run: research, implementation, tests, /flo-simplify, /verify, and the PR body.
The three considerations
| # | Consideration | What it changes about the work you are about to do |
| 1 | Rule #1 — everything ships cross-platform | Linux, macOS and Windows, identically. Audit every edit for: path.join/path.sep over hardcoded separators; fs.realpathSync on both sides of any path comparison; no Foo.ts beside foo.ts; platform EOL; no bash/grep/sed/cat/find shell-outs (use Node fs/spawn); tasklist vs /proc for process checks; shell: true on Windows vs detached on POSIX when spawning; os.tmpdir() and test ports in 40000–44999. Verify against CI's macOS and Ubuntu runs, not just your own OS. |
| 2 | moflo is installed into a destination project | This is a library, not an app. Before writing code, name (a) the consumer surface touched — bin/, src/cli/, .claude/scripts/, hooks, init/, settings/CLAUDE.md generators, anything synced into node_modules/moflo/; (b) the failure mode for someone already on the current version who upgrades — does their .moflo/ state still parse, do their hooks still wire, is a migration needed; (c) the round-trip cost — does this need publish-then-reinstall to take effect. If you cannot name all three, re-scope before writing code. |
| 3 | moflo dogfoods itself | The daemon, hooks, statusline, MCP server and indexer all run from node_modules/moflo/…, not the source tree. A source edit changes nothing for those layers until publish + reinstall + Claude Code restart. Before diagnosing any "X is broken" symptom, establish which copy is actually running — diff bin/ against .claude/ against node_modules/moflo/ first. Expect local flapping: the session-start launcher re-syncs .claude/helpers/ from the installed package, so a local fix to a synced file reverts until published. |
How to run
- Restate the three considerations in one line each, mapped to this specific ticket — which surface it touches, which platform risks it carries, whether it needs a publish round-trip. Generic restatement is worthless; if a consideration genuinely does not apply, say so and why.
Invoke the real workflow with the arguments above, unchanged and in full — including every flag (
-sd,-s,-w,-m, …):Skill({ skill: "fl", args: "<the $ARGUMENTS block above, verbatim>" })- Follow
/flfrom there./flfladds nothing to the workflow itself — same phases, same gates, same run-mode resolution. Re-check the three at each gate: they most often fail at/flo-simplify(a cross-platform miss) and at the PR body (an unnamed consumer failure mode).
Anti-patterns
| Don't | Do |
Acknowledge the three, then run /fl and never revisit them | Re-check them at implementation, simplify, and PR |
| Restate them verbatim from this file | Map each to the ticket's actual surface and risk |
Drop or reorder $ARGUMENTS when calling /fl | Pass the argument string through untouched |
| Verify only on your own OS | Read the macOS and Ubuntu CI runs before claiming green |
| Debug a runtime symptom against the source tree | Confirm which copy is running first |
See Also
.claude/skills/fl/SKILL.md— the workflow this wrapsCLAUDE.md— Rule #1, Rule #2, and the dogfooding section these three condense.claude/guidance/internal/dogfooding.md— required reading before diagnosing runtime symptoms or adding files underbin/
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
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.

