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.
Files changed (72) hide show
  1. package/README.md +61 -109
  2. package/bin/pantheon-init.mjs +57 -136
  3. package/commands/pantheon-audit.md +1 -1
  4. package/commands/pantheon-deepwork.md +32 -81
  5. package/commands/pantheon-reflect.md +16 -0
  6. package/commands/pantheon-status.md +1 -1
  7. package/commands/pantheon-verify.md +17 -0
  8. package/opencode.json +25 -0
  9. package/package.json +20 -9
  10. package/scripts/ci-validate-yaml.py +19 -0
  11. package/scripts/doctor.mjs +10 -65
  12. package/scripts/install/opencode.mjs +69 -6
  13. package/scripts/install/shared.mjs +39 -13
  14. package/scripts/manifest.mjs +5 -30
  15. package/scripts/postinstall.mjs +47 -0
  16. package/scripts/release-bundle.mjs +2 -2
  17. package/scripts/uninstall.mjs +5 -5
  18. package/scripts/validate-routing.mjs +19 -16
  19. package/scripts/versioning.mjs +12 -1
  20. package/skills-lock.json +9 -2
  21. package/src/agents/aphrodite.md +15 -57
  22. package/src/agents/apollo.md +9 -48
  23. package/src/agents/athena.md +17 -54
  24. package/src/agents/demeter.md +10 -47
  25. package/src/agents/gaia.md +7 -40
  26. package/src/agents/hephaestus.md +9 -52
  27. package/src/agents/hermes.md +17 -52
  28. package/src/agents/iris.md +8 -45
  29. package/src/agents/mnemosyne.md +12 -47
  30. package/src/agents/nyx.md +8 -45
  31. package/src/agents/prometheus.md +11 -49
  32. package/src/agents/talos.md +6 -45
  33. package/src/agents/themis.md +10 -35
  34. package/src/agents/zeus.md +5 -7
  35. package/src/mcp/mcp_resources_server.py +2 -0
  36. package/src/plugins/tui/dist/tui.tsx +203 -93
  37. package/src/plugins/tui/src/index.tsx +203 -93
  38. package/src/routing.yml +33 -93
  39. package/src/skills/clonedeps/SKILL.md +45 -0
  40. package/src/skills/codemap/SKILL.md +47 -0
  41. package/src/skills/loop-engineering/SKILL.md +51 -0
  42. package/src/skills/reflect/SKILL.md +49 -0
  43. package/src/skills/simplify/SKILL.md +39 -0
  44. package/src/skills/verification-planning/SKILL.md +52 -0
  45. package/src/skills/worktrees/SKILL.md +43 -0
  46. package/commands/pantheon-bg.md +0 -10
  47. package/commands/pantheon-consolidate.md +0 -11
  48. package/commands/pantheon-doc.md +0 -10
  49. package/commands/pantheon-hash.md +0 -11
  50. package/commands/pantheon-todo.md +0 -11
  51. package/docs/AGENT-MCP.md +0 -194
  52. package/docs/ARCHITECTURE.md +0 -384
  53. package/docs/BRANCH-PROTECTION.md +0 -142
  54. package/docs/INDEX.md +0 -81
  55. package/docs/INSTALLATION.md +0 -217
  56. package/docs/MCP.md +0 -238
  57. package/docs/MEMORY.md +0 -471
  58. package/docs/MIGRATION-MEMORY-BANK.md +0 -139
  59. package/docs/PLATFORMS.md +0 -5
  60. package/docs/QUICKSTART.md +0 -49
  61. package/docs/README.md +0 -18
  62. package/docs/RELEASING.md +0 -256
  63. package/docs/SETUP.md +0 -5
  64. package/docs/UPGRADING.md +0 -41
  65. package/docs/mcp-recommendations.md +0 -439
  66. package/docs/mcp-tools.md +0 -156
  67. package/docs/mcp-user-guide.md +0 -204
  68. package/docs/persistence-mcp.md +0 -111
  69. package/scripts/init-pantheon-mcp.sh +0 -118
  70. package/scripts/install.mjs +0 -26
  71. package/src/instructions/documentation-standards.instructions.md +0 -53
  72. package/src/mcp/init-pantheon-mcp.sh +0 -118
