Skip to content

SubSaipen

VAC34 edited this page Jul 27, 2026 · 12 revisions

SubSaipen (Sub-Agents)

Delegatable read-only agent roles for parallel work. Any sai* bare word auto-spawns sub-agent with full read-only isolation.

How it works

  1. Auto-spawn: Type sai* name (e.g. saihunt). Not exist → created automatically.
  2. Read-only: Read project files. MUST NOT write main tree. Findings → own kitchen/OUTBOX.md.
  3. Isolation: Each subSaipen has own STATE.md, BOARD.md, LOG.md, kitchen/ at .saipen/extensions/subs/<name>/.
  4. Collection: Main agent runs collect → reads OUTBOXes → acts on findings.
  5. Crew mode: 3 subSaipen run simultaneously in split-window layout.

Shipped subSaipen


saiwiki

Role: Wiki + content maintenance.

Workflow:

  • Adopt → read top TODO on board
  • Draft wiki pages from main project (read-only)
  • Write page-ready content to kitchen/OUTBOX.md
  • Never writes main tree

Shipped: WIKI-001 (locale audit), WIKI-002 (badge-drift maintenance), WIKI-003 (wiki injection)

DED: Wiki outdated? Docs wrong? Grandpa yells "READ THE WIKI". Wiki lies. saiwiki fixes. Grandpa stops yelling.


saihunt

Role: Autonomous bug/code-quality sweep runner.

Workflow:

  • Adopt → read top HUNT ticket on board
  • Run 6-category sweep against HEAD
  • Write findings to kitchen/OUTBOX.md with severity (critical: true|false)
  • Never writes main tree

6 categories:

  1. Failing tests
  2. Unverified commits in LOG
  3. Stale TODO/FIXME/HACK markers
  4. Silent failures (empty catches, ignored returns)
  5. Symmetry gaps (missing counterpart)
  6. Dead code + orphans

Auto-cleanup: Up to 5 "obvious junk" files per sweep auto-deleted (no ticket).

DED: Manual bug hunt. Grandpa clicks around. Misses half. saihunt runs 6 categories. No mercy. Bugs found. Grandpa retires.


saitranslate

Role: Translation locale structure validation + maintenance.

Workflow:

  • Adopt → validate translation kitchen structure
  • Check 32 locales have 5 required files, valid UTF-8
  • Verify version badges match current VERSION
  • Report drift to kitchen/OUTBOX.md
  • Never writes main tree

Coverage: 32 locales 🌍 — 🇬🇧 EN, 🇷🇺 RU, 🇪🇪 ET, 🫡 ДED, 🇯🇵 JA, 🇺🇦 UK, 🇩🇪 DE, 🇫🇷 FR, 🇪🇸 ES, 🇮🇹 IT, 🇵🇹 PT, 🇳🇱 NL, 🇵🇱 PL, 🇸🇪 SV, 🇩🇰 DA, 🇫🇮 FI, 🇳🇴 NO, 🇨🇳 ZH, 🇰🇷 KO, 🇹🇭 TH, 🇻🇳 VI, 🌍 AR, 🇮🇱 HE, 🇹🇷 TR, 🇮🇳 HI, 🇮🇩 ID, 🇬🇷 EL, 🇨🇿 CS, 🇷🇴 RO, 🇭🇺 HU, 🇧🇬 BG, 🇸🇰 SK, 🇭🇷 HR. 5 files per locale (README, SECURITY, CONTRIBUTING, SPEC, CODE_OF_CONDUCT)

DED: Grandpa wants French. Agent gives "oui oui baguette". 32 locales? "Not my job". saitranslate validates all. Grandpa impressed.


saipython

Role: Python-specific code analysis + maintenance.

Workflow:

  • Adopt → read top TODO on board
  • Analyze Python code: type hints, imports, patterns
  • Write analysis to kitchen/OUTBOX.md

Shipped: pen/ scratch dir in kitchen for Python scratch work.

DED: Python code messy. Grandpa sees type hints missing. "Amateur hour". saipython analyzes. Grandpa nods.


Creating new subSaipen

Spawn:

saipen sub spawn <name>

Or auto-spawn by typing bare sai* name. Gets TEMPLATE-based STATE.md, empty BOARD/LOG, kitchen/.

.saipen/extensions/subs/<name>/
    STATE.md     # phase, task, next_action, mode: read-only
    BOARD.md     # ticket tracking
    LOG.md       # events
    kitchen/OUTBOX.md  # findings

Shared infrastructure

  • _shared/inbox.md — cross-subSaipen message board
  • MANIFEST.md — registry of all spawned subSaipen with activity timestamps
  • PROTOCOL.md — formal subSaipen protocol (read-only, adoption, collection rules)
  • crew.md — crew mode protocol for 3 concurrent subSaipen
  • TEMPLATE/ — blank templates for saipen sub spawn

Collection

Main agent collects subSaipen output:

collect

Reads all OUTBOX.md files, acts on findings, marks collected. Findings range info-level (structure OK) to critical (security bug).

Clone this wiki locally