perspectives

Use when analyzing tradeoffs, comparing approaches, weighing options, assessing risks, stress-testing conclusions, identifying blind spots, or applying multiple viewpoints to a decision.

9 stars

Best use case

perspectives is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Use when analyzing tradeoffs, comparing approaches, weighing options, assessing risks, stress-testing conclusions, identifying blind spots, or applying multiple viewpoints to a decision.

Teams using perspectives should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/perspectives/SKILL.md --create-dirs "https://raw.githubusercontent.com/cofin/flow/main/plugins/flow/skills/perspectives/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/perspectives/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How perspectives Compares

Feature / AgentperspectivesStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Use when analyzing tradeoffs, comparing approaches, weighing options, assessing risks, stress-testing conclusions, identifying blind spots, or applying multiple viewpoints to a decision.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Perspectives

Shared prompt library for structured multi-perspective analysis. Provides stance prompts (advocate, critic, neutral) and critical thinking frameworks used by other Flow skills.

<context>

## Overview

This skill provides the foundation that other skills build on:

- **Stance prompts** — three perspectives (advocate, critic, neutral) each with ethical guardrails that prevent harmful analysis
- **Critical thinking framework** — structured reassessment pattern for evaluating claims and assumptions

Typically loaded by other skills (`challenge`, `consensus`, persona skills) rather than invoked directly. Can be invoked directly when you want raw stance prompts for custom analysis.

## References Index

- **[Stance Prompts](references/stances.md)** — Advocate, critic, and neutral perspective prompts with ethical guardrails
- **[Critical Thinking Framework](references/critical-thinking.md)** — CRITICAL REASSESSMENT pattern and anti-patterns

</context>

<workflow>
## Workflow

1. **Identify the core claim or decision** -- Clearly state the problem or proposal that needs analysis.
2. **Apply the Advocate perspective** -- Identify the benefits, opportunities, and strongest arguments in favor of the proposal.
3. **Apply the Critic perspective** -- Identify the risks, trade-offs, and failure modes. Challenge assumptions and reveal blind spots.
4. **Apply the Neutral perspective** -- Objectively weigh the evidence, consider alternatives, and identify the conditions under which the proposal succeeds or fails.
5. **Synthesize the findings** -- Combine the perspectives into a balanced summary with actionable recommendations and a clear risk assessment.
</workflow>

<guardrails>
## Guardrails

- **Avoid confirmation bias** -- Actively seek evidence that contradicts your preferred conclusion.
- **Ensure diversity of viewpoints** -- Don't just pick the easiest arguments; look for subtle or non-obvious perspectives.
- **Respect ethical and safety constraints** -- Never generate analysis that encourages harmful behavior or violates project security rules.
- **Stay objective in the neutral stance** -- Avoid using biased language or leaning towards one side when synthesizing the results.
- **Explicitly state assumptions** -- Clearly label any unverified facts or assumptions used during the analysis.
</guardrails>

<validation>
## Validation Checkpoint

- [ ] At least three distinct perspectives (Advocate, Critic, Neutral) have been applied
- [ ] Core assumptions have been identified and challenged
- [ ] Potential risks and failure modes are explicitly documented
- [ ] Trade-offs between competing approaches are weighed objectively
- [ ] Final recommendation is based on a synthesis of all perspectives, not just one
- [ ] Analysis avoids loaded language and maintains a professional tone
</validation>

<example>
## Example: Applying Perspectives to a Tech Choice

**Proposal:** Moving from a monolithic database to a distributed microservices architecture.

**Advocate:** "Enables independent scaling of services, improves developer velocity by reducing coupling, and increases fault tolerance through isolation."

**Critic:** "Significantly increases operational complexity (service discovery, distributed tracing), introduces network latency between services, and requires complex distributed transaction management."

**Neutral:** "The transition is beneficial if the current monolith is a bottleneck for deployment frequency or horizontal scaling. However, the team must first invest in robust observability and CI/CD pipelines to manage the added overhead."
</example>

Related Skills

flow-memory-keeper

9
from cofin/flow

Use at task, phase, flow, sync, archive, finish, revise, or failure checkpoints to keep Flow specs clean, capture learnings and failures, elevate durable patterns, and refine this skill with project-specific nuances

vue

9
from cofin/flow

Use when editing Vue projects, .vue files, vue.config.js, Vue 3 components, Composition API, <script setup>, SFC state, deployment workflows, or Vue CI configuration.

vite

9
from cofin/flow

Use when editing Vite projects, vite.config.ts, vite.config.js, Vite plugins, HMR, asset bundling, frontend build settings, deployment config, or Litestar/Vite integration.

uvicorn

9
from cofin/flow

Use when deploying ASGI apps with uvicorn, editing uvicorn CLI commands, Config or Server usage, workers, reload, event loop selection, SSL, lifespan, logging, or development server behavior.

tracer

9
from cofin/flow

Use when tracing execution paths, mapping dependencies, understanding unfamiliar code, following data flow, investigating end-to-end behavior, debugging call chains, or deciding which files to read next.

testing

9
from cofin/flow

Use when writing or refactoring tests, editing test_*.py, *.test.ts, *.spec.ts, conftest.py, vitest.config.ts, pytest fixtures, mocks, coverage, async tests, anyio, or test failure debugging.

terraform

9
from cofin/flow

Use when creating, adopting, refactoring, or operating Terraform, *.tf files, .terraform.lock.hcl, terragrunt.hcl, root modules, backends, state, workspaces, imports, CI plan/apply, tests, or policy checks.

tanstack

9
from cofin/flow

Use when editing TanStack code, @tanstack imports, useQuery, createRouter, React Query, TanStack Router, Table, Form, Store, file-based routing, data fetching, or SPA state management.

tailwind

9
from cofin/flow

Use when styling with Tailwind CSS, editing tailwind.config.ts, tailwind.config.js, @tailwind directives, utility classes, responsive layouts, @apply, cn(), @theme config, dark mode, or forms.

svelte

9
from cofin/flow

Use when editing Svelte components, .svelte files, svelte.config.js, Svelte 5 runes, $state, $derived, SvelteKit, component state, or migrating away from Svelte 4 patterns.

sqlserver

9
from cofin/flow

Use when writing T-SQL, editing SQL Server .sql files, using sqlcmd, SQL Server connection strings, stored procedures, execution plans, indexes, Always On, JSON, security, or connector code.

sqlalchemy

9
from cofin/flow

Use when editing SQLAlchemy code, sqlalchemy imports, mapped_column, DeclarativeBase, ORM models, relationships, select() queries, async sessions, engines, events, or migrations.