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. 1

    Read · model

    What the module does: workflows, traces with file and line, data touched, what could not be traced.

  2. 2

    State · model

    What it is for: rules with evidence and a status, and every disagreement as a question.

  3. 3

    Gate · person

    Each question decided with a reason, given an owner, or recorded as skipped. Then the list of checks.

  4. 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 2026Palimpsest · run 1
ShapeSeven agents, a runtime CLI, .sil files, its own build stagesFour stages, four Markdown files, any model or tool
Output for one areaPart of 57 files for the whole app3 files, about 24 tool calls
ExtractionFound the cascade-delete and loan-to-value bugsFound both again, blind, and six more
DisagreementsOften settled by the agent itselfQuestions for a person, ordered by harm
BuildingIts own build passesLeft to whatever the team already uses
CertificationSame session as the build: conditional passA 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

  1. Clone the repo. In the module’s own repo, start a session with any coding agent.
  2. Give it stages/1-read.md, the templates and the module’s path. Check the workflow list it shows.
  3. Give it stages/2-state.md. Answer the questions in intent/conflicts.md, highest harm first (stages/3-gate.md).
  4. Build with whatever you use.
  5. Open a new session with only intent/ and the new code, and stages/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.

Phoenix’s pipeline·Case PX-001