agentleFS
Simple-With-UsSimple-With-Us/BotFleet/.claude/skills/fleet-coordination/SKILL.md

fleet-coordination

Skill4 starsChanged 10 days agoApache-2.0View on GitHub

Comprehensive master skill for multi-agent fleet operations across all apps and platforms (Antigravity/Gemini, Monet, Claude, Cursor, Grok, Codex, DeepSeek). Use at session start, when claiming work on effort boards, managing pull requests, handling secrets safely, writing owner-facing Apple Notes, ensuring sentence gap compliance, and deploying to production.

  • Commits and pushes

2 other projects use a version of this.

Adopted by

Most recently taken up by

The file

Show its rules and text

We split this skill into the rules it gives an agent

15 rules. About 0 are common, 5 are distinctive, and 10 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈5

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 10

    Very specific

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

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

    Use these canonical acronyms in Apple Notes titles ([APP, Agent] topic), commit messages, PRs, and Zulip #Work-In-Progress communications:

    line 24
  2. Distinctive:

    Every agent session must start with systematic orientation before touching code:

    line 46
  3. Very specific:

    Strict Rule: NEVER work directly in /Users/jay/Code/<Repo> root checkouts.

    line 78
  4. Very specific:

    Always work in an isolated worktree under ~/apps/:

    line 80
  5. Distinctive:

    Before starting substantial work, reserve your lane on Linear and Zulip:

    line 89
  6. Very specific:

    Do not edit archived effort logs (~/apps/*-EFFORT-LOG.md or repo docs/EFFORT-LOG.md).

    line 93
  7. Very specific:

    NEVER print a secret value, and never cat, grep, rg, or view_file anything under ~/.secrets/.

    line 116
  8. Very specific:

    Infisical CLI: Never run bare infisical secrets or --output json.

    line 129
  9. Distinctive:

    All plans, design docs, rollouts, audits, and completion notes for owner review must be created in Apple Notes:

    line 150
  10. Distinctive:

    Follow the "Always Commit + Land Finished Work" discipline:

    line 166
  11. Very specific:

    If exit 0 (Phantom conflict): Rebase/merge origin/main and push fresh head.

    line 185
  12. Very specific:

    If bot threads blocking: Check GraphQL reviewThreads, address genuine issues, and resolve threads.

    line 186
  13. Very specific:

    Check public health: curl -s https://socratictrade.com/api/health, curl -s https://congress.trade/api/health, curl -s …

    line 194
  14. Distinctive:

    If you create, change, load, bootout, or retire a LaunchAgent, cron job, pm2 process, or shared helper script:

    line 206
  15. Very specific:

    Update Apple Note: apple-notes-coding.sh --update "⭐️ Background Jobs Master List".

    line 208

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

Fleet Coordination Protocol (Universal)

Shared ~/.claude/skills. Monet, Claude/Fable, and (when active) Renoir all load this directory. Do not treat the word Monet in examples as proof of your seat. Pin AGENT_SEAT / AGENT_TAG from the logged-in account before Zulip or simple-board --by:

  • Monet → MONET, Notes Monet, monet/, ~/apps/<app>-monet
  • Claude / Fable → CLAUDE, Notes Claude, claude/, ~/apps/<app>-claude
  • Renoir → RENOIR, Notes Renoir, renoir/, ~/apps/<app>-renoir Cursor, Grok, Grok Bot, Codex, AG, DeepSeek, Kimi, and Fx have their own skill dirs and must not take identity from here.

Canonical reference: /Users/jay/apps/FLEET-PROTOCOL.md and /Users/jay/apps/EFFORT-LOG-PROTOCOL.md.
Zulip Coordination Channel: #Work-In-Progress.

This skill governs how autonomous AI agents collaborate across the entire application fleet (Socratic.Trade, Congress.Trade, Usage-Monitor, congress-trading-shared, DealDex, Personal-Site, Autorotate, ContactLogo, and ai-fleet-coordinator).


Canonical Fleet App Acronyms

Use these canonical acronyms in Apple Notes titles ([APP, Agent] topic), commit messages, PRs, and Zulip #Work-In-Progress communications:

AcronymApp / ScopeRepository
STSocratic.TradeSimple-With-Us/Socratic-Trade
CTCongress.TradeSimple-With-Us/Congress.Trade
UMUsage-MonitorSimple-With-Us/Usage-Monitor
DDDealDexSimple-With-Us/DealDex
CLContactLogoSimple-With-Us/ContactLogo
ARAutorotate (formerly TopSpin)Simple-With-Us/Autorotate
AFLai-fleet-coordinator (this repo / Mac collab / skill pack)Simple-With-Us/ai-fleet-coordinator
OPSfleet-ops (sibling identity; do not invent a checkout here)Simple-With-Us/fleet-ops
PSPersonal-SiteSimple-With-Us/Personal-Site
CTScongress-trading-sharedSimple-With-Us/congress-trading-shared
FLEETZulip wake: every Grok Bot seatNot a repo. Not the coordinator. [SENDER->FLEET] means every [GB-<NAME>] seat must spend time.

Self-id: this coordinator/ops system signs as AFL. Never [FLEET]. Never [GB-FLEET]. Former aliases AFC / AIFC / FC are retired. Sibling infra identity is OPS.


1. Session Startup & Identity

Every agent session must start with systematic orientation before touching code:

  1. Establish Seat Identity:
    • Antigravity / Gemini: [AG] (display AG or Antigravity, branch prefix agent/ or ag/)
    • Monet: [$AGENT_SEAT] (display Monet, branch prefix monet/)
    • Claude: [CLAUDE] (display Claude, branch prefix claude/)
    • Grok / Grok Build: [GROK] / [GROK-BUILD] (display Grok / Grok Build, branch prefix grok/ / grok-build/)
    • Cursor: [CURSOR] (display Cursor, branch prefix cursor/)
    • DeepSeek: [DEEPSEEK] (display DeepSeek, branch prefix deepseek/)
    • Codex: [CODEX] (display Codex, branch prefix codex/)
    • Grok Bot: [GB-<NAME>] (GB-CONDUCTOR, GB-MONITOR, GB-FIXER, GB-DEPLOYER, GB-COMPILER, GB-NURSE, GB-HOUSEKEEPER, GB-ACCOUNTANT, GB-ORACLE — not [GROK-BOT], not [CURSOR])
    • Fx: [FX] (display Fx, branch prefix fx/)
    • Renoir: [RENOIR] (display Renoir, branch prefix renoir/) (Note: KIMI is permanently retired/unavailable per owner directive 2026-08-21).
  2. Poll Coordination Channel:
    AGENT_TAG=<YOUR_TAG> /usr/bin/python3 /Users/jay/apps/simple-chat
    Skim for your agent tag or repositories you plan to touch. Grok Bot seats also full-read [SENDER->FLEET] (every GB seat must spend time). Coordinator self-id is AFL, not FLEET.
  3. Check Linear & Work Items:
    board stats
    board list --status open,in_progress --limit 25
    Effort logs are archived — use Linear (simple-board or simple-tools linear_list when mounted), not ~/apps/*EFFORT-LOG.md or docs/EFFORT-LOG.md, for open work.

2. Worktree & Lane Isolation

Strict Rule: NEVER work directly in /Users/jay/Code/<Repo> root checkouts. The root checkouts in ~/Code/ are shared review bases and must remain clean on main.

Always work in an isolated worktree under ~/apps/:

git -C /Users/jay/Code/<Repo> worktree add -b <seat>/<feature-slug> ~/apps/<app>-<seat>-<feature-slug>

3. Claim & Task Lifecycle

Before starting substantial work, reserve your lane on Linear and Zulip:

  1. Linear (board claim / board file):
    • Claim or file the issue In Progress with your tag, branch, worktree, and concise objective.
    • Do not edit archived effort logs (~/apps/*-EFFORT-LOG.md or repo docs/EFFORT-LOG.md).
  2. GitHub Issue (when applicable):
    • Link your branch to the corresponding GitHub Issue or create one.
  3. Zulip Channel #Work-In-Progress: Post a standardized claim header:
    [<YOUR_TAG>] sync-1
    repo: <RepositoryName>
    claim: <seat>/<feature-slug>
    state: WIP
    work: <One-line summary of task>

(Reserve [<TAG>->FLEET] strictly for urgent wakes that every Grok Bot seat must spend time on. Coordinator/ops posts as [AFL], never as [FLEET].)


4. Secret Safety & The Grep Trap

Mac reader: fleet-secrets (get NAME, run, names), which reads Infisical Fleet-OPS. Nothing may read the flat file ~/.secrets/global-api-keys any more (OPS-818).
Sole Runtime Truth: Infisical is the source of truth for all deployed app runtime secrets.

Strict Grep Trap Ban (2026-08-14):

NEVER print a secret value, and never cat, grep, rg, or view_file anything under ~/.secrets/. Doing so dumps raw secrets into transcript logs.

  • Inspection (Names only):
    fleet-secrets names
    (Or via cloud API: GET https://mac.jays.services/files/key-names with Bearer auth).
  • Extraction into single variable (Never echo):
    SECRET_VAL="$(fleet-secrets get TARGET_KEY)" || exit $?
    # or hand a command only the keys it needs:  fleet-secrets run --only KEY_A,KEY_B -- CMD
    # Use $SECRET_VAL directly without echoing or printing
  • Infisical CLI: Never run bare infisical secrets or --output json. Use bash scripts/infisical-secrets-safe.sh {set|has|names}.

5. Sentence Gap Protocol (Monet Portable Standard)

Visibly wider gap (two visible spaces) after terminal punctuation (., !, ? when a new sentence follows) in all human-readable prose:

SurfaceSyntaxWhy
Every surface (owner ruling 2026-10-23):  chat replies in any other pane, Zulip, GitHub PR and issue text, review comments, Linear, commit messages, repo docs, skills, agent instructions, rendered UI copyA real U+00A0 plus a normal space, generated in the shellOne rule everywhere.  Two ASCII spaces collapse on rendered surfaces, and the &nbsp; entity shows literally in squash commits and plain text.
Claude Code Code tab and the MiniMax Code chat pane: chat repliesThe &nbsp; entity plus a normal space, outside code spansThe one exception (owner ruling 2026-10-23):  those two panes normalize a raw U+00A0 away, so the entity is the form that renders a real gap there.  The entity is never the form anywhere else.
HTML / JSX / Swift source for product copySwift "\u{00A0} ", JS/TS strings "\u00A0 ", JSX text {'\u00A0'} plus a space or &#160;, HTML markup source &#160;, or a shared SENTENCE_GAP constantSame rendered gap; never &nbsp;
Code, identifiers, machine-readable configNo gap characterNever put U+00A0 into code

Do not apply after abbreviations (e.g., v1.2.3) or in URLs/identifiers.


6. Apple Notes Review Standard

All plans, design docs, rollouts, audits, and completion notes for owner review must be created in Apple Notes:

  1. Folder: folder Coding (local folder on this Mac, intentionally non-iCloud).
  2. Title Format: [APP, Agent] Short topic (e.g. [ST, AG] Market data cascade). App acronyms FIRST, agent name in Title Case, NO date in title.
  3. Second Line: Timestamp Day, Mon D, h:mmam|pm · PR #<num>.
  4. Helper Script:
    /Users/jay/apps/apple-notes-coding.sh "Title" "HTML or markdown body"
    # To update in place:
    /Users/jay/apps/apple-notes-coding.sh --update "Title" "Updated body"

7. PR Landing & Verification Loop

Follow the "Always Commit + Land Finished Work" discipline:

  1. Merge origin/main & Verify Locally:
    • Socratic.Trade: PATH=/opt/homebrew/opt/node@24/bin:$PATH npm run verify / bash scripts/land.sh
    • Congress.Trade: cd app && npm run typecheck && npm test
    • Usage Monitor: npm run verify
    • congress-trading-shared: npm run typecheck && npm test && npm run build
    • DealDex: npm run lint && npm run typecheck && npm test && npm run build
  2. Push Branch & Open PR:
    git push -u origin HEAD
    gh pr create --fill
  3. Arm Auto-Merge:
    gh pr merge <PR_NUMBER> --squash --auto
  4. Unsticking Blocked PRs:
    • Test mergeability: git merge-tree --write-tree origin/main origin/<branch>.
    • If exit 0 (Phantom conflict): Rebase/merge origin/main and push fresh head.
    • If bot threads blocking: Check GraphQL reviewThreads, address genuine issues, and resolve threads.

8. Deployment Verification & Closeout

Once PR merges to main:

  1. Verify Production Deploy:
    • Check public health: curl -s https://socratictrade.com/api/health, curl -s https://congress.trade/api/health, curl -s https://usage.jays.services/api/health.
    • Confirm HTTP 200 and expected build.sha.
  2. Triple Closeout:
    • Effort board: Update row to Deployed (or Completed) with live verification note.
    • GitHub Issue: Close issue.
    • Zulip #Work-In-Progress: Post [<YOUR_TAG>] closeout with deployed status and health check results.
    • Apple Note: Add final verification stamp.

9. Mac Local Processes Registry

If you create, change, load, bootout, or retire a LaunchAgent, cron job, pm2 process, or shared helper script:

  • Update /Users/jay/apps/MAC-LOCAL-PROCESSES.md.
  • Update Apple Note: apple-notes-coding.sh --update "⭐️ Background Jobs Master List".

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.