Polaris
A version-controlled collection of skills, agents, and workflows for AI-assisted development with Claude Code.
Quick Start
# Clone the repo
git clone <your-repo-url> ~/prj/polaris
cd ~/prj/polaris
# Initialize (saves repo location, adds 'polaris' alias to your shell)
./install.sh init
source ~/.zshrc # or open a new terminal
# Install global skills (available in every Claude session)
polaris global
# Or with developer defaults in CLAUDE.md (recommended for first-time setup)
polaris global --freshAfter init, use the polaris alias for all commands:
# Install stack-specific skills in a project (interactive)
cd ~/prj/my-app
polaris project
# Or specify stacks directly
polaris project --stack django --stack nextjs
# Override default directories
polaris project --stack django:api --stack nextjs:client
# Add project-specific extras
polaris project --stack django --extra skills/misc/vfx.md
# Wipe existing skills and reinstall (switching stacks or starting fresh)
polaris project --clean --stack django --stack nextjs
# Check what's installed and if updates are available
polaris statusStructure
polaris/
├── install.sh # Installer script
├── context-pull.sh # Cross-repo context extraction
├── skills/
│ ├── planning/ # Plan creation, phase breakdown, brainstorming
│ ├── execution/ # Stack-specific patterns (Django, Next.js, Flutter, Tailwind, React)
│ ├── verification/ # Code review checklists per framework
│ ├── writing/ # Clear writing, AI antipatterns
│ ├── meta/ # Skills for authoring new skills
│ ├── ux/ # Product requirements, UX specification
│ ├── git/ # Commit and PR conventions
│ └── misc/ # Project-specific skills (not in any profile)
├── agents/
│ ├── planner.md # Planning agent
│ ├── executor.md # Code execution agent
│ ├── reviewer.md # Verification/review agent
│ └── integrator.md # Cross-repo context agent
├── workflows/
│ └── full-feature.md # End-to-end feature workflow
├── templates/
│ └── integration-summary.md
└── profiles/
├── global.txt # Skills for ~/.claude/
├── django.txt # Backend stack (+ django.claude.md snippet)
├── nextjs.txt # Frontend stack (+ nextjs.claude.md snippet)
├── flutter.txt # Frontend stack (+ flutter.claude.md snippet)
└── _multi-stack.txt # Auto-added for multi-stack installsExternal Skills
Some skills are adapted from popular open-source skill repos:
| Skill | Source | Location |
|---|---|---|
| Writing Clearly | softaworks/agent-toolkit | skills/writing/writing-clearly.md |
| Brainstorming | obra/superpowers | skills/planning/brainstorming.md |
| Writing Skills (meta) | obra/superpowers | skills/meta/writing-skills.md |
| Tailwind v4 Design System | wshobson/agents | skills/execution/tailwind-v4-design-system.md |
| React Best Practices | vercel-labs/agent-skills | skills/execution/react-best-practices.md |
Profiles
Stacks are composable — select a backend and one or more frontends during polaris project.
| Profile | Type | Use Case |
|---|---|---|
global |
— | Installed to ~/.claude/, available everywhere |
django |
backend | Django/DRF backend |
nextjs |
frontend | Next.js frontend |
flutter |
frontend | Flutter mobile/web app |
On-Demand Commands
Some heavy reference docs are installed as slash commands instead of always-loaded skills. They only enter context when you invoke them.
| Command | What | Profiles |
|---|---|---|
/prd |
Generate and refine a product requirements document | global |
/ux-spec |
Create UX specification through 6 designer-mindset passes | global |
/ux-to-prompts |
Transform UX spec into build-order prompts for UI tools | global |
/execute |
Execute a phase of the plan | global |
/verify |
Verify a completed phase against the plan | global |
/autopilot |
Autonomous phase execution (execute → test → verify → commit loop) | global |
/scaffold |
Create project from a plan (git init, bootstrap, install stacks) | global |
/react |
React best practices (57 rules) | nextjs |
/tailwind |
Tailwind v4 design system | nextjs |
/django-bootstrap |
Django project scaffolding (Docker, Celery, split settings) | django |
/nextjs-bootstrap |
Next.js project scaffolding (App Router, DaisyUI, JWT auth) | nextjs |
Profile lines prefixed with cmd: install to .claude/commands/ instead of the default location:
cmd:react=skills/execution/react-best-practices.md
cmd:tailwind=skills/execution/tailwind-v4-design-system.md
cmd:django-bootstrap=skills/execution/django-bootstrap.md
cmd:nextjs-bootstrap=skills/execution/nextjs-bootstrap.mdWorkflow
See USAGE.md for the complete walkthrough, or QUICKSTART.md for a cheat sheet.
New project (MVP build):
- Brainstorm — Shape the idea in a root project folder
- Define (optional) — Run
/prdto formalize requirements,/ux-specfor UX foundations - Plan — Turn the design into a phased implementation plan
- Scaffold — Create sub-project repos and install profiles
- Execute — Implement each phase on main with the executor agent
- Review — Verify each phase with the reviewer agent
- Repeat — Move through phases until the MVP is complete
Or use /autopilot to run steps 4-6 hands-off — it loops through all phases automatically and stops on failure.
Ongoing development:
- Single feature → branch, execute, review, PR, merge
- Multiple independent features → use git worktrees for parallel work (see
skills/git/worktrees.md)
Cross-Repo Context
For full-stack work with decoupled repos:
# From your frontend repo, pull backend context
~/prj/polaris/context-pull.sh ../backend-api
# Context lands in .claude/backend-context.md
# Claude Code will see it automaticallyHow It Works
Running ./install.sh init saves the repo location, adds a polaris shell alias, and merges required settings into ~/.claude/settings.json — tool permissions, deny rules, and LSP plugins. Existing settings are preserved; only missing entries are added. Requires jq (brew install jq).
Both polaris global and polaris project automatically generate a CLAUDE.md with references to all installed skills, agents, and commands. This is how Claude Code discovers your skills. By default it amends the existing CLAUDE.md (preserving your content); use --fresh with polaris global to start with a developer-defaults template, or --no-claude-md to skip generation entirely.
The install script copies files (not symlinks) so projects work independently across machines. A checksum comparison lets you see what's stale:
polaris status
# ✓ current: skills/execution/django-patterns.md
# ⚠ stale: skills/verification/verify-django.md
# ⚠ orphan: skills/custom-thing.md (not in repo)Update with:
polaris global --force
polaris project --stack django --stack nextjs --forceCustomization
- Add a skill: Create a
.mdfile in the appropriateskills/subdirectory - Add a profile: Create a
.txtfile inprofiles/listing the files to include - Add an on-demand command: Use
cmd:name=path/to/skill.mdin a profile to install as/nameslash command - Add a project-specific skill: Put it in
skills/misc/and install with--extra skills/misc/my-skill.md(keeps it out of profiles) - Project overrides: Edit installed files in your project's
.claude/— they won't be overwritten unless you use--force - Add an agent: Create a
.mdfile inagents/