# poteto/plugins architecture

> Architecture diagram of the GitHub repository poteto/plugins, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-11). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/poteto/plugins
- Repository: https://github.com/poteto/plugins

## Overview

This repository is a Cursor plugin marketplace: users discover standalone plugins, each providing agent skills, rules, hooks, or agents for a developer workflow. The richest runtime subsystem is Orchestrate: its CLI starts a task loop, which coordinates cloud agents, structured handoffs, model selection, and optional Slack visibility and comments. Other plugins provide review, learning, documentation, SDK guidance, and team workflows. Orchestrate links follow the excerpts and source index; plugin capabilities and marketplace membership follow the README. Unsampled plugin internals are represented by their skill entry points.

Main entry points: [`.cursor-plugin/marketplace.json`](https://github.com/poteto/plugins/blob/main/.cursor-plugin/marketplace.json) (Plugin catalog), [`orchestrate/skills/orchestrate/scripts/core/agent-manager.ts`](https://github.com/poteto/plugins/blob/main/orchestrate/skills/orchestrate/scripts/core/agent-manager.ts) (Agent manager), [`orchestrate/skills/orchestrate/scripts/core/loop.ts`](https://github.com/poteto/plugins/blob/main/orchestrate/skills/orchestrate/scripts/core/loop.ts) (Run loop), [`orchestrate/skills/orchestrate/scripts/adapters/index.ts`](https://github.com/poteto/plugins/blob/main/orchestrate/skills/orchestrate/scripts/adapters/index.ts) (Slack adapter)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_market["Marketplace"]
  node_catalog["Plugin catalog<br/>[marketplace.json]"]
end

subgraph group_workflows["Developer Workflows"]
  node_teamkit["Team workflows"]
  node_thermos["Thermos review"]
  node_createplugin["Plugin scaffolding"]
  node_compatibility["Agent compatibility"]
  node_prcanvas["PR review canvas<br/>[SKILL.md]"]
  node_doccanvas["Docs canvas<br/>[SKILL.md]"]
  node_sdk["Cursor SDK guidance<br/>[SKILL.md]"]
  node_learning["Continual learning<br/>[SKILL.md]"]
  node_cliagents["CLI design guidance<br/>[SKILL.md]"]
  node_teaching["Learning paths"]
  node_pstack["Agent workflows"]
  node_ralph["Ralph loop<br/>[SKILL.md]"]
end

subgraph group_orchestrate["Orchestrate Runtime"]
  node_orchestrate["Orchestrate skill<br/>[SKILL.md]"]
  node_taskcli["Task CLI<br/>[task.ts]"]
  node_loop["Run loop<br/>[loop.ts]"]
  node_manager["Agent manager<br/>[agent-manager.ts]"]
  node_schemas["Plan and state schemas<br/>[schemas.ts]"]
  node_prompts["Prompt rendering<br/>[prompts.ts]"]
  node_handoffs["Handoff handling<br/>[handoff.ts]"]
  node_failures["Failure handoffs<br/>[failure-handoff.ts]"]
  node_models["Model selection<br/>[models.ts]"]
  node_measurements["Task measurements<br/>[measurements.ts]"]
end

subgraph group_integrations["Orchestration Integrations"]
  node_comments["Comment CLI<br/>[comments.ts]"]
  node_retry["Comment retry queue"]
  node_slackadapter["Slack adapter<br/>[index.ts]"]
  node_slackclient["Slack client<br/>[client.ts]"]
end

node_developer(("Developer"))
node_slackservice(("Slack API"))

node_developer -->|"discovers plugins"| node_catalog
node_catalog -->|"lists"| node_teamkit
node_catalog -->|"lists"| node_thermos
node_catalog -->|"lists"| node_createplugin
node_catalog -->|"lists"| node_compatibility
node_catalog -->|"lists"| node_prcanvas
node_catalog -->|"lists"| node_doccanvas
node_catalog -->|"lists"| node_sdk
node_catalog -->|"lists"| node_learning
node_catalog -->|"lists"| node_cliagents
node_catalog -->|"lists"| node_teaching
node_catalog -->|"lists"| node_pstack
node_catalog -->|"lists"| node_ralph
node_catalog -->|"lists"| node_orchestrate
node_developer -->|"runs tasks"| node_taskcli
node_taskcli -->|"starts loop"| node_loop
node_loop -->|"coordinates agents"| node_manager
node_manager -->|"selects models"| node_models
node_manager -->|"parses handoffs"| node_handoffs
node_manager -->|"writes failures"| node_failures
node_manager -->|"reads measurements"| node_measurements
node_loop -->|"uses schemas"| node_schemas
node_loop -.->|"uses prompts"| node_prompts
node_comments -->|"posts or queues"| node_retry
node_comments -->|"creates adapter"| node_slackadapter
node_slackadapter -->|"creates client"| node_slackclient
node_slackadapter -.->|"calls API"| node_slackservice
node_manager -->|"mirrors status"| node_slackadapter

click node_catalog "https://github.com/poteto/plugins/blob/main/.cursor-plugin/marketplace.json"
click node_teamkit "https://github.com/poteto/plugins/tree/main/cursor-team-kit/skills"
click node_thermos "https://github.com/poteto/plugins/tree/main/thermos/skills"
click node_createplugin "https://github.com/poteto/plugins/tree/main/create-plugin/skills"
click node_compatibility "https://github.com/poteto/plugins/tree/main/agent-compatibility/skills"
click node_prcanvas "https://github.com/poteto/plugins/blob/main/pr-review-canvas/skills/pr-review-canvas/SKILL.md"
click node_doccanvas "https://github.com/poteto/plugins/blob/main/docs-canvas/skills/docs-canvas/SKILL.md"
click node_sdk "https://github.com/poteto/plugins/blob/main/cursor-sdk/skills/cursor-sdk/SKILL.md"
click node_learning "https://github.com/poteto/plugins/blob/main/continual-learning/skills/continual-learning/SKILL.md"
click node_cliagents "https://github.com/poteto/plugins/blob/main/cli-for-agent/skills/cli-for-agents/SKILL.md"
click node_teaching "https://github.com/poteto/plugins/tree/main/teaching/skills"
click node_pstack "https://github.com/poteto/plugins/tree/main/pstack/skills"
click node_ralph "https://github.com/poteto/plugins/blob/main/ralph-loop/skills/ralph-loop/SKILL.md"
click node_orchestrate "https://github.com/poteto/plugins/blob/main/orchestrate/skills/orchestrate/SKILL.md"
click node_taskcli "https://github.com/poteto/plugins/blob/main/orchestrate/skills/orchestrate/scripts/cli/task.ts"
click node_loop "https://github.com/poteto/plugins/blob/main/orchestrate/skills/orchestrate/scripts/core/loop.ts"
click node_manager "https://github.com/poteto/plugins/blob/main/orchestrate/skills/orchestrate/scripts/core/agent-manager.ts"
click node_schemas "https://github.com/poteto/plugins/blob/main/orchestrate/skills/orchestrate/scripts/schemas.ts"
click node_prompts "https://github.com/poteto/plugins/blob/main/orchestrate/skills/orchestrate/scripts/core/prompts.ts"
click node_handoffs "https://github.com/poteto/plugins/blob/main/orchestrate/skills/orchestrate/scripts/core/handoff.ts"
click node_failures "https://github.com/poteto/plugins/blob/main/orchestrate/skills/orchestrate/scripts/core/failure-handoff.ts"
click node_models "https://github.com/poteto/plugins/blob/main/orchestrate/skills/orchestrate/scripts/models.ts"
click node_measurements "https://github.com/poteto/plugins/blob/main/orchestrate/skills/orchestrate/scripts/measurements.ts"
click node_comments "https://github.com/poteto/plugins/blob/main/orchestrate/skills/orchestrate/scripts/cli/comments.ts"
click node_retry "https://github.com/poteto/plugins/blob/main/orchestrate/skills/orchestrate/scripts/core/comment-retry-queue.ts"
click node_slackadapter "https://github.com/poteto/plugins/blob/main/orchestrate/skills/orchestrate/scripts/adapters/index.ts"
click node_slackclient "https://github.com/poteto/plugins/blob/main/orchestrate/skills/orchestrate/scripts/adapters/slack/client.ts"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_catalog toneBlue
class node_teamkit,node_thermos,node_createplugin,node_compatibility,node_prcanvas,node_doccanvas,node_sdk,node_learning,node_cliagents,node_teaching,node_pstack,node_ralph toneAmber
class node_orchestrate,node_taskcli,node_loop,node_manager,node_schemas,node_prompts,node_handoffs,node_failures,node_models,node_measurements,node_slackservice toneMint
class node_comments,node_retry,node_slackadapter,node_slackclient toneRose
class node_developer toneIndigo
```

## Components

### Marketplace

- [Plugin catalog](https://github.com/poteto/plugins/blob/main/.cursor-plugin/marketplace.json): `.cursor-plugin/marketplace.json`

### Developer Workflows

- [Team workflows](https://github.com/poteto/plugins/tree/main/cursor-team-kit/skills): `cursor-team-kit/skills`
- [Thermos review](https://github.com/poteto/plugins/tree/main/thermos/skills): `thermos/skills`
- [Plugin scaffolding](https://github.com/poteto/plugins/tree/main/create-plugin/skills): `create-plugin/skills`
- [Agent compatibility](https://github.com/poteto/plugins/tree/main/agent-compatibility/skills): `agent-compatibility/skills`
- [PR review canvas](https://github.com/poteto/plugins/blob/main/pr-review-canvas/skills/pr-review-canvas/SKILL.md): `pr-review-canvas/skills/pr-review-canvas/SKILL.md`
- [Docs canvas](https://github.com/poteto/plugins/blob/main/docs-canvas/skills/docs-canvas/SKILL.md): `docs-canvas/skills/docs-canvas/SKILL.md`
- [Cursor SDK guidance](https://github.com/poteto/plugins/blob/main/cursor-sdk/skills/cursor-sdk/SKILL.md): `cursor-sdk/skills/cursor-sdk/SKILL.md`
- [Continual learning](https://github.com/poteto/plugins/blob/main/continual-learning/skills/continual-learning/SKILL.md): `continual-learning/skills/continual-learning/SKILL.md`
- [CLI design guidance](https://github.com/poteto/plugins/blob/main/cli-for-agent/skills/cli-for-agents/SKILL.md): `cli-for-agent/skills/cli-for-agents/SKILL.md`
- [Learning paths](https://github.com/poteto/plugins/tree/main/teaching/skills): `teaching/skills`
- [Agent workflows](https://github.com/poteto/plugins/tree/main/pstack/skills): `pstack/skills`
- [Ralph loop](https://github.com/poteto/plugins/blob/main/ralph-loop/skills/ralph-loop/SKILL.md): `ralph-loop/skills/ralph-loop/SKILL.md`

### Orchestrate Runtime

- [Orchestrate skill](https://github.com/poteto/plugins/blob/main/orchestrate/skills/orchestrate/SKILL.md): `orchestrate/skills/orchestrate/SKILL.md`
- [Task CLI](https://github.com/poteto/plugins/blob/main/orchestrate/skills/orchestrate/scripts/cli/task.ts): `orchestrate/skills/orchestrate/scripts/cli/task.ts`
- [Run loop](https://github.com/poteto/plugins/blob/main/orchestrate/skills/orchestrate/scripts/core/loop.ts): `orchestrate/skills/orchestrate/scripts/core/loop.ts`
- [Agent manager](https://github.com/poteto/plugins/blob/main/orchestrate/skills/orchestrate/scripts/core/agent-manager.ts): `orchestrate/skills/orchestrate/scripts/core/agent-manager.ts`
- [Plan and state schemas](https://github.com/poteto/plugins/blob/main/orchestrate/skills/orchestrate/scripts/schemas.ts): `orchestrate/skills/orchestrate/scripts/schemas.ts`
- [Prompt rendering](https://github.com/poteto/plugins/blob/main/orchestrate/skills/orchestrate/scripts/core/prompts.ts): `orchestrate/skills/orchestrate/scripts/core/prompts.ts`
- [Handoff handling](https://github.com/poteto/plugins/blob/main/orchestrate/skills/orchestrate/scripts/core/handoff.ts): `orchestrate/skills/orchestrate/scripts/core/handoff.ts`
- [Failure handoffs](https://github.com/poteto/plugins/blob/main/orchestrate/skills/orchestrate/scripts/core/failure-handoff.ts): `orchestrate/skills/orchestrate/scripts/core/failure-handoff.ts`
- [Model selection](https://github.com/poteto/plugins/blob/main/orchestrate/skills/orchestrate/scripts/models.ts): `orchestrate/skills/orchestrate/scripts/models.ts`
- [Task measurements](https://github.com/poteto/plugins/blob/main/orchestrate/skills/orchestrate/scripts/measurements.ts): `orchestrate/skills/orchestrate/scripts/measurements.ts`

### Orchestration Integrations

- [Comment CLI](https://github.com/poteto/plugins/blob/main/orchestrate/skills/orchestrate/scripts/cli/comments.ts): `orchestrate/skills/orchestrate/scripts/cli/comments.ts`
- [Comment retry queue](https://github.com/poteto/plugins/blob/main/orchestrate/skills/orchestrate/scripts/core/comment-retry-queue.ts): `orchestrate/skills/orchestrate/scripts/core/comment-retry-queue.ts`
- [Slack adapter](https://github.com/poteto/plugins/blob/main/orchestrate/skills/orchestrate/scripts/adapters/index.ts): `orchestrate/skills/orchestrate/scripts/adapters/index.ts`
- [Slack client](https://github.com/poteto/plugins/blob/main/orchestrate/skills/orchestrate/scripts/adapters/slack/client.ts): `orchestrate/skills/orchestrate/scripts/adapters/slack/client.ts`

### Other components

- **Developer**
- **Slack API**

## Connections

- Developer → Plugin catalog: discovers plugins (evidence: `README.md`)
- Plugin catalog → Team workflows: lists (evidence: `README.md`)
- Plugin catalog → Thermos review: lists (evidence: `README.md`)
- Plugin catalog → Plugin scaffolding: lists (evidence: `README.md`)
- Plugin catalog → Agent compatibility: lists (evidence: `README.md`)
- Plugin catalog → PR review canvas: lists (evidence: `README.md`)
- Plugin catalog → Docs canvas: lists (evidence: `README.md`)
- Plugin catalog → Cursor SDK guidance: lists (evidence: `README.md`)
- Plugin catalog → Continual learning: lists (evidence: `README.md`)
- Plugin catalog → CLI design guidance: lists (evidence: `README.md`)
- Plugin catalog → Learning paths: lists (evidence: `README.md`)
- Plugin catalog → Agent workflows: lists (evidence: `README.md`)
- Plugin catalog → Ralph loop: lists (evidence: `README.md`)
- Plugin catalog → Orchestrate skill: lists (evidence: `README.md`)
- Developer → Task CLI: runs tasks (evidence: `orchestrate/skills/orchestrate/scripts/cli/task.ts`)
- Task CLI → Run loop: starts loop (evidence: `orchestrate/skills/orchestrate/scripts/cli/task.ts`)
- Run loop → Agent manager: coordinates agents (evidence: `orchestrate/skills/orchestrate/scripts/core/loop.ts`)
- Agent manager → Model selection: selects models (evidence: `orchestrate/skills/orchestrate/scripts/core/agent-manager.ts`)
- Agent manager → Handoff handling: parses handoffs (evidence: `orchestrate/skills/orchestrate/scripts/core/agent-manager.ts`)
- Agent manager → Failure handoffs: writes failures (evidence: `orchestrate/skills/orchestrate/scripts/core/agent-manager.ts`)
- Agent manager → Task measurements: reads measurements (evidence: `orchestrate/skills/orchestrate/scripts/core/agent-manager.ts`)
- Run loop → Plan and state schemas: uses schemas (evidence: `orchestrate/skills/orchestrate/scripts/core/loop.ts`)
- Run loop → Prompt rendering: uses prompts
- Comment CLI → Comment retry queue: posts or queues (evidence: `orchestrate/skills/orchestrate/scripts/cli/comments.ts`)
- Comment CLI → Slack adapter: creates adapter (evidence: `orchestrate/skills/orchestrate/scripts/cli/comments.ts`)
- Slack adapter → Slack client: creates client (evidence: `orchestrate/skills/orchestrate/scripts/adapters/index.ts`)
- Slack adapter → Slack API: calls API
- Agent manager → Slack adapter: mirrors status (evidence: `orchestrate/skills/orchestrate/scripts/core/agent-manager.ts`)
