This repository has been archived on 2026-10-29. You can view files and clone it, but you cannot make any changes to its state, such as pushing and creating new issues, pull requests or comments.
Epiphany/README.md
2026-04-26 01:17:40 +01:00

133 lines
5.6 KiB
Markdown

# EpiphanyAgent
Epiphany is an opinionated fork of Codex built around one demand: the model must
model the thing it is changing.
The failure mode this repo is hunting is not "the model cannot write code." It
can. Annoyingly well. The failure mode is local plausibility after global
coherence has already wandered into traffic wearing headphones.
Epiphany answers that by moving important state out of transcript fog and into
typed, inspectable surfaces: maps, scratch, evidence, retrieval state,
observations, graph/frontier state, churn pressure, and client reflections.
## Current Shape
This is no longer just an external-file prompting experiment.
The landed spine now includes:
- durable `EpiphanyThreadState` in vendored Codex protocol/core session state
- rollout snapshots and replay reconstruction for resume, rollback, fork, and compaction
- bounded `<epiphany_state>` prompt injection
- typed client reads through `Thread.epiphanyState`
- read-only hybrid retrieval through `thread/epiphany/retrieve`
- explicit semantic indexing through `thread/epiphany/index`
- durable typed writes through `thread/epiphany/update`
- read-only observation distillation through `thread/epiphany/distill`
- read-only map/churn proposal through `thread/epiphany/propose`
- verifier-backed promotion through `thread/epiphany/promote`
- successful-write notifications through `thread/epiphany/stateUpdated`
- first Phase 6 reflection through read-only `thread/epiphany/scene`
- repo-owned heavy organs in `epiphany-core/`, with vendored Codex kept as the host seam where practical
Phase 1 through Phase 5 are complete enough. Phase 6 is about reflection and
observable harness state, not more anxious polishing of the Phase 5 control
plane.
For exact current status, trust:
- `state/map.yaml`
- `notes/fresh-workspace-handoff.md`
- `notes/epiphany-fork-implementation-plan.md`
- `notes/epiphany-current-algorithmic-map.md`
Git history and smoke artifacts carry proof. `state/evidence.jsonl` carries only
distilled belief-changing evidence, not every little victory lap with a timestamp.
## Core Artifacts
- `AGENTS.md`: project-specific operating discipline for future Codex sessions
- `state/map.yaml`: canonical current project map and accepted design
- `state/scratch.md`: disposable working memory for one bounded subgoal
- `state/branches.json`: branch hypotheses and outcomes, not volatile phase status
- `state/evidence.jsonl`: distilled durable evidence, decisions, rejected paths, and scars
- `notes/fresh-workspace-handoff.md`: compact re-entry packet
- `notes/epiphany-fork-implementation-plan.md`: distilled forward implementation plan
- `notes/epiphany-current-algorithmic-map.md`: source-grounded live control-flow map
- `notes/epiphany-core-harness-surfaces.md`: stable surface contract
- `notes/architecture-rationale.md`: why the map/scratch/evidence architecture exists
- `notes/codex-repository-algorithmic-map.md`: background map of the vendored Codex substrate
- `protocol/controller-actions.md`: legacy/manual controller discipline for local state maintenance
- `tools/epiphany_state.py`: compact state inspection and distilled evidence helper
- `eval-plan.md`: evaluation sketch for comparing Epiphany discipline against plain prompting
## Next Move
When implementation resumes, choose one Phase 6 organ:
1. Live-smoke `thread/epiphany/scene` through app-server.
2. Design and land a minimal read-only job/progress reflection surface for indexing, remap, verification, and future specialist work.
The scene-smoke path is tighter. The job/progress path is the larger missing
organ.
## Working Loop
1. Rehydrate from canonical state before touching code.
2. Restate the current mechanism and intended change before substantial edits.
3. Keep one bounded hypothesis per iteration.
4. Verify the seam that matters.
5. Revert failed regression or benchmark fixes immediately.
6. Record only distilled evidence that changes future belief.
7. Commit completed work before it rots in the worktree.
Do not confuse a growing diff, growing notes, or a local green check with
understanding. That is how the tower learns to smirk.
## Re-entry
From the repo root:
```powershell
& 'C:\Users\Meta\.cache\codex-runtimes\codex-primary-runtime\dependencies\python\python.exe' '.\tools\epiphany_state.py' status
Get-Content '.\state\map.yaml'
Get-Content '.\notes\fresh-workspace-handoff.md'
Get-Content '.\notes\epiphany-current-algorithmic-map.md'
Get-Content '.\notes\epiphany-fork-implementation-plan.md'
git status --short --branch
git log --oneline -5
Get-Content '.\state\evidence.jsonl' -Tail 8
```
After compaction or resume, rehydrate and reorient first. Do not continue
implementation just because a note names a next move.
## Verification
Use focused checks for the surface being changed.
For Phase 5 control-plane behavior changes:
```powershell
& 'C:\Users\Meta\.cache\codex-runtimes\codex-primary-runtime\dependencies\python\python.exe' '.\tools\epiphany_phase5_smoke.py'
```
For Codex Rust work on this Windows machine:
```powershell
$env:CARGO_TARGET_DIR='C:\Users\Meta\.cargo-target-codex'
```
Do not parallelize cargo builds or tests against the same target directory.
## Licensing
The root `LICENSE` is the operative repository notice. In short:
`vendor/codex/**` and other third-party material keep their upstream licenses;
Project-Authored Material outside `vendor/codex/**` is publicly available under
PolyForm Noncommercial 1.0.0 and is intended to be available under separate
commercial terms by written agreement.
External contributions require `CONTRIBUTOR_LICENSE_AGREEMENT.md` or a separate
written agreement accepted by the Project Steward.