106 lines
4.0 KiB
Markdown
106 lines
4.0 KiB
Markdown
# OpenProse Standard Library
|
|
|
|
Core programs that ship with OpenProse. Production-quality, well-tested programs for common tasks.
|
|
|
|
## Programs
|
|
|
|
### Evaluation & Improvement
|
|
|
|
| Program | Description |
|
|
|---------|-------------|
|
|
| `inspector.prose` | Post-run analysis for runtime fidelity and task effectiveness |
|
|
| `vm-improver.prose` | Analyzes inspections and proposes PRs to improve the VM |
|
|
| `program-improver.prose` | Analyzes inspections and proposes PRs to improve .prose source |
|
|
| `cost-analyzer.prose` | Token usage and cost pattern analysis |
|
|
| `calibrator.prose` | Validates light evaluations against deep evaluations |
|
|
| `error-forensics.prose` | Root cause analysis for failed runs |
|
|
|
|
### Memory
|
|
|
|
| Program | Description |
|
|
|---------|-------------|
|
|
| `user-memory.prose` | Cross-project persistent personal memory |
|
|
| `project-memory.prose` | Project-scoped institutional memory |
|
|
|
|
## The Improvement Loop
|
|
|
|
The evaluation programs form a recursive improvement cycle:
|
|
|
|
```
|
|
┌─────────────────────────────────────────────────────────────┐
|
|
│ │
|
|
│ Run Program ──► Inspector ──► VM Improver ──► PR │
|
|
│ ▲ │ │
|
|
│ │ ▼ │
|
|
│ │ Program Improver ──► PR │
|
|
│ │ │ │
|
|
│ └────────────────┘ │
|
|
│ │
|
|
└─────────────────────────────────────────────────────────────┘
|
|
```
|
|
|
|
Supporting analysis:
|
|
- **cost-analyzer** — Where does the money go? Optimization opportunities.
|
|
- **calibrator** — Are cheap evaluations reliable proxies for expensive ones?
|
|
- **error-forensics** — Why did a run fail? Root cause analysis.
|
|
|
|
## Usage
|
|
|
|
```bash
|
|
# Inspect a completed run
|
|
prose run lib/inspector.prose
|
|
# Inputs: run_path, depth (light|deep), target (vm|task|all)
|
|
|
|
# Propose VM improvements
|
|
prose run lib/vm-improver.prose
|
|
# Inputs: inspection_path, prose_repo
|
|
|
|
# Propose program improvements
|
|
prose run lib/program-improver.prose
|
|
# Inputs: inspection_path, run_path
|
|
|
|
# Analyze costs
|
|
prose run lib/cost-analyzer.prose
|
|
# Inputs: run_path, scope (single|compare|trend)
|
|
|
|
# Validate light vs deep evaluation
|
|
prose run lib/calibrator.prose
|
|
# Inputs: run_paths, sample_size
|
|
|
|
# Investigate failures
|
|
prose run lib/error-forensics.prose
|
|
# Inputs: run_path, focus (vm|program|context|external)
|
|
|
|
# Memory programs (recommend sqlite+ backend)
|
|
prose run lib/user-memory.prose --backend sqlite+
|
|
# Inputs: mode (teach|query|reflect), content
|
|
|
|
prose run lib/project-memory.prose --backend sqlite+
|
|
# Inputs: mode (ingest|query|update|summarize), content
|
|
```
|
|
|
|
## Memory Programs
|
|
|
|
The memory programs use persistent agents to accumulate knowledge:
|
|
|
|
**user-memory** (`persist: user`)
|
|
- Learns your preferences, decisions, patterns across all projects
|
|
- Remembers mistakes and lessons learned
|
|
- Answers questions from accumulated knowledge
|
|
|
|
**project-memory** (`persist: project`)
|
|
- Understands this project's architecture and decisions
|
|
- Tracks why things are the way they are
|
|
- Answers questions with project-specific context
|
|
|
|
Both recommend `--backend sqlite+` for durable persistence.
|
|
|
|
## Design Principles
|
|
|
|
1. **Production-ready** — Tested, documented, handles edge cases
|
|
2. **Composable** — Can be imported via `use` in other programs
|
|
3. **User-scoped state** — Cross-project utilities use `persist: user`
|
|
4. **Minimal dependencies** — No external services required
|
|
5. **Clear contracts** — Well-defined inputs and outputs
|
|
6. **Incremental value** — Useful in simple mode, more powerful with depth
|