Build · Palimpsest
Read a module backwards before anyone rebuilds it.
Palimpsest reads an existing module, its code, screens and data, into a small intent package: what it is for, the rules it must keep with evidence for each, and every place the sources disagree. Any model or tool can then build forwards from it, and a fresh session checks the result.
A palimpsest is a manuscript page scraped and written over, where the earlier text can still be read beneath. A legacy module is the same. Palimpsest grew out of Project Phoenix: it keeps Phoenix’s extraction, drops its build stages, and adds the independent check Phoenix lacked.
Method, one run · Nov 2026
Four stages, four files
- 1
Read · model
What the module does: workflows, traces with file and line, data touched, what could not be traced.
- 2
State · model
What it is for: rules with evidence and a status, and every disagreement as a question.
- 3
Gate · person
Each question decided with a reason, given an owner, or recorded as skipped. Then the list of checks.
- 4
Verify · fresh session
Each check against the new code: pass, fail or not testable, with evidence.
Between stages 3 and 4, build with any model or tool. The output lives in the module’s own repo: intent/README.md, rules.md, conflicts.md, verify.md.
Phoenix and Palimpsest, side by side
| Phoenix · April 2026 | Palimpsest · run 1 | |
|---|---|---|
| Shape | Seven agents, a runtime CLI, .sil files, its own build stages | Four stages, four Markdown files, any model or tool |
| Output for one area | Part of 57 files for the whole app | 3 files, about 24 tool calls |
| Extraction | Found the cascade-delete and loan-to-value bugs | Found both again, blind, and six more |
| Disagreements | Often settled by the agent itself | Questions for a person, ordered by harm |
| Building | Its own build passes | Left to whatever the team already uses |
| Certification | Same session as the build: conditional pass | A fresh session that never saw the build |
Not a like-for-like count: Phoenix covered the whole app in April; run 1 covered one area of it in November, with a different model.
Run 1 · wealth2track, properties and their money
A separate agent read the original 2020 Flutter code with only the stage files, never Phoenix’s outputs. It produced 16 workflows, 59 rules and 17 questions. Four data-loss questions were decided; the rest were recorded as skipped. A fresh agent then checked the PX-001 rebuild against the 44 checks that remained.
30 passed · 14 failed
Six failures reflect the rebuild’s deliberate redesign. Eight are defects in the live app. The original same-session certification listed none of them (one, the one-time expense, was added after it):
- R-44A one-time expense is counted in every month’s cash flow.
- R-36Totals ignore each amount’s currency and treat everything as CAD.
- R-25Saving the Expenses tab rewrites standard expenses as monthly, so imported annual amounts become twelve times too large.
- R-21Dates are shown a day early in Canadian time zones.
- R-49Loan-to-value adds borrowings without converting their currency.
- R-31An empty or invalid amount silently wipes the stored value.
- R-41Borrowing payments cannot be annual.
- R-46Additional expenses are listed in the wrong order.
Limits: one run, one area of one app, an app its owner built. The comparison with Phoenix was made by a session that knew Phoenix’s findings; only the run itself was blind. The method was revised from what this run showed, and the revised version has not been run yet.
Quick start
- Clone the repo. In the module’s own repo, start a session with any coding agent.
- Give it
stages/1-read.md, the templates and the module’s path. Check the workflow list it shows. - Give it
stages/2-state.md. Answer the questions inintent/conflicts.md, highest harm first (stages/3-gate.md). - Build with whatever you use.
- Open a new session with only
intent/and the new code, andstages/4-verify.md.
In Claude Code, the repo’s skill/ folder runs the same steps as a skill.
Related work
Reading code backwards into specifications is an active area in 2026. The closest project is Reversa, a large multi-agent framework with a similar confirmed / inferred / gap marking; mainframe tools from AWS and IBM extract business rules from COBOL. Palimpsest aims to stay small: one module in one sitting, a conflict log with decisions, and verification in a session that never saw the build.