Skip to content

War Room Schema

A war-room is an isolated execution environment for a single epic or task. Each room is a directory under .agents/war-rooms/ containing structured files that track state, communication, and artifacts.

Directory Layout

.agents/war-rooms/room-001/
├── config.json # Room configuration
├── lifecycle.json # State machine definition
├── brief.md # Assignment description
├── channel.jsonl # Communication log
├── status # Current state (single line)
├── state_changed_at # ISO timestamp of last transition
├── retries # Current retry count (integer)
├── task-ref # Task reference (e.g., EPIC-001)
├── audit.log # Audit trail
├── progress.json # Progress snapshot
├── TASKS.md # Sub-task checklist
├── artifacts/ # Output files
│ └── ...
├── skills/ # Room-local skill overrides
│ └── ...
└── memory/ # Room-local memory entries
└── ...

config.json Schema

{
"room_id": "room-001",
"task_ref": "EPIC-001",
"plan_id": "bc0a7c93bcbf",
"depends_on": ["PLAN-REVIEW"],
"created_at": "2026-04-03T11:04:01Z",
"working_dir": "/path/to/project",
"assignment": {
"title": "Build the grid system",
"description": "Full epic description...",
"assigned_role": "game-engineer",
"candidate_roles": ["game-engineer", "game-qa"],
"type": "epic"
},
"goals": {
"definition_of_done": [],
"acceptance_criteria": [],
"quality_requirements": {
"test_coverage_min": 80,
"lint_clean": true,
"security_scan_pass": true
}
},
"constraints": {
"max_retries": 3,
"timeout_seconds": 900,
"budget_tokens_max": 500000
},
"status": {
"current": "developing",
"retries": 0,
"started_at": "2026-04-03T11:04:01Z",
"last_state_change": "2026-04-03T11:04:01Z"
},
"skill_refs": [
"detect-ui",
"unity-dev-principles",
"create-lifecycle"
]
}

Top-Level Fields

FieldTypeDescription
room_idstringUnique room identifier (room-NNN)
task_refstringEpic or task reference (EPIC-NNN)
plan_idstringHash linking to the source plan
depends_onstring[]Task refs this room depends on
created_atstringISO 8601 creation timestamp
working_dirstringAbsolute path to working directory

Assignment Block

FieldTypeDescription
titlestringShort assignment title
descriptionstringFull assignment description
assigned_rolestringPrimary role for this room
candidate_rolesstring[]All roles involved in the lifecycle
typestring"epic", "task", or "review"

Goals Block

FieldTypeDescription
definition_of_donestring[]Checklist items for completion
acceptance_criteriastring[]Testable acceptance criteria
quality_requirementsobjectMinimum quality thresholds

Constraints Block

FieldTypeDescription
max_retriesintMax retries before failed-final
timeout_secondsintMax time for any single agent run
budget_tokens_maxintToken budget cap

Status Block

FieldTypeDescription
currentstringCurrent lifecycle state
retriesintNumber of retries consumed
started_atstringWhen work began
last_state_changestringLast state transition timestamp

File-Level State

Some state is stored as plain files for easy shell access:

FileContentExample
statusCurrent state namedeveloping
state_changed_atISO timestamp2026-04-03T11:04:01Z
retriesInteger count1
task-refTask referenceEPIC-001

brief.md

Contains the assignment description in markdown. This is injected into the agent’s prompt as the task context. It is generated from the plan’s epic description.

progress.json

Written by agents to report progress:

{
"percent": 75,
"message": "Implemented 3 of 4 tasks",
"updated_at": "2026-04-03T11:19:34Z"
}

TASKS.md

A checklist of sub-tasks within the epic:

- [x] TASK-001 — Grid dot rendering
- [x] TASK-002 — Coordinate mapping
- [ ] TASK-003 — Content rect calculation

audit.log

Append-only log of all state transitions, agent invocations, and system events. Used for debugging and compliance.