Setup P3 logo

Setup P3

Community
uzairansaruzi
setup-p3

Configure which models p3-stack uses per role and at what reasoning budget. Detects your available models and writes p3-models.md, which overrides the skill defaults. Use for /setup-p3, "configure p3 models", "p3 budget", or changing p3-stack's model choices.

Overview

Publisheruzairansaruzi
Repositoryp3-stack
Skill namesetup-p3
Stars
155
Forks
20
Bundled files
Instructions only
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by uzairansaruzi on GitHub. Read the source before you install it.

Installation

Install the Setup P3 AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/uzairansaruzi/p3-stack/tree/main/skills/setup-p3
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/uzairansaruzi/p3-stack.git /tmp/p3-stack
mkdir -p .claude/skills
cp -r /tmp/p3-stack/skills/setup-p3 .claude/skills/setup-p3
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Setup P3 in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Setup P3 on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Setup P3 is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Setup p3

Write p3-models.md, a file that sets p3-stack's model per role. Default location is the current project root. Offer ~/.agents/p3-models.md as the global option, and ask which one. A project file wins over the global one.

Steps

1. Detect available models

Call orchestrator_capabilities. It lists the providers and models you can pass to delegate_task in this session, custom models included, with each one's provider instance ID and any reasoning options. That is the only source. If it returns nothing, stop and tell the user. Never write a provider or model it did not return. inherit-parent is always valid even though it is not a detected model.

2. Load current state

The roles are the labels shown in step 5. If p3-models.md already exists at the chosen location, read it and treat its # budget line and its role values as the current choices. Otherwise start from the defaults in step 3(b). A line whose role is not in step 5, such as how critics, is from a retired role. Drop it.

3. Budget, map, and confirm

(a) Ask for a budget. Ask plainly in the thread. Offer these four options with these exact labels, and name the current budget when the file records one.

  • unlimited — keep max
  • large — xhigh reasoning
  • medium — high reasoning
  • small — medium reasoning

(b) Apply it. Build the working table. On a fresh run, give code roles (feature, refactoring, bug-fix, perf-issue, hillclimb) and the explorer, investigator, and swarm roles the fastest strong coding model detected. Give judgment and prose, hardest tasks, the explainer, the synthesizers, and reflect tooling the most capable model detected. Fill each panel role with one entry per distinct provider detected, up to three. On a re-run, keep any role the user changed.

When the catalog exposes reasoning options for a model, set each real entry's effort option from the budget: unlimited takes the highest option, and large, medium, and small take xhigh, high, or medium. The ladder is max > xhigh > high > medium > low. If the model does not expose the target, use the highest option at or below it, else mark the role as needing a choice. inherit-parent does not change. When the catalog exposes no reasoning options, map roles only and drop effort tokens; the budget label is still recorded.

(c) Show the roles and confirm. Show every role with its model, marking any entry not in the detected set as needing a choice. Also list each line step 2 dropped. Ask whether to accept as-is or change specific roles, offering the detected models plus inherit-parent (the role runs on the parent thread's model, so omit the model in delegate_task) as the options. For panel roles (arena runners, architect runners, interrogate reviewers) the value is a list, and one delegate_task runs per entry, inherit-parent entries included, so the list length sets the count. arena cross-judge pool is also a list, but Arena selects one value from it whose provider differs from the parent's when possible. swarm workers is the default model for every worker unless a race or comparison assigns another model per arm.

4. Validate

Every real entry written must be in the orchestrator_capabilities result, under the provider instance it came from. inherit-parent always passes. If a chosen entry is not available, stop and ask again.

5. Write the file

Write p3-models.md with a # budget line with the chosen label and its target effort, and one line per role, using the same labels p3-mode uses. Write each entry as <providerInstanceId>/<model>, followed by its effort option in parentheses when step 3(b) set one. Overwrite the whole file so re-runs stay idempotent. Shape:

# p3 model configuration. One line per role. Delete a line to fall back to the skill default.
# `inherit-parent` as a value: the role runs on the parent thread's model (omit the delegate_task model). Entries in a panel list still count toward its fan-out.
# budget: unlimited (max)
feature, refactoring: <providerInstanceId>/<model> (<effort>)
bug-fix: <providerInstanceId>/<model> (<effort>)
perf-issue: <providerInstanceId>/<model> (<effort>)
hillclimb: <providerInstanceId>/<model> (<effort>)
judgment and prose: <providerInstanceId>/<model> (<effort>)
hardest tasks: <providerInstanceId>/<model> (<effort>)
how explorer: <providerInstanceId>/<model> (<effort>)
how explainer: <providerInstanceId>/<model> (<effort>)
why investigators: <providerInstanceId>/<model> (<effort>)
why synthesizer: <providerInstanceId>/<model> (<effort>)
reflect tooling: <providerInstanceId>/<model> (<effort>)
reflect judgment, divergent, synthesizer: <providerInstanceId>/<model> (<effort>)
arena runners: <entry>, <entry>, <entry>
arena cross-judge pool: <entry>, <entry>, <entry>
swarm workers: <providerInstanceId>/<model> (<effort>)
architect runners: <entry>, <entry>, <entry>
interrogate reviewers: <entry>, <entry>, <entry>

6. Confirm

Tell the user the file was written, where, and that it applies to new sessions. Re-running this skill updates it.

7. Offer a verification skill (optional)

Check whether the project has a way to drive the real app for proof (a verify-* skill, or an existing harness). If not, offer once: "want a project-local verification skill, so agents can drive the app the way a user does and prove changes work? I can generate one with /create-verification-skill." On yes, invoke /create-verification-skill. On no, move on without pushing.

Frequently asked questions

What does the Setup P3 AI skill do?

Configure which models p3-stack uses per role and at what reasoning budget. Detects your available models and writes p3-models.md, which overrides the skill defaults. Use for /setup-p3, "configure p3 models", "p3 budget", or changing p3-stack's model choices.

Why use Setup P3 on TypingMind?

Because you install it once and use it with any model. Setup P3 is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Setup P3 in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/uzairansaruzi/p3-stack/tree/main/skills/setup-p3. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Setup P3?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Setup P3?

As many as you like. As long as a model supports skills, you can use Setup P3 with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Setup P3 AI skill free?

Yes. It is published on GitHub by uzairansaruzi under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