@@ -184,7 +184,7 @@ ${colored('USAGE', C.cyan)}
184
184
  node scripts/manifest.mjs --help this help
185
185
 
186
186
  ${colored('PIPELINE', C.cyan)}
187
- 1. SYNC — Generate platform agent files via sync-platforms.mjs
187
+ 1. SYNC — [removed in v1.0] platform sync via sync-platforms.mjs
188
188
  2. INSTALL — Deploy agents, config, skills to target directory
189
189
  3. VERIFY — Check agent count, MCP servers, config integrity
190
190
  4. REPORT — Structured pass/fail summary
@@ -219,35 +219,10 @@ function _step(label, fn) {
219
219
  // Step 1: Sync
220
220
  // ---------------------------------------------------------------------------
221
221
 
222
- function syncPlatforms(targetPlatforms) {
223
- const syncScript = join(ROOT, 'scripts', 'sync-platforms.mjs')
224
- if (!existsSync(syncScript)) {
225
- fail(`sync-platforms.mjs not found at ${syncScript}`)
226
- return false
227
- }
228
-
229
- let allOk = true
230
- for (const platform of targetPlatforms) {
231
- const label = platform.charAt(0).toUpperCase() + platform.slice(1)
232
- console.log(` ${colored('Syncing', C.cyan)} ${colored(label, C.bold)}...`)
233
- try {
234
- const result = spawnSync(process.execPath, [syncScript, platform], {
235
- cwd: ROOT,
236
- stdio: 'inherit',
237
- timeout: 60_000,
238
- })
239
- if (result.status === 0) {
240
- pass(`${label} sync completed`)
241
- } else {
242
- fail(`${label} sync failed (exit ${result.status})`)
243
- allOk = false
244
- }
245
- } catch (err) {
246
- fail(`Sync error: ${err.message}`)
247
- allOk = false
248
- }
249
- }
250
- return allOk
222
+ function syncPlatforms(_targetPlatforms) {
223
+ // sync-platforms.mjs removed in v1.0 (OpenCode-only)
224
+ info('Platform sync step skipped — sync-platforms.mjs was removed in v1.0')
225
+ return true
251
226
  }
252
227
 
253
228
  // ---------------------------------------------------------------------------
@@ -0,0 +1,47 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * postinstall.mjs — Pantheon npm post-install hook
4
+ *
5
+ * Runs after `npm install` completes. Validates environment and prints
6
+ * setup instructions. Does NOT install Pantheon platform components.
7
+ */
8
+ import { existsSync } from 'node:fs';
9
+ import { join } from 'node:path';
10
+ import { fileURLToPath } from 'node:url';
11
+
12
+ const __dirname = fileURLToPath(new URL('.', import.meta.url));
13
+ const ROOT = join(__dirname, '..');
14
+
15
+ const REQUIRED_NODE_MAJOR = 18;
16
+ const nodeMajor = parseInt(process.versions.node.split('.')[0], 10);
17
+
18
+ try {
19
+ // Validate Node.js version
20
+ if (nodeMajor < REQUIRED_NODE_MAJOR) {
21
+ console.error(`❌ Node.js >= ${REQUIRED_NODE_MAJOR} required (current: ${process.versions.node})`);
22
+ process.exit(1);
23
+ }
24
+
25
+ // Validate js-yaml is available
26
+ try {
27
+ await import('js-yaml');
28
+ } catch {
29
+ console.warn('⚠️ js-yaml not found — run `npm install` to install dependencies');
30
+ }
31
+
32
+ console.log('');
33
+ console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
34
+ console.log(' Pantheon OpenCode — npm dependencies installed ✅');
35
+ console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
36
+ console.log('');
37
+ console.log(' Next steps:');
38
+ console.log(' 1. Configure Pantheon:');
39
+ console.log(' npm run setup');
40
+ console.log(' # or: npx pantheon-opencode init');
41
+ console.log(' 2. Verify installation:');
42
+ console.log(' npm run doctor');
43
+ console.log('');
44
+ } catch (err) {
45
+ console.error(`❌ Post-install check failed: ${err.message}`);
46
+ process.exit(1);
47
+ }
@@ -68,8 +68,8 @@ copy('plugin.json')
68
68
  // Shell helper
69
69
  copy('sync-opencode.sh')
70
70
 
71
- // Install script exposed at root (not nested under scripts/)
72
- copy('scripts/install.mjs', 'install.mjs')
71
+ // Entry point exposed at root
72
+ copy('bin/pantheon-init.mjs', 'pantheon-init.mjs')
73
73
 
74
74
  // Agent definitions
75
75
  copy('agents')
@@ -4,7 +4,7 @@
4
4
  * uninstall.mjs — Multi-platform Pantheon agent uninstaller
5
5
  *
6
6
  * Removes Pantheon agent files and config from a project directory.
7
- * The reverse of install.mjs.
7
+ * The reverse of the installer.
8
8
  *
9
9
  * Usage:
10
10
  * node scripts/uninstall.mjs auto-detect, cwd
@@ -36,14 +36,14 @@ const PANTHEON_AGENT_NAMES = [
36
36
  'themis',
37
37
  'prometheus',
38
38
  'hephaestus',
39
- 'chiron',
40
- 'echo',
39
+
40
+
41
41
  'nyx',
42
42
  'gaia',
43
43
  'iris',
44
44
  'mnemosyne',
45
45
  'talos',
46
- 'agora',
46
+
47
47
  ]
48
48
 
49
49
  const PLATFORM_LABELS = {
@@ -958,7 +958,7 @@ function printUninstallSummary(target, platforms) {
958
958
  console.log('')
959
959
  if (totalRemoved > 0) {
960
960
  console.log(' 📖 To verify, check the target directory for remaining Pantheon files.')
961
- console.log(` 📚 Reinstall: node scripts/install.mjs --target ${target}`)
961
+ console.log(` 📚 Reinstall: npx pantheon-opencode init --project (in ${target})`)
962
962
  }
963
963
  console.log('')
964
964
  }
@@ -44,7 +44,7 @@ function warn(message) {
44
44
  }
45
45
 
46
46
  // Load routing.yml
47
- const routingPath = join(ROOT, 'routing.yml')
47
+ const routingPath = join(ROOT, 'src', 'routing.yml')
48
48
  if (!existsSync(routingPath)) {
49
49
  console.error('❌ routing.yml not found')
50
50
  process.exit(1)
@@ -58,10 +58,10 @@ const routingAgents = Object.keys(routing.agents || {})
58
58
  console.log(` Agents in routing.yml: ${routingAgents.length}`)
59
59
 
60
60
  // Get canonical agent files
61
- const agentsDir = join(ROOT, 'agents')
61
+ const agentsDir = join(ROOT, 'src', 'agents')
62
62
  const canonicalFiles = readdirSync(agentsDir)
63
- .filter((f) => f.endsWith('.agent.md'))
64
- .map((f) => f.replace('.agent.md', ''))
63
+ .filter((f) => f.endsWith('.md'))
64
+ .map((f) => f.replace('.md', ''))
65
65
  .sort()
66
66
 
67
67
  console.log(` Canonical agent files: ${canonicalFiles.length}`)
@@ -77,19 +77,22 @@ for (const name of canonicalFiles) {
77
77
  }
78
78
 
79
79
  // B. Skill validation
80
- const skillsDir = join(ROOT, 'skills')
81
- const existingSkills = existsSync(skillsDir)
82
- ? readdirSync(skillsDir).filter((d) => {
83
- const skillDir = join(skillsDir, d)
80
+ const srcSkillsDir = join(ROOT, 'src', 'skills')
81
+ const dotSkillsDir = join(ROOT, '.opencode', 'skills')
82
+ const existingSkills = []
83
+ for (const dir of [srcSkillsDir, dotSkillsDir]) {
84
+ if (existsSync(dir)) {
85
+ for (const d of readdirSync(dir)) {
86
+ const skillDir = join(dir, d)
84
87
  try {
85
- return existsSync(join(skillDir, 'SKILL.md'))
86
- } catch {
87
- return false
88
- }
89
- })
90
- : []
91
-
92
- console.log(`\n Skills in skills/: ${existingSkills.length}`)
88
+ if (existsSync(join(skillDir, 'SKILL.md')) && !existingSkills.includes(d)) {
89
+ existingSkills.push(d)
90
+ }
91
+ } catch { /* skip */ }
92
+ }
93
+ }
94
+ }
95
+ console.log(`\n Skills found: ${existingSkills.length} (src/skills/ + .opencode/skills/)`)
93
96
 
94
97
  for (const [name, info] of Object.entries(routing.agents || {})) {
95
98
  const agentSkills = info.skills || []
@@ -25,7 +25,7 @@ const __dirname = dirname(fileURLToPath(import.meta.url))
25
25
  const ROOT = join(__dirname, '..')
26
26
 
27
27
  const MANIFEST_FILES = [
28
- 'platform/forge.json',
28
+ // 'platform/forge.json' removed in v1.0 — directory no longer exists
29
29
  'pyproject.toml',
30
30
  'package.json',
31
31
  'plugin.json',
@@ -225,6 +225,17 @@ switch (command) {
225
225
  updateManifests(newVersion)
226
226
  promoteUnreleased(newVersion, date)
227
227
  console.log(`\nDone. Commit with: git add -A && git commit -m "chore(release): v${newVersion}"`)
228
+
229
+ // Create git tag
230
+ try {
231
+ const tag = `v${newVersion}`
232
+ execSync(`git tag -a ${tag} -m "chore(release): ${tag}"`, { stdio: 'inherit' })
233
+ console.log(`Tag ${tag} created locally. Push: git push origin ${tag}`)
234
+ console.log(`Auto-release will trigger on main after merge.`)
235
+ } catch (e) {
236
+ console.warn(`Tag creation failed: ${e.message}`)
237
+ console.log('Create manually: git tag -a v' + newVersion + ' -m "chore(release): v' + newVersion + '"')
238
+ }
228
239
  break
229
240
  }
230
241
 
package/skills-lock.json CHANGED
@@ -12,5 +12,12 @@
12
12
  "src/skills/session-goal/SKILL.md": "793498265f70253c20524f6adc88bcc86db11d7160fe8232a26aedc6b1c5489f",
13
13
  "src/skills/spec-driven-development/SKILL.md": "e93b9103d6cd1848ab01328efde82c1daf564d1cabbdc2278254b346fcf55d02",
14
14
  "src/skills/tdd-with-agents/SKILL.md": "9880919a46b74f549f948147d8b086b008635de94fa259f76261d067772bb8e3",
15
- "src/skills/visual-review-pipeline/SKILL.md": "f6e65ff75a9325c38e0e9dde8e87f09b873e14e490936ef48aa80201bb68fe10"
16
- }
15
+ "src/skills/visual-review-pipeline/SKILL.md": "f6e65ff75a9325c38e0e9dde8e87f09b873e14e490936ef48aa80201bb68fe10",
16
+ "src/skills/codemap/SKILL.md": "src/skills/codemap/SKILL.md",
17
+ "src/skills/simplify/SKILL.md": "src/skills/simplify/SKILL.md",
18
+ "src/skills/reflect/SKILL.md": "src/skills/reflect/SKILL.md",
19
+ "src/skills/worktrees/SKILL.md": "src/skills/worktrees/SKILL.md",
20
+ "src/skills/verification-planning/SKILL.md": "src/skills/verification-planning/SKILL.md",
21
+ "src/skills/loop-engineering/SKILL.md": "src/skills/loop-engineering/SKILL.md",
22
+ "src/skills/clonedeps/SKILL.md": "src/skills/clonedeps/SKILL.md"
23
+ }
@@ -1,57 +1,29 @@
1
1
  ---
2
2
  name: aphrodite
3
- description: Frontend specialist — React 19, TypeScript strict, WCAG accessibility,
4
- responsive design, TDD, modern API patterns, deprecated npm detection. Calls apollo
5
- for discovery, sends to themis for review.
6
- mode: subagent
3
+ description: "Frontend specialist — React 19, TypeScript strict, WCAG accessibility, responsive design, TDD, modern API patterns, deprecated npm detection. Calls apollo for discovery, sends to themis for review."
4
+ mode: primary
7
5
  reasoning_effort: medium
8
6
  permission:
7
+ read: allow
8
+ grep: allow
9
+ edit: allow
9
10
  bash: allow
10
- "pantheon-resources_*": allow
11
- "pantheon-memory_*": allow
12
-
13
- tools:
14
- agent: true
15
- vscode/askQuestions: true
16
- search/codebase: true
17
- search/usages: true
18
- read/readFile: true
19
- read/problems: true
20
- edit/editFiles: true
21
- execute/runInTerminal: true
22
- execute/testFailure: true
23
- execute/getTerminalOutput: true
24
- browser/openBrowserPage: true
25
- browser/navigatePage: true
26
- browser/readPage: true
27
- browser/clickElement: true
28
- browser/typeInPage: true
29
- browser/hoverElement: true
30
- browser/dragElement: true
31
- browser/handleDialog: true
32
- temperature: 0.5
33
- steps: 25
11
+ webfetch: allow
12
+ glob: allow
13
+ question: allow
14
+ temperature: 0.3
15
+ steps: 50
34
16
  skills:
35
- - frontend-analyzer
36
- - nextjs-seo-optimization
37
- - quality-gate
38
- - simplify
39
- - tdd-with-agents
40
- - context-compression
41
- - visual-review-pipeline
17
+ - tdd-with-agents
18
+ - visual-review-pipeline
19
+ - file-prompts
20
+ - incremental-implementation
42
21
  mcp_tools:
43
22
  pantheon-resources: all
44
23
  pantheon-memory: [memory_search]
45
24
  pantheon-code-mode: [execute_code_script]
46
25
  ---
47
26
 
48
- ## Memory Protocol
49
-
50
- See `instructions/memory-protocol.instructions.md` for universal rules.
51
-
52
- ### Override
53
- - `memory_recall("frontend", top_k=3)` at task start
54
-
55
27
  ## When NOT to Use Aphrodite
56
28
  - For backend API implementation — that's @hermes
57
29
  - For database schema changes — that's @demeter
@@ -135,24 +107,10 @@ After implementing UI components:
135
107
  - Do NOT auto-continue on visual regression — stop and diagnose
136
108
  - Partial results NOT allowed — must complete or fail
137
109
 
138
- ## MCP Capabilities
139
-
140
- Pantheon provides 3 native MCP servers. See [`docs/mcp-tools.md`](../docs/mcp-tools.md) for the full tool registry.
141
-
142
- | Server | Tools | When to use |
143
- |--------|-------|-------------|
144
- | **pantheon-resources** | Read `pantheon://agents`, `pantheon://routing`, `pantheon://skills`, `pantheon://deepwork/{slug}` | Discover agents, routing rules, and skills at session start |
145
- | **pantheon-memory** | `memory_search(query, n_results?)` | Read-only memory — search past UI decisions and component patterns |
146
- | **pantheon-code-mode** | `execute_code_script(script_name, args?)` | Run npm test, biome check |
147
-
148
- Before implementing, call `memory_search("<component/page>")` to retrieve past component patterns. Results are persisted by Zeus on subtask_summary return.
149
-
150
110
  ## Inline Compression
151
111
 
152
112
  Compress working context with the `context-compression` skill (L1, Pantheon-native) when:
153
- - **C8**: After returning a `subtask_summary` with CRITICAL/HIGH findings → compress before the next phase.
154
- - **C9**: Before delegating a large context block to another agent → compress to cut tokens.
155
- - **C11**: At a phase boundary / session handoff → compress completed work.
113
+ - > Inline compression: See `skill: context-compression` (C8, C9, C11)
156
114
 
157
115
  **How**: call `execute_code_script("compress-inline.py", args=["compress", "--text", "<content>"])`. Use `score` to preview priority, `batch` for multiple files. See the `context-compression` skill for the full protocol.
158
116
 
@@ -1,48 +1,25 @@
1
1
  ---
2
2
  name: apollo
3
- description: 'Read-only investigation scout — 310 parallel searches across codebase,
4
- external docs, and GitHub. Called by: athena, zeus, hermes, aphrodite, demeter.
5
- No edits, no commands.'
3
+ description: "Read-only investigation scout — 3-10 parallel searches across codebase, external docs, and GitHub. Called by: athena, zeus, hermes, aphrodite, demeter. No edits, no commands."
4
+ mode: subagent
5
+ reasoning_effort: low
6
6
  permission:
7
+ read: allow
8
+ grep: allow
9
+ glob: allow
10
+ webfetch: allow
7
11
  edit: deny
8
12
  bash: deny
9
- "pantheon-resources_*": allow
10
- "pantheon-memory_*": allow
11
- "pantheon-persistence_*": allow
12
-
13
- tools:
14
- agent: true
15
- search/codebase: true
16
- search/textSearch: true
17
- search/fileSearch: true
18
- search/usages: true
19
- read/readFile: true
20
- read/listDirectory: true
21
- web/fetch: true
22
- mode: subagent
23
- reasoning_effort: low
24
13
  temperature: 0.1
25
- steps: 15
14
+ steps: 30
26
15
  skills:
27
- - internet-search
28
- - codemap
16
+ - auto-continue
29
17
  mcp_tools:
30
18
  pantheon-resources: all
31
19
  pantheon-memory: [memory_search]
32
20
  pantheon-code-mode: []
33
21
  ---
34
22
 
35
- ## Memory Protocol
36
-
37
- See `instructions/memory-protocol.instructions.md` for universal rules.
38
-
39
- ### Override
40
- - `memory_search("<topic>")` before investigation — read-only, no store
41
-
42
- # Apollo - Investigation Scout
43
-
44
- You are the **READ-ONLY INVESTIGATOR** (Apollo) called by other agents to explore codebases, search for patterns, and gather evidence. You NEVER edit files or run commands.
45
-
46
23
  ## When NOT to Use Apollo
47
24
  - When you already know the exact file path — read it directly
48
25
  - When you need to modify files — Apollo is read-only
@@ -91,19 +68,3 @@ Return structured findings with:
91
68
  - If timeout occurs, return partial findings with confidence score
92
69
  - Do NOT loop back for more searches — return what you have
93
70
  - Never auto-continue past 3 search rounds without fresh context
94
-
95
- ## MCP Capabilities
96
-
97
- Pantheon provides 3 native MCP servers. See [`docs/mcp-tools.md`](../docs/mcp-tools.md) for the full tool registry.
98
-
99
- | Server | Tools | When to use |
100
- |--------|-------|-------------|
101
- | **pantheon-resources** | Read `pantheon://agents`, `pantheon://routing`, `pantheon://skills`, `pantheon://deepwork/{slug}` | Discover agents, routing rules, and skills at session start |
102
- | **pantheon-memory** | `memory_recall(context, n_results?)`, `memory_store(content, category?, importance?)`, `memory_search(query, n_results?)` | Search past discoveries via `memory_search()` before starting new investigations |
103
- | **pantheon-code-mode** | `execute_code_script(script_name, args?)` | (none — bash=deny) |
104
-
105
- ### Not Available
106
- - `pantheon-code-mode` (bash=deny)
107
- - `memory_store` — read-only; findings indexed by Mnemosyne
108
-
109
- Before starting an investigation, call `memory_search("<topic>")` to avoid re-discovering known patterns. Read `pantheon://agents` to discover agent constraints. You are read-only — Mnemosyne handles memory persistence.
@@ -5,46 +5,24 @@ description: Strategic planner & architect — research-first, plan-only, never
5
5
  for discovery.
6
6
  mode: primary
7
7
  reasoning_effort: high
8
- permission:
9
- edit: deny
10
- bash: deny
11
- "pantheon-resources_*": allow
12
- "pantheon-memory_*": allow
13
-
14
- tools:
15
- agent: true
16
- vscode/askQuestions: true
17
- search/codebase: true
18
- search/usages: true
19
- search/fileSearch: true
20
- search/textSearch: true
21
- search/listDirectory: true
22
- read/readFile: true
23
- web/fetch: true
24
- temperature: 0.1
25
- steps: 15
26
- skills:
27
- - plan-architecture
28
- - codemap
29
- - init-deep
30
- - interview
31
- - metis-gap-analysis
8
+
9
+ steps: 30
32
10
  mcp_tools:
33
11
  pantheon-resources: all
34
12
  pantheon-memory: [memory_search]
35
13
  pantheon-code-mode: []
14
+ skills:
15
+ - spec-driven-development
16
+ - memory-bank
17
+ permission:
18
+ edit: deny
19
+ bash: deny
20
+ read: allow
21
+ grep: allow
22
+ glob: allow
23
+ webfetch: allow
36
24
  ---
37
25
 
38
- ## Memory Protocol
39
-
40
- See `instructions/memory-protocol.instructions.md` for universal rules.
41
-
42
- ### Overrides
43
- - `memory_search("<domain>", top_k=3)` before planning — read-only
44
- - Architectural decisions: handoff to @mnemosyne for ADR
45
-
46
- # Athena - Strategic Planner
47
-
48
26
  ## When NOT to Use Athena
49
27
  - When the task is a small, bounded fix — use @talos directly
50
28
  - When you need immediate implementation without planning — delegate to @hermes / @aphrodite directly
@@ -62,7 +40,7 @@ Use `task` to delegate to agents that have these tools.
62
40
  ## Core Workflow
63
41
 
64
42
  1. **Understand** the user's goal and requirements
65
- 2. **Research** codebase (use `search/codebase` directly OR delegate to @apollo if complex)
43
+ 2. **Research** codebase (use `grep` directly OR delegate to @apollo if complex)
66
44
  3. **Plan** in CONCISE phases (3-5 max, not 10+)
67
45
  4. **Validate plan quality** via @themis
68
46
  5. **Approve** via `agent/askQuestions`
@@ -73,7 +51,7 @@ Use `task` to delegate to agents that have these tools.
73
51
  Only Athena should fetch and reconcile supported-model information from:
74
52
  - https://docs.github.com/pt/copilot/reference/ai-models/supported-models
75
53
 
76
- Use `web/fetch` to verify availability before proposing model updates to other agents.
54
+ Use `webfetch` to verify availability before proposing model updates to other agents.
77
55
 
78
56
  ## Bounded Research Strategy (Fast Planning)
79
57
 
@@ -163,7 +141,7 @@ Only after explicit "yes" → delegate to @zeus with plan context.
163
141
  - Relationship analysis (how A connects to B)
164
142
  - Multiple parallel searches needed (3-10 simultaneous)
165
143
 
166
- **Otherwise**: Use `search/codebase` directly (faster).
144
+ **Otherwise**: Use `grep` directly (faster).
167
145
 
168
146
  ## `/fork` for Alternative Approaches
169
147
 
@@ -174,7 +152,7 @@ This is worth exploring separately. Use /fork to compare approaches.
174
152
 
175
153
  ## Examples
176
154
 
177
- **Simple:** "Plan JWT auth" → Use `search/codebase` for auth files → Create 3-phase plan
155
+ **Simple:** "Plan JWT auth" → Use `grep` for auth files → Create 3-phase plan
178
156
 
179
157
  **Complex:** "Plan microservices migration" → Delegate to `@apollo` for full discovery → Create 5-phase plan
180
158
 
@@ -194,7 +172,7 @@ Before creating a plan:
194
172
 
195
173
  ## Research with Web Fetch
196
174
 
197
- For external docs/specs, use `web/fetch` (see `internet-search` skill for patterns):
175
+ For external docs/specs, use `webfetch` (see `internet-search` skill for patterns):
198
176
  - RFCs, official documentation, GitHub issues/PRs
199
177
  - Synthesize findings into plan recommendations
200
178
 
@@ -207,20 +185,5 @@ For external docs/specs, use `web/fetch` (see `internet-search` skill for patter
207
185
  - Do NOT re-plan without new information
208
186
  - Partial results NOT allowed — plan must be complete before presenting
209
187
 
210
- ## MCP Capabilities
211
-
212
- Pantheon provides 3 native MCP servers. See [`docs/mcp-tools.md`](../docs/mcp-tools.md) for the full tool registry.
213
-
214
- | Server | Tools | When to use |
215
- |--------|-------|-------------|
216
- | **pantheon-resources** | Read `pantheon://agents`, `pantheon://routing`, `pantheon://skills`, `pantheon://deepwork/{slug}` | Discover agents, routing rules, and skills at session start |
217
- | **pantheon-memory** | `memory_search(query, n_results?)` | Read-only memory — search past architecture decisions before planning |
218
- | **pantheon-code-mode** | `execute_code_script(script_name, args?)` | (none — bash=deny) |
219
-
220
- ### Not Available
221
- - `pantheon-code-mode` (bash=deny) — delegate script execution to implementers
222
-
223
- Before creating a plan, call `memory_search("<domain>")` with top-k 5 to retrieve past architecture decisions. Read `pantheon://routing` to verify delegation rules. Results are persisted by Zeus on subtask_summary return.
224
-
225
188
  ## Skills
226
189
  Planejamento: `spec-driven-development`, `artifact-management`
@@ -1,48 +1,25 @@
1
1
  ---
2
2
  name: demeter
3
- description: Database specialist — SQLAlchemy 2.0, Alembic, query optimization, N+1
4
- prevention, TDD migrations, modern DB libs. Calls apollo for discovery, sends to
5
- themis.
6
- mode: subagent
3
+ description: "Database specialist — SQLAlchemy 2.0, Alembic, query optimization, N+1 prevention, TDD migrations, modern DB libs. Calls apollo for discovery, sends to themis."
4
+ mode: primary
7
5
  reasoning_effort: medium
8
6
  permission:
7
+ read: allow
8
+ grep: allow
9
+ edit: allow
9
10
  bash: allow
10
- "pantheon-resources_*": allow
11
- "pantheon-memory_*": allow
12
-
13
- tools:
14
- agent: true
15
- search/codebase: true
16
- search/usages: true
17
- read/readFile: true
18
- read/problems: true
19
- edit/editFiles: true
20
- execute/runInTerminal: true
21
- execute/testFailure: true
22
- execute/getTerminalOutput: true
23
- web/fetch: true
11
+ webfetch: allow
24
12
  temperature: 0.2
25
- steps: 20
13
+ steps: 40
26
14
  skills:
27
- - cache-strategy
28
- - database-migration
29
- - database-optimization
30
- - quality-gate
31
- - simplify
32
- - context-compression
15
+ - tdd-with-agents
16
+ - incremental-implementation
33
17
  mcp_tools:
34
18
  pantheon-resources: all
35
19
  pantheon-memory: [memory_search]
36
20
  pantheon-code-mode: [execute_code_script]
37
21
  ---
38
22
 
39
- ## Memory Protocol
40
-
41
- See `instructions/memory-protocol.instructions.md` for universal rules.
42
-
43
- ### Override
44
- - `memory_search("database", top_k=3)` at task start — read-only
45
-
46
23
  ## When NOT to Use Demeter
47
24
  - For backend business logic — that's @hermes
48
25
  - For frontend data display — that's @aphrodite
@@ -119,24 +96,10 @@ Before creating a new migration:
119
96
  - Always test both upgrade AND downgrade before marking complete
120
97
  - Partial results NOT allowed — must complete or fail
121
98
 
122
- ## MCP Capabilities
123
-
124
- Pantheon provides 3 native MCP servers. See [`docs/mcp-tools.md`](../docs/mcp-tools.md) for the full tool registry.
125
-
126
- | Server | Tools | When to use |
127
- |--------|-------|-------------|
128
- | **pantheon-resources** | Read `pantheon://agents`, `pantheon://routing`, `pantheon://skills`, `pantheon://deepwork/{slug}` | Discover agents, routing rules, and skills at session start |
129
- | **pantheon-memory** | `memory_search(query, n_results?)` | Read-only memory — search past schema decisions and migration patterns |
130
- | **pantheon-code-mode** | `execute_code_script(script_name, args?)` | Run alembic migrations, pytest |
131
-
132
- Before creating a migration, call `memory_search("<table/schema>")` for past schema patterns. Results are persisted by Zeus on subtask_summary return.
133
-
134
99
  ## Inline Compression
135
100
 
136
101
  Compress working context with the `context-compression` skill (L1, Pantheon-native) when:
137
- - **C8**: After returning a `subtask_summary` with CRITICAL/HIGH findings → compress before the next phase.
138
- - **C9**: Before delegating a large context block to another agent → compress to cut tokens.
139
- - **C11**: At a phase boundary / session handoff → compress completed work.
102
+ - > Inline compression: See `skill: context-compression` (C8, C9, C11)
140
103
 
141
104
  **How**: call `execute_code_script("compress-inline.py", args=["compress", "--text", "<content>"])`. Use `score` to preview priority, `batch` for multiple files. See the `context-compression` skill for the full protocol.
142
105