pan-wizard 3.10.0 → 3.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,16 +1,16 @@
1
1
  <div align="center">
2
2
 
3
- <img src="https://cdn.jsdelivr.net/npm/pan-wizard@latest/assets/pan-logo-2000-transparent.svg" alt="PAN Wizard" width="200" />
3
+ <img src="assets/pan-readme-hero.png" alt="PanWizard — context engineering that makes AI coding reliable" width="820" />
4
4
 
5
- # PAN WIZARD
5
+ # PanWizard
6
6
 
7
7
  **Project Automation Navigator — A lightweight workflow automation and context engineering system for Claude Code, OpenCode, Gemini CLI, Codex, and Copilot CLI.**
8
8
 
9
9
  **Solves context rot — the quality degradation that happens as Claude fills its context window.**
10
10
 
11
- [![npm version](https://img.shields.io/npm/v/pan-wizard?style=for-the-badge&logo=npm&logoColor=white&color=CB3837)](https://www.npmjs.com/package/pan-wizard)
12
- [![npm downloads](https://img.shields.io/npm/dm/pan-wizard?style=for-the-badge&logo=npm&logoColor=white&color=CB3837)](https://www.npmjs.com/package/pan-wizard)
13
- [![License](https://img.shields.io/badge/license-MIT-blue?style=for-the-badge)](LICENSE)
11
+ [![npm version](https://img.shields.io/npm/v/pan-wizard?style=for-the-badge&color=FF5A3C&labelColor=211E18)](https://www.npmjs.com/package/pan-wizard)
12
+ [![npm downloads](https://img.shields.io/npm/dm/pan-wizard?style=for-the-badge&color=5B4BE6&labelColor=211E18)](https://www.npmjs.com/package/pan-wizard)
13
+ [![License](https://img.shields.io/badge/license-MIT-1E8E5A?style=for-the-badge&labelColor=211E18)](LICENSE)
14
14
 
15
15
  <br>
16
16
 
@@ -22,7 +22,7 @@ npx pan-wizard@latest
22
22
 
23
23
  <br>
24
24
 
25
- ![PAN Install](https://cdn.jsdelivr.net/npm/pan-wizard@latest/assets/terminal.svg)
25
+ ![PanWizard bot army — Mission Control delegating to squads, builders in isolated worktrees, human-gated merge](assets/terminal.svg)
26
26
 
27
27
  <br>
28
28
 
@@ -74,6 +74,46 @@ PAN is the context engineering layer that makes Claude Code reliable. It breaks
74
74
 
75
75
  ---
76
76
 
77
+ ## Bot Army
78
+
79
+ > **Don't run one phase — run the whole project.** `/pan:army` turns PAN's agents into a coordinated army that delivers a goal end-to-end: an Opus **Mission Control** plans the mission and delegates to specialist **squads**, parallel builders each work an isolated git worktree, and **nothing reaches your main branch without green checks and your explicit approval.**
80
+
81
+ <div align="center">
82
+ <img src="assets/pan-orchestration.png" alt="PanWizard specialist agents orchestrated along a pipeline" width="340" />
83
+ </div>
84
+
85
+ | Tier | Squad | Does | Access |
86
+ |------|-------|------|--------|
87
+ | **0 · Mission Control** | `pan-conductor` (Opus) | Plans + delegates. Never writes code. | delegation-only |
88
+ | **1 · Architecture** | roadmapper · planner · researchers | Designs the contract before code | read-only |
89
+ | **1 · Build** | `pan-executor` | Turns the contract into committed code | read / write · one `army/<task>` worktree per agent |
90
+ | **1 · Quality** | reviewer · hardener · verifier · … | Adversarially tries to break it | read-only |
91
+ | **1 · Release** | `pan-release` | Ships behind a human gate | always-ask |
92
+ | **2 · Workers** | document_code · distiller | Narrow, high-volume jobs | scoped |
93
+
94
+ **The loop:** `Muster → Plan → Delegate → Execute → Review → Integrate → Learn` ↺ — repeating until the goal ships or a stop condition fires.
95
+
96
+ **Bounded by a hard safety harness:**
97
+
98
+ - **A human merges. Always.** The Release squad prepares a squash-merge and surfaces an `always-ask` approval — a bot never touches a protected branch. Recovery is `git revert` or the previous tag, never a force-push.
99
+ - **Isolated builders.** Each Build agent forks its own `army/<task>` branch + git worktree, so parallel agents never share a file.
100
+ - **Caps that don't relax.** Delegation-depth cap, per-cycle spawn + budget ceilings, and a `.planning/orchestration/abort` kill-switch — the same harness as hierarchical exec, at campaign scale.
101
+
102
+ **Run it over days.** `--schedule` arms a self-resuming campaign with a per-day budget that burns the backlog down across sessions — and *still* waits for you at every merge. **Autonomy runs up to the irreversible step; a human is at the step.**
103
+
104
+ **Watch it live.** `/pan:hud` renders a single self-contained HTML dashboard — Mission Control over the squads, in-flight worktrees, campaign budget, telemetry, and the safety harness — in one page.
105
+
106
+ ```bash
107
+ /pan:army "ship the v1 reporting module" # plan → delegate → build → review → human-gated ship
108
+ /pan:army "harden auth across the app" --schedule daily --daily-budget 200
109
+ /pan:army --status # where the campaign stands
110
+ /pan:hud --open # watch the army work, live
111
+ ```
112
+
113
+ Resolve the live squad roster any time with `pan-tools squad list`.
114
+
115
+ ---
116
+
77
117
  ## Who This Is For
78
118
 
79
119
  People who want to describe what they want and have it built correctly — without managing complex project management overhead.
@@ -537,6 +577,7 @@ PAN is not a replacement for your IDE or AI agent — it's the orchestration lay
537
577
  | Command | What it does |
538
578
  |---------|--------------|
539
579
  | `/pan:progress` | Where am I? What's next? (supports `health` subformat) |
580
+ | `/pan:hud` (alias `/pan:dashboard`) | Render a self-contained HTML dashboard of project + bot-army state to `.planning/hud.html` (`--open`, `--out`, `--stdout`) |
540
581
  | `/pan:help` | Show all commands and usage guide |
541
582
  | `/pan:update` | Update PAN with changelog preview |
542
583
  | `/pan:discord` | Join the PAN Discord community |
@@ -547,6 +588,12 @@ PAN is not a replacement for your IDE or AI agent — it's the orchestration lay
547
588
  |---------|--------------|
548
589
  | `/pan:map-codebase` | Analyze existing codebase before new-project |
549
590
 
591
+ ### Bot Army
592
+
593
+ | Command | What it does |
594
+ |---------|--------------|
595
+ | `/pan:army "<goal>"` | Campaign-scale delivery: Mission Control (Opus) delegates a whole-project goal to architecture/build/quality/release squads with branch-per-agent worktrees, behind CI + a human merge gate; `--schedule`/`--continue` run it over time |
596
+
550
597
  ### Phase Management
551
598
 
552
599
  | Command | What it does |
@@ -588,7 +635,7 @@ PAN is not a replacement for your IDE or AI agent — it's the orchestration lay
588
635
  | Command | What it does |
589
636
  |---------|--------------|
590
637
  | `pan-tools preflight [target]` | Pre-flight validation: state, blockers, git clean, config, error patterns |
591
- | `pan-tools dashboard` | Aggregated project overview: phase, progress, blockers, next action |
638
+ | `pan-tools dashboard` | Aggregated project overview as JSON: phase, progress, blockers, next action (for the visual HTML dashboard, see `/pan:hud`) |
592
639
  | `pan-tools learnings extract` | Auto-extract learnings from sessions, error patterns, and summaries |
593
640
  | `pan-tools learnings list` | List all extracted learnings with type breakdown |
594
641
  | `pan-tools learnings prune` | Remove old learnings by age (`--days N`) or ID (`--id LEARN-NNN`) |
@@ -652,7 +699,7 @@ Control which Claude model each agent uses. Balance quality vs token spend.
652
699
  | `balanced` (default) | Opus | Sonnet | Sonnet |
653
700
  | `budget` | Sonnet | Sonnet | Haiku |
654
701
 
655
- > Simplified view — actual model assignment varies by agent role. See [User Guide](docs/USER-GUIDE.md#model-profiles) for the full per-agent breakdown.
702
+ > Simplified view — actual model assignment varies by agent role. See [User Guide](docs/USER-GUIDE.md#model-profiles-per-agent-breakdown) for the full per-agent breakdown.
656
703
 
657
704
  Switch profiles:
658
705
  ```
@@ -786,6 +833,10 @@ This removes all PAN commands, agents, hooks, and settings while preserving your
786
833
 
787
834
  ## Documentation
788
835
 
836
+ <div align="center">
837
+ <img src="assets/pan-docs-header.png" alt="" width="720" />
838
+ </div>
839
+
789
840
  | Document | Audience | What it covers |
790
841
  |----------|----------|---------------|
791
842
  | [User Guide](docs/USER-GUIDE.md) | Users | Workflow diagrams, command reference, config schema, troubleshooting |
@@ -811,6 +862,23 @@ MIT License. See [LICENSE](LICENSE) for details.
811
862
 
812
863
  ---
813
864
 
865
+ ## Brand
866
+
867
+ | Token | Hex | Use |
868
+ | --- | --- | --- |
869
+ | Ember | `#FF5A3C` | Primary / CTAs |
870
+ | Conduit | `#5B4BE6` | Links, agent connectors |
871
+ | Verify | `#1E8E5A` | Success / verified |
872
+ | Butter | `#FFCE4A` | Highlights |
873
+ | Ink | `#211E18` | Dark surfaces, terminals |
874
+ | Paper | `#F3ECDD` | Light surfaces |
875
+
876
+ Type: **Gabarito** (display) + **JetBrains Mono** (code & labels). Logo: a node-graph mark (coral parent → indigo links → butter + green children) beside the `PanWizard` wordmark.
877
+
878
+ > Banner, avatar, and illustration art are generated from the prompts in [`docs/branding/image-prompts.md`](docs/branding/image-prompts.md).
879
+
880
+ ---
881
+
814
882
  <div align="center">
815
883
 
816
884
  **Claude Code is powerful. PAN makes it reliable.**
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: pan-conductor
3
- description: Hierarchical orchestrator for /pan:exec-phase --hierarchical. Decomposes a phase, spawns sub-agents in sequence (executors, reviewers, verifiers), tracks audit trail via bus.cjs, enforces safety caps. Claude + Opus 4.7 only.
3
+ description: Hierarchical orchestrator for /pan:exec-phase --hierarchical. Decomposes a phase, spawns sub-agents in sequence (executors, reviewers, verifiers), tracks audit trail via bus.cjs, enforces safety caps. Claude + Opus 4.8 only.
4
4
  tools: Read, Write, Bash, Glob, Grep, Task
5
5
  color: orange
6
6
  effort: xhigh
@@ -186,3 +186,16 @@ This agent file ships to all runtimes (keeps the installer uniform), but only ge
186
186
  - First-time runs in a new codebase where flat exec telemetry is more informative
187
187
 
188
188
  </calibration>
189
+
190
+ <campaign_mode>
191
+
192
+ When invoked by `/pan:army` (ADR-0033), you are **Mission Control** for a whole-project campaign, not a single phase — same harness, wider scope. The differences:
193
+
194
+ - **You delegate to squads, not bare agents.** Resolve the roster at runtime with `pan-tools squad list` / `squad show <name>` — never hardcode it. Route each mission to the squad that owns its lifecycle role: Architecture (design, read-only), Build (code, read/write), Quality (adversarial, read-only), Release (`pan-release`, always-ask). Workers (document_code, distiller) are Haiku-tier narrow jobs.
195
+ - **Build parallelizes by worktree.** When the Build squad runs multiple tasks at once, each `pan-executor` gets its own `army/<task>` branch + isolated worktree (`pan-tools worktree create "<task>"`) so concurrent builders never share a tree or a file. The spawn cap and budget ceiling still bound the fan-out.
196
+ - **Integration is human-gated.** You never merge to a protected branch. The Release squad prepares the merge and surfaces an `always-ask` approval request; a human approves. Recovery is `git revert` / previous tag — never force-push, never rewrite history.
197
+ - **The loop carries learnings.** After each mission, squad summaries return to you; `/pan:retro --write-memory` persists recurring patterns to agent memory (the "Dreaming" step) so the next mission plans smarter.
198
+
199
+ Every Tier-0 cap from the safety harness still applies, unchanged: nesting depth 2, the spawn/budget ceiling per cycle, and the `.planning/orchestration/abort` kill-switch checked before every spawn. The campaign is a longer loop around the same bounded core — it does not relax a single cap.
200
+
201
+ </campaign_mode>
@@ -0,0 +1,58 @@
1
+ ---
2
+ name: pan-release
3
+ description: Release squad agent for the bot-army campaign. Ships approved, green work safely behind a human gate — squash-merge intent, tag, deploy hand-off, and fast rollback. Never merges to a protected branch itself; surfaces an always-ask approval request instead.
4
+ tools: Read, Grep, Glob, Bash
5
+ color: amber
6
+ effort: high
7
+ ---
8
+
9
+ <role>
10
+ You are the PAN release agent — the Release squad (bot-army model, ADR-0033). You own the path to production: you ship safely and you undo fast. You run only after Quality has returned green and a human is in the loop.
11
+
12
+ You are NOT a coder. You do not modify source files. You operate git and release tooling, and you stop at every destructive boundary to ask.
13
+ </role>
14
+
15
+ <critical_safety>
16
+ These are hard rules, not advice:
17
+
18
+ - **Never push to or merge into a protected branch yourself.** Merging to `main` is an `always-ask` gate — you prepare the merge and surface an approval request; a human performs or confirms it.
19
+ - **Never force-push, never rewrite history.** Recovery is always `git revert` or redeploying the previous tag — never `reset --hard` on a shared branch, never `push --force`.
20
+ - **Tags are signing-safe.** Create tags with `-c tag.gpgsign=false` unless the project explicitly signs releases (PAN tags are automation markers).
21
+ - **Respect the project's verification gate.** Do not tag or hand off a deploy unless the build/verification commands from `.planning/config.json` (`build`, `verification`) passed. If they are unset, ask rather than guess.
22
+ </critical_safety>
23
+
24
+ <responsibilities>
25
+ - Confirm the work is green: Quality verdict passed, required checks satisfied, working tree clean.
26
+ - Prepare the integration: summarize the squash-merge (branches, commit set), run the project's `verification` command if configured, and surface an approval request on the `orchestrator` bus channel.
27
+ - After human approval: tag the release (`-c tag.gpgsign=false`), record the deploy hand-off, and report the tag + previous tag (the rollback target).
28
+ - On a failure signal: execute rollback = `git revert` of the merge, or instruct redeploy of the previous tag. Log the event; never silently patch.
29
+ </responsibilities>
30
+
31
+ <inputs>
32
+ - Approved, Quality-green artifacts and the branch/commit set to integrate.
33
+ - `.planning/config.json` → `build` / `verification` commands; `git` branching config.
34
+ - Health/failure signals from telemetry (cost/trace hooks).
35
+ </inputs>
36
+
37
+ <outputs>
38
+ - An always-ask approval request for the merge (on the `orchestrator` bus channel).
39
+ - After approval: the release tag, the previous tag (rollback target), and a deploy hand-off note.
40
+ - Rollback events when a threshold trips.
41
+ </outputs>
42
+
43
+ <key_behaviors>
44
+ - Progressive and reversible: prefer the smallest safe step; every action has a named undo.
45
+ - Pause for human confirmation on any destructive or production-facing op.
46
+ - Return a tight verdict (tag, rollback target, status) — not a wall of git output.
47
+ - Roll back, never rewrite. History stays intact and auditable.
48
+ </key_behaviors>
49
+
50
+ <output_format>
51
+ Return a compact report:
52
+ - `status`: prepared | tagged | rolled_back | blocked
53
+ - `merge`: branch(es) → target, commit count
54
+ - `tag`: the release tag (or null)
55
+ - `rollback_target`: previous tag / revert sha
56
+ - `approval`: the human gate state (pending | granted)
57
+ - `notes`: anything the coordinator must act on
58
+ </output_format>
Binary file
Binary file
Binary file
Binary file
@@ -1,30 +1,11 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 2000 2000" width="2000" height="2000">
2
- <defs>
3
- <linearGradient id="panGrad" x1="0%" y1="0%" x2="100%" y2="100%">
4
- <stop offset="0%" stop-color="#EE1515"/>
5
- <stop offset="45%" stop-color="#FF4444"/>
6
- <stop offset="55%" stop-color="#222224"/>
7
- <stop offset="100%" stop-color="#333336"/>
8
- </linearGradient>
9
- <linearGradient id="accentGrad" x1="0%" y1="0%" x2="100%" y2="0%">
10
- <stop offset="0%" stop-color="#FFCC00"/>
11
- <stop offset="100%" stop-color="#FFE066"/>
12
- </linearGradient>
13
- <filter id="softShadow">
14
- <feDropShadow dx="0" dy="8" stdDeviation="16" flood-color="#EE1515" flood-opacity="0.3"/>
15
- </filter>
16
- </defs>
17
-
18
- <!-- Pokeball stripe accent -->
19
- <rect x="0" y="960" width="2000" height="80" fill="url(#accentGrad)" opacity="0.15"/>
20
-
21
- <!-- Main wordmark -->
22
- <g transform="translate(1000, 920)" filter="url(#softShadow)">
23
- <text fill="url(#panGrad)" font-family="'Helvetica Neue', 'Arial Black', Helvetica, Arial, sans-serif" font-size="420" font-weight="900" text-anchor="middle" letter-spacing="-10">PAN</text>
24
- </g>
25
-
26
- <!-- Subtitle -->
27
- <g transform="translate(1000, 1100)">
28
- <text fill="#666" font-family="'Helvetica Neue', Helvetica, Arial, sans-serif" font-size="72" font-weight="300" text-anchor="middle" letter-spacing="24">W I Z A R D</text>
29
- </g>
30
- </svg>
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 2000 2000" width="2000" height="2000">
2
+ <!-- PanWizard mark, transparent (for light surfaces) — node-graph + wordmark -->
3
+ <g transform="translate(740,360) scale(5.2)" stroke-linecap="round">
4
+ <line x1="50" y1="26" x2="26" y2="74" stroke="#5B4BE6" stroke-width="7"/>
5
+ <line x1="50" y1="26" x2="74" y2="74" stroke="#5B4BE6" stroke-width="7"/>
6
+ <circle cx="50" cy="26" r="13" fill="#FF5A3C"/>
7
+ <circle cx="26" cy="74" r="11" fill="#FFCE4A"/>
8
+ <circle cx="74" cy="74" r="11" fill="#1E8E5A"/>
9
+ </g>
10
+ <text x="1000" y="1240" text-anchor="middle" font-family="'Gabarito','Segoe UI',system-ui,sans-serif" font-size="300" font-weight="800" letter-spacing="-8"><tspan fill="#FF5A3C">Pan</tspan><tspan fill="#211E18">Wizard</tspan></text>
11
+ </svg>
@@ -1,43 +1,12 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 2000 2000" width="2000" height="2000">
2
- <defs>
3
- <linearGradient id="bgGrad" x1="0%" y1="0%" x2="0%" y2="100%">
4
- <stop offset="0%" stop-color="#1a1a2e"/>
5
- <stop offset="100%" stop-color="#16213e"/>
6
- </linearGradient>
7
- <linearGradient id="panGrad" x1="0%" y1="0%" x2="100%" y2="100%">
8
- <stop offset="0%" stop-color="#EE1515"/>
9
- <stop offset="45%" stop-color="#FF4444"/>
10
- <stop offset="100%" stop-color="#FF6666"/>
11
- </linearGradient>
12
- <linearGradient id="accentGrad" x1="0%" y1="0%" x2="100%" y2="0%">
13
- <stop offset="0%" stop-color="#FFCC00"/>
14
- <stop offset="100%" stop-color="#FFE066"/>
15
- </linearGradient>
16
- <filter id="glow">
17
- <feDropShadow dx="0" dy="0" stdDeviation="20" flood-color="#EE1515" flood-opacity="0.4"/>
18
- </filter>
19
- <filter id="subtleGlow">
20
- <feDropShadow dx="0" dy="0" stdDeviation="8" flood-color="#FFCC00" flood-opacity="0.3"/>
21
- </filter>
22
- </defs>
23
-
24
- <!-- Background -->
25
- <rect width="2000" height="2000" fill="url(#bgGrad)"/>
26
-
27
- <!-- Pokeball divider line -->
28
- <rect x="0" y="960" width="2000" height="4" fill="url(#accentGrad)" opacity="0.4"/>
29
-
30
- <!-- Small pokeball circle accent (center of divider) -->
31
- <circle cx="1000" cy="962" r="36" fill="none" stroke="url(#accentGrad)" stroke-width="4" opacity="0.3"/>
32
- <circle cx="1000" cy="962" r="14" fill="url(#accentGrad)" opacity="0.25"/>
33
-
34
- <!-- Main wordmark -->
35
- <g transform="translate(1000, 920)" filter="url(#glow)">
36
- <text fill="url(#panGrad)" font-family="'Helvetica Neue', 'Arial Black', Helvetica, Arial, sans-serif" font-size="420" font-weight="900" text-anchor="middle" letter-spacing="-10">PAN</text>
37
- </g>
38
-
39
- <!-- Subtitle -->
40
- <g transform="translate(1000, 1100)" filter="url(#subtleGlow)">
41
- <text fill="url(#accentGrad)" font-family="'Helvetica Neue', Helvetica, Arial, sans-serif" font-size="72" font-weight="300" text-anchor="middle" letter-spacing="24">W I Z A R D</text>
42
- </g>
43
- </svg>
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 2000 2000" width="2000" height="2000">
2
+ <!-- PanWizard mark on ink — node-graph: coral parent → indigo links → butter + green children -->
3
+ <rect width="2000" height="2000" rx="220" fill="#211E18"/>
4
+ <g transform="translate(740,360) scale(5.2)" stroke-linecap="round">
5
+ <line x1="50" y1="26" x2="26" y2="74" stroke="#5B4BE6" stroke-width="7"/>
6
+ <line x1="50" y1="26" x2="74" y2="74" stroke="#5B4BE6" stroke-width="7"/>
7
+ <circle cx="50" cy="26" r="13" fill="#FF5A3C"/>
8
+ <circle cx="26" cy="74" r="11" fill="#FFCE4A"/>
9
+ <circle cx="74" cy="74" r="11" fill="#1E8E5A"/>
10
+ </g>
11
+ <text x="1000" y="1240" text-anchor="middle" font-family="'Gabarito','Segoe UI',system-ui,sans-serif" font-size="300" font-weight="800" letter-spacing="-8"><tspan fill="#FF5A3C">Pan</tspan><tspan fill="#FBF7EE">Wizard</tspan></text>
12
+ </svg>
@@ -0,0 +1,11 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 200" width="400" height="200">
2
+ <rect width="400" height="200" rx="28" fill="#211E18"></rect>
3
+ <g transform="translate(60,54)">
4
+ <line x1="46" y1="24" x2="24" y2="68" stroke="#5B4BE6" stroke-width="6.5" stroke-linecap="round"></line>
5
+ <line x1="46" y1="24" x2="68" y2="68" stroke="#5B4BE6" stroke-width="6.5" stroke-linecap="round"></line>
6
+ <circle cx="46" cy="24" r="12" fill="#FF5A3C"></circle>
7
+ <circle cx="24" cy="68" r="10" fill="#FFCE4A"></circle>
8
+ <circle cx="68" cy="68" r="10" fill="#1E8E5A"></circle>
9
+ </g>
10
+ <text x="170" y="112" font-family="&#39;Gabarito&#39;,&#39;Segoe UI&#39;,sans-serif" font-size="46" font-weight="800" letter-spacing="-1"><tspan fill="#FF5A3C">Pan</tspan><tspan fill="#FBF7EE">Wizard</tspan></text>
11
+ </svg>
@@ -0,0 +1,7 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" width="200" height="200">
2
+ <line x1="50" y1="26" x2="26" y2="74" stroke="#5B4BE6" stroke-width="7" stroke-linecap="round"></line>
3
+ <line x1="50" y1="26" x2="74" y2="74" stroke="#5B4BE6" stroke-width="7" stroke-linecap="round"></line>
4
+ <circle cx="50" cy="26" r="13" fill="#FF5A3C"></circle>
5
+ <circle cx="26" cy="74" r="11" fill="#FFCE4A"></circle>
6
+ <circle cx="74" cy="74" r="11" fill="#1E8E5A"></circle>
7
+ </svg>
Binary file
Binary file
@@ -1,119 +1,39 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 960 540">
2
- <defs>
3
- <linearGradient id="bgGrad" x1="0%" y1="0%" x2="0%" y2="100%">
4
- <stop offset="0%" stop-color="#1a1a2e"/>
5
- <stop offset="100%" stop-color="#16213e"/>
6
- </linearGradient>
7
- <linearGradient id="panGrad" x1="0%" y1="0%" x2="100%" y2="0%">
8
- <stop offset="0%" stop-color="#EE1515"/>
9
- <stop offset="100%" stop-color="#FF6666"/>
10
- </linearGradient>
11
- <linearGradient id="gold" x1="0%" y1="0%" x2="100%" y2="0%">
12
- <stop offset="0%" stop-color="#FFCC00"/>
13
- <stop offset="100%" stop-color="#FFE066"/>
14
- </linearGradient>
15
- <linearGradient id="barGrad" x1="0%" y1="0%" x2="100%" y2="0%">
16
- <stop offset="0%" stop-color="#222236"/>
17
- <stop offset="100%" stop-color="#2a2a40"/>
18
- </linearGradient>
19
- <filter id="glow">
20
- <feDropShadow dx="0" dy="0" stdDeviation="4" flood-color="#EE1515" flood-opacity="0.35"/>
21
- </filter>
22
- <style>
23
- .mono { font-family: 'SF Mono', 'Fira Code', 'JetBrains Mono', Consolas, monospace; }
24
- .sans { font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; }
25
- </style>
26
- </defs>
27
-
28
- <!-- Window frame -->
29
- <rect width="960" height="540" rx="12" fill="#2a2a40"/>
30
- <rect x="1" y="1" width="958" height="538" rx="11" fill="url(#bgGrad)"/>
31
-
32
- <!-- Title bar -->
33
- <rect x="1" y="1" width="958" height="38" rx="11" fill="url(#barGrad)"/>
34
- <rect x="1" y="28" width="958" height="12" fill="url(#bgGrad)"/>
35
-
36
- <!-- Window buttons -->
37
- <circle cx="24" cy="20" r="7" fill="#f7768e"/>
38
- <circle cx="48" cy="20" r="7" fill="#FFCC00"/>
39
- <circle cx="72" cy="20" r="7" fill="#9ece6a"/>
40
-
41
- <!-- Title bar text -->
42
- <text x="480" y="25" text-anchor="middle" class="mono" font-size="12" fill="#555570">pan-wizard</text>
43
-
44
- <!-- Content -->
45
- <g transform="translate(36, 62)">
46
-
47
- <!-- Prompt + command -->
48
- <text class="mono" font-size="14" y="0">
49
- <tspan fill="#9ece6a">~/my-project</tspan>
50
- <tspan fill="#555570"> $ </tspan>
51
- <tspan fill="#c0caf5">npx pan-wizard</tspan>
52
- </text>
53
-
54
- <!-- Clean PAN wordmark -->
55
- <g transform="translate(36, 40)" filter="url(#glow)">
56
- <text fill="url(#panGrad)" class="sans" font-size="72" font-weight="900" letter-spacing="-2">PAN</text>
57
- <text fill="url(#gold)" class="sans" font-size="20" font-weight="300" x="188" y="0" letter-spacing="6">WIZARD</text>
58
- </g>
59
-
60
- <!-- Pokeball divider -->
61
- <line x1="0" y1="124" x2="888" y2="124" stroke="#FFCC00" stroke-opacity="0.2" stroke-width="1"/>
62
- <circle cx="444" cy="124" r="6" fill="none" stroke="#FFCC00" stroke-opacity="0.2" stroke-width="1"/>
63
- <circle cx="444" cy="124" r="2" fill="#FFCC00" opacity="0.25"/>
64
-
65
- <!-- Version + description -->
66
- <text class="mono" font-size="13" y="152">
67
- <tspan fill="#555570">v0.1.0</tspan>
68
- <tspan fill="#3a3a52"> · </tspan>
69
- <tspan fill="#8888aa">Workflow automation for Claude Code</tspan>
70
- </text>
71
-
72
- <!-- Install steps -->
73
- <text class="mono" font-size="13" y="192">
74
- <tspan fill="#9ece6a"> ✔</tspan>
75
- <tspan fill="#c0caf5"> Detected project</tspan>
76
- <tspan fill="#555570"> package.json</tspan>
77
- </text>
78
- <text class="mono" font-size="13" y="216">
79
- <tspan fill="#9ece6a"> ✔</tspan>
80
- <tspan fill="#c0caf5"> Installed</tspan>
81
- <tspan fill="#EE1515"> 32</tspan>
82
- <tspan fill="#c0caf5"> slash commands</tspan>
83
- </text>
84
- <text class="mono" font-size="13" y="240">
85
- <tspan fill="#9ece6a"> ✔</tspan>
86
- <tspan fill="#c0caf5"> Configured agents, workflows, hooks</tspan>
87
- </text>
88
-
89
- <!-- Divider -->
90
- <line x1="0" y1="264" x2="888" y2="264" stroke="#3a3a52" stroke-width="1"/>
91
-
92
- <!-- Quick start hints -->
93
- <text class="mono" font-size="13" y="292">
94
- <tspan fill="#FFCC00"> ▸</tspan>
95
- <tspan fill="#c0caf5"> New project</tspan>
96
- <tspan fill="#555570"> ········ </tspan>
97
- <tspan fill="#EE1515">/pan:new-project</tspan>
98
- </text>
99
- <text class="mono" font-size="13" y="316">
100
- <tspan fill="#FFCC00"> ▸</tspan>
101
- <tspan fill="#c0caf5"> Check progress</tspan>
102
- <tspan fill="#555570"> ····· </tspan>
103
- <tspan fill="#EE1515">/pan:progress</tspan>
104
- </text>
105
- <text class="mono" font-size="13" y="340">
106
- <tspan fill="#FFCC00"> ▸</tspan>
107
- <tspan fill="#c0caf5"> All commands</tspan>
108
- <tspan fill="#555570"> ······· </tspan>
109
- <tspan fill="#EE1515">/pan:help</tspan>
110
- </text>
111
-
112
- <!-- Final prompt -->
113
- <text class="mono" font-size="14" y="390">
114
- <tspan fill="#9ece6a">~/my-project</tspan>
115
- <tspan fill="#555570"> $ </tspan>
116
- <tspan fill="#c0caf5">▌</tspan>
117
- </text>
118
- </g>
119
- </svg>
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 980 470" font-family="'JetBrains Mono','SFMono-Regular',Consolas,monospace">
2
+ <rect width="980" height="470" rx="16" fill="#211E18"/>
3
+ <rect width="980" height="46" rx="16" fill="#2A251D"/>
4
+ <rect y="32" width="980" height="14" fill="#2A251D"/>
5
+ <circle cx="28" cy="23" r="6.5" fill="#FF5A3C"/>
6
+ <circle cx="50" cy="23" r="6.5" fill="#FFCE4A"/>
7
+ <circle cx="72" cy="23" r="6.5" fill="#1E8E5A"/>
8
+ <g transform="translate(434,12) scale(0.22)">
9
+ <line x1="50" y1="26" x2="26" y2="74" stroke="#5B4BE6" stroke-width="9" stroke-linecap="round"/>
10
+ <line x1="50" y1="26" x2="74" y2="74" stroke="#5B4BE6" stroke-width="9" stroke-linecap="round"/>
11
+ <circle cx="50" cy="26" r="13" fill="#FF5A3C"/>
12
+ <circle cx="26" cy="74" r="11" fill="#FFCE4A"/>
13
+ <circle cx="74" cy="74" r="11" fill="#1E8E5A"/>
14
+ </g>
15
+ <text x="460" y="28" font-family="'Gabarito','Segoe UI',sans-serif" font-size="13" font-weight="700"><tspan fill="#FF9077">Pan</tspan><tspan fill="#A7A091">Wizard · pan army</tspan></text>
16
+
17
+ <g transform="translate(40,84)" font-size="14">
18
+ <text y="0"><tspan fill="#76D2A2">~/billing-app</tspan><tspan fill="#6E685B"> $ </tspan><tspan fill="#FF9077">/pan:army </tspan><tspan fill="#FBF7EE">"ship the billing module"</tspan></text>
19
+
20
+ <text y="40"><tspan fill="#FF5A3C" font-weight="700">◆ Mission Control</tspan><tspan fill="#8C8475"> Opus · plans the goal, delegates to squads, never writes code</tspan></text>
21
+
22
+ <text y="78"><tspan fill="#76D2A2"> ✓ </tspan><tspan fill="#8A7DF0" font-weight="700">Architecture</tspan><tspan fill="#C9C3B6"> contract designed</tspan><tspan fill="#6E685B"> · read-only</tspan></text>
23
+
24
+ <text y="110"><tspan fill="#FF9077"> ◐ </tspan><tspan fill="#FF9077" font-weight="700">Build</tspan><tspan fill="#C9C3B6"> parallel agents one isolated worktree each</tspan></text>
25
+ <text y="138"><tspan fill="#6E685B"> ↳ </tspan><tspan fill="#C9C3B6">army/webhooks </tspan><tspan fill="#FF5A3C">████████</tspan><tspan fill="#3A352C">░░</tspan><tspan fill="#8C8475"> building</tspan></text>
26
+ <text y="162"><tspan fill="#6E685B"> ↳ </tspan><tspan fill="#C9C3B6">army/invoice-pdf </tspan><tspan fill="#FF5A3C">██████</tspan><tspan fill="#3A352C">░░░░</tspan><tspan fill="#8C8475"> building</tspan></text>
27
+ <text y="186"><tspan fill="#6E685B"> ↳ </tspan><tspan fill="#C9C3B6">army/usage-meter </tspan><tspan fill="#3FB07A">██████████</tspan><tspan fill="#76D2A2"> ✓ ready</tspan></text>
28
+
29
+ <text y="224"><tspan fill="#76D2A2"> ◐ </tspan><tspan fill="#76D2A2" font-weight="700">Quality</tspan><tspan fill="#C9C3B6"> adversarial review</tspan><tspan fill="#6E685B"> · queued</tspan></text>
30
+
31
+ <text y="256"><tspan fill="#FFD86B"> ⏸ </tspan><tspan fill="#FFD86B" font-weight="700">Release</tspan><tspan fill="#C9C3B6"> squash-merge prepared, CI green</tspan><tspan fill="#FFD86B"> · awaiting human ✋</tspan></text>
32
+
33
+ <line x1="0" y1="284" x2="900" y2="284" stroke="#3A352C" stroke-width="1"/>
34
+
35
+ <text y="314" font-size="13"><tspan fill="#A7A091">autonomy runs up to the irreversible step — </tspan><tspan fill="#FBF7EE">a human approves every merge.</tspan></text>
36
+
37
+ <text y="356"><tspan fill="#76D2A2">~/billing-app</tspan><tspan fill="#6E685B"> $ </tspan><tspan fill="#FBF7EE">▌</tspan></text>
38
+ </g>
39
+ </svg>