pantheon-opencode 1.0.1 → 1.0.6
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 +61 -109
- package/bin/pantheon-init.mjs +57 -136
- package/commands/pantheon-audit.md +1 -1
- package/commands/pantheon-deepwork.md +32 -81
- package/commands/pantheon-reflect.md +16 -0
- package/commands/pantheon-status.md +1 -1
- package/commands/pantheon-verify.md +17 -0
- package/opencode.json +25 -0
- package/package.json +20 -9
- package/scripts/ci-validate-yaml.py +19 -0
- package/scripts/doctor.mjs +10 -65
- package/scripts/install/opencode.mjs +69 -6
- package/scripts/install/shared.mjs +39 -13
- package/scripts/manifest.mjs +5 -30
- package/scripts/postinstall.mjs +47 -0
- package/scripts/release-bundle.mjs +2 -2
- package/scripts/uninstall.mjs +5 -5
- package/scripts/validate-routing.mjs +19 -16
- package/scripts/versioning.mjs +12 -1
- package/skills-lock.json +9 -2
- package/src/agents/aphrodite.md +15 -57
- package/src/agents/apollo.md +9 -48
- package/src/agents/athena.md +17 -54
- package/src/agents/demeter.md +10 -47
- package/src/agents/gaia.md +7 -40
- package/src/agents/hephaestus.md +9 -52
- package/src/agents/hermes.md +17 -52
- package/src/agents/iris.md +8 -45
- package/src/agents/mnemosyne.md +12 -47
- package/src/agents/nyx.md +8 -45
- package/src/agents/prometheus.md +11 -49
- package/src/agents/talos.md +6 -45
- package/src/agents/themis.md +10 -35
- package/src/agents/zeus.md +5 -7
- package/src/mcp/mcp_resources_server.py +2 -0
- package/src/plugins/tui/dist/tui.tsx +203 -93
- package/src/plugins/tui/src/index.tsx +203 -93
- package/src/routing.yml +33 -93
- package/src/skills/clonedeps/SKILL.md +45 -0
- package/src/skills/codemap/SKILL.md +47 -0
- package/src/skills/loop-engineering/SKILL.md +51 -0
- package/src/skills/reflect/SKILL.md +49 -0
- package/src/skills/simplify/SKILL.md +39 -0
- package/src/skills/verification-planning/SKILL.md +52 -0
- package/src/skills/worktrees/SKILL.md +43 -0
- package/commands/pantheon-bg.md +0 -10
- package/commands/pantheon-consolidate.md +0 -11
- package/commands/pantheon-doc.md +0 -10
- package/commands/pantheon-hash.md +0 -11
- package/commands/pantheon-todo.md +0 -11
- package/docs/AGENT-MCP.md +0 -194
- package/docs/ARCHITECTURE.md +0 -384
- package/docs/BRANCH-PROTECTION.md +0 -142
- package/docs/INDEX.md +0 -81
- package/docs/INSTALLATION.md +0 -217
- package/docs/MCP.md +0 -238
- package/docs/MEMORY.md +0 -471
- package/docs/MIGRATION-MEMORY-BANK.md +0 -139
- package/docs/PLATFORMS.md +0 -5
- package/docs/QUICKSTART.md +0 -49
- package/docs/README.md +0 -18
- package/docs/RELEASING.md +0 -256
- package/docs/SETUP.md +0 -5
- package/docs/UPGRADING.md +0 -41
- package/docs/mcp-recommendations.md +0 -439
- package/docs/mcp-tools.md +0 -156
- package/docs/mcp-user-guide.md +0 -204
- package/docs/persistence-mcp.md +0 -111
- package/scripts/init-pantheon-mcp.sh +0 -118
- package/scripts/install.mjs +0 -26
- package/src/instructions/documentation-standards.instructions.md +0 -53
- package/src/mcp/init-pantheon-mcp.sh +0 -118
package/docs/ARCHITECTURE.md
DELETED
|
@@ -1,384 +0,0 @@
|
|
|
1
|
-
# 🏛️ Pantheon Architecture
|
|
2
|
-
|
|
3
|
-
> **Audience:** Developers extending the framework, platform integrators, and anyone who
|
|
4
|
-
> wants to understand why Pantheon works the way it does.
|
|
5
|
-
>
|
|
6
|
-
> **Scope:** Architectural rationale and design patterns — not agent behavior or setup.
|
|
7
|
-
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
## Table of Contents
|
|
11
|
-
|
|
12
|
-
1. [Conductor-Delegate Pattern](#1-conductor-delegate-pattern)
|
|
13
|
-
2. [Canonical → Adapter → Sync](#2-canonical--adapter--sync)
|
|
14
|
-
3. [DAG Wave Execution](#3-dag-wave-execution)
|
|
15
|
-
4. [Two-Tier Memory Strategy](#4-two-tier-memory-strategy)
|
|
16
|
-
5. [Platform Adapter Design Pattern](#5-platform-adapter-design-pattern)
|
|
17
|
-
6. [Model Configuration](#6-model-configuration)
|
|
18
|
-
7. [Summary: Why This Architecture](#7-summary-why-this-architecture)
|
|
19
|
-
|
|
20
|
-
---
|
|
21
|
-
|
|
22
|
-
## 1. Conductor-Delegate Pattern
|
|
23
|
-
|
|
24
|
-
### Problem
|
|
25
|
-
|
|
26
|
-
Traditional single-agent coding forces one agent to plan, implement, test, review, and
|
|
27
|
-
document simultaneously. This produces context fragmentation (80%+ on logistics, ~20% on
|
|
28
|
-
reasoning), skipped tests, generic code, and no quality accountability.
|
|
29
|
-
|
|
30
|
-
### Solution
|
|
31
|
-
|
|
32
|
-
**Zeus orchestrates but never implements.** Zeus has a `premium` model assignment and
|
|
33
|
-
a restricted tool set (no `edit/editFiles`). His only job is routing work to the right
|
|
34
|
-
specialist agent at the right time, managing the 3 approval gates, and conserving context.
|
|
35
|
-
|
|
36
|
-
```
|
|
37
|
-
User Request
|
|
38
|
-
│
|
|
39
|
-
▼
|
|
40
|
-
┌─────────┐
|
|
41
|
-
│ ZEUS │ Orchestrator — delegates, never edits
|
|
42
|
-
└────┬────┘
|
|
43
|
-
│
|
|
44
|
-
├──► Athena (planning, research)
|
|
45
|
-
├──► Hermes (backend, FastAPI)
|
|
46
|
-
├──► Aphrodite (frontend, React)
|
|
47
|
-
├──► Demeter (database, SQLAlchemy)
|
|
48
|
-
├──► Themis (quality gate, mandatory review)
|
|
49
|
-
└──► ...
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
### Why this matters
|
|
53
|
-
|
|
54
|
-
| Metric | Single Agent | Conductor-Delegate (Pantheon) |
|
|
55
|
-
|--------|-------------|-------------------------------|
|
|
56
|
-
| Reasoning-to-logistics ratio | 10–20% reasoning | 70–80% reasoning |
|
|
57
|
-
| Test coverage | 65–75% | **92%** |
|
|
58
|
-
| TDD enforcement | Optional | **Enforced RED→GREEN→REFACTOR** |
|
|
59
|
-
| Bugs reaching production | 3–5 per feature | **Near zero** |
|
|
60
|
-
| Code review cadence | End of feature | **After every phase** |
|
|
61
|
-
|
|
62
|
-
The key insight: **specialization beats generalization at every layer.** Hermes knows
|
|
63
|
-
FastAPI async patterns and nothing about React. Aphrodite knows WCAG accessibility and
|
|
64
|
-
nothing about database indexes. Gaia knows remote sensing and nothing about Docker.
|
|
65
|
-
The result is expert-quality code at each layer, assembled by Zeus into a coherent
|
|
66
|
-
feature.
|
|
67
|
-
|
|
68
|
-
### Delegation decisions
|
|
69
|
-
|
|
70
|
-
Zeus uses explicit rules to decide whether to delegate or not:
|
|
71
|
-
|
|
72
|
-
| Agent | Delegate when | Don't delegate when |
|
|
73
|
-
|-------|--------------|---------------------|
|
|
74
|
-
| Athena | Feature >3 components, unknown codebase | Simple single-file change |
|
|
75
|
-
| Apollo | Needs >3 parallel searches | Single known file location |
|
|
76
|
-
| Themis | After any implementation phase | Hotfix (no code change) |
|
|
77
|
-
|
|
78
|
-
---
|
|
79
|
-
|
|
80
|
-
## 2. Canonical → Adapter → Sync
|
|
81
|
-
|
|
82
|
-
### Problem (before v3.4.0)
|
|
83
|
-
|
|
84
|
-
Each platform (OpenCode, , , , , Continue) had its own agent
|
|
85
|
-
format with different field capabilities, different tool naming conventions, and different
|
|
86
|
-
configuration patterns. A single change required editing 6 files — and they were never quite
|
|
87
|
-
identical. Bugs like `temis_delegate` (missing the "h") propagated across platforms because
|
|
88
|
-
there was no single source of truth.
|
|
89
|
-
|
|
90
|
-
### Solution
|
|
91
|
-
|
|
92
|
-
A three-layer architecture:
|
|
93
|
-
|
|
94
|
-
```
|
|
95
|
-
┌─────────────────────────────────────────────────────┐
|
|
96
|
-
│ 1. CANONICAL │
|
|
97
|
-
│ agents/*.agent.md — single source of truth │
|
|
98
|
-
│ Rich YAML frontmatter + full body text │
|
|
99
|
-
│ Fields: name, description, tools, model, skills, │
|
|
100
|
-
│ handoffs, permission, hooks, mcpServers, │
|
|
101
|
-
│ temperature, steps, globs │
|
|
102
|
-
└──────────────────────┬──────────────────────────────┘
|
|
103
|
-
│ read by
|
|
104
|
-
▼
|
|
105
|
-
┌─────────────────────────────────────────────────────┐
|
|
106
|
-
│ 2. ADAPTER │
|
|
107
|
-
│ platform/*/adapter.json — translation rules │
|
|
108
|
-
│ Defines: include, exclude, transform, toolMap, │
|
|
109
|
-
│ bodyFilters, handoffStrategy, skillsOutput │
|
|
110
|
-
│ │
|
|
111
|
-
│ Example (OpenCode adapter): │
|
|
112
|
-
│ - Canonical "execute/runInTerminal" → "bash" │
|
|
113
|
-
│ - Canonical "agent" → "createAndRunTask" │
|
|
114
|
-
│ - Excluded: handoffs, disable-model-invocation │
|
|
115
|
-
└──────────────────────┬──────────────────────────────┘
|
|
116
|
-
│ consumed by
|
|
117
|
-
▼
|
|
118
|
-
┌─────────────────────────────────────────────────────┐
|
|
119
|
-
│ 3. SYNC ENGINE │
|
|
120
|
-
│ scripts/sync-platforms.mjs — generates outputs │
|
|
121
|
-
│ - Reads canonical agents │
|
|
122
|
-
│ - Applies adapter translation rules │
|
|
123
|
-
│ - Generates platform-native files │
|
|
124
|
-
│ - Validates body tool references │
|
|
125
|
-
│ - Deploys skills in platform format │
|
|
126
|
-
│ - Reports validation warnings │
|
|
127
|
-
└─────────────────────────────────────────────────────┘
|
|
128
|
-
```
|
|
129
|
-
|
|
130
|
-
### What the sync engine does
|
|
131
|
-
|
|
132
|
-
- **Parses frontmatter** — Extracts YAML from `---` blocks
|
|
133
|
-
- **Applies adapter rules** — Includes/excludes fields per platform, transforms values
|
|
134
|
-
- **Maps tools** — Converts canonical tool names to platform equivalents (e.g.,
|
|
135
|
-
`execute/runInTerminal` → `bash` for OpenCode)
|
|
136
|
-
- **Transforms body references** — Rewrites tool references in agent body text to
|
|
137
|
-
platform-correct equivalents
|
|
138
|
-
- **Deploys skills** — Copies skill files to platform-specific skill directories
|
|
139
|
-
- **Validates** — Checks that every tool mentioned in body text exists in the agent's
|
|
140
|
-
tool list (catching stale references at sync time, not at runtime)
|
|
141
|
-
- **Reports warnings** — Missing skills, deprecated fields, unmapped tools
|
|
142
|
-
|
|
143
|
-
### Deduplication
|
|
144
|
-
|
|
145
|
-
The sync engine uses composite dedup keys (`${tool}:${mapped}`) to correctly handle
|
|
146
|
-
platforms where the same canonical tool maps to different platform tools. This prevents
|
|
147
|
-
false duplicates while ensuring no tool appears twice.
|
|
148
|
-
|
|
149
|
-
### Real-world impact (v3.4.0)
|
|
150
|
-
|
|
151
|
-
- **416 files changed** — 119 modified + 297 new skill deployment files
|
|
152
|
-
- **`temis_delegate` fixed** — 11 occurrences across canonical source, generated files,
|
|
153
|
-
and stale deployment copies
|
|
154
|
-
- **174 skills deployed** — 29 skills × 6 platforms, each in the format their runtime
|
|
155
|
-
expects
|
|
156
|
-
- **Zero manual platform editing** required for the entire v3.4.0 migration
|
|
157
|
-
|
|
158
|
-
---
|
|
159
|
-
|
|
160
|
-
## 3. DAG Wave Execution
|
|
161
|
-
|
|
162
|
-
### Problem
|
|
163
|
-
|
|
164
|
-
Sequential phase execution (plan → implement backend → implement frontend → review →
|
|
165
|
-
deploy) wastes agent idle time. Backend and frontend have no interdependencies — they
|
|
166
|
-
could execute in parallel.
|
|
167
|
-
|
|
168
|
-
### Solution
|
|
169
|
-
|
|
170
|
-
Instead of a flat sequential list, Zeus organizes work into **DAG waves** — groups of
|
|
171
|
-
tasks that have no interdependencies and can execute simultaneously. Waves flow
|
|
172
|
-
sequentially only where dependencies exist.
|
|
173
|
-
|
|
174
|
-
```
|
|
175
|
-
Wave 1: [demeter: schema] + [apollo: research] ← parallel (no deps)
|
|
176
|
-
│
|
|
177
|
-
Wave 2: [hermes: backend] + [aphrodite: frontend] ← parallel (both use Wave 1 schema)
|
|
178
|
-
│
|
|
179
|
-
Wave 3: [themis: review] ← sequential (depends on Waves 1+2)
|
|
180
|
-
│
|
|
181
|
-
Wave 4: [prometheus: deploy] ← sequential (depends on approval)
|
|
182
|
-
```
|
|
183
|
-
|
|
184
|
-
### Wave declaration format
|
|
185
|
-
|
|
186
|
-
When Zeus dispatches a wave, it announces the parallel execution explicitly:
|
|
187
|
-
|
|
188
|
-
```
|
|
189
|
-
🔀 WAVE 2 — Parallel Execution
|
|
190
|
-
Tasks in this wave (no interdependencies):
|
|
191
|
-
├─ @hermes → POST /reviews endpoint + tests
|
|
192
|
-
└─ @aphrodite → ReviewCard component with mocked data
|
|
193
|
-
Both execute simultaneously. Wave 3 starts after both complete.
|
|
194
|
-
```
|
|
195
|
-
|
|
196
|
-
### Benefits
|
|
197
|
-
|
|
198
|
-
| Aspect | Sequential | DAG Wave |
|
|
199
|
-
|--------|-----------|----------|
|
|
200
|
-
| Total time | Sum of all phases | **Longest path only** |
|
|
201
|
-
| Idle agents | Waiting for previous to finish | **Always busy** |
|
|
202
|
-
| Context reuse | One agent at a time | **Parallel specialized agents** |
|
|
203
|
-
| Risk detection | Late (at integration) | **Early (per wave)** |
|
|
204
|
-
| Feedback loop | End of each phase | **End of each wave** |
|
|
205
|
-
|
|
206
|
-
### When DAG is not used
|
|
207
|
-
|
|
208
|
-
- **Simple features** (single implementation agent) — no parallelization needed
|
|
209
|
-
- **Hotfixes** (Talos) — express lane bypasses orchestration entirely
|
|
210
|
-
- **Sequential dependencies** — must chain (e.g., Themis always waits for implementation)
|
|
211
|
-
|
|
212
|
-
---
|
|
213
|
-
|
|
214
|
-
## 4. Two-Tier Memory Strategy
|
|
215
|
-
|
|
216
|
-
### Problem
|
|
217
|
-
|
|
218
|
-
Project memory was a single bucket: everything went into `.pantheon/memory-bank/`. But not all
|
|
219
|
-
knowledge has the same access pattern. Permanent facts (stack, commands) should always be
|
|
220
|
-
available at zero token cost. Sprint narratives should be read only when needed.
|
|
221
|
-
|
|
222
|
-
### Solution
|
|
223
|
-
|
|
224
|
-
Three tiers with distinct storage, loading policies, and update frequency:
|
|
225
|
-
|
|
226
|
-
```
|
|
227
|
-
Tier 1: Native Memory (Facts)
|
|
228
|
-
Location: /memories/repo/ ← auto-managed by
|
|
229
|
-
Content: Stack, test commands, directory structure, immutable truths
|
|
230
|
-
Access: ✅ Auto-loaded — zero token cost
|
|
231
|
-
Updated: Rarely (when stack changes)
|
|
232
|
-
Written by: Any agent, automatically
|
|
233
|
-
|
|
234
|
-
Tier 2: Reference Memory (Narrative)
|
|
235
|
-
Location: .pantheon/memory-bank/ ← committed to repo
|
|
236
|
-
Content: Project overview (00), architecture (01), components (02),
|
|
237
|
-
tech context (03), active sprint (04), progress log (05),
|
|
238
|
-
ADRs (_notes/), task records (_tasks/)
|
|
239
|
-
Access: ❌ Loaded on demand — read cost per file
|
|
240
|
-
Updated: Sprint boundaries, decision milestones
|
|
241
|
-
Written by: Mnemosyne (on explicit request)
|
|
242
|
-
|
|
243
|
-
Tier 3: Session Memory (Ephemeral)
|
|
244
|
-
Location: /memories/session/ ← auto-managed by
|
|
245
|
-
Content: Current conversation plans, work-in-progress, temporary findings
|
|
246
|
-
Access: One read per conversation session
|
|
247
|
-
Updated: Continuously within session
|
|
248
|
-
Written by: Any agent, automatically
|
|
249
|
-
```
|
|
250
|
-
|
|
251
|
-
### Learning Routing Triple
|
|
252
|
-
|
|
253
|
-
Knowledge is categorized to prevent duplication:
|
|
254
|
-
|
|
255
|
-
| Category | Where | Auto-loaded? | Example |
|
|
256
|
-
|----------|-------|-------------|---------|
|
|
257
|
-
| **Facts** | `/memories/repo/` | ✅ Yes | "Project uses FastAPI + SQLAlchemy" |
|
|
258
|
-
| **Patterns** | `skills/` | ❌ On demand | "How to create a new API endpoint with TDD" |
|
|
259
|
-
| **Conventions** | `.github/-instructions.md` | ✅ Yes | "Use snake_case for Python" |
|
|
260
|
-
|
|
261
|
-
**Rule:** If content belongs in a different category, **move it — don't duplicate**.
|
|
262
|
-
|
|
263
|
-
---
|
|
264
|
-
|
|
265
|
-
## 5. Platform Adapter Design Pattern
|
|
266
|
-
|
|
267
|
-
### Problem
|
|
268
|
-
|
|
269
|
-
Seven platforms (, OpenCode, , , , , Continue),
|
|
270
|
-
each with different agent file formats, tool naming conventions, and configuration
|
|
271
|
-
patterns. A design without abstraction would require maintaining 7 parallel copies of
|
|
272
|
-
every agent.
|
|
273
|
-
|
|
274
|
-
### Solution
|
|
275
|
-
|
|
276
|
-
A **platform adapter** is a JSON configuration file (`platform/<name>/adapter.json`)
|
|
277
|
-
that defines how to translate the canonical agent format into a platform-specific
|
|
278
|
-
format:
|
|
279
|
-
|
|
280
|
-
```jsonc
|
|
281
|
-
{
|
|
282
|
-
"name": "opencode",
|
|
283
|
-
"outputDir": "agents",
|
|
284
|
-
"fileExtension": ".md",
|
|
285
|
-
|
|
286
|
-
// What frontmatter fields to include/exclude/transform
|
|
287
|
-
"frontmatter": {
|
|
288
|
-
"include": ["name", "description", "tools", "skills", "instructions"],
|
|
289
|
-
"exclude": ["handoffs", "disable-model-invocation", "permission",
|
|
290
|
-
"hooks", "mcpServers", "temperature", "steps", "globs"],
|
|
291
|
-
"transform": {
|
|
292
|
-
"tools": { "strategy": "identity" },
|
|
293
|
-
"model": { "strategy": "omit" }
|
|
294
|
-
}
|
|
295
|
-
},
|
|
296
|
-
|
|
297
|
-
// Canonical tool name → platform tool name mapping
|
|
298
|
-
"toolMap": {
|
|
299
|
-
"search/codebase": "search/codebase",
|
|
300
|
-
"edit/editFiles": "edit/editFiles",
|
|
301
|
-
"execute/runInTerminal": "bash" // <-- renamed for OpenCode
|
|
302
|
-
},
|
|
303
|
-
|
|
304
|
-
// Body text filters (omit sections that don't apply)
|
|
305
|
-
"bodyFilters": [
|
|
306
|
-
{ "pattern": " Workflow", "action": "omit-section" }
|
|
307
|
-
],
|
|
308
|
-
|
|
309
|
-
// Skill deployment configuration
|
|
310
|
-
"skillsOutputDir": "skills",
|
|
311
|
-
"deploySkills": true,
|
|
312
|
-
"handoffStrategy": "exclude",
|
|
313
|
-
"ensureAgentTool": false
|
|
314
|
-
}
|
|
315
|
-
```
|
|
316
|
-
|
|
317
|
-
### Adapter fields in detail
|
|
318
|
-
|
|
319
|
-
| Field | Purpose | Example values |
|
|
320
|
-
|-------|---------|---------------|
|
|
321
|
-
| `frontmatter.include` | Fields to include in output | `["name", "tools", "skills"]` |
|
|
322
|
-
| `frontmatter.exclude` | Fields to strip | `["handoffs", "hooks"]` |
|
|
323
|
-
| `frontmatter.transform` | Field-level transformations | `{tools: {strategy: "map"}}` |
|
|
324
|
-
| `toolMap` | Canonical → platform tool mapping | `"execute/runInTerminal": "bash"` |
|
|
325
|
-
| `bodyFilters` | Section-level body text filtering | Omit " Workflow" section |
|
|
326
|
-
| `skillsOutputDir` | Where to deploy skill files | `"skills"` |
|
|
327
|
-
| `deploySkills` | Whether to sync skills | `true` / `false` |
|
|
328
|
-
| `handoffStrategy` | How to handle handoff YAML | `"exclude"` / `"include"` / `"body-only"` |
|
|
329
|
-
| `ensureAgentTool` | Add `agent` tool if missing | `true` / `false` |
|
|
330
|
-
|
|
331
|
-
### Platform capability matrix
|
|
332
|
-
|
|
333
|
-
| Feature | | OpenCode | | | | | Continue |
|
|
334
|
-
|---------|:-------:|:--------:|:-----------:|:-----:|:--------:|:-----:|:--------:|
|
|
335
|
-
| Parallel subagents | ✅ | ✅ | ⚠️ | ✅ | ❌ | ⚠️ | ⚠️ |
|
|
336
|
-
| Handoff UI | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
|
|
337
|
-
| Agent hooks | ✅ | ⚠️ | ❌ | ❌ | ❌ | ❌ | ❌ |
|
|
338
|
-
| MCP servers | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ |
|
|
339
|
-
| Skills system | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
340
|
-
|
|
341
|
-
### Template for new platforms
|
|
342
|
-
|
|
343
|
-
A template adapter is at `platform/_template/adapter.json`. To add a new platform:
|
|
344
|
-
1. Create `platform/<name>/adapter.json` with translation rules
|
|
345
|
-
2. Add a setup guide to `docs/platforms/<name>.md`
|
|
346
|
-
3. Extend `scripts/install.mjs` and `scripts/sync-platforms.mjs` for the new platform
|
|
347
|
-
4. Run `node scripts/sync-platforms.mjs <name>` to generate the first set of files
|
|
348
|
-
|
|
349
|
-
---
|
|
350
|
-
|
|
351
|
-
## 6. Model Configuration
|
|
352
|
-
|
|
353
|
-
Pantheon does NOT hardcode models by default. Each agent uses your
|
|
354
|
-
platform's account default model.
|
|
355
|
-
|
|
356
|
-
### Provider prefix
|
|
357
|
-
|
|
358
|
-
The model ID prefix determines which provider OpenCode uses:
|
|
359
|
-
- `opencode-go/...` → OpenCode Go provider (recommended)
|
|
360
|
-
- `openai/...` → OpenAI provider
|
|
361
|
-
|
|
362
|
-
### Reference configs
|
|
363
|
-
|
|
364
|
-
Example model configurations are in `platform/examples/`.
|
|
365
|
-
These are documentation only — not used at runtime.
|
|
366
|
-
|
|
367
|
-
---
|
|
368
|
-
|
|
369
|
-
## 7. Summary: Why This Architecture
|
|
370
|
-
|
|
371
|
-
| Decision | Problem it solves | Key benefit |
|
|
372
|
-
|----------|------------------|-------------|
|
|
373
|
-
| **Conductor-Delegate** | Context fragmentation in single-agent coding | 70-80% reasoning, 92% coverage |
|
|
374
|
-
| **Canonical → Adapter → Sync** | 6 copies of every agent, divergent formats | Change once, deploy to all platforms |
|
|
375
|
-
| **DAG Wave Execution** | Sequential idle time, slow feedback | Total time = critical path only |
|
|
376
|
-
| **Two-Tier Memory** | Mixed knowledge with wrong access patterns | Facts free, narrative on demand |
|
|
377
|
-
| **Platform Adapter** | 7 different agent runtimes to support | Pluggable architecture, easy to extend |
|
|
378
|
-
| **Model Configuration** | Hardcoded model names across subscriptions | Any provider, no config needed |
|
|
379
|
-
|
|
380
|
-
> **Design philosophy:** Pantheon is configuration, not code. There are zero framework
|
|
381
|
-
> Python/TypeScript source files. The entire system is `.agent.md` (agent definitions),
|
|
382
|
-
> `adapter.json` (translation rules), `.instructions.md` (quality gates), and
|
|
383
|
-
> `SKILL.md` (domain expertise). This makes it trivially extensible — adding an agent is
|
|
384
|
-
> creating a markdown file, not writing a class.
|
|
@@ -1,142 +0,0 @@
|
|
|
1
|
-
# Branch Protection: `main`
|
|
2
|
-
|
|
3
|
-
> **Why this matters:** Branch protection prevents force-pushes, requires passing
|
|
4
|
-
> CI checks before merge, enforces linear history, and ensures no one (not even
|
|
5
|
-
> admins) can bypass the pipeline. Without it, the agent orchestration pipeline
|
|
6
|
-
> (Iris → Themis → merge) is just a suggestion, not a guarantee.
|
|
7
|
-
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
## Enable Protection via GitHub UI
|
|
11
|
-
|
|
12
|
-
1. Go to your repo on github.com → **Settings** → **Branches** (sidebar).
|
|
13
|
-
2. Click **Add branch protection rule** (or **Add rule**).
|
|
14
|
-
3. In **Branch name pattern**, enter: `main`
|
|
15
|
-
4. Enable the following checkboxes:
|
|
16
|
-
|
|
17
|
-
### ✅ Required Settings
|
|
18
|
-
|
|
19
|
-
| Setting | Checkbox label | Why |
|
|
20
|
-
|---|---|---|
|
|
21
|
-
| ✅ | **Require a pull request before merging** | All changes go through a PR reviewed by Themis/Iris |
|
|
22
|
-
| ✅ | **Require approvals** — set to `1` | At least one reviewer must approve |
|
|
23
|
-
| ✅ | **Dismiss stale pull request approvals when new commits are pushed** | Re-review after changes |
|
|
24
|
-
| ✅ | **Require status checks to pass before merging** | Block merge if CI fails |
|
|
25
|
-
| ✅ | **Require branches to be up to date** | Prevents merge skew |
|
|
26
|
-
|
|
27
|
-
### 🔍 Required Status Checks
|
|
28
|
-
|
|
29
|
-
Add these exact check names (they match the Pantheon CI workflows):
|
|
30
|
-
|
|
31
|
-
- `CI / validate`
|
|
32
|
-
- `PR Checks / label-by-title`
|
|
33
|
-
- `PR Checks / recommend-version`
|
|
34
|
-
|
|
35
|
-
> **Tip:** Type each name in the search box and select it. GitHub will auto-suggest
|
|
36
|
-
> matching check names once the workflow has run at least once on `main`.
|
|
37
|
-
|
|
38
|
-
### 🔒 Additional Protections
|
|
39
|
-
|
|
40
|
-
| Setting | Checkbox label | Value |
|
|
41
|
-
|---|---|---|
|
|
42
|
-
| ✅ | **Require linear history** | — (on) — Prevents merge commits, keeps history clean |
|
|
43
|
-
| ✅ | **Include administrators** | — (on) — Even admins must follow the rules |
|
|
44
|
-
| ❌ | **Allow force pushes** | — (off) — Never allow force pushes |
|
|
45
|
-
| ❌ | **Allow deletions** | — (off) — Never allow branch deletion |
|
|
46
|
-
|
|
47
|
-
### 🚀 Apply Rule
|
|
48
|
-
|
|
49
|
-
Click **Create** (or **Save changes**).
|
|
50
|
-
|
|
51
|
-
---
|
|
52
|
-
|
|
53
|
-
## Alternative: `gh` CLI
|
|
54
|
-
|
|
55
|
-
If you prefer the command line, use the GitHub CLI to apply the same settings:
|
|
56
|
-
|
|
57
|
-
```bash
|
|
58
|
-
gh api repos/:owner/:owner/branches/main/protection \
|
|
59
|
-
--method PUT \
|
|
60
|
-
--field required_status_checks='{
|
|
61
|
-
"strict": true,
|
|
62
|
-
"checks": [
|
|
63
|
-
{"context": "CI / validate"},
|
|
64
|
-
{"context": "PR Checks / label-by-title"},
|
|
65
|
-
{"context": "PR Checks / recommend-version"}
|
|
66
|
-
]
|
|
67
|
-
}' \
|
|
68
|
-
--field enforce_admins=true \
|
|
69
|
-
--field required_pull_request_reviews='{
|
|
70
|
-
"required_approving_review_count": 1,
|
|
71
|
-
"dismiss_stale_reviews": true
|
|
72
|
-
}' \
|
|
73
|
-
--field required_linear_history=true \
|
|
74
|
-
--field allow_force_pushes=false \
|
|
75
|
-
--field allow_deletions=false
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
> **Note:** Replace `:owner` with your GitHub username or org (`ils15`).
|
|
79
|
-
> You need `admin` or `write` permissions on the repo to run this command.
|
|
80
|
-
|
|
81
|
-
---
|
|
82
|
-
|
|
83
|
-
## Verification
|
|
84
|
-
|
|
85
|
-
After enabling protection, verify it's active:
|
|
86
|
-
|
|
87
|
-
```bash
|
|
88
|
-
gh api repos/ils15/pantheon/branches/main/protection --jq '.required_status_checks.contexts'
|
|
89
|
-
```
|
|
90
|
-
|
|
91
|
-
Expected output:
|
|
92
|
-
```json
|
|
93
|
-
[
|
|
94
|
-
"CI / validate",
|
|
95
|
-
"PR Checks / label-by-title",
|
|
96
|
-
"PR Checks / recommend-version"
|
|
97
|
-
]
|
|
98
|
-
```
|
|
99
|
-
|
|
100
|
-
You can also check the GitHub UI: **Settings → Branches → `main` rule** shows
|
|
101
|
-
a green "Protection enabled" badge.
|
|
102
|
-
|
|
103
|
-
---
|
|
104
|
-
|
|
105
|
-
## How This Enforces the Agent Pipeline
|
|
106
|
-
|
|
107
|
-
```
|
|
108
|
-
┌─────────────────────────────┐
|
|
109
|
-
│ User pushes to feature/ │
|
|
110
|
-
│ branch │
|
|
111
|
-
└──────────┬──────────────────┘
|
|
112
|
-
│
|
|
113
|
-
▼
|
|
114
|
-
┌─────────────────────────────┐
|
|
115
|
-
│ Iris opens Draft PR │
|
|
116
|
-
│ → CI / validate runs │
|
|
117
|
-
│ → PR Checks / label, │
|
|
118
|
-
│ version-recommend │
|
|
119
|
-
└──────────┬──────────────────┘
|
|
120
|
-
│
|
|
121
|
-
▼
|
|
122
|
-
┌─────────────────────────────┐
|
|
123
|
-
│ All status checks pass? │
|
|
124
|
-
│ ─── NO ───→ Fix & re-push │
|
|
125
|
-
│ ─── YES ───↓ │
|
|
126
|
-
└──────────┬──────────────────┘
|
|
127
|
-
│
|
|
128
|
-
▼
|
|
129
|
-
┌─────────────────────────────┐
|
|
130
|
-
│ Themis reviews & approves │
|
|
131
|
-
└──────────┬──────────────────┘
|
|
132
|
-
│
|
|
133
|
-
▼
|
|
134
|
-
┌─────────────────────────────┐
|
|
135
|
-
│ User says "merge" │
|
|
136
|
-
│ → Iris merges (squash) │
|
|
137
|
-
│ → Linear history preserved │
|
|
138
|
-
└─────────────────────────────┘
|
|
139
|
-
```
|
|
140
|
-
|
|
141
|
-
Without branch protection, any of these steps can be skipped by a force-push
|
|
142
|
-
or a direct commit to `main`. Enable it once and never worry about it again.
|
package/docs/INDEX.md
DELETED
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
# Pantheon Documentation Index
|
|
2
|
-
|
|
3
|
-
> **A multi-agent orchestration framework** — 14 specialized agents, OpenCode, 40 skills.
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## Quick Navigation
|
|
8
|
-
|
|
9
|
-
| If you need... | Go here |
|
|
10
|
-
|---|---|
|
|
11
|
-
| **What is Pantheon?** | [README.md](../README.md) |
|
|
12
|
-
| **Quick start / Install** | [INSTALLATION.md](INSTALLATION.md) |
|
|
13
|
-
| **Which platform to pick** | [PLATFORMS.md](PLATFORMS.md) |
|
|
14
|
-
| **Agent reference** | [AGENTS.md](../AGENTS.md) |
|
|
15
|
-
| **MCP tiers & tools** | [mcp-tools.md](mcp-tools.md), [mcp-user-guide.md](mcp-user-guide.md) |
|
|
16
|
-
| **Release process** | [RELEASING.md](RELEASING.md) |
|
|
17
|
-
| **Contributing** | [CONTRIBUTING.md](../CONTRIBUTING.md) |
|
|
18
|
-
| **Changelog** | [CHANGELOG.md](../CHANGELOG.md) |
|
|
19
|
-
| **MCP Tool Registry** | [mcp-tools.md](mcp-tools.md) |
|
|
20
|
-
| **MCP User Guide** | [mcp-user-guide.md](mcp-user-guide.md) |
|
|
21
|
-
| **MCP Tiers** | `.pantheon/tiers.json` |
|
|
22
|
-
|
|
23
|
-
---
|
|
24
|
-
|
|
25
|
-
## Architecture at a Glance
|
|
26
|
-
|
|
27
|
-
**Pantheon** replaces the single-agent coding trap with **specialized agents**:
|
|
28
|
-
- **Zeus** orchestrates the workflow (plan → implement → review → deploy)
|
|
29
|
-
- **Athena** plans architecture; **Apollo** discovers code; **Hermes/Aphrodite/Demeter/Prometheus** implement
|
|
30
|
-
- **Themis** reviews every phase (mandatory quality gate); **Mnemosyne** documents decisions
|
|
31
|
-
- **Iris** manages GitHub; **Talos** handles hotfixes; **Gaia** analyzes remote sensing
|
|
32
|
-
|
|
33
|
-
All agents live as **canonical `.agent.md` files** in `agents/` and are auto-generated into platform-specific formats via the [sync engine](../scripts/sync-platforms.mjs).
|
|
34
|
-
|
|
35
|
-
---
|
|
36
|
-
|
|
37
|
-
## Platform Support Matrix
|
|
38
|
-
|
|
39
|
-
| Platform | Format | Status | Install Method |
|
|
40
|
-
|---|---|---|---|
|
|
41
|
-
| ** ** | `.agent.md` | ✅ Active | Plugin marketplace, `/pantheon-install`, or `./sync-platform.sh copilot` |
|
|
42
|
-
| **OpenCode** | `.md` + `opencode.json` | ✅ Active | `/pantheon-install` or `./sync-platform.sh opencode` |
|
|
43
|
-
| **** | `.md` (comma-separated tools) | ✅ Active | `node scripts/install.mjs claude` or `./sync-platform.sh claude` |
|
|
44
|
-
| **** | `.mdc` rules | ✅ Active | `node scripts/install.mjs cursor` or `./sync-platform.sh cursor` |
|
|
45
|
-
| **** | `.md` (stub) | ✅ Active | `node scripts/install.mjs windsurf` or `./sync-platform.sh windsurf` |
|
|
46
|
-
| **** | `.md` | ✅ Active | `node scripts/install.mjs cline` or `./sync-platform.sh cline` |
|
|
47
|
-
| **** | `.md` rules | ✅ Active | `node scripts/install.mjs continue` or `./sync-platform.sh continue` |
|
|
48
|
-
|
|
49
|
-
---
|
|
50
|
-
|
|
51
|
-
## Where to Find What
|
|
52
|
-
|
|
53
|
-
| Concern | Location |
|
|
54
|
-
|---|---|
|
|
55
|
-
| Agent definitions (edit here) | `agents/*.agent.md` |
|
|
56
|
-
| Platform configs (auto-generated) | `platform/<name>/agents/` |
|
|
57
|
-
| Shared skills | `skills/<name>/SKILL.md` |
|
|
58
|
-
| Standards & instructions | `instructions/*.instructions.md` |
|
|
59
|
-
| Prompt templates | `prompts/*.prompt.md` |
|
|
60
|
-
| GitHub Actions workflows | `.github/workflows/` |
|
|
61
|
-
| CI/CD hooks | `scripts/hooks/` |
|
|
62
|
-
| MCP tool registry (canonical) | [docs/mcp-tools.md](mcp-tools.md) |
|
|
63
|
-
| MCP user guide (adding custom MCPs) | [docs/mcp-user-guide.md](mcp-user-guide.md) |
|
|
64
|
-
| MCP tiers (none/essential/recommended/full) | `.pantheon/tiers.json` |
|
|
65
|
-
| MCP recommendations per project type | [docs/mcp-recommendations.md](mcp-recommendations.md) |
|
|
66
|
-
| Project memory (sprints, decisions) | `.pantheon/memory-bank/` |
|
|
67
|
-
| Plugin manifests | `plugin.json`, `.github/plugin/plugin.json` |
|
|
68
|
-
|
|
69
|
-
---
|
|
70
|
-
|
|
71
|
-
## Platform READMEs
|
|
72
|
-
|
|
73
|
-
Each platform has its own README with installation notes and format details:
|
|
74
|
-
|
|
75
|
-
- [OpenCode](../platform/opencode/README.md)
|
|
76
|
-
- [](../platform/claude/README.md)
|
|
77
|
-
- [](../platform/cursor/README.md)
|
|
78
|
-
- [](../platform/windsurf/README.md)
|
|
79
|
-
- [](../platform/cline/README.md) *(coming soon)*
|
|
80
|
-
- [Continue](../platform/continue/README.md)
|
|
81
|
-
- [Template (add new platform)](../platform/_template/README.md)
|