The Problem

Agents without structure

Free-form sessions. Re-explaining context every time. No idea what each agent did or didn't do.

Non-determinism compounds

The more agents, the more drift. Mistakes are silent. Babysitting required.

Skills don't scale

LLMs follow ~150-200 instructions. Claude Code already uses ~50. Every rule competes for attention. Lost in the Middle โ€” context position matters.

๐Ÿค– ๐Ÿค– ๐Ÿค–

5-6 agents running simultaneously

each needs full context from scratch

each can silently go off-track


Brain Fry

The Harness

Issue Viewer = web app + issue-cli. Issues are markdown files. Agents are first-class citizens.

Web App

Kanban board, issue detail, workflow designer. Human approvals, agent dispatch โ€” one click to spin up Claude or Codex.

issue-cli

Agent-first CLI. Agents use it instead of touching files directly. Every output contains next steps.

workflow.yaml

Per-project rules: statuses, transitions, validations, prompts, subsystem overlays. Fully configurable.

$ issue-cli next --version 0.1 โ†’ pathfinding.md [backlog ยท high] $ issue-cli start pathfinding โœ“ claimed ยท status โ†’ in progress Next: implement, check off items Then: issue-cli transition pathfinding $ issue-cli done pathfinding โœ— unchecked items remain: [ ] add unit tests $ issue-cli check pathfinding "add unit tests" โœ“ checked off $ issue-cli done pathfinding โœ“ done ยท assignee cleared

JIRA + CMT but for agents

Composed, Just-in-Time Prompt

Every agent dispatch assembles a fresh, precise context from its parts.

Base Prompt
who, rules, tooling
+
Status Prompt
what to do now
+
Subsystem Overlay
domain expertise
+
Inject Prompt
extra actions
+
Issue Content
the actual task
โ†“
Composed Context
Precise ยท minimal ยท assembled at dispatch time
Agent knows exactly what to do, in this project, at this status, for this issue.

No re-explaining. No guessing. No babysitting.

Example

How It Actually Works

๐Ÿ‘ค 1. Human
clicks dispatch in web UI
โ†“
โš™๏ธ 2. tmux session
claude / codex launched in alacritty
โ†“
โš™๏ธ 3. Composed prompt
base + status + subsystem + issue
โ†“
๐Ÿค– 4. issue-cli start
claims issue, status โ†’ in progress
loop
๐Ÿค– 5. Agent works
implements, checks off items
โ†“
๐Ÿค– 6. issue-cli transition
attempts to advance status
โ†“
โš™๏ธ 7. Validation
blocked โ†’ error returned โ†’ self-correct โ†’ retry
โ†“
๐Ÿ‘ค 8. Human approval gate
hard stop โ€” human reviews & approves
โ†“
โœ… 9. Done
assignee cleared ยท retro filed

Control + Feedback Loop

Validations

Block transitions when agent misses something. CLI returns a clear error โ€” agent self-corrects and retries. No human needed.

Human Approval Gates

Hard stops at backlog and human-testing. Catches non-deterministic drift before it compounds.

Retros & Bug Reports

issue-cli retrospective ยท issue-cli report-bug
Agent files its own feedback. Bot reviews it. Workflow improves.

๐Ÿค– agent works
โ†“
๐Ÿ› ๐Ÿ““ files bugs & retros
โ†“
๐Ÿค– bot reviews
โ†“
โš™๏ธ workflow improves
โ†“
๐Ÿค– agent improves

Control Feedback Examples

Agent receives structured validation errors and self-corrects:

$ issue-cli transition pathfinding done โœ— transition blocked rule: section_checkboxes_checked: Testing unchecked items in Testing: [ ] All relevant automated tests passing [ ] Test results logged with "tests:" prefix $ issue-cli comment pathfinding \ "tests: all passing, 42 assertions" โœ“ comment added $ issue-cli check pathfinding \ "All relevant automated tests passing" โœ“ checked off $ issue-cli transition pathfinding done โœ“ transitioned โ†’ done