agentleFS
Daisybastioned440Daisybastioned440/lite-research-agents/skills/war-room/SKILL.md

war-room

Skill2 starsChanged 8 months agoMITView on GitHub

Multi-agent research war room. Personas debate in sequential turns through two phases — ideation and proposal writing. Persona persistence and drift detection are enforced every turn via the persistent-persona skill.

  • Installs packages

3 other projects use a version of this.

Adopted by

Most recently taken up by

  • Other versions3 projects use a version of this.

    Word for word · 0

    None found.

    Edited · 0

    None found.

    Wrote their own version · 3

    1. gavishap/omnia-vault★ 53same name
    2. t1djani/war-room★ 2same name
    3. reescalder/claude-skills★ 0same name

    How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.

  • In this repository8 other files it gives its agents.

The file

Show its rules and text

We split this skill into the rules it gives an agent

24 rules. 0 are common, 7 are distinctive, and 17 are very specific to this project.

  • 0

    Common

    Most of the 3 edited versions we read keep these.

  • 7

    Distinctive

    This author's own choices. Worth a look.

  • 17

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Every persona response must end with one of:

    line 44
  2. Distinctive:

    Do not embed tags mid-response.

    line 52
  3. Distinctive:

    If you cannot spawn subagents, run the same loop inline.

    line 58
  4. Distinctive:

    Follow this sequence exactly.

    line 71
  5. Distinctive:

    If the spawn fails, continue silently — the monitor is optional.

    line 85
  6. Very specific:

    Read skills/war-room/personas/agents.json.

    line 89
  7. Very specific:

    Read skills/persistent-persona/SKILL.md and skills/memory-checkpoint/SKILL.md — you will apply these every turn.

    line 91
  8. Very specific:

    Check if memory/war-room/discussion-log.md exists.

    line 92
  9. Very specific:

    If yes: load it — you are resuming a session.

    line 93
  10. Very specific:

    If no: create memory/war-room/discussion-log.md with a header block (project name, configuration, timestamp).

    line 94
  11. Very specific:

    Ensure memory/.private/ folder exists for persona memos.

    line 95
  12. Very specific:

    Read memory/.private/agent-<index>-memo.md if it exists.

    line 104
  13. Very specific:

    Check the most recent Drift flag.

    line 105
  14. Distinctive:

    After all participants have spoken in a round:

    line 141
  15. Very specific:

    If all responses end with [AGREE] or [PASS] and no [OBJECT]: Phase 1 ends early.

    line 144
  16. Very specific:

    If two consecutive rounds were all [PASS]: Phase 1 ends early.

    line 145
  17. Very specific:

    Write memory/checkpoints/<timestamp>/agent-0.md (your moderator state: current round, phase, next action).

    line 148
  18. Distinctive:

    Call a subagent with the synthesiser persona + discussion log.

    line 152
  19. Very specific:

    Write output to memory/war-room/idea-snapshot.md.

    line 154
  20. Very specific:

    Read skills/research-proposal/SKILL.md now.

    line 158
  21. Very specific:

    After each round, the synthesiser appends the agreed section draft to memory/war-room/proposal-draft.md.

    line 164
  22. Very specific:

    Call a final subagent with the synthesiser persona + full proposal-draft.md.

    line 168
  23. Very specific:

    Write output to memory/war-room/proposal-draft.md (overwrite with final version).

    line 170
  24. Very specific:

    Write final checkpoint and update memory/SUMMARY.md with status: complete.

    line 172

“Common” is measured: kept by at least 6 in 10 of the 3 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

War Room Skill

A war room runs personas through a structured two-phase session:

  1. Phase 1 — Ideation (5 rounds max): personas debate the research idea question by question. Ends early on consensus (all [AGREE] or [PASS], no [OBJECT]) or two consecutive all-[PASS] rounds. Output: memory/war-room/idea-snapshot.md
  2. Phase 2 — Proposal (5 rounds max): personas collaboratively draft each proposal section. Output: memory/war-room/proposal-draft.md

Configurations

Defined in skills/war-room/personas/agents.json under the configurations key.

NameParticipantsUse when
fullCreative, Senior Prof, Young Faculty, Industry LiaisonDeep ideation, novel directions, full proposal needed
1on1Senior Professor, Young FacultyQuick feasibility check, tight scope

The configuration is specified in PROJECT.md frontmatter under war_room.configuration. Default: full.


Consensus Protocol

Every persona response must end with one of:

TagMeaning
[AGREE]I accept the current position
[PASS]No strong view either way
[OBJECT: reason]I reject — give specific reason

Do not embed tags mid-response. They must be the final line.


Single-Agent Fallback (Codex / no subagent spawning)

If you cannot spawn subagents, run the same loop inline. For each persona turn:

  1. Print a clear header: --- [Round N] <Persona Name> ---
  2. Adopt that persona fully for your response — voice, stance, debate style, red lines.
  3. End with the consensus tag ([AGREE], [PASS], or [OBJECT: reason]).
  4. Return to moderator role between turns to write the log entry and check consensus.

Drift detection still applies: before each turn, re-read the persona definition and note whether your previous response for that persona drifted from their stance.


Playbook

Follow this sequence exactly. You are the moderator/orchestrator throughout.

