Skills/writing/review-council/SKILL.md
--- name: review-council description: Convene a council of expert AI personas to review, stress-test, and improve any document, idea, proposal, or plan. Use this skill whenever the user asks to "review," "stress-test," "get feedback on," "critique," "poke holes in," "red team," "evaluate," "council," "panel review," or "get perspectives on" any content — whether it's an uploaded Word doc, Excel spreadsheet, PowerPoint deck, PDF, or just a raw idea typed into chat. Also trigger on phrases like "w
npx skillsauth add zrosenfield/sharepoint-ai-skills Skills/writing/review-councilInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
A skill that convenes a panel of expert personas to review any document, idea, proposal, or plan — then synthesizes a verdict with specific, actionable feedback.
This is not a proofreader. The Council exists to surface what the author can't see: blind spots, unstated assumptions, structural weaknesses, audience misalignment, and missed opportunities. It works on anything from a polished board deck to a half-formed idea spoken aloud.
Trigger this skill when the user:
The Council reviews anything. Identify what the user is presenting:
Uploaded file: Read the file using the appropriate method for its type. For .docx, .xlsx, .pptx, or .pdf, read the file contents before proceeding. For spreadsheets, understand the data structure, formulas, and what story the data tells. For decks, evaluate both the narrative arc and individual slide content. For documents, read the full text.
Pasted text or verbal idea: Work directly with what the user provided. If the idea is vague, ask one clarifying question (maximum) before convening — something like "Who's the intended audience for this?" or "What decision does this need to support?" If the idea is clear enough to review, proceed without asking.
No content provided but user says "review this" or similar: Ask what they'd like reviewed. Don't convene on nothing.
Before the Council speaks, silently determine:
These shape how aggressive the Council is. High-stakes content gets harder scrutiny. A casual idea gets lighter-touch exploration.
The Council has seven permanent seats. Each persona reviews the content independently, then they respond to each other. Every persona MUST speak — no skipping.
Read the persona reference files in references/personas.md before generating each persona's review. The personas are:
| Seat | Name | Angle | |------|------|-------| | ⚔ | The Adversary | Finds the fatal flaw. Assumes the audience is skeptical. Asks "why should anyone care?" and "what falls apart first?" | | 🎯 | The Audience Proxy | Becomes the intended reader. Reacts as they would — confused where they'd be confused, persuaded where they'd be persuaded, bored where they'd be bored | | 📐 | The Architect | Evaluates structure, flow, and information hierarchy. Does the narrative build? Is anything out of order? Is the structure serving the content or fighting it? | | 🔬 | The Analyst | Checks claims, data, logic, and evidence. Flags unsupported assertions, missing data, and logical gaps. For spreadsheets, audits formulas, assumptions, and data integrity | | 🎨 | The Storyteller | Judges clarity, voice, and emotional impact. Is this memorable? Does it land? Is the language working for or against the message? | | ⚙ | The Operator | Asks "then what?" Evaluates feasibility, implementation gaps, resource assumptions, and whether the next steps are actually actionable | | 🔭 | The Strategist | Zooms out. How does this fit the bigger picture? What's the second-order effect? What opportunity is being missed? |
For Word documents / text:
For Excel spreadsheets:
For PowerPoint decks:
For PDFs:
For raw ideas (no document):
After all seven personas speak, deliver a structured verdict. Use this exact format:
═══════════════════════════════════════════════════════════════
THE VERDICT
═══════════════════════════════════════════════════════════════
ASSESSMENT: [One sentence: what this content is and where it stands]
RATING: [Ready to Ship / Almost There / Needs Work / Rethink]
CONFIDENCE: [X%] — What would move this higher: [specific thing].
What would drop it: [specific thing].
TOP 3 ISSUES (in priority order)
1. [Specific issue with specific location in the content]
2. [Specific issue with specific location in the content]
3. [Specific issue with specific location in the content]
TOP 3 STRENGTHS
1. [What's genuinely working and why]
2. [What's genuinely working and why]
3. [What's genuinely working and why]
5 CONCRETE FIXES (do these, in this order)
1. [Specific action — not "consider improving" but "rewrite the
opening paragraph to lead with the $2M cost savings figure"]
2. [Specific action]
3. [Specific action]
4. [Specific action]
5. [Specific action]
MINORITY REPORT: [Persona name]
"[The strongest dissent from the verdict — the perspective that
almost changed the outcome]"
═══════════════════════════════════════════════════════════════
After delivering the verdict, offer exactly two options:
If the user uploaded a file and asks for a revision, produce a revised file in the same format they provided (.docx back as .docx, etc.).
tools
Generates a polished, self-contained HTML heatmap scorecard — a weighted comparison matrix where entities (rows) are scored across dimensions (columns), with computed totals, rank badges, and a winner highlight. Use when asked to build a scorecard, comparison matrix, decision matrix, vendor evaluation, tool assessment, candidate scoring grid, competitive analysis, site-readiness matrix, or any weighted multi-criteria ranking. Interviews the user if entities or criteria are missing, constructs a validated JSON document, then renders it into a sandbox-safe HTML file using the component library. No external dependencies — output runs inside a SharePoint sandboxed iframe.
development
Generates a polished, self-contained HTML roadmap or milestone timeline from any project data — SharePoint lists, pasted tables, or a verbal description. Use when asked to build a project roadmap, product roadmap, migration timeline, release plan, onboarding sequence, run-of-show, phase plan, or any visual schedule showing items over time. Interviews the user if data is incomplete, constructs a validated JSON document, then renders it into a single sandbox-safe HTML file. Chooses between two layouts automatically: horizontal roadmap with swimlanes (for phase-range data) or vertical milestone list (for point-in-time events). No external dependencies — output runs inside a SharePoint sandboxed iframe.
development
Generates a polished, self-contained HTML executive report or dashboard from any data source — SharePoint lists, CSV exports, or a user description. Use when asked to build an exec report, one-pager, summary page, status dashboard, project summary, business review, or any single-page visual summary of data. Interviews the user if data is incomplete, constructs a validated JSON document block by block, then renders it into a single sandbox-safe HTML file using the component library. No external dependencies — output runs inside a SharePoint sandboxed iframe.
development
Renders a polished, self-contained HTML briefing from any data source — SharePoint lists, uploaded documents, or a verbal description. Use when asked to build a competitor landscape, account brief, candidate summary, site inventory, board bio, speaker profile, partner overview, or any grid of profile cards or single-subject one-pager. Interviews the user if data is incomplete, constructs a validated JSON document, then renders it into a sandbox-safe HTML file using grid mode (2–8 subjects as responsive cards) or one-pager mode (1 subject as a rich briefing). No external dependencies — output runs inside a SharePoint sandboxed iframe.