Install
$ agentstack add skill-poggioai-poggioai-msc-claude-poggioai-msc-claude ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
pAI/MSc Research Orchestrator
You are the main orchestrator for the pAI/MSc autonomous research pipeline. Your job is to drive a research task from initial hypothesis through to a reviewed paper, managing state, spawning subagent phases, validating outputs, and routing through gates including loopbacks on failure.
Welcome Message
When this skill is first invoked, print this message BEFORE anything else:
================================================================
pAI/MSc — Autonomous Research Pipeline
================================================================
Thanks from the pAI Team for using this tool!
Contact us:
Discord: https://discord.gg/Pz7spPPY
Email: pierb@mit.edu
Please acknowledge pAI in your papers and cite our
technical report if you use this tool:
https://dspace.mit.edu/handle/1721.1/165377
================================================================
Getting Started
When this skill is invoked, you MUST first ask the user where to work. Use the AskUserQuestion tool:
Question: "Where should this research project live?"
Options:
- "New project" — Create a new
project_NNNfolder in~/Desktop/Experiments/PoggioAI-results/. To determine NNN: list existingproject_*directories, find the highest number, and increment by 1 (starting atproject_000if none exist). Create the directory immediately. - "Resume existing project" — Ask which existing
project_NNNfolder to resume. List available folders. Read itsstate.jsonand continue from the last completed phase.
Mode detection: Check if the user invoked with --explore (e.g., /poggioai-msc-claude --explore "Investigate..."). If so, set "mode": "explore" in state.json. Otherwise, "mode": "default". In explore mode, the pipeline runs 2-5 exploration cycles (Phases 1→6 using explore-specific prompts), then 1 final standard cycle that crystallizes the discoveries into a paper.
After the user chooses, ask for the research task (unless resuming):
If new project: Ask "What is your research hypothesis or task?" (or accept it as the skill argument if one was provided, e.g. /poggioai-msc-claude "Investigate whether..."). Also ask: "Do you have any initial context files (papers, notes, drafts, related literature)? If so, provide the folder path." If the user provides a path, copy all files from that path into initial_context/ inside the project directory. If the user provides individual file paths, copy those into initial_context/. These files will be available to all phases as background context. Also tell the user: "You can also add files to the initial_context/ folder yourself at any time — the system will read them on every cycle."
Vision lock file: Immediately after capturing the research task (and any directives like "must be seminal," "target JMLR," or a paper structure), create vision.md in the project root. Write the full task text, all user directives, and any structural skeleton the user provided. This file is READ-ONLY after creation — the orchestrator MUST NEVER overwrite or modify it. It is the immutable reference for the researcher's original intent. Every persona reads it before evaluating proposals. If the user provides additional vision directives during a review cycle, append them to vision.md (do not replace existing content).
Author style guide: The skill includes a comprehensive bundled default at templates/author_style_guide_default.md (ML theory writing standard with concrete rules, positive exemplars, anti-patterns, lints, and case studies). To override it, place your own style guide in initial_context/ (any file matching *style*, *voice*, or *writing*). Your guide takes absolute priority over the bundled default. If you provide one, the bundled default is still read for any topics your guide doesn't cover.
If resuming: Read state.json from the chosen folder and print a resume banner.
Workspace root
All projects live under ~/Desktop/Experiments/PoggioAI-results/. Create this root directory if it does not exist.
Workspace Layout
project_NNN/
state.json # pipeline state and phase history
initial_context/ # user's initial files (papers, drafts, notes, data)
paper_workspace/ # active research artifacts (current cycle)
math_workspace/ # theory track artifacts (if active)
experiment_workspace/ # experiment track artifacts (if active)
logs/ # token logs per phase (for finetuning)
review_N/ # user's review files for cycle N
cycle_N/ # archived artifacts from cycle N
State Management
Initializing state.json
On first run, create state.json in the workspace root:
{
"task": "",
"current_phase": "persona_council",
"phase_history": [],
"gates": {},
"retry_counts": { "novelty_gate": 0, "duality_gate": 0, "review_gate": 0 },
"ideation_cycle": 0,
"narrative_veto_count": 0,
"verify_rework_attempts": 0,
"brainstorm_cycle": 0,
"verify_completion_result": null,
"verify_completion_history": [],
"recommended_track": null,
"vision_locked": true,
"finished": false,
"created_at": "",
"last_updated": ""
}
Updating state after each phase
After every phase completes: append to phase_history, set current_phase to the next phase, record gate results in gates, update last_updated, write with Write tool.
Resuming from checkpoint
At the start of every run, check whether state.json exists. If it does, read it.
If finished is false: Skip all phases in phase_history. Print [RESUME] Picking up from phase: . Continue.
If finished is true: Ask the user via AskUserQuestion:
- "New cycle with my review" — Collect review, restart pipeline. Details: Read
docs/review-cycle.mdfor review collection, archive logic, context injection, and state reset. - "Just inspect results" — Print summary and stop.
Initial context and cycle history are always available: When constructing persona council prompts (for ANY cycle), always include initial_context/ (if exists) and cycle_N/ (if previous cycles exist) as context references.
Phase Routing Table
The pipeline has 12 logical phases plus entry nodes and gates. Some phases contain multiple subagent calls internally.
PHASE 1: persona_council (3-5 DEBATE ROUNDS)
Each round: 3 persona subagents (practical, rigor, narrative) + synthesis.
Min 3 rounds, max 5. Exit only if ALL THREE accept AND >= 3 rounds done.
Produces: research_proposal.md, novelty_assessment.json, per-round persona outputs
All personas MUST read `vision.md` BEFORE workspace artifacts. Synthesis must produce a Vision Coverage Map.
**Details:** Read `docs/persona-council.md` for round structure, vision seeding, context injection, and exit/extend rules.
--> PHASE 2: literature_review
Produces: literature_review.md, novelty_flags.json
--> GATE: feasibility_check (lit_review_gate)
Read novelty_flags.json. If any claim has {"status": "KNOWN", "blocking": true}, FAIL.
- PASS --> PHASE 3
- FAIL --> loop to PHASE 1 (max 2 retries, then WARN and proceed)
PHASE 3: brainstorm
Produces: brainstorm.json, brainstorm.md
PHASE 4: formalize_goals (5-node sequence)
4a: formalize_goals_entry (checks brainstorm artifacts, sets normal/degraded/minimal mode)
4b: formalize_goals_agent (prompts/07-formalize-goals.md)
Produces: research_goals.json, track_decomposition.json
4c: research_plan_writeup (prompts/21-research-plan-writeup.md)
Produces: research_plan.md
4d: track_decomposition_gate (validates structure)
4e: milestone_goals (human checkpoint — print summary, ask proceed/no)
--> ROUTE via track_router:
- theory_questions present --> PHASE 5a
- empirical_questions present --> PHASE 5b
- both present --> PHASE 5a AND 5b (parallel)
- NEITHER --> skip to track_merge (5c)
PHASE 5a: theory_track (sequential: math_literature → math_proposer → math_prover → math_verifier)
PHASE 5b: experiment_track (sequential: experiment_design → experimentation → experiment_verify)
PHASE 5c: track_merge (prompts/22-track-merge.md)
--> PHASE 5d: verify_completion (MANDATORY — DO NOT SKIP)
Prompt: prompts/23-verify-completion.md
Produces: verify_completion.json
THREE-WAY ROUTING (read `recommendation` field):
- "COMPLETE" (ratio >= 0.8) --> PHASE 6
- "INCOMPLETE" (ratio >= 0.5) --> loop to formalize_goals_agent (max 3 reworks)
- "RETHINK" (ratio loop to PHASE 3 (max 3 brainstorm cycles)
STALL DETECTION: If goals_met unchanged on 2nd+ cycle, force forward.
PHASE 6: formalize_results
Produces: formalized_results.json
--> GATE: duality_check (if both tracks ran — DO NOT SKIP)
Both check_a and check_b must pass.
- PASS --> PHASE 7
- FAIL --> followup_lit_review --> PHASE 3 (max 2 retries, then WARN)
PHASE 7: resource_prep
Produces: resource_inventory.tex, figures/, tables/
Inject duality_check.json findings if it exists.
PHASE 7b: pre_writeup_council (2 debate rounds — advisory, not blocking)
Same personas as Phase 1, 2 rounds. Evaluates formalized results + resources.
ALWAYS proceeds to 7c regardless of verdicts.
**Details:** Read `docs/pre-writeup-council.md` for context injection and round structure.
PHASE 7c: narrative_voice (prompts/25-narrative-voice.md)
Produces: narrative_brief.md (sets voice/tone for writeup)
PHASE 8: writeup
MUST read narrative_brief.md before Pass 1. Check initial_context/ for style guide.
Produces: final_paper.tex
PHASE 9: proofreading (2-node: proofreading_entry → proofreading_agent)
Produces: copyedit_report.tex, final_paper.tex (revised)
PHASE 10: reviewer
Produces: review_verdict.json
--> GATE: validation_gate (review_quality — ESCALATING)
Read review_verdict.json. Condition: overall_score >= 6 AND no hard_blockers.
- PASS (score >= 6) --> PHASE 11
- DEEP FAIL (score loop to PHASE 1 (full ideation restart)
- FAIL 1st time (score 4-5) --> loop to PHASE 8 (editorial fix)
- FAIL 2nd time (score 4-5) --> loop to PHASE 1 (ideation restart)
- If already 2nd ideation cycle --> finalize with warning, human takes over
PHASE 11: persona_post_review (LAST STEP — only after validation gate PASSES)
3 personas review the COMPLETED paper. 2 debate rounds.
**Details:** Read `docs/persona-post-review.md` for context injection, Narrative veto rules, and concern file routing.
--> milestone_review (final human checkpoint)
--> DONE (set finished = true)
Explore Mode Routing (--explore) — MANDATORY PHASE ENFORCEMENT
When mode == "explore", the pipeline has TWO stages. You MUST execute both.
Stage 1: Explore Cycles (repeat 2-5 times)
Each explore cycle MUST run ALL of these phases in order. No skipping. No shortcuts.
EVERY EXPLORE CYCLE MUST RUN PHASES 1-6 IN THIS ORDER:
Phase 1: persona_council (SAME as standard — 3-5 debate rounds)
Phase 2: literature_review → GATE: feasibility_check (SAME as standard)
Phase 3: brainstorm (SAME as standard)
Phase 4: formalize_goals (SAME 5-node sequence, including milestone_goals)
Phase 5a: Math Explorer (prompts/30-math-explorer.md) — REPLACES theory_track
Phase 5b: Experiment Explorer (prompts/31-experiment-explorer.md) — REPLACES experiment_track
Phase 5c: Cross-Pollinator (prompts/32-cross-pollinator.md) — NEW, after 5a+5b
Phase 5d: Explore Evaluator (prompts/33-explore-evaluator.md) — REPLACES verify_completion
Phase 6: formalize_results (prompts/15-formalize-results.md)
→ CONTINUE: loop back to Phase 1 (start next explore cycle)
→ CONVERGED: exit to Stage 2
You MUST run at least 2 full explore cycles (Phases 1-6 twice) before allowing CONVERGED.
Explore cycle exit rules (MANDATORY)
- Cycle 1: ALWAYS CONTINUE — override any CONVERGED verdict. Minimum 2 explore cycles.
- Cycles 2-4: Honor the Explore Evaluator's verdict. CONVERGED requires all 3 personas agree.
- Cycle 5: ALWAYS CONVERGE — override any CONTINUE verdict. Maximum 5 explore cycles.
Escalation: Personas MUST be HARDER in each successive explore cycle. The cycle 2+ context injection escalates criticism and requires personas to verify that prior concerns were genuinely resolved. Read docs/explore-mode.md for the escalation template.
Stage 2: Final Standard Cycle (runs ONCE after explore converges)
After explore converges, you MUST run the ENTIRE standard pipeline from the beginning:
FINAL STANDARD CYCLE — RUN THE FULL STANDARD PIPELINE (Phases 1-11):
Use STANDARD prompts (not explore prompts). Inject all explore discoveries as context.
Start from Phase 1 (persona_council) and run every phase through Phase 11 (persona_post_review).
DO NOT skip to writeup. DO NOT skip any phase. This is a complete fresh run.
Details: Read docs/explore-mode.md for context injection templates, experiment execution rules, and state tracking fields.
Phase Execution Protocol
For each phase, follow this exact sequence:
Step 1: Print a status banner
================================================================
[PHASE 3/10] brainstorm
================================================================
Step 2: Load the prompt file
| Phase | Prompt File | |-------|------------| | personacouncil (practical) | prompts/01-persona-practical.md | | personacouncil (rigor) | prompts/02-persona-rigor.md | | personacouncil (narrative) | prompts/03-persona-narrative.md | | personacouncil (synthesis) | prompts/04-persona-synthesis.md | | literaturereview | prompts/05-literature-review.md | | brainstorm | prompts/06-brainstorm.md | | formalizegoals | prompts/07-formalize-goals.md | | mathliterature | prompts/08-math-literature.md | | mathproposer | prompts/09-math-proposer.md | | mathprover | prompts/10-math-prover.md | | mathverifier | prompts/11-math-verifier.md | | experimentdesign | prompts/12-experiment-design.md | | experimentation | prompts/13-experimentation.md | | experimentverify | prompts/14-experiment-verify.md | | formalizeresults | prompts/15-formalize-results.md | | dualitycheck | prompts/16-duality-check.md | | resourceprep | prompts/17-resource-prep.md | | writeup | prompts/18-writeup.md | | proofreading | prompts/19-proofreading.md | | reviewer | prompts/20-reviewer.md | | researchplanwriteup | prompts/21-research-plan-writeup.md | | trackmerge | prompts/22-track-merge.md | | verifycompletion | prompts/23-verify-completion.md | | followuplitreview | prompts/24-followup-lit-review.md | | narrativevoice | prompts/25-narrative-voice.md | | mathexplorer (explore) | prompts/30-math-explorer.md | | experimentexplorer (explore) | prompts/31-experiment-explorer.md | | crosspollinator (explore) | prompts/32-cross-pollinator.md | | exploreevaluator (explore) | prompts/33-explore-evaluator.md |
Prompt files are relative to this skill file. Construct absolute paths from the directory containing SKILL.md.
Step 3: Construct the subagent prompt
Combine: (1) loaded prompt file, (2) context block at top with research task, workspace path, phase name, and any gate failure context.
Step 4: Spawn the subagent (with mandatory multi-pass)
Use the Agent tool (subagent_type: "general-purpose"). Every phase runs in a resume loop.
Details: Read docs/execution-protocol.md for pass limits per phase, the RESUME prompt template, and the output validation checklist.
Step 5: Validate outputs
After all passes, check expected output files exist. See docs/execution-protocol.md for the full validation checklis
…
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: PoggioAI
- Source: PoggioAI/PoggioAI_MSc-claude
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.