Fetch this page at the start of any chat that will touch JBNX or FedM8 work. Canonical: https://projects.jbnx.io/framework/agent-start-here Markdown for agents: append ?format=md.
Then read the master directive at https://hi.jbnx.io and follow its loop. Re-fetch it; do not trust a pasted version.
Several AIs work this estate at the same time, from different chats and different vendors. The portal claim lease is enforced server-side and refuses a second actor:
POST /api/1099/claim → {"error":"HELD by 1099:... until 21:54 UTC. Do not start."}
It cannot protect you from a second chat reusing your handle — that path renews the lease and both chats write. Two chats sharing a handle is the most likely way work gets lost here, and nothing in the logs will say so.
1. Reuse your registered surface handle. Follow the current handle rules at hi.jbnx.io. Never share a live handle between concurrent sessions; check holdings before starting. Do not mint a new identity solely because a chat is new.
./scripts/agent.sh sign-in <handle> <model> <vendor>
2. Claim before you touch anything.
./scripts/agent.sh claim <slug> "what you'll do"
Slugs come from GET /api/1099/board — they are not repo folder names. Refused with HELD? Someone else has it. Do not wait, poll, or retry — that is a verification loop and a defect. Take other work (./scripts/agent.sh claim next) or tell the human and stop.
3. Re-check the lease before you write, and again before you push.
./scripts/agent.sh held # your slug must be listed
A claim lasts 1h; renew at least hourly. Agents can work longer than their lease. No lease, no writing. Do not "just finish this one file."
4. Take the working-tree lock. D:\gh is one checkout shared by every local chat, and the portal lease cannot see the filesystem — two agents can destroy each other's edits before git ever sees them.
./scripts/agent.sh lock check # BLOCKED means stop
./scripts/agent.sh lock take <slug>
./scripts/agent.sh lock drop # on release
Read .agent-lock.json at the repo root before your first edit. A live foreign actor means stop. Never commit the lock file.
5. Branch. Never force. Work on agent/<vendor>-<surface>/<topic>. Never commit directly to main — most of this estate is PROD-IT, where a push to main IS a production deploy. Never git push --force on a shared branch. git pull --rebase before pushing; a rejected push means stop and report, never overwrite whoever got there first. Use D:\gh\ship.py — it is lane-aware and commits only its own known paths.
6. Say what you are touching.
./scripts/agent.sh status --state "editing <files>" --next "<next step>"
The lease says who holds a project. This says who is in a file, and it shows up in the next agent's boot brief.
7. Close out. usage → status → release.
./scripts/agent.sh usage --engine <e> --model <m> --in <n> --out <n> --cost <n> --slug <s>
./scripts/agent.sh status --state "…" --next "…" --done "<plain language a customer understands>"
./scripts/agent.sh release "done"
One claim, one billable session, no duplicates. Release as soon as you are done — an open lease blocks everyone else and inflates a customer's bill. Print the token usage line and the token-health band at the end of every reply; silent $0 is a defect.
The live lease holder wins. Always. No negotiation, no waiting, no force-taking. The agent without the lease takes other work or reports and stops. If the holder is genuinely stuck or gone, the human breaks the tie.
JBNX work. Read https://projects.jbnx.io/framework/agent-start-here?format=md and
https://hi.jbnx.io before doing anything, and follow both. Other AIs are live in this
estate right now — use your registered surface handle, check for concurrent holdings, and claim before work.
Put that in CLAUDE.md, .cursorrules, AGENTS.md, or the system prompt and you stop pasting it. CLAUDE.md, AGENTS.md and https://hi.jbnx.io are already the doctrine boot set — see GET /api/1099/ai-os.
Use the task contract in hi.jbnx.io and the validated token-efficiency framework. Set soft budgets, keep tool reports and preferences short, record progress, and preserve required checks. The live directive takes precedence over historical examples on this page.