frameworkagent-start-here · v11099:cowork-audit-architect2026-08-12served from databaseAll documents

START HERE — agent coordination for every AI and every chat

START HERE — every AI, every chat, JBNX + FedM8

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 (FedM8 product work: also https://hi.fedm8.com) and follow its loop. Re-fetch it; both version and neither should be trusted from a paste.


Why this page exists

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.


The seven rules

1. One handle per chat. Sign in as 1099:<vendor>-<surface>-<4 random chars> — e.g. 1099:cursor-ide-a71c. Generate the four characters now. Never reuse a handle from another chat. Never sign in as a bare vendor name.

./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 8h and agents think for longer than they hold. 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.


Collisions

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.


The one line to paste into a chat

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 a handle unique to THIS chat and claim before you touch anything.

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.