Official agent skill

Multi Perspective Plan

by microsoft in microsoft/bocpy

Multi-perspective planning with rebuttal rounds and adversarial review loop.

OfficialMITAuto-check passedAgent Workflows

Install Multi Perspective Plan

skills CLI
$ npx skills add microsoft/bocpy --skill multi-perspective-plan -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install microsoft/bocpy multi-perspective-plan --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/microsoft/bocpy.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.github/skills/multi-perspective-plan .claude/skills/multi-perspective-plan && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
multi-perspective-plan
GitHub stars
201
Token cost
~2.8k tokens
SKILL.md length
1,384 words
Files
1
Skills in repo
9
Repo updated
First seen
Licence
MIT

At a glance

Multi-perspective planning with rebuttal rounds and adversarial review loop.

  • Works in 8 steps: Gather Context → Spawn Three Planner Lens Subagents → Review the Three Plans → …
  • : planning complex changes
  • SKILL.md covers When to Use, Persistence and Restart and Procedure
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Multi Perspective Plan is an agent skill from microsoft/bocpy, published by the product's own GitHub organization. Multi-perspective planning with rebuttal rounds and adversarial review loop. Use when: planning complex changes, designing architecture, evaluating implementation strategies, drafting implementation plans, or when /plan is invoked. Spawns three planner subagents, runs rebuttals on disagreements, synthesizes their outputs, then iteratively hardens the plan through an adversarial review loop until it passes scrutiny. All intermediate artifacts are persisted to .copilot/ so the process can be restarted from any step.

Its SKILL.md is about 2.8k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Agent Workflows, covering Planning and Subagents. The repository describes itself as: Behavior-Oriented Concurrency in Python. The licence is MIT.

When your agent uses it

  • : planning complex changes
  • Designing architecture
  • Evaluating implementation strategies
  • Drafting implementation plans

Example prompts

  • “/multi-perspective-plan”

Workflow steps

8 steps, taken from the step headings in SKILL.md.

  1. Gather Context
  2. Spawn Three Planner Lens Subagents
  3. Review the Three Plans
  4. Rebuttals (If Disagreements Exist)
  5. Synthesize
  6. Adversarial Review Loop
  7. Present
  8. Bake In Per-Step Checkpoint Discipline

What it can do on your machine

Read from SKILL.md and the folder at commit c8f3ceb. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Multi Perspective Plan loads about 2.8k tokens when it runs. Until then it costs about 136 tokens; SKILL.md has 1,384 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~136
When it runs · the whole SKILL.md, loaded when a task matches
~2.8k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from microsoft/bocpy at commit c8f3ceb, republished under its MIT licence (© microsoft). 1,384 words, ~2,789 tokens.