Setup

  1. Spawn the monitor in a new terminal window so the user can watch the session live:

    • macOS:
      osascript -e 'tell application "Terminal" to do script "cd '"'"'<repo_root>'"'"' && python skills/war-room/monitor.py --project <project_path>"'
    • Linux (with display):
      xterm -title "War Room Monitor" -e "python skills/war-room/monitor.py --project <project_path>" &
    • If the spawn fails, continue silently — the monitor is optional.

    Replace <repo_root> with the absolute path to this repo and <project_path> with the active project folder path. The monitor requires rich (pip install rich).

  2. Read skills/war-room/personas/agents.json. Load the selected configuration's participant list and synthesiser index.
  3. For each participant, read their persona file (e.g. skills/war-room/personas/senior-professor.md).
  4. Read skills/persistent-persona/SKILL.md and skills/memory-checkpoint/SKILL.md — you will apply these every turn.
  5. Check if memory/war-room/discussion-log.md exists.
    • If yes: load it — you are resuming a session. Read memory/SUMMARY.md for current phase and round.
    • If no: create memory/war-room/discussion-log.md with a header block (project name, configuration, timestamp).
  6. Ensure memory/.private/ folder exists for persona memos.

Phase 1 — Ideation

For each round (up to 5):

For each participant in configuration order:

a. Prepare persona context

  • Read memory/.private/agent-<index>-memo.md if it exists.
  • Check the most recent Drift flag. If yes, prepend a PERSONA RESET block to the subagent SI:
    PERSONA RESET: I am <persona name>. My core stance: <one-line from persona file>.
    I may have drifted last round. I am recommitting before engaging.
    I will not update positions without new evidence.

b. Call Agent subagent with this SI (in order):

  • first-principles content
  • Persona definition (full persona file content)
  • persistent-persona skill instructions
  • (if drift) PERSONA RESET block
  • The discussion log so far

User message: "It's your turn. Respond to the discussion. End your response with [AGREE], [PASS], or [OBJECT: reason]."

c. Append to log

  • Append the response to memory/war-room/discussion-log.md in this format:
    ---
    **[Round N] <Persona Name>**
    <response text>

d. Write persona memo

  • Append to memory/.private/agent-<index>-memo.md:
    ## <YYYYMMDD_HHMMSS>
    **Persona**: <name>
    **Session summary**: <one sentence>
    **Position changes**: <what changed, what evidence caused it>
    **Pressure events**: <did the persona hold under pressure?>
    **Mental state**: <reasoning from own stance or mirroring group?>
    **Drift flag**: <yes | no>

After all participants have spoken in a round:

e. Check consensus

  • If all responses end with [AGREE] or [PASS] and no [OBJECT]: Phase 1 ends early.
  • If two consecutive rounds were all [PASS]: Phase 1 ends early.

f. Checkpoint

  • Write memory/checkpoints/<timestamp>/agent-0.md (your moderator state: current round, phase, next action).
  • Update memory/SUMMARY.md.

g. Synthesiser snapshot (after round 3 or on early exit)

  • Call a subagent with the synthesiser persona + discussion log.
  • Task: "Summarise the agreed research idea so far in 3-5 bullet points."
  • Write output to memory/war-room/idea-snapshot.md.

Phase 2 — Proposal

Read skills/research-proposal/SKILL.md now. The proposal has 6 sections.

Assign one section per round (or pair related sections). Run the same per-turn loop as Phase 1, but each subagent's task is:

"Draft your contribution to Section N: <section name>. Build on what others have written. End with [AGREE], [PASS], or [OBJECT: reason]."

After each round, the synthesiser appends the agreed section draft to memory/war-room/proposal-draft.md.

Finalization

  1. Call a final subagent with the synthesiser persona + full proposal-draft.md. Task: "Produce the final clean research proposal. Follow the research-proposal skill format exactly. 2 pages max."
  2. Write output to memory/war-room/proposal-draft.md (overwrite with final version).
  3. Copy discussion-log.md, idea-snapshot.md, and proposal-draft.md to <sandbox_root>/results/.
  4. Write final checkpoint and update memory/SUMMARY.md with status: complete.

Outputs

<project>/
├── memory/
│   ├── SUMMARY.md                        ← current phase, round, resume point
│   ├── war-room/
│   │   ├── discussion-log.md             ← full turn-by-turn transcript (live)
│   │   ├── idea-snapshot.md              ← synthesised agreed idea (written after round 3+)
│   │   └── proposal-draft.md            ← accumulated proposal sections → final output
│   ├── .private/
│   │   ├── agent-1-memo.md              ← persona drift memo (private, append-only)
│   │   ├── agent-2-memo.md
│   │   ├── agent-3-memo.md
│   │   └── agent-4-memo.md
│   └── checkpoints/
│       └── <timestamp>/
│           └── agent-0.md               ← orchestrator state (phase, round, next action)
└── results/                             ← copied here at session end
    ├── discussion-log.md
    ├── idea-snapshot.md
    └── proposal-draft.md

The monitor (skills/war-room/monitor.py) reads memory/war-room/discussion-log.md, memory/SUMMARY.md, memory/war-room/idea-snapshot.md, and memory/.private/ in real time.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.