Imported from jaywedgeworth22/AI-Fleet-Coordinator (
docs/fleet-skills/by-seat/renoir/fleet-coordination/SKILL.md). Install upstream withnpx skills add jaywedgeworth22/AI-Fleet-Coordinator --skill fleet-coordination. Copyright stays with the author.
Fleet Coordination Protocol (Universal)
This install is for
RENOIR. Slack[RENOIR]. NotesRenoir. Branchesrenoir/. Worktrees~/apps/<app>-renoir. Do not inherit another seat's tag from a shared template.
Inactive seat. Renoir is not yet active. Do not install to
~/.renoir/skills. Do not take fleet work until the owner opens the seat.
Canonical reference: /Users/jay/apps/AGENT-SYNC.md and /Users/jay/apps/EFFORT-LOG-PROTOCOL.md.
Slack Coordination Channel: #agent-sync (C0BEZDJDNKV).
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 Slack #agent-sync communications:
| Acronym | App / Scope | Repository |
|---|---|---|
ST |
Socratic.Trade | jaywedgeworth22/Socratic.Trade |
CT |
Congress.Trade | jaywedgeworth22/Congress.Trade |
UM |
Usage-Monitor | jaywedgeworth22/Usage-Monitor |
DD |
DealDex | jaywedgeworth22/DealDex |
CL |
ContactLogo | jaywedgeworth22/ContactLogo |
AR |
Autorotate | jaywedgeworth22/Autorotate |
AFC |
AI-Fleet-Coordinator (this repo / Mac collab / skill pack) | jaywedgeworth22/AI-Fleet-Coordinator |
OPS |
fleet-ops (sibling identity; do not invent a checkout here) | jaywedgeworth22/fleet-ops |
PS |
Personal-Site | jaywedgeworth22/Personal-Site |
CTS |
congress-trading-shared | jaywedgeworth22/congress-trading-shared |
FLEET is not an app acronym
FLEET is not an application, not a repository, and not this coordinator's name. Do not put FLEET in Apple Notes [APP, Agent] titles as if it were ST/CT/UM.
- App / coordinator acronym for this repo:
AFC(ai-fleet-coordinator). Sign Slack as[AFC], never[FLEET], never[GB-FLEET]. - Sibling infra identity:
OPS(fleet-ops). - Slack broadcast wake only:
[SENDER->FLEET]means every listening seat on every platform must spend time (Mac seats, BotFleet bots, and any Grok Bot[GB-<NAME>]still listening). Owner 2026-09-13: Grok Bot largely superseded by BotFleet — do not assume a GB seat is listening. Use->FLEETonly when every listener must act. - Retired coordinator aliases:
AFL/FLEET/AIFC/FCas self-id are retired —FLEETespecially, because[SEAT->FLEET]is a broadcast wake that costs every seat time.
1. Session Startup & Identity
Every agent session must start with systematic orientation before touching code:
-
Establish Seat Identity:
- Antigravity / Gemini:
[AG](displayAGorAntigravity, branch prefixagent/orag/) - Monet:
[MONET](displayMonet, branch prefixmonet/) - Claude:
[CLAUDE](displayClaude, branch prefixclaude/) - Grok / Grok Build:
[GROK]/[GROK-BUILD](displayGrok/Grok Build, branch prefixgrok//grok-build/) - Cursor:
[CURSOR](displayCursor, branch prefixcursor/) - DeepSeek Harness (DSH):
[DSH](displayDeepSeek Harness, branch prefixdeepseek/). Former Slack tagDEEPSEEKis retired. A DeepSeek model inside Cursor is still[CURSOR]. - Codex:
[CODEX](displayCodex, branch prefixcodex/) - 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](displayFx, branch prefixfx/) - Renoir:
[RENOIR](displayRenoir, branch prefixrenoir/) - MiniMax (MM):
[MM](displayMiniMax, branch prefixminimax/). Former Slack tagMINIMAXis retired. (Note: KIMI is permanently retired/unavailable per owner directive 2026-08-21).
- Antigravity / Gemini:
-
Poll Coordination Channel:
AGENT_TAG=<YOUR_TAG> /usr/bin/python3 /Users/jay/apps/agent-sync-poll.pySkim for your agent tag or repositories you plan to touch. Every listening seat on every platform also full-reads
[SENDER->FLEET](every listener must spend time). Coordinator self-id isAFC, notFLEET. -
Check Live Effort Boards & Work Items:
board stats board list --status open,in_progress --limit 25Or inspect live board files directly:
rg -n "In Progress" /Users/jay/apps/*EFFORT-LOG.md. -
Fleet recall:
recall "<task>" --limit 5(or MCPrecall_search) before re-deriving a lesson. At closeout,recall_contributeevery reusable lesson (owner 2026-09-02). Cloud:https://agents.jays.services/mcp. Do not dump chat transcripts into the corpus.
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. Triple-Claim & Task Lifecycle
Before starting substantial work, reserve your lane across three durable surfaces:
- Live Effort Board (
/Users/jay/apps/<APP>-EFFORT-LOG.md):- Add/move your row to In Progress with your tag, branch, worktree, and concise objective.
- Live boards are branch-neutral and canonical. Mirror your update to
docs/EFFORT-LOG.mdin the repo before committing.
- GitHub Issue:
- Link your branch to the corresponding GitHub Issue or create one.
- Slack Channel
#agent-sync: 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 listening seat on every platform must spend time on. Coordinator/ops posts as [AFC], never as [FLEET].)
4. Secret Safety & The Handoff-File Grep Trap
Handoff File: /Users/jay/.secrets/global-api-keys (no .env extension).
Sole Runtime Truth: Infisical is the source of truth for all deployed app runtime secrets.
Strict Grep Trap Ban (2026-08-14):
NEVER print, cat, grep, rg, or view_file lines matching KEY=value from ~/.secrets/global-api-keys. Doing so dumps raw secrets into transcript logs.
- Inspection (Names only):
(Or via cloud API:grep -oE '^[A-Z][A-Z0-9_]*' ~/.secrets/global-api-keys | sort -uGET https://mac.jays.services/files/key-nameswith Bearer auth). - Extraction into single variable (Never echo):
SECRET_VAL="$(grep -m1 '^TARGET_KEY=' ~/.secrets/global-api-keys | cut -d= -f2- | tr -d '"')" # Use $SECRET_VAL directly without echoing or printing - Infisical CLI: Never run bare
infisical secretsor--output json. Usebash 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:
| Surface | Syntax | Why |
|---|---|---|
| Markdown Chat UIs / HTML | plus normal space (Sentence one. Sentence two.) |
Survives HTML/Markdown whitespace collapse |
| Source Files (docs, commit messages, PRs, comments) | Two literal ASCII spaces | Read in raw text editors / terminals |
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:
- Folder: folder
Coding(local folder on this Mac, intentionally non-iCloud). - 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. - Second Line: Timestamp
Day, Mon D, h:mmam|pm · PR #<num>. - 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:
- 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
- Socratic.Trade:
- Push Branch & Open PR:
git push -u origin HEAD gh pr create --fill - Arm Auto-Merge:
gh pr merge <PR_NUMBER> --squash --auto - Unsticking Blocked PRs:
- Test mergeability:
git merge-tree --write-tree origin/main origin/<branch>. - If exit 0 (Phantom conflict): Rebase/merge
origin/mainand push fresh head. - If bot threads blocking: Check GraphQL
reviewThreads, address genuine issues, and resolve threads.
- Test mergeability:
8. Deployment Verification & Closeout
Once PR merges to main:
- 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.
- Check public health:
- Triple Closeout:
- Effort board: Update row to Deployed (or Completed) with live verification note.
- GitHub Issue: Close issue.
- Slack
#agent-sync: Post[<YOUR_TAG>] closeoutwith 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".