← Back to Skills Marketplace
frankaging

auto-research-proposal

by Zhengxuan Wu · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ⚠ suspicious
91
Downloads
0
Stars
0
Active Installs
1
Versions
Install in OpenClaw
/install auto-research-proposal
Description
Multi-agent research war room. Personas debate in sequential turns through two phases — ideation and proposal writing. Persona persistence and drift detectio...
README (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.

Name Participants Use when
full Creative, Senior Prof, Young Faculty, Industry Liaison Deep ideation, novel directions, full proposal needed
1on1 Senior Professor, Young Faculty Quick 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:

Tag Meaning
[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] \x3CPersona 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 '"'"'\x3Crepo_root>'"'"' && python skills/war-room/monitor.py --project \x3Cproject_path>"'
      
    • Linux (with display):
      xterm -title "War Room Monitor" -e "python skills/war-room/monitor.py --project \x3Cproject_path>" &
      
    • If the spawn fails, continue silently — the monitor is optional.

    Replace \x3Crepo_root> with the absolute path to this repo and \x3Cproject_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-\x3Cindex>-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 \x3Cpersona name>. My core stance: \x3Cone-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] \x3CPersona Name>**
    \x3Cresponse text>
    

d. Write persona memo

  • Append to memory/.private/agent-\x3Cindex>-memo.md:
    ## \x3CYYYYMMDD_HHMMSS>
    **Persona**: \x3Cname>
    **Session summary**: \x3Cone sentence>
    **Position changes**: \x3Cwhat changed, what evidence caused it>
    **Pressure events**: \x3Cdid the persona hold under pressure?>
    **Mental state**: \x3Creasoning from own stance or mirroring group?>
    **Drift flag**: \x3Cyes | 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/\x3Ctimestamp>/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: \x3Csection 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 \x3Csandbox_root>/results/.
  4. Write final checkpoint and update memory/SUMMARY.md with status: complete.

Outputs

\x3Cproject>/
├── 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/
│       └── \x3Ctimestamp>/
│           └── 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.

Usage Guidance
This skill appears internally consistent with its purpose, but check the following before installing: 1) It will read and write files under your project (memory/, memory/.private/, and discussion logs); avoid running it in projects with secrets or sensitive data. 2) It includes instructions to spawn a local terminal and run monitor.py (uses osascript/xterm) — this is optional and may fail on headless systems. monitor.py requires the Python package 'rich' (pip install rich). 3) The orchestrator reads other skills' SKILL.md (persistent-persona, memory-checkpoint, arxiv-watcher, etc.) and injects their content into subagent prompts — review those dependent skills to ensure they don't introduce unwanted behavior or remote endpoints. 4) No network endpoints, credentials, or installers are required by this skill itself, but be cautious if you later enable remote or networked subagents. If you want extra assurance, review the other skills listed under depends_on and the project memory contents the skill will access.
Capability Analysis
Type: OpenClaw Skill Name: auto-research-proposal Version: 1.0.0 The skill instructions in SKILL.md direct the agent to execute shell commands (using osascript on macOS or xterm on Linux) to launch a monitoring script (monitor.py). While this behavior is aligned with the stated purpose of providing a live TUI for the research debate, the use of shell execution to spawn external processes is a high-risk capability. The monitor.py script itself is benign and uses the 'rich' library for visualization, but the reliance on the agent to construct and run shell commands involving file paths introduces a potential risk of command injection or unauthorized execution.
Capability Assessment
Purpose & Capability
Name/description (multi‑agent research war room) matches the actual artifacts: persona files, an orchestration SKILL.md, and a local monitor script. Declared dependencies (other research-related skills) are coherent with the orchestration role. No unrelated credentials, binaries, or config paths are requested.
Instruction Scope
The runtime instructions read persona files, other skills' SKILL.md (persistent-persona, memory-checkpoint, etc.), and project memory files; they create/write discussion logs, checkpoint files, and per-agent memos under memory/.private. This is expected for an orchestrator but means the skill will access and persist local project data. It also optionally spawns a terminal and launches monitor.py (OS-specific commands shown). The spawn is optional and the monitor runs locally; however, review of the monitored project contents and the other skills it pulls in is recommended because those SKILLs' instructions will be included in subagent prompts.
Install Mechanism
No install spec is provided (instruction-only plus a local monitor.py). monitor.py requires the 'rich' Python package but the SKILL.md does not auto-install it; the monitor will exit if 'rich' is missing. No downloads from external URLs or package installs are automated by the skill itself.
Credentials
The skill requests no environment variables, credentials, or config paths. All file accesses are within the project memory and skills folder, which aligns with the orchestrator purpose.
Persistence & Privilege
always:false and no indication of modifying other skills' configurations or system‑wide settings. The skill writes its own memory files under the project's memory/ and memory/.private/ directories (expected for session persistence).
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install auto-research-proposal
  3. After installation, invoke the skill by name or use /auto-research-proposal
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.0
- Introduced "war-room": a multi-agent research debate and proposal-writing environment enforcing persona persistence and drift detection. - Two-phase protocol: ideation (structured debate with consensus rules) and collaborative research proposal drafting. - Supports dynamic team configurations (full or 1-on-1) with persona-specific memos and drift management. - Includes detailed orchestrator playbook, live monitoring, checkpoints, and synthesised progress snapshots. - Outputs full session logs, summarised ideas, and final proposals in a clearly organised project structure.
Metadata
Slug auto-research-proposal
Version 1.0.0
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 1
Frequently Asked Questions

What is auto-research-proposal?

Multi-agent research war room. Personas debate in sequential turns through two phases — ideation and proposal writing. Persona persistence and drift detectio... It is an AI Agent Skill for Claude Code / OpenClaw, with 91 downloads so far.

How do I install auto-research-proposal?

Run "/install auto-research-proposal" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is auto-research-proposal free?

Yes, auto-research-proposal is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does auto-research-proposal support?

auto-research-proposal is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created auto-research-proposal?

It is built and maintained by Zhengxuan Wu (@frankaging); the current version is v1.0.0.

💬 Comments