agentleFS
eric-cieloeric-cielo/moflo/.claude/skills/flfl/SKILL.md

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.

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
  1. Very specific:

    Follow /fl from there. /flfl adds nothing to the workflow itself — same phases, same gates, same run-mode resolution.

    line 34

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

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md
$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

#ConsiderationWhat it changes about the work you are about to do
1Rule #1 — everything ships cross-platformLinux, 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.
2moflo is installed into a destination projectThis 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.
3moflo dogfoods itselfThe 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

  1. 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.
  2. 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>" })
  3. Follow /fl from there. /flfl adds 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'tDo
Acknowledge the three, then run /fl and never revisit themRe-check them at implementation, simplify, and PR
Restate them verbatim from this fileMap each to the ticket's actual surface and risk
Drop or reorder $ARGUMENTS when calling /flPass the argument string through untouched
Verify only on your own OSRead the macOS and Ubuntu CI runs before claiming green
Debug a runtime symptom against the source treeConfirm which copy is running first

See Also

  • .claude/skills/fl/SKILL.md — the workflow this wraps
  • CLAUDE.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 under bin/

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.