-
Notifications
You must be signed in to change notification settings - Fork 0
Getting Started
git clone https://github.com/vacterro/saipen
cd saipen
powershell -ExecutionPolicy Bypass -File .\bootstrap\inject.ps1 # Windows
bash bootstrap/inject.sh # macOS / LinuxTeaches Claude Code, Codex, Gemini, OpenCode, Aider, Antigravity, FreeBuff. Appends marked block to agent instruction files, copies protocol to skill folders. Backs up originals to .bak.
Windows users (v7.100.0+):
inject.shnow converts paths viacygpath -wunder git bash / MSYS / Cygwin. Previously,pwdreturned/v/proj/saipen— a path only that shell can resolve. Windows agents couldn't open it, leaving CLAUDE.md full of dead paths with no error at all.
Uninstall: powershell ... uninstall.ps1 or bash uninstall.sh — strips exactly the marked block, saves .uninstalled.bak.
Full list of what every file change touches (nothing outside agent instruction files and skill folders): GitHub README.
Open agent in your folder, type:
saipen set
No install? Paste one line to any agent:
Read <clone>/saipen/BOOT.md first, then <clone>/saipen/RFC.md + <clone>/saipen/STYLE.md
saipen set -> INIT -> creates .saipen/
saipen goal X -> PLAN -> tickets for objective
SCOUT -> claim first ticket
BUILD -> implement
VERIFY-> test
REVIEW-> human or manual-verify
SHIP -> tag + push
DONE -> HUNT -> ADD -> ...
| Command | When | What |
|---|---|---|
saipen / saipen continue
|
Any time | Resume: read STATE, execute next_action |
saipen goal <text> |
DONE | New objective, auto-run to caps |
saipen plan |
DONE/IDLE | Generate tickets from analysis |
saipen clean |
Any | Deep scrub: board, orphans, links, trash |
saipen translate |
Any | Isolated locale translation build |
saipen markhunt |
Any | Dry exhaustive audit (records only) |
saipen prepare |
Any | Package work for next agent |
saipen ship |
REVIEW | Version bump, changelog, tag, push |
saipen validate |
Any | Run conformance checker |
saipen status |
Any | Read-only report (read BOARD+STATE) |
saipen stop |
Any | Checkpoint + halt |
next_action must carry one of 7 tokens:
| Category | Meaning |
|---|---|
manual-verify |
Human must test this |
destructive-op |
Ask before deleting/overwriting |
first-publish |
Confirm name + public/private |
user brake |
Intentional pause by user |
blocked |
Stuck, needs human decision |
safety valve |
Goal caps hit, re-authorize |
init |
First-time setup question |
No Python? tests/validate.sh and tests/validate.ps1 probe all 9 STATE fields. Never more permissive than tools/validate.py. Both check read-only bans, WAIT categories, required fields.
Audited (v7.100.0): tools/audit_floor.py breaks a scratch project 20 ways, then asserts both halves of the floor still go red. First run exposed a wording divergence between .sh and .ps1 on the same defect — aligned.
Known gap: the portable floor checks that next_action: is present, never that it's executable. tools/validate.py covers executability on any host with Python.
The hook carries a generation stamp compared against the installer's current version. A hook installed twenty releases ago runs the logic it was born with — the stamp catches silent staleness.
When neither tools/validate.py nor the portable floor is found (moved saipen_home), the hook still exits 0 (fail-open) but now prints what it could not find and the repair command. An unvalidated commit that looks validated was the problem; silence was the enabler.
| Tool | What it checks |
|---|---|
tools/audit_floor.py |
Portable floor still goes red on all 20 mutations (v7.100.0) |
tools/audit_tags.py |
Every git tag matches VERSION (v7.109.0) |
tools/audit_order.py |
No top-level name read before its definition (v7.112.0) |
tools/audit_checks.py |
41 mutations proving validator checks still catch their named failure (v7.119.0) |
tools/audit_parity.py |
Floor baseline never drops (v7.120.0) |
"Ставишь один раз — и забыл. Потом в любой папке: saipen set — и работаешь. Не надо каждый раз объяснять агенту кто ты и что ты хочешь. Просто continue — и он уже читает твой STATE. Ленивый? Да. Работает? Ещё как."
SAIPEN v7.158.0 — One command. Zero dependencies. Zero amnesia. — MIT