Skip to content

Commit bacba60

Browse files
committed
docs: update DESIGN.md v1.3 and enhance landing page
- DESIGN.md: Update to v1.3 with current file structure - DESIGN.md: Fix IAC.md format (newest-first, 15 entries) - DESIGN.md: Remove obsolete config.yaml references - README.md: Add 'Deep Dive: Design Philosophy' section - README.md: Mark landing page as complete in roadmap - Features: Add Determinism Principle callout with core quote - Features: Update copy with 95% failure stat - HowItWorks: Add layered supervision subtitle
1 parent 43d1c34 commit bacba60

File tree

4 files changed

+106
-57
lines changed

4 files changed

+106
-57
lines changed

DESIGN.md

Lines changed: 69 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Multi-Agent Orchestration System - Design Document
22

3-
**Version:** 1.1
4-
**Date:** 2025-11-29
3+
**Version:** 1.3
4+
**Date:** 2025-12-03
55
**Authors:** User + Claude (Orchestrator)
66
**Status:** Implemented (with MCP integration)
77

@@ -111,18 +111,22 @@ Agents are unreliable at:
111111
### 3.1 Component Overview
112112

113113
```
114-
agents/
115-
├── DESIGN.md # This document - architecture rationale
116-
├── CONTEXT.md # Live state (auto-updated by Python)
117-
├── IAC.md # Inter-Agent Communication log (auto-generated)
118-
├── config.yaml # Agent configurations
119-
├── __init__.py # Package exports
114+
powerspawn/
115+
├── mcp_server.py # MCP protocol server (entry point)
120116
├── spawner.py # Main spawning logic + orchestration
121117
├── context_loader.py # Loads and formats project context
122118
├── logger.py # Writes IAC.md, updates CONTEXT.md
123-
├── parser.py # Parses agent responses
119+
├── parser.py # Parses agent responses (JSON, JSONL)
120+
├── __init__.py # Package exports
124121
├── schemas/ # Structured output schemas
125-
└── workflows/ # Reusable task patterns
122+
├── examples/ # Usage examples
123+
├── DESIGN.md # This document - architecture rationale
124+
├── MCP_DESIGN.md # MCP protocol implementation details
125+
└── README.md # User-facing documentation
126+
127+
Auto-generated (gitignored):
128+
├── CONTEXT.md # Live state (auto-updated by Python)
129+
└── IAC.md # Inter-Agent Communication log
126130
```
127131

128132
### 3.2 Data Flow
@@ -201,35 +205,50 @@ The Python orchestrator automatically prepends project context to every prompt:
201205

202206
**Purpose:** Immutable log of all agent spawns and results.
203207

204-
**Format:**
208+
**Format (v1.4 - Newest First, 15 Entry Limit):**
205209
```markdown
206210
# Inter-Agent Communication Log
207211

208-
## 2025-11-29
209-
210-
### [12:30:45] Spawn #a1b2c3
211-
- **Agent:** Claude (sonnet)
212-
- **Task:** Analyze root directory files
213-
- **Tools:** Bash, Read, Glob, Grep
214-
- **Prompt:**
215-
```
216-
Analyze the files at the root...
217-
```
218-
- **Status:** Completed
219-
- **Duration:** 45.2s
220-
- **Cost:** $0.41
221-
- **Result Summary:** Found 12 files to delete, 2 security risks
212+
> Auto-generated by PowerSpawn. Newest entries first. Limited to last 15 entries.
213+
214+
---
215+
216+
### 🤖 Claude Agent #a1b2c3
217+
**Started:** 2025-12-01 12:30:45 UTC | **Status:** ✅ Completed (45.2s, $0.41)
218+
219+
<details>
220+
<summary>📋 Prompt</summary>
221+
222+
Analyze the files at the root directory and identify security risks...
223+
224+
</details>
225+
226+
<details>
227+
<summary>📊 Result</summary>
228+
229+
Found 12 files to delete, 2 security risks:
230+
1. .env.local exposed in git
231+
2. API key hardcoded in config.js
232+
233+
</details>
222234

223235
---
224236

225-
### [12:31:30] Spawn #d4e5f6
237+
### 🤖 Codex Agent #d4e5f6
238+
**Started:** 2025-12-01 12:28:00 UTC | **Status:** ✅ Completed (120s, ~$0.01)
226239
...
227240
```
228241

242+
**Key Features:**
243+
- **Newest first** - Most recent entries at top for quick access
244+
- **15 entry limit** - Prevents unbounded file growth
245+
- **Collapsible details** - Prompts and results hidden by default
246+
- **Status updated in-place** - Entry updated when agent completes (not appended)
247+
229248
**Rules:**
230-
- Append-only (never edit past entries)
231249
- Auto-generated by Python (never by agents)
232250
- Provides audit trail for debugging
251+
- Git-trackable for version control
233252

234253
### 4.2 CONTEXT.md (Live State)
235254

@@ -268,38 +287,34 @@ The Python orchestrator automatically prepends project context to every prompt:
268287

269288
## 5. Configuration
270289

271-
### 5.1 Context Files to Load
290+
PowerSpawn uses sensible defaults with optional environment variable overrides:
272291

273-
Defined in `config.yaml`:
292+
### 5.1 Environment Variables
274293

275-
```yaml
276-
context:
277-
# Files to inject into every prompt
278-
always_include:
279-
- CLAUDE.md # Coding conventions (full)
294+
| Variable | Description | Default |
295+
|----------|-------------|---------|
296+
| `POWERSPAWN_OUTPUT_DIR` | Directory for IAC.md and CONTEXT.md | Project root |
297+
| `ANTHROPIC_API_KEY` | For Claude agents | (from CLI config) |
298+
| `OPENAI_API_KEY` | For Codex agents | (from CLI config) |
280299

281-
# Files to summarize and inject
282-
summarize:
283-
- PRD.md # Product requirements (first 100 lines)
284-
- PLAN.md # Current iteration only
285-
- ARCHITECTURE.md # Overview section only
300+
### 5.2 Context Injection
286301

287-
# Files available but not auto-injected
288-
on_demand:
289-
- docs/SRS_DB.md # Database schema
290-
- CONTRIBUTING.md # Contribution guidelines
291-
```
302+
The MCP server automatically injects context files when spawning agents:
292303

293-
### 5.2 Logging Configuration
304+
- **AGENTS.md** - Universal instructions for all sub-agents (always injected)
305+
- **CLAUDE.md** - Project-specific coding conventions (if exists)
306+
- **CONTEXT.md** - Current agent state (if exists)
294307

295-
```yaml
296-
logging:
297-
iac_file: "IAC.md"
298-
context_file: "CONTEXT.md"
299-
max_recent_runs: 10
300-
log_prompts: true # Include full prompts in IAC
301-
log_responses: false # Only log summaries (responses can be large)
302-
```
308+
Context is loaded by `context_loader.py` and prepended to every prompt.
309+
310+
### 5.3 Logging Defaults
311+
312+
| Setting | Value |
313+
|---------|-------|
314+
| Max IAC.md entries | 15 |
315+
| Entry order | Newest first |
316+
| Prompts logged | Yes (collapsible) |
317+
| Results logged | Yes (collapsible) |
303318

304319
---
305320

@@ -462,3 +477,4 @@ When asked to run Playwright tests, Codex agents:
462477
| 1.0 | 2025-11-29 | Initial design document |
463478
| 1.1 | 2025-11-29 | Added MCP integration (see MCP_DESIGN.md for details) |
464479
| 1.2 | 2025-11-30 | Added Codex limitations and agent comparison matrix |
480+
| 1.3 | 2025-12-03 | Updated for standalone PowerSpawn: new file structure, IAC.md v1.4 format (newest-first, 15 entries), removed config.yaml |

README.md

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -286,10 +286,20 @@ Environment variables:
286286

287287
Agent defaults are in the MCP server. Override via tool parameters.
288288

289+
## Deep Dive: Design Philosophy
290+
291+
For a comprehensive understanding of PowerSpawn's architecture and the reasoning behind our design decisions, read **[DESIGN.md](DESIGN.md)**.
292+
293+
Key highlights:
294+
- **Why deterministic logging?** Agents are 95% unreliable at self-reporting (Section 6.1)
295+
- **Layered supervision model** - User → Coordinator → Python → Sub-agents (Section 2.3)
296+
- **The Determinism Principle** - Everything that CAN be done deterministically SHOULD be (Section 2.1)
297+
- **Agent capability matrix** - When to use Claude vs Codex (Section 11)
298+
289299
## Roadmap
290300

301+
- [x] Landing page at powerspawn.com
291302
- [ ] GitHub Copilot compatibility testing
292-
- [ ] Landing page at powerspawn.com
293303
- [ ] MCP Registry submission
294304
- [ ] Support for Gemini models
295305
- [ ] Unit and integration test suite

site/src/components/Features.tsx

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ const features = [
1111
{
1212
icon: '🎯',
1313
title: 'Deterministic, Not Hopeful',
14-
description: 'MCP wraps agents and captures all I/O automatically. No relying on agents to "follow instructions".',
14+
description: 'MCP wraps agents and captures all I/O automatically. Agents fail 95% of the time at self-reporting — we don\'t ask them to try.',
1515
},
1616
{
1717
icon: '⚖️',
@@ -72,7 +72,7 @@ export function Features() {
7272
initial={{ opacity: 0, y: 20 }}
7373
animate={isInView ? { opacity: 1, y: 0 } : {}}
7474
transition={{ duration: 0.5 }}
75-
className="text-center mb-16"
75+
className="text-center mb-12"
7676
>
7777
<h2 className="text-4xl font-bold text-white mb-4">
7878
Why PowerSpawn?
@@ -82,6 +82,26 @@ export function Features() {
8282
</p>
8383
</motion.div>
8484

85+
{/* Core Principle Callout */}
86+
<motion.div
87+
initial={{ opacity: 0, y: 20 }}
88+
animate={isInView ? { opacity: 1, y: 0 } : {}}
89+
transition={{ duration: 0.5, delay: 0.1 }}
90+
className="mb-12 p-6 rounded-xl bg-gradient-to-r from-indigo-900/30 to-purple-900/30 border border-indigo-500/30 max-w-3xl mx-auto"
91+
>
92+
<div className="text-center">
93+
<div className="text-indigo-400 font-mono text-sm mb-2">THE DETERMINISM PRINCIPLE</div>
94+
<blockquote className="text-xl md:text-2xl text-white font-medium italic">
95+
"Everything that CAN be done deterministically SHOULD be done deterministically."
96+
</blockquote>
97+
<p className="mt-4 text-gray-400 text-sm">
98+
Agents excel at reasoning and code generation. They're terrible at administrative tasks.
99+
<br />
100+
<span className="text-gray-500">Let Python handle the bookkeeping. Let agents do what they're good at.</span>
101+
</p>
102+
</div>
103+
</motion.div>
104+
85105
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
86106
{features.map((feature, index) => (
87107
<FeatureCard key={feature.title} feature={feature} index={index} />

site/src/components/HowItWorks.tsx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,10 @@ export function HowItWorks() {
2020
How It Works
2121
</h2>
2222
<p className="text-xl text-gray-400 max-w-2xl mx-auto">
23-
The IAC.md Pattern — File-based inter-agent communication
23+
Layered Supervision: User → Coordinator → Python → Sub-agents
24+
</p>
25+
<p className="text-sm text-gray-500 mt-2">
26+
The IAC.md pattern provides file-based inter-agent communication
2427
</p>
2528
</motion.div>
2629

0 commit comments

Comments
 (0)