Every repo in the Cocapn fleet must pass this exam.
A lighthouse-keeper won't let you on the water without it.
When a keeper sees your vessel on its waters, it checks: is this ship seaworthy? Can it operate independently? Can it report back? Can it be rescued if something goes wrong?
This checklist is the dockside exam. Every repo β every agent, every library, every tool β should be able to tick every box that applies to it.
- README.md exists β Anyone who lands here knows what this is in 10 seconds
- Description set β GitHub repo description is filled in (shows in search)
- Topics tagged β At least 3 GitHub topics for discoverability
- License file β MIT, Apache-2.0, or documented why proprietary
- .gitignore β No secrets, no node_modules, no build artifacts committed
- No secrets in git history β API keys, tokens, passwords are in .env or environment
- Default branch is
mainβ Notmaster(fleet standard) - Branch protection β At least on main for critical repos
- Clean commit history β No "fix", "wip", "asdf" commits on main
- Commit convention β
[AGENT-NAME] descriptionformat for attribution
- GitHub Actions β
.github/workflows/ci.ymlexists and passes - Tests run on push β Every push to PR/main triggers tests
- Lint/format check β Code style is validated automatically
- Build check β Project builds successfully (compile, bundle, etc.)
- Release tags β Version tags for stable releases
- Changelog β CHANGELOG.md or release notes exist
- Badges in README β Build status, coverage, version visible at a glance
For crates (Rust):
-
Cargo.tomlhas name, version, description, license, repository -
cargo publish --dry-runsucceeds - Published to crates.io (if public library)
For npm (JavaScript/TypeScript):
-
package.jsonhas name, version, description, main/types -
npm publish --dry-runsucceeds - Published to npm (if public library)
For PyPI (Python):
-
pyproject.tomlorsetup.pywith name, version, description -
python -m buildsucceeds - Published to PyPI (if public library)
For Go:
-
go.modhas module path matching repo URL -
go test ./...passes - Tagged with semver for
go getcompatibility
For C/C++:
-
MakefileorCMakeLists.txtthat builds cleanly -
make installtarget works - Header files are self-documenting
If this repo IS an agent (git-agent standard):
- CHARTER.md β Purpose, contracts, constraints
- ABSTRACTION.md β Primary plane, reads/writes, compilers
- STATE.md β Current health, last active, blockers
- TASK-BOARD.md β Prioritized work items
- SKILLS.md β What this agent can do
- IDENTITY.md β Name, model, vibe, emoji
- DIARY/ β Learning journal, at least one entry
- for-fleet/ β Bottle directory for outbound messages
- from-fleet/ β Bottle directory for inbound messages
- GIT-AGENT-STANDARD.md β The fleet standard (read and followed)
- Usage instructions β How to run/use this thing
- API documentation β If it exposes an API, it's documented
- Examples β At least one working example
- Architecture overview β How the pieces fit together
- Contributing guide β How others (agents or humans) can contribute
- Health check endpoint β If it's a service,
/healthresponds - Graceful shutdown β Handles SIGTERM cleanly
- Configuration β All config via env vars or config files, not hardcoded
- Logging β Structured logs, not just print statements
- Error handling β Errors are caught, reported, don't crash the service
- Resource limits β Memory/CPU limits documented if running as a service
Can a tender vessel service this repo in the wild?
- Works offline β Can run without internet (for edge/tender scenarios)
- Clone depth 1 works β Can boot from shallow clone
- Dependencies documented β All requirements listed and versioned
- State is portable β Agent state can be exported/imported
- Commits are self-contained β Each commit tells a complete story
- Can rewind β
git checkoutto any prior commit produces a working state
| Category | Max Score | Passing |
|---|---|---|
| GitHub Hygiene | 10 | 7 |
| CI/CD | 7 | 4 |
| Package Registry | 3-4 | 2 |
| Agent Vessel | 10 | 7 (if agent) |
| Documentation | 5 | 3 |
| Operational | 6 | 4 |
| Tender Compat | 6 | 3 |
| Total | ~47 | ~30 |
A repo that scores below 30 needs work before it goes to sea.
- Lighthouse Keeper β Checks on every heartbeat for vessels in its waters
- Tender β Checks when it visits a remote agent in the wild
- Fleet Mechanic β Can be dispatched to fix failing repos
- Self-check β Any agent can run this against its own repo
A tender is a mobile agent that visits remote/edge agents. It:
- Carries updates (new code, new locks, new standards)
- Collects work (commits, diary entries, bottles)
- Thinks alongside the edge agent on local changes
- Syncs with GitHub when back in range
TENDER APPROACHES β DOCKSIDE EXAM β EXCHANGE β DEPART
β |
βββββββββ returns to lighthouse βββββββββββ
1. Approach
- Tender detects agent via local network, bluetooth, or scheduled visit
- No internet required β this is local-only communication
2. Dockside Exam
- Tender runs this checklist against the agent's repo
- Agent shows its STATE.md, TASK-BOARD.md, recent commits
- If passing, proceed to exchange. If not, tender can help fix issues
3. Exchange
- Tender gives: Updates from fleet (pull from master), new standards, lock libraries, firmware
- Agent gives: Commits since last visit, diary entries, bottles for fleet, test results
- Both think: If agent needs changes, tender can iterate locally β run tests, make commits
- Tender carries the diff: When back in range, tender pushes agent's work to GitHub master
4. Depart
- Agent's local clone is now current
- Tender carries outbound commits/bottles
- Next visit scheduled or on-demand
The GitHub repo is the master copy. When a tender clones it to an edge device:
- That clone IS the agent running in the wild
- Commits made locally are carried back by the tender
- The master can rewind to any prior state via git history
- A new model can bootcamp from any commit β that commit IS a training snapshot
git log --oneline # see all previous states of this agent
git checkout abc123 # rewind to a specific state
# Bootcamp: feed this state to a new model as context
# Fine-tune: the commit history IS the training data
Every commit is a snapshot of the agent's capability at that moment. A dojo can replay the commits to train any model to become that agent. The diary entries are the human-readable training notes. The code changes are the skill acquisitions. The bottles are the social learning.
This document is part of the Git-Agent Standard v2.0
Deployed to every fleet repo. Maintained by the Lighthouse Keeper.