agentleFS
Simple-With-UsSimple-With-Us/BotFleet/.claude/skills/land-lane/SKILL.md

land-lane

Skill4 starsChanged 13 days agoApache-2.0View on GitHub

Land a Monet feature branch to main across the fleet — seat worktree, docs, verification gate, PR, auto-merge, then closeout. Use when finishing a unit, opening a PR, merging, or when the owner says land/ship/commit/push. Never wait for the owner to ask. Covers apps with and without scripts/land.sh.

  • Reads credentials
  • Commits and pushes

1 other project uses a version of this.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

4 rules. About 0 are common, 1 is distinctive, and 3 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈1

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 3

    Very specific

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

  • Common
  • Distinctive
  • Very specific
  • could be automatic: a setting could enforce it
  1. Distinctive:

    Always-commit is standing policy.

    line 15
  2. Very specific:

    If it dies on missing workflow OAuth scope (branch touched .github/workflows/*):

    line 54
  3. Very specific:

    If the box is gating several lanes, post [$AGENT_SEAT] gating now with repo: (not ->FLEET unless every Grok Bot seat must spend time).

    line 94
  4. Very specific:

    Deployed: only after the app's production target is verified (deploy-verify).

    line 99

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

Land a feature branch (MONET)

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 Slack or 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.

Always-commit is standing policy. After each coherent finished unit: commit → push → PR → merge when CI is green. A remote branch with no PR is unfinished. Pause only for force-push, prod data wipe, or live-key revoke.

Seat: $AGENT_SEAT. Branch: <monet|claude|renoir>/<slug>. Never land from ~/Code/<repo> or from branch main.

Preconditions

  1. You are in your Monet worktree (~/apps/<prefix>-monet or ~/apps/<prefix>-monet-<lane>). See session-start.
  2. git status is clean except .env.local / .dev.vars (never commit those).
  3. git config user.email is 12656028+jaywedgeworth22@users.noreply.github.com.
git config user.email "12656028+jaywedgeworth22@users.noreply.github.com"

Docs before the PR

  1. Linear issue In Progress (board claim / board comment) and STATUS.md with honest status. Effort logs are archived — do not edit docs/EFFORT-LOG.md or live ~/apps/*-EFFORT-LOG.md.
  2. STATUS.md stanza: what landed, next action.
  3. docs/rollouts/YYYY-MM-DD-slug.md — summary, why, files, verification commands actually run, follow-ups.
  4. Substantial owner-facing work: living Apple Note via the apple-notes skill, title [APP, Monet] ….

Prose:  commit bodies, rollout docs, Notes source, PR titles, bodies and comments, and chat replies to the owner all take a real U+00A0 plus a normal space between sentences (owner ruling 2026-10-23; convert with the perl recipe in sentence-gap).  The one exception: the chat panes of Claude Code (the Code tab) and MiniMax Code (the MiniMax Code pane) take the &nbsp; entity plus a normal space.  See owner-copy.

Gate

Socratic.Trade — scripts/land.sh

Homebrew default node may be v26. ST better-sqlite3 is Node 24 (MODULE_VERSION 137). Confirm node --version is v24.x:

export PATH=/opt/homebrew/opt/node@24/bin:$PATH
node --version
PATH=/opt/homebrew/opt/node@24/bin:$PATH bash scripts/land.sh

The script (idempotent) refuses the integration worktree and branch main, refuses a dirty tree, fetches, refuses auto-merge on stale file overlap with origin/main, merges origin/main, runs npx tsc --noEmit → npm test → npm run build, pushes, opens a PR.

ST land.sh may still mention a retired path (~/Code/Agentic Trading). The binding keepout is any ~/Code/<repo> checkout.

If it dies on missing workflow OAuth scope (branch touched .github/workflows/*):

gh auth refresh -h github.com -s workflow
bash scripts/land.sh

ai-fleet-coordinator also has a land.sh — do not run it. It is an ST clone (Node 24 + tsc/test/build) and this repo has no package.json. Docs-only: commit, push, gh pr create.

Other apps — merge main, run that repo's verify, then PR

git fetch origin
git merge origin/main --no-edit
# then the gate below — do not invent npm test
git push -u origin HEAD
gh pr create --fill
AppVerify (from current AGENTS.md / ci.yml)
CTcd app && npm run typecheck && npm test (Deno). CI job typecheck + test.
UMnpm run verify (eslint, tsc, vitest, build). Node from .node-version (24).
CTSnpm run typecheck && npm test && npm run build (plus lint:package / pack:dry if you cut a release). CI Node 20, job verify.
DealDexnpm run lint && npm run typecheck && npm test && npm run build. CI Node 22, job verify. Do not use dealdex.vercel.app (different site).
Personal-SiteCI verify is file-existence + About-copy grep. site/ is the TanStack Start source (README). AGENTS.md may still say "static snapshot" — believe README + the tree. Preserve Earlier work included and the Doximity /profiles/…/view URL or the daily mirror reverts them.
AFLNo app test gate. python3 scripts/check-fleet-registry.py if you touched registries.

CTS "prod" is an annotated tag vX.Y.Z after merge — announce on #Work-In-Progress then tag. Consumers pin the exact tag.

STATUS.md / PLAN.md often carry merge=union in .gitattributes. Additive prose usually combines. Effort logs are archived — do not resurrect docs/EFFORT-LOG.md edits during a merge. Up to 3 land attempts are fine.

Arm auto-merge

gh pr merge <N> --squash --auto

Not --admin. Branch protection is enforce_admins: true plus conversation resolution. Unresolved review threads block forever. Use codex-triage / unstick-pr.

If the box is gating several lanes, post [$AGENT_SEAT] gating now with repo: (not ->FLEET unless every Grok Bot seat must spend time). Coordinator/ops self-id is AFL.

After merge

  • Board row: Completed means merged to main, not "PR opened."
  • Deployed only after the app's production target is verified (deploy-verify).
  • Merge to main auto-deploys ST / CT / UM on Coolify and DealDex on Vercel. Do not double-trigger. Personal-Site live origin is Vercel behind Cloudflare and is not "merge = live" — do not mint a second Vercel project.
  • Closeout: closeout skill.

Do not

  • LAND_SKIP_VERIFY / LAND_FORCE_PUSH as an agent. Humans only.
  • Force-push shared history.
  • Park a finished green PR "just in case."
  • Claim Completed while threads are unresolved.

Canon

  • /Users/jay/apps/FLEET-PROTOCOL.md — Always commit + land; merge requirements; branch/worktree naming
  • App AGENTS.md Pre-Commit / Handoff + Verify before claiming done
  • scripts/land.sh when present
  • Skills: session-start, unstick-pr, codex-triage, deploy-verify, closeout, owner-copy

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.