Download SKILL.mdSave it as .claude/skills/multi-perspective-plan/SKILL.md (or your agent's skills folder).
name
multi-perspective-plan
description
Multi-perspective planning with rebuttal rounds and adversarial review loop. Use when: planning complex changes, designing architecture, evaluating implementation strategies, drafting implementation plans, or when /plan is invoked. Spawns three planner subagents, runs rebuttals on disagreements, synthesizes their outputs, then iteratively hardens the plan through an adversarial review loop until it passes scrutiny. All intermediate artifacts are persisted to .copilot/ so the process can be restarted from any step.
argument-hint
Describe the change or feature to plan

Multi-Perspective Planning

Generate a robust implementation plan by soliciting three competing viewpoints, synthesizing them, and then hardening the result through an adversarial review loop.

When to Use

  • Planning non-trivial code changes that touch multiple subsystems
  • Evaluating architecture or design trade-offs
  • Any time you want a plan stress-tested before implementation

Persistence and Restart

Every intermediate artifact produced by this skill is written to disk under .copilot/plans/<slug>/, where <slug> is a short kebab-case name derived from the planning task (e.g. work-stealing-scheduler). This makes the process fully resumable: if any step fails, is interrupted, or produces an unsatisfactory result, you can re-run only the affected step using the on-disk artifacts from prior steps as input.

Directory layout
.copilot/plans/<slug>/
├── 00-context.md                       # Step 1 output
├── 10-plan-speed-lens.md               # Step 2 outputs (one per lens)
├── 10-plan-usability-lens.md
├── 10-plan-conservative-lens.md
├── 20-analysis.md                      # Step 3 output
├── 30-rebuttal-<topic>-<lens>.md       # Step 4 outputs (one per lens per topic)
├── 40-draft-plan.md                    # Step 5 output
├── 50-adversarial-iter1.md             # Step 6a output, iteration 1
├── 50-revisions-iter1.md               # Step 6b notes for iteration 1
├── 50-adversarial-iter2.md
├── 50-revisions-iter2.md
├── ...
└── 99-final-plan.md                    # Step 7 output

Numeric prefixes preserve chronological order. The <slug> directory is created at step 1 and reused for the whole run.

Restart contract

At the start of every step, check whether the corresponding output file already exists. If it does:

  • Either reuse it (skip re-running the step), or
  • Explicitly overwrite it (re-run the step from scratch).

Ask the user which to do if the choice is non-obvious. Never silently discard an existing artifact.

When the user asks to "restart from step N", load all artifacts numbered below N into context and re-run from step N onward.

Procedure

1. Gather Context

Before spawning planners, collect enough context about the target code so each subagent can work from the same facts. Read the relevant source files and tests.

Write the context block to .copilot/plans/<slug>/00-context.md. This file must be self-contained: any subagent reading it should have everything it needs without further file lookups. Include:

  • The planning task as stated by the user
  • A summary of the current state of the relevant code
  • Key file paths and line ranges that matter
  • Any constraints or invariants the plan must respect
  • Pointers to related artifacts (sketches, prior plans, benchmark JSONs)

If a sketch document already exists (e.g. .copilot/<slug>.md), reference it from 00-context.md rather than duplicating its contents.

2. Spawn Three Planner Lens Subagents

Launch three subagents in parallel, each using a named lens agent. Each receives the same context block and must return a concrete, step-by-step implementation plan (not just commentary).

#AgentFocus
1speed-lensPerformance — minimize latency and overhead
2usability-lensClarity — clean, readable, maintainable code
3conservative-lensScope — minimal changeset, surgical edits

Each subagent prompt must include:

  • A directive to read .copilot/plans/<slug>/00-context.md as its context
  • An instruction to operate in planning mode
  • A request for a numbered step-by-step plan with rationale per step
  • A request for risks and mitigations specific to their perspective
  • A directive to write the resulting plan to .copilot/plans/<slug>/10-plan-<lens>.md and return a brief confirmation plus the file path

After the subagents return, verify all three files exist before continuing.

3. Review the Three Plans

Read all three 10-plan-*.md files. Write a brief analysis to .copilot/plans/<slug>/20-analysis.md noting:

  • Points of agreement (high-confidence decisions)
  • Points of disagreement (trade-offs to resolve), each labelled with a short topic slug for use in step 4 filenames
  • Any gaps none of the planners addressed
4. Rebuttals (If Disagreements Exist)

If 20-analysis.md lists any disagreements, run a rebuttal round.

For each disagreement topic, identify which lenses hold competing positions. Spawn those lenses in parallel as fresh subagents operating in rebuttal mode. Each subagent receives:

  • The path to 00-context.md
  • The specific point of disagreement (quoted from 20-analysis.md)
  • The path to its own original plan and the competing plan(s)
  • An instruction to argue concisely for why its approach is best and why the alternatives are inferior — one turn only
  • A directive to write its rebuttal to .copilot/plans/<slug>/30-rebuttal-<topic>-<lens>.md

If there are no disagreements, skip this step. Record that fact in 20-analysis.md so a restarted run knows step 4 is intentionally empty.

5. Synthesize

Spawn a synthesis-lens subagent operating in planning mode. Its prompt must direct it to read:

  • 00-context.md
  • All three 10-plan-*.md files
  • 20-analysis.md
  • All 30-rebuttal-*.md files (if any)

The subagent must produce a numbered step-by-step implementation sequence with clear rationale, written to .copilot/plans/<slug>/40-draft-plan.md. For each disagreement, it must pick one option and justify the choice by engaging with the rebuttal arguments — not ignoring or averaging them. Flag any unresolved risks.

If the synthesis agent reports any unresolved disagreements (trade-offs it could not resolve), stop and present them to the user. For each unresolved item, show:

  • The competing options with their lens attribution
  • The key argument from each side's rebuttal
  • Why the choice matters

Wait for the user to decide before proceeding. Incorporate the user's decisions into 40-draft-plan.md directly.

6. Adversarial Review Loop

Iteratively harden the draft plan by running adversarial reviews until the plan passes scrutiny. Each iteration i (starting at 1) proceeds as follows:

6a. Spawn Adversarial Reviewer

Launch a fresh adversarial-lens subagent operating in planning mode. Its prompt must direct it to read 00-context.md and the current plan (initially 40-draft-plan.md, then the most recently revised version) and to write its findings to .copilot/plans/<slug>/50-adversarial-iter<i>.md using this structure:

Plan reviewed: <path>

For each issue found, report it in this exact format:

[SEVERITY] Short title

  • Location: plan step number
  • Problem: what is wrong and why it matters
  • Suggestion: concrete fix or remediation

where SEVERITY is one of: critical, high, medium, low.

If the plan survives scrutiny, the file must contain exactly: "LGTM — no issues found."

Do NOT fabricate issues. Order findings by severity (critical first).

Show full SKILL.md (509 more words)Show less
6b. Evaluate Findings and Revise

Read 50-adversarial-iter<i>.md:

  • If it contains "LGTM", the plan is final. Proceed to step 7.
  • Otherwise, address the findings:
    • critical / high: revise the plan to fix or mitigate.
    • medium: revise if straightforward; otherwise document as a risk.
    • low: note and move on.

Update the draft plan in place at the same path it was loaded from. Write a short note to .copilot/plans/<slug>/50-revisions-iter<i>.md summarising which findings were addressed and how, and which were deliberately deferred or rejected.

6c. Check for Stuck State

If you are unsure how to proceed — e.g. a concern conflicts with a core requirement, or two mitigations are mutually exclusive — stop and ask the user. Present the dilemma and the options. Save the user's decision into 50-revisions-iter<i>.md so a restart can recover it.

6d. Repeat

Increment i and go back to step 6a with the revised plan. Use a fresh subagent each time (no memory of previous passes).

Bound: If the loop has run 3 times (50-adversarial-iter3.md exists and is not LGTM) without reaching LGTM, present the current plan to the user with all remaining unresolved findings and ask how to proceed.

7. Present

Copy the final plan to .copilot/plans/<slug>/99-final-plan.md and present it to the user for approval. Clearly attribute which ideas came from which perspective where relevant. Note any risks that survived the adversarial review as known trade-offs, and reference the iteration files that documented their resolution.

8. Bake In Per-Step Checkpoint Discipline

Every plan generated by this skill that mutates source files must include a checkpoint step at the end of each numbered substep's success gate. The text should read along these lines:

Checkpoint: once this substep's gate passes, ask the user to commit (or, if they prefer, to git stash push -m "<slug>-step<N> done"). Do not start the next substep until a checkpoint exists.

Why this matters:

  • When an issue surfaces mid-plan (e.g. a benchmark methodology change invalidates a baseline, a regression needs to be bisected to one substep, or one substep needs to be redone in isolation), a clean checkpoint at every step boundary lets the work peel back cleanly.
  • Without checkpoints, "revert just substep N" turns into an archaeological exercise: grepping the plan's implementation log for what each step changed, then manually reconstructing the diff onto HEAD. The plan's "Files touched" and "Implementation log" sections capture intent, not ground truth — micro-tweaks applied during a step (variable renames, comment fixes, fallout patches in adjacent functions) are rarely written down.
  • The cost of a checkpoint commit is tiny (one prompt to the user, one small commit); the cost of skipping one is a half-hour reconstruction exercise the first time mid-plan rework is needed.

This rule applies equally to pre-substep adjustments ("step 0.5", "prelude", "preflight"), not just to numbered substeps. Any change to source files that establishes a measured baseline or a known-good state deserves a checkpoint.

The synthesis step (step 5) is responsible for ensuring this discipline is written into the draft plan. The adversarial loop (step 6) must flag its absence as a medium-severity finding if it slips through.

© microsoft, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .github/skills/multi-perspective-plan of microsoft/bocpy.

Open the folder on GitHubat commit c8f3ceb

Compare with similar skills

Multi Perspective Plan next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Multi Perspective Plan compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Multi Perspective Plan this skillmicrosoft/bocpy201—~2.8kAutomated safety check: PassMIT
Subagent Driven DevelopmentAsvarox/allkaraoke26138 repos~1.2kAutomated safety check: PassNone
Execumputun/cc-thingz484—~8kAutomated safety check: PassMIT
Executing PlansGanyuanRan/Aegis1.3k1 repos~2.3kAutomated safety check: PassMIT
Autopilot End-to-End Buildernick-vels/skills407—~2.5kAutomated safety check: NotesMIT
Workflow Orchestrationvxcozy/workflow-orchestration116—~1kAutomated safety check: PassMIT

Similar skills

  • Subagent Driven Development

    Asvarox/allkaraoke

    A skill your agent uses when executing implementation plans with independent tasks in the current session

    261 GitHub starsUsed in 38 repos~1.2k tokens
    Agent WorkflowsAuto-check passed
  • Exec

    umputun/cc-thingz

    Execute plan tasks sequentially using subagents. An agent skill from umputun/cc-thingz.

    484 GitHub stars~8k tokensUpdated 2 days ago
    Agent WorkflowsAuto-check passed
  • Executing Plans

    GanyuanRan/Aegis

    A skill your agent uses when executing a written implementation plan across sessions or with review checkpoints.

    1.3k GitHub starsUsed in 1 repo~2.3k tokens
    Agent WorkflowsAuto-check passed
  • Builds an app, site, bot or feature from a spoken idea through requirements, spec, tickets, subagent work, review and acceptance, with a live progress dashboard.

    407 GitHub stars~2.5k tokensUpdated 5 days ago
    Agent WorkflowsAuto-check: notes
  • Workflow Orchestration

    vxcozy/workflow-orchestration

    Disciplined task execution with planning, verification, and self-improvement loops.

    116 GitHub stars~1k tokensUpdated 5 mo ago
    Agent WorkflowsAuto-check passed
  • Blueprint

    byungjunjang/jangpm-meta-skills

    Agentic system design blueprint generator. An agent skill from byungjunjang/jangpm-meta-skills.

    121 GitHub stars~2k tokensUpdated 2 mo ago
    Agent WorkflowsAuto-check passed

More from microsoft/bocpy

All 9 skills in this repo
  • Branch Review

    microsoft/bocpy

    Official

    Multi-perspective code review for a branch before merging. An agent skill from microsoft/bocpy.

    201 GitHub stars~3.2k tokensUpdated 9 days ago
    Auto-check passed
  • Official

    Write a C extension whose custom types can live inside a bocpy Cown and travel between worker sub-interpreters.

    201 GitHub stars~5.1k tokensUpdated 9 days ago
    Auto-check passed
  • Official

    Follow bocpy commenting and documentation conventions. An agent skill from microsoft/bocpy.

    201 GitHub stars~3.3k tokensUpdated 9 days ago
    Auto-check passed
  • Finalize PR

    microsoft/bocpy

    Official

    Finalize a feature branch for merge. An agent skill from microsoft/bocpy.

    201 GitHub stars~3.5k tokensUpdated 9 days ago
    Auto-check passed
  • Testing Message Queue

    microsoft/bocpy

    Official

    Write tests for the bocpy message queue — the lock-free tag-based MPSC ring buffer.

    201 GitHub stars~2.3k tokensUpdated 9 days ago
    Auto-check passed
  • Thinking In Boc

    microsoft/bocpy

    Official

    Think in Behavior-Oriented Concurrency, not threads-and-locks.

    201 GitHub stars~2.6k tokensUpdated 9 days ago
    Auto-check passed

Categories

Questions about Multi Perspective Plan

What does Multi Perspective Plan do?

Multi-perspective planning with rebuttal rounds and adversarial review loop. Multi Perspective Plan is an agent skill from microsoft/bocpy, published by the product's own GitHub organization. Multi-perspective planning with rebuttal rounds and adversarial review loop.

When should I use Multi Perspective Plan?

Multi Perspective Plan fits situations like: : planning complex changes; designing architecture; evaluating implementation strategies; drafting implementation plans.

How do I install Multi Perspective Plan in Claude Code?

Run `npx skills add microsoft/bocpy --skill multi-perspective-plan -a claude-code`. Or copy the skill folder (.github/skills/multi-perspective-plan in microsoft/bocpy) into .claude/skills/multi-perspective-plan in your project. Claude Code loads it when a task matches its description.

How do I install Multi Perspective Plan in Codex?

Run `npx skills add microsoft/bocpy --skill multi-perspective-plan -a codex`. Or copy the skill folder (.github/skills/multi-perspective-plan in microsoft/bocpy) into .agents/skills/multi-perspective-plan in your project. Codex loads it when a task matches its description.

Can I use Multi Perspective Plan in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add microsoft/bocpy --skill multi-perspective-plan -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/multi-perspective-plan, .gemini/skills/multi-perspective-plan, .github/skills/multi-perspective-plan and .opencode/skills/multi-perspective-plan in your project.

What does Multi Perspective Plan need to run?

SKILL.md names no scripts, command-line tools or credentials: Multi Perspective Plan is instructions for the agent only.

Does Multi Perspective Plan access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Multi Perspective Plan safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Multi Perspective Plan use?

Multi Perspective Plan is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Multi Perspective Plan use?

About 2.8k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Multi Perspective Plan?

Skills that share tags, products or a category with Multi Perspective Plan: Subagent Driven Development (Asvarox/allkaraoke, 261 stars), Exec (umputun/cc-thingz, 484 stars), Executing Plans (GanyuanRan/Aegis, 1.3k stars) and Autopilot End-to-End Builder (nick-vels/skills, 407 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Multi Perspective Plan?

microsoft (a GitHub organization, an official publisher) maintains it in microsoft/bocpy, which has 201 GitHub stars. The repository holds 9 skills in this directory. The repository was last updated on September 28, 2026.

Source: microsoft/bocpy on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.