WORKSPACE-MAP.md
1. Orientation
This workspace holds Joe’s work, records, evidence and notes.
Open this file when you want to know where something goes.
Open index.md for a short list of entrances.
Tasks, watches and recurring reviews belong in SQLite, edited through Simple Tasks or its command interface.
Original documents and domain stores own the evidence.
Notes explain what the evidence means. They cannot silently replace a structured fact.
Generated pages are reading copies. Change their owner, then regenerate them.
Historical pages explain what happened then. They are not instructions for today.
The frozen 4 November contract governs the architecture; Joe’s later decisions amend its specific choices.
The app, digest, evening close and Pulse share task-selection rules. Hermes owns scheduling.
Registers and finance are still being migrated. Their planned ownership must not be presented as completed work.
2. The system in one picture
EVIDENCE AUTHORITIES JOE'S INPUT
Documents, correspondence, bank exports Decisions, committed actions,
investment CSVs, BP CSV, anxiety log, watches, review instructions
CouchDB wellness, health/solar collectors |
| |
+--- sourced assessment / commands ------+
|
v
STRUCTURED OPERATIONAL STORE
SQLite: tasks, watches, reviews,
standing records, assessed dates,
reconciled money facts
|
+--------------+--------------+
| |
v v
selection.py View generators
| |
+--------+---------+ Markdown / JSON exports
| | | |
v v v v
App Digest Evening RAG / Kindle /
| close finance dashboards
v
Pulse
SQLite accepted date facts ---> owned calendar mirror ---> Calendar
Domain evidence stores ---> their own generators ---> health, BP,
wellness, solar,
portal-status views
Evidence + decisions ---> attributed notes ---> human understanding
---> RAG / Kindle reading copies
Hermes cron schedules existing jobs. The app scheduler remains shadow.
FORBIDDEN LOOPS
Generated view ----X----> independent state writer
Calendar / RAG / Kindle ----X----> overwrite SQLite
Frozen tracker ----X----> re-import completed or trashed work
SQLite <-----------X-----------> Markdown bidirectional syncArrows show derivation. A projection never becomes more authoritative than its source. Multiple clients may submit commands to SQLite; they must share identity, validation and conflict handling.
Current transition: four task views are already generated in generated/. Kindle and RAG still name frozen originals as inputs. The kidney process still reads and can write the old life-admin file. Those paths must change before the originals move.
Handwritten Kindle notes may become new evidence, with provenance and review. They must not become automatic edits to exported task state.
3. Areas
| Area | What belongs here; what does not | Truth and editing |
|---|---|---|
| Tasks | Committed work, watches, recurring reviews and capture awaiting triage. Balances and case histories belong elsewhere. | SQLite owns operational state. Joe edits through the app or commands; Markdown task views are generated. |
| Life admin and cases | Claims, complaints, donation administration, people, shipments and their histories. General errands belong in Tasks. | Correspondence and portal observations own evidence; structured records own current case state. Joe edits interpretation and submits operational changes through the shared interface. |
| Bills and money | Agreements, notices, payments, receipts, accounts, card terms and mortgage records. A receipt alone does not establish an agreement or payment. | Documents and transactions own evidence; reconciled records belong in SQLite. Register migration is unfinished; resulting views will be generated. |
| Investments and pension | Dated valuations, contributions, gains, pension evidence and planning assumptions. Repeated balances and copied deadlines do not belong in strategy notes. | Investment CSVs, provider observations and documents own evidence. SQLite will own reconciled facts; Joe edits strategy and assumptions, while reports are generated. |
| Health | Measurements, anxiety situations, mood and derived health summaries. Donation administration belongs with cases. | BP CSV, anxiety Markdown, CouchDB wellness and collectors retain authority. Joe records inputs; summaries are generated. |
| Therapy | Attributed session records, reflections, themes, open questions and agreed practices. An unresolved feeling is not automatically a task. | Session records remain unchanged. Joe and the agent may edit clearly attributed compiled notes, preserving disagreements with sources. |
| Home automation | Explanations, incident evidence, historical HA audits and solar reports. Device configuration does not live in a workspace note. | HA and service configuration own live behaviour. Joe edits explanations; historical audits are evidence and collector views are generated. |
| System and ops | Architecture, recovery, incident records, implementation plans and operating rules. Copied live inventories should not masquerade as current prose. | Runtime configuration owns deployment and schedules. Current guides are editable; historical reports stay frozen; inventories derive from their owners. |
| Documents and research | Original documents, source-linked transcriptions, dated research, journals and writing reference. Tasks discovered here are routed into SQLite. | Originals own evidence. Research and interpretation are editable unless preserved as dated history; journals remain source records. |
| Indexes | Stable descriptions and links. No current balance, deadline, blocker or case status. | Navigation only. Agent-maintained and editable, with every target resolvable. |
The target layout
Group the estate into eight browsing areas. A flat root of 54 subject files is too much to read. There are now 55 root Markdown files, including TRACKER-MAP.md.
Keep sources, application code and generated outputs in their own established locations. They do not need to be forced into the eight browsing folders.
workspace/
├── index.md Short front door
├── WORKSPACE-MAP.md Routing, ownership and complete file map
├── AGENTS.md Short agent rules
├── TRACKER-STANDARD.md Current container and publication rules
├── USER.md Stable personal context
├── SOUL.md Agent voice and behaviour
├── RESTORE.md Current recovery entrance
├── inbox.md One capture queue
├── decisions.md Decision history and links to rulings
├── log.md Workspace change history
├── agreements-register.md Contract-required generated agreement view
├── automation-register.md Generated from actual scheduler definitions
│
├── tasks/
│ ├── index.md
│ ├── cross-tracker-intelligence.md
│ └── archive/ Frozen task originals and retired captures
├── admin/
│ ├── index.md
│ ├── cases/ One explanatory history per case
│ ├── case-status.md Portal collector view
│ ├── people-register.md
│ ├── parcels-register.md
│ ├── shopping-register.md
│ └── archive/ Frozen life-admin original
├── finance/
│ ├── index.md Bills and investing entrances
│ ├── accounts-register.md Contract-required account view
│ ├── receipts-log.md Receipt events, separate from agreements
│ ├── strategy.md Editable assumptions and rationale
│ ├── …financial views… Existing financial filenames moved here
│ ├── evidence/ Preserved monthly observations
│ ├── reports/
│ └── …existing source CSVs…
├── health/
│ ├── index.md
│ ├── …existing source CSVs…
│ ├── anxiety-log-tracker.md Original anxiety record
│ ├── …generated health views…
│ └── google-health-data-reference.md
├── therapy/
│ ├── index.md
│ ├── Understanding.md Combined themes and patterns
│ ├── Open Loops.md Questions and agreed practices
│ ├── Sessions.md
│ ├── Session ….md Unchanged source notes
│ ├── Log.md
│ └── archive/ Superseded compiled pages
├── home/
│ ├── index.md
│ ├── solar-tracker.md
│ └── evidence/ HA audits and doorbell investigation
├── ops/
│ ├── index.md
│ ├── system-map.md Short current explanation
│ ├── wiki-guide.md Combined linking and format guide
│ ├── kindle-scribe.md
│ └── archive/ Audits, incidents and one-off procedures
├── documents/
│ ├── index.md
│ ├── …original PDFs and sidecars…
│ ├── research/
│ └── archive/
│
├── generated/ Keep the four task export paths stable
├── memory/ Historical journal sources
├── diary/ Rootbeet's historical reflections
├── thinking/ Existing reflection source
├── templates/
├── .hermes/plans/ Existing design and decision records
├── handoff/, runbooks/ Existing operational packages
└── …application directories… Keep application-owned documentation with codeThe target is 12 root Markdown entrances and contract-required views. Temporary compatibility links may remain during migration, then retire after their consumers have passed the weekly gate.
4. The file map
These are current paths, before the change orders.
The classified estate contains 77 files. Add TRACKER-MAP.md and four task exports: 82 files. The full tree contains 166 Markdown files, excluding trash, Git internals and dependencies. The other 84 are supporting records, journals, plans and application documentation. They belong in the map, but outside the weekly reading route.
Labels mean:
- Evidence: preserve the record; add a correction or interpretation separately.
- Frozen original: historical content retained after task cutover.
- Generated: change its source or generator.
- Generated later: migration is planned; the present file still contains maintained state.
Tasks
- cross-tracker-intelligence.md — intended cross-domain rules mixed with implementation claims and a generated snapshot.
- general-todo-tracker.md — frozen original: the former general task list, including older finance and home context.
- annual-checklist-tracker.md — frozen original: the former recurring-review instructions and historical notes.
- renewals-tracker.md — frozen original: the former renewal and reminder record.
Life admin and cases
- life-admin-tracker.md — frozen original: EgyptAir, employment tribunal, kidney donation, FOS and rail case evidence and decision history.
- case-status.md — generated: observations from monitored case portals, including monitoring gaps.
- people-register.md — people, birthdays, promises and contact context; generated later.
- shopping-register.md — shopping capture, purchases and vouchers; generated later.
Bills and money
- bills-register.md — bill notices from email; agreement and receipt separation is unfinished; generated later.
- bills-payment-log.md — generated: transaction-derived payment history and estimates, not proof of contractual terms.
- subscriptions-register.md — subscription and receipt observations mixed together; generated later as an agreement filter.
- switching-history.md — bank-opening history and account status used for switching eligibility; generated later.
- stoozing-summary.md — card arbitrage explanation mixed with balances and expiry watches; generated later.
- mortgage-position.md — mortgage choice, terms, comparisons and rate history; separate explanation from the future generated facts.
- documents/principality-mortgage-completion-2026-07-30.md — source-linked transcription of the lender’s completion letter; the PDF owns the evidence.
- finance/reports/2026-10-spend.md — dated October spending report derived from transaction records.
Investments and pension
- pension-cashflow-tracker.md — financial overview, pension planning, tax reasoning and copied tasks; generated later, with strategy extracted.
- investment-gains-tracker.md — collected investment valuations and gain calculations; generated later from reconciled observations.
- investment-monthly.md — evidence: dated monthly investment observations, including unknown pension values.
Health
- anxiety-log-tracker.md — evidence: Joe’s original anxiety-situation record.
- blood-pressure-tracker.md — generated: readable individual readings from the BP CSV.
- wellness-tracker.md — generated: mood and energy mirror from CouchDB wellness.
- health/health-tracker.md — generated: collected daily health summary.
- health/recovery-status.md — generated: recovery interpretation from collected health data.
- documents/google-health-data-reference.md — health data coverage, access methods and collection caveats, dated to its observations.
Therapy
- therapy/Therapy Index.md — therapy entrance; currently also duplicates session summaries and current threads.
- therapy/Sessions.md — source-session catalogue; descriptions need stable, individual attribution.
- therapy/Session 2026-08-25.md — evidence: the preserved 25 August session record.
- therapy/Session 2026-08-28.md — evidence: the preserved 28 August session record.
- therapy/Themes.md — compiled emotional themes, overlapping substantially with Patterns.
- therapy/Patterns.md — compiled protective patterns and unresolved interpretations.
- therapy/Open Loops.md — questions left open for exploration, without turning them into tasks.
- therapy/Experiments.md — a short record that no practices were assigned, plus an agent observation.
- therapy/Log.md — evidence: therapy ingestion, compilation and maintenance history.
Home automation
- solar-tracker.md — generated: solar output, avoided import and payback calculations.
- documents/ha-device-map.md — evidence: historical HA entity and room inventory, with disputed scope.
- documents/ha-room-breakdown.md — evidence: historical room-by-room device listing.
- documents/ha-tidy-report.md — evidence: historical tidy report, with counts whose scope differs from the device map.
- documents/ha-full-audit-2026-10-27.md — evidence: October whole-instance audit.
- documents/ha-automation-logic-audit-2026-10-27.md — evidence: October review of automation behaviour and failure cases.
- documents/doorbell-detection-redesign-2026-09-21.md — doorbell investigation, evidence, proposed redesign and implementation history; preserve as a dated investigation.
System and ops: current guides and historical reports
-
simple-tasks/ — the Todo app (systemd
simple-tasks, :8672, published attodo.00000041.xyz). SQLite holds the tasks; its Files tab (files_api.py) renders and edits any markdown in the workspace, and reports whattracker-normalise.pywould still change after a save to a*-tracker.md. File writes are lock-then-atomic-replace with an etag refusal, and the previous bytes go totrashed/file-edits/. -
RESTORE.md — the recovery entrance, including encrypted-backup bootstrap dependencies and unproven recovery limits.
-
system-map.md — system explanation mixed with a large 1 November service and schedule snapshot.
-
kindle-scribe.md — Kindle integration facts, manual steps and links to its setup plan.
-
domain-repair-2026-11-02.md — evidence: domain repair findings, changes, verification and remaining limits.
-
runbook-joehost-pool-fix.md — the one-off October disk-repair procedure; archive rather than present as today’s instructions.
-
skill-overhaul-closeout.md — evidence: what the October skill overhaul established and what remained unproven.
-
luna-audit-report.md — evidence: October hardening closeout.
-
handoff/agent-ownership.md — Rootbeet and Beetroot responsibilities and the one-job, one-owner rule.
-
handoff/hermes-standby/README.md — documentation belonging to the standby-agent package.
-
handoff/rebuild-kit/RUNBOOK.md — draft rebuild procedure, explicitly unrehearsed.
-
handoff/standby-seed/STANDBY-BRIEFING-20261017.md — evidence: instructions supplied to the standby for the October repair window.
-
runbooks/2026-10-16-hands-on-runbook.md — historical keyboard-only jobs for the October recovery.
-
simple-tasks/RESTORE.md — application-owned task-database backup verification and restore procedure.
System and ops: design and decision records
These stay under .hermes/plans/. Their recorded dates and supersession matter more than words such as “final” in their titles.
- 2026-08-10_hermes-ecosystem-deep-dive.md — historical research plan for improving Hermes.
- 2026-10-29_104957-skills-evaluation-and-improvement.md — skill-evaluation implementation instructions.
- 2026-10-29_185548-skill-effectiveness.md — amended skill-effectiveness method and acceptance work.
- 2026-10-30_101848-stabilisation.md — skill-overhaul stabilisation plan.
- 2026-10-30_135350-subtractive-skills-deepseek.md — proposed simplification of the skill library.
- 2026-11-01_160515-reliable-memory.md — personal-memory reliability design.
- 2026-11-02_231701-local-domains.md — domain repair implementation plan.
- 2026-11-03-todo-system-improvement.md — earlier task-system improvement proposal.
- 2026-11-03_085447-memory-repair.md — guarded memory-repair plan.
- 2026-11-03_142414-simple-tasks-authority.md — earlier task-app design authority and build order.
- 2026-11-03_200357-kindle-scribe-setup.md — Kindle setup and integration plan.
- 2026-11-04-changes-log.md — evidence: implementation account containing historical intermediate states.
- 2026-11-04-contradictions.md — evidence: the 48 contradictions and their supporting observations.
- 2026-11-04-decisions.md — Joe’s binding answers, with applied and queued dispositions.
- 2026-11-04-task-authority-map.md — historical pre-cutover consumer map; its “activation not switched” statement is no longer current.
- 2026-11-04-tracker-contract.md — the frozen architectural contract, read with Joe’s later specific amendments.
- 2026-11-04_093159-todo-memory-remediation.md — task and memory remediation plan.
- simple-tasks-v1/DESIGN.md — first task-app design and executor contract.
- simple-tasks-v2/DESIGN.md — revised task roles and migration design.
- simple-tasks-v2/SECTION-MAP.md — generated historical evidence: mapping of source sections to proposed roles.
- simple-tasks-v3/DESIGN.md — calendar, tag and archive design.
- simple-tasks-v3/CALENDAR-SEMANTICS.md — date-purpose and date-quality rules for calendar projection.
- simple-tasks-v3/CALENDAR-SYNC.md — calendar mirror design, not evidence of deployment.
- simple-tasks-v3/HANDOFF.md — handoff for that design package.
- simple-tasks-v4/FIX.md — staged usability and migration repair instructions.
- simple-tasks-v5/REVIEW.md — task-app review and release conditions.
- simple-tasks-v6/REVIEW.md — end-to-end review of the sixth app iteration.
- simple-tasks-v6/IMPLEMENTATION.md — evidence: recorded implementation and verification from that iteration.
- simple-tasks-v6/ALL-VIEW-REVIEW.md — chronological-view review and amendment instructions.
- simple-tasks-v6/ALL-VIEW-REVIEW.polluted.bak.md — evidence: damaged review/output copy; exclude from policy and current retrieval.
- simple-tasks-v6/ORPHAN-REPAIR.md — evidence: provenance and repair account for an orphaned change record.
- simple-tasks-v6/CODEX-POKE.md — documentation of an existing scheduled subscription-window request.
Documents, research and reflection
- email-style-guide.md — Joe’s email-writing reference, derived from sent-mail analysis.
- documents/manchester-train-research.md — dated research for the 9 November journey; not live fare or timetable authority.
- thinking.md — Rootbeet’s evolving observations, mixed with obsolete operational reference.
- thinking/personality-mirror-2026-07.md — dated agent interpretation of Joe’s interaction patterns.
- wrapped-2026.md — evidence: retrospective on the Hermes period.
- templates/journal-note.md — scaffold for a new journal source.
- templates/decision-note.md — scaffold for recording a choice and its rationale.
- templates/research-note.md — scaffold for attributed research.
- tennis-log/README.md — application-owned guide to the tennis log and its data.
- fossil-log/README.md — application-owned guide to the fossil log and its data.
Documents and reflection: historical journals
These are evidence of what was recorded then, including mistakes and superseded assumptions.
Documents and reflection: Rootbeet’s diary
These are attributed agent reflections, not Joe’s own statements or current system documentation.
- diary/2026-08-04.md — reflection on tool wiring and a false alarm.
- diary/2026-09-04-new-model.md — reflection on changing models.
- diary/2026-09-04-oauth-armor.md — reflection on OAuth reliability work.
- diary/2026-09-04-rehearsal.md — reflection on a real reauthorisation test.
- diary/2026-09-10-okf.md — reflection on workspace format standardisation.
- diary/2026-09-13-invisible-boiler.md — reflection on heating visibility; preserve its differing filename and written date.
- diary/2026-09-13-the-leak-that-was-me.md — reflection on a mistaken information-leak claim.
- diary/2026-09-17-devices-that-move.md — reflection on device discovery.
- diary/2026-09-19-the-house-doesnt-know.md — reflection on missing home-system observability.
- diary/2026-09-21-a-400-nobody-heard.md — reflection on a silently failed vision request.
- diary/2026-09-22-the-state-is-not-the-event.md — reflection on smoke-alarm testing and event semantics.
- diary/2026-09-22.md — reflection on incorrect visual judgements.
- diary/2026-09-23-five-models-disagreed.md — reflection on detection labelling and contrary evidence.
- diary/2026-10-01.md — reflection on doorbell identity and suppression changes.
- diary/2026-10-02.md — reflection on tooling cleanup.
- diary/2026-10-05-who-the-machine-thinks-you-are.md — reflection on face-recognition identity errors.
- diary/2026-10-08-the-house-kept-notes.md — reflection on reconstructing events from house records.
- diary/2026-10-09-the-horse-and-the-checkbox.md — reflection on paper retrieval and credential handling.
- diary/2026-10-10-sleep-and-wake.md — reflection on espresso-machine control and reliability.
- diary/2026-10-12-the-house-answered-back.md — reflection on a power outage and monitoring failure.
- diary/2026-10-13-the-nine-days.md — reflection on mistaken OAuth-expiry claims.
- diary/2026-10-16.md — reflection on the host rebuild.
- diary/2026-10-17-the-ghost-blocks.md — reflection on thin-pool exhaustion and misleading free-space figures.
- diary/2026-10-26-two-hands.md — reflection on completing a two-sided OAuth handshake.
Indexes, personal context and workspace rules
- index.md — the front door; shorten to stable entrances.
- TRACKER-MAP.md — the existing classification table; absorb into this map and preserve its dated original.
- documents/index.md — document catalogue; remove copied counts and unresolved-status commentary.
- AGENTS.md — agent operating instructions; replace obsolete Markdown task-writing guidance.
- TRACKER-STANDARD.md — container and formatting rules; subordinate explicitly to the frozen contract and later decisions.
- KNOWLEDGE-GRAPH.md — linking and compilation guide; combine with the format guide.
- OKF.md — format conventions and exclusions; combine with the linking guide.
- USER.md — stable personal context; replace copied operational statuses with links.
- SOUL.md — agent voice and behavioural guidance, subject to Joe’s operating rules.
- decisions.md — historical rationale; link to the authoritative 48-answer record without rewriting old decisions as current facts.
- log.md — evidence: append-only workspace structural-change history.
5. How to use it
Weekly
Read the app’s current work and watches, then the relevant area index. Read finance reports for balances and case notes for explanation. Browse Inbox for unrouted captures.
Use the current therapy synthesis when preparing for reflection. Open individual session records when attribution or wording matters.
The weekly route should not require reading audit reports, old plans or all 166 files.
When something breaks
Start at RESTORE.md for recovery, or ops/system-map.md for dependencies. Follow the relevant component’s current guide and actual configuration.
Use historical incident reports to understand previous failures. Their dates and preconditions must remain visible. An old repair procedure is not an instruction to repeat it.
For task disagreements, inspect SQLite identity and shared selection rules. For a wrong generated figure, follow its source and generator. For a claim about a document, open the original.
What never to edit directly
Do not edit generated views, frozen task originals, preserved session records or historical evidence to make today’s picture agree.
Append observations to source logs through their established capture route. Record corrections separately. Generated-file conflicts require explicit reconciliation; do not force publication over them.
Adding something new
Choose the area, then the container:
| What arrived? | Put it here |
|---|---|
| Unclear thought, link or possible intention | Inbox, with a later disposition: routed, dismissed or awaiting clarification |
| Committed action or decision to make | SQLite task, with owner and finish condition |
| Expected response, expiry or state change | SQLite watch; link a task only when action is required |
| Repeating review | Review template plus separate occurrence/result |
| Persistent person, case, shipment, agreement or account | Standing record with stable identity and subtype |
| Notice, payment or receipt | Sourced event, keeping those three meanings separate |
| Date or amount | Fact attached to its subject, with purpose or measure, source and precision |
| Original document or measurement | Its existing evidence store |
| Explanation, research or reflection | Attributed note in the relevant area |
| Choice already made | Decision record with rationale and source links |
| A way to find any of these | Index entry containing a description and link |
A note may contain several kinds of material. Extract operational facts through review and link them back. Do not turn the whole note into a task.
6. Change orders
Execute in order. An order marked requires Joe is a final approval gate for its concrete money changes. Prepare its migration and comparison first. Dependent orders must not pretend that gate has passed.
1. Preserve the starting point and establish the move ledger
Change: Capture source hashes, current paths, database identities and a consistent database backup. Record each intended old path, new path, owner and consumer. Preserve existing uncommitted work.
Why: Folder changes must preserve evidence, provenance and post-cutover edits.
Files affected: Workspace Markdown, tracker-schema.json, Simple Tasks source mappings, existing backup mechanism.
Risk: Low for capture; incomplete provenance would make later moves unsafe.
Verification: Every one of the 166 Markdown paths has a disposition. Verify the database backup using its existing restore procedure. Record hashes before any rewrite.
Reversible: Yes. This order creates the reference needed to reverse later changes.
2. Publish one map and eight area entrances
Change: Save this content as WORKSPACE-MAP.md. Create the eight area indexes, initially linking to current paths. Preserve TRACKER-MAP.md unchanged in ops/archive/tracker-map-2026-11-04.md, then reduce the old path to a temporary link.
Why: One map owns routing and file roles. Area indexes provide short browsing routes.
Files affected: WORKSPACE-MAP.md, TRACKER-MAP.md, eight area indexes, index.md.
Risk: Low. The main risk is keeping two maps independently maintained.
Verification: Every file appears once in the complete map. Every area index resolves. Labels distinguish generated today from generated later.
Reversible: Yes. Restore the preserved map and navigation files.
3. Rewrite the short, current instructions
Change: Keep index.md to one screen. Keep AGENTS.md to operating rules and owner links. Rewrite TRACKER-STANDARD.md around current containers, structured ownership and generated publication.
State precedence explicitly: frozen architectural contract, amended by Joe’s later specific decisions. Link to both records. Append a correction to decisions.md that all 48 answers are recorded; preserve its older “46 answered” entry as history.
Include annual June dentist review, green meaning in progress, and repair-forward under SQLite where applicable. Remove instructions to write task rows into frozen files.
Why: These files determine how future agents interpret the whole estate.
Files affected: index.md, AGENTS.md, TRACKER-STANDARD.md, decisions.md; matching skill guidance where it directs obsolete writes.
Risk: Medium. An obsolete instruction can recreate a second writer.
Verification: No current instruction promotes Markdown to task authority, converts missing figures to zero, or recommends switching authority back to Markdown. Do not mark queued decisions applied without implementation evidence.
Reversible: Yes, from preserved versions; SQLite remains authoritative throughout.
4. Make tooling understand folders before moving files
Change: Use workspace-relative paths as note identity in graph and lint tooling. Support repeated index.md filenames, links containing spaces, and explicit aliases for historical links. Update schema ownership to distinguish sources, editable notes, frozen originals and generated views.
Keep historical source text unchanged. Resolve its old links through the move ledger rather than rewriting evidence.
Why: The current graph uses filename stems, which cannot safely distinguish eight index.md files.
Files affected: scripts/wiki-graph.py, scripts/wiki-backlinks.py, scripts/wiki-lint.py, tracker-schema.json, relevant validator and normaliser code.
Risk: Medium. Incorrect resolution could silently connect a source to the wrong note.
Verification: Fixtures cover two same-named indexes, therapy filenames with spaces, moved source links, ambiguous wiki links and preserved source hashes. Normalisation must skip evidence and generated outputs.
Reversible: Yes. Revert tooling and path mappings together.
5. Separate case explanation from operational state
Change: Extract attributed histories into:
admin/cases/egyptair.mdadmin/cases/employment-tribunal.mdadmin/cases/kidney-donation.mdadmin/cases/fos-section75.mdadmin/cases/rail-ombudsman.md
Link histories to existing structured identities and source sections. Keep current actions, watches and assessed dates in SQLite. Move the kidney process off writes to life-admin-tracker.md; correspondence becomes sourced events, with current process state updated through the shared command path.
Keep portal observations owned by case-watch.py. Preserve both disputed Interpath references. Reuse existing people, shipment and shopping identities rather than importing duplicates.
Why: The frozen life-admin original currently combines several histories with a live process dependency.
Files affected: life-admin-tracker.md, new case notes, kidney-chase.py, related standing-record interfaces and admin registers.
Risk: Medium. A bad migration could duplicate a chase or imply an unsupported case outcome.
Verification: Same task/watch IDs and completion/trash state before and after. Replayed correspondence is idempotent. No writer touches the frozen original. Preserve claim amounts verbatim; do not reconcile money in this order.
Reversible: Yes, through replay and preserved sources. Do not restore Markdown task authority.
6. Rebuild agreements, notices, payments and receipts — requires Joe
Change: Complete Stage 3’s monetary standing records. Introduce the contract-required agreement and account views. Separate receipt events into finance/receipts-log.md. Make subscriptions a filtered agreement view and renewal watches reference the same agreement/date identities.
Preserve notices and transactions as distinct evidence. Apply settled classifications through an explicit before/after migration, including TSB closure, HomeServe insurance, Freetrade top-up, mortgage, council tax, Lebara terms and Klarna’s separate measures.
Why: Current register rows mix receipts, agreements, payments and balances.
Files affected: Agreement/account/event storage and interfaces; agreements-register.md, finance/accounts-register.md, bills, payment, subscription and switching views; their ingestion scripts.
Risk: High for money meaning and duplicate ingestion.
Verification: Each migrated row has source provenance and a declared meaning. Re-running ingestion produces no duplicate events. Notices do not prove payment; receipts do not create agreements. Present every changed money fact for Joe’s approval.
Reversible: Yes, with migration mappings and event replay proven on a copy. Preserve all originals.
7. Rebuild finance reports from reconciled facts — requires Joe
Change: Complete Stage 4. Extract explanation into finance/strategy.md; generate operational financial tables from sourced facts. Apply Joe’s queued money decisions, including one dated closing observation, separately scoped cash measures, distinct gain components, unknown-input blocking and recalculation under the chosen 5% assumption.
Retain Joe’s chosen mortgage-margin treatment. Do not reopen settled assumptions while restructuring. Preserve monthly observations as evidence.
Why: The same balances, deadlines and calculations currently appear in several maintained pages.
Files affected: Pension/cashflow, gains, mortgage and stoozing files; finance collectors, calculators and exporters; investment-monthly.md; copied figures in briefings.
Risk: High. A changed measure can produce a plausible but wrong total.
Verification: Give Joe a source-linked before/after ledger. Reconcile totals and equations. Show observation times, scope and missing inputs. No stale value becomes current by carry-forward. Future dates remain distinct from current balances.
Reversible: Yes, after proving replay preserves edits made since cutover. Never reverse by reviving frozen tracker writers.
8. Consolidate the narrative pages
Preserve dated originals before rewriting compiled pages. Apply these dispositions to all 30 narrative files:
| Files | Disposition |
|---|---|
AGENTS.md, TRACKER-STANDARD.md | Keep short and current under order 3. Link to owners rather than copying their state. |
KNOWLEDGE-GRAPH.md, OKF.md | Combine into ops/wiki-guide.md; temporary old-path links, then retire them. |
RESTORE.md | Keep as the current recovery entrance. Retain unique bootstrap dependencies and recovery limits. |
SOUL.md | Keep agent voice and behaviour. Remove any reading that grants permission beyond Joe’s rules. |
USER.md | Keep stable personal context. Replace case status and task-handling mechanics with owner links. |
browser-vault-capability.md | Preserve the development history; replace the current-facing page with a short owner link. Label token-file design historical and rbw-agent current, as Joe decided. |
cross-tracker-intelligence.md | Shrink to named rule purposes, implementation links and declared inputs. Remove its independent snapshot and obsolete task-writing instructions. |
decisions.md | Keep rationale and supersession history. Link to the full 4 November rulings. |
documents/doorbell-detection-redesign-2026-09-21.md | Preserve the whole dated investigation. Link to live HA/Frigate owners for current behaviour. |
documents/google-health-data-reference.md | Keep data semantics and caveats. Replace copied schedules and access mechanics with collector/skill links. |
documents/manchester-train-research.md | Keep as dated journey research. Do not promote it to current travel authority. |
documents/principality-mortgage-completion-2026-07-30.md | Retain the source-linked transcription. Do not use consolidation to change its money facts. |
drive-prune-2026-10-26.md | Preserve as a dated proposal. Current authorised work belongs in SQLite. |
email-style-guide.md | Keep as the writing reference; it has a distinct purpose. |
inbox.md, mentions.md | Keep Inbox as the single queue. Absorb mentions with provenance and explicit dispositions; retire the duplicate entrance. |
instinct-ai-research.md | Preserve as dated research; refresh only through a new research action. |
instinct-briefing.md | Preserve the dated briefing and private boundary. Replace its current-facing role with links to profile, cases, finance and ops. |
kindle-scribe.md | Keep a short current integration guide, with links to scripts and the dated setup plan. |
luna-audit-brief.md, luna-audit-findings.md | Freeze as project history. Link unresolved findings to reviewed existing tasks; do not auto-create a task for every finding. |
runbook-joehost-pool-fix.md | Archive the one-off procedure. Current recovery starts at RESTORE.md. |
system-map.md | Preserve the full 1 November snapshot. Produce a short current architecture explanation; link inventories to their actual owners. |
therapy/Themes.md, therapy/Patterns.md | Combine into therapy/Understanding.md, retaining unique material and individual attribution. |
therapy/Open Loops.md, therapy/Experiments.md | Keep questions and agreed practices in Open Loops. Preserve “none assigned” as dated history; retire the empty separate practices page. |
thinking.md | Keep attributed observations. Replace current-facing operational reference with owner links; preserve the earlier version. |
Why: These changes remove competing summaries while retaining explanation and provenance.
Files affected: The 30 files above, their archived versions, successor notes and incoming links.
Risk: Medium, especially for therapy attribution and mistaken loss of unique reasoning.
Verification: Every removed substantive passage has either a preserved historical location or an identified successor. Therapy sources remain byte-identical. Mixed records are individually attributed; differences remain explicit.
Reversible: Yes. No source or historical original is deleted.
9. Make domain ownership visible without centralising its evidence
Change: Publish automation-register.md from real scheduler definitions. Keep it a view of scheduling, not another scheduler. Identify each domain-generated page’s owner and source in its header or surrounding index.
For HA evidence, describe conflicting historical counts as disputed-scope snapshots in the index. Do not “fix” their source documents. Keep health, anxiety, wellness and solar evidence in their existing domain stores.
Why: A reader should be able to follow each view to its source without assuming SQLite owns every measurement.
Files affected: automation-register.md, its generator, home/health indexes and relevant view generators.
Risk: Medium if a generated inventory is mistaken for executable configuration.
Verification: Register entries match actual definitions, including disabled jobs and deliberate exceptions. No jobs are created, enabled or duplicated. Source hashes remain unchanged.
Reversible: Yes. Generated navigation can be removed without changing schedules or evidence.
10. Finish consumer migration and observe a full weekly cycle
Change: Move Kindle and RAG task inputs to complete generated publications. Remove remaining operational reads of frozen trackers. Ensure digest finance sections consume reconciled finance outputs rather than extracting another task list from prose.
Use shared selection for task lifecycle and attention rules. Consumers must reject or clearly warn about stale, incomplete or failed generations. Preserve source timestamps and generator identity.
Why: A readable folder structure is misleading if a device still displays frozen work.
Files affected: kindle-digest.py, sync-docs-to-rag.py, daily-tick.py, publish.py, relevant finance exporters, Pulse and calendar adapters where necessary.
Risk: High for stale work resurfacing or partial exports appearing current.
Verification: Compare identities and meanings across app, digest, close, Pulse, exports and local calendar fixtures. Cover completed/trashed suppression, month-only dates, annual June dentist review, distinct Google dates and reminder-versus-renewal labels. Observe one full weekly cycle before retiring legacy paths. Do not create external test events or send test messages.
Reversible: Yes, by reverting consumer code against the authoritative SQLite store. Retain post-cutover state.
11. Move the files into the eight areas
Use the file-map groupings above as the move ledger, with these exact destination rules:
| Current files | Destination |
|---|---|
| General, annual and renewal frozen originals | tasks/archive/<same filename> |
| Frozen life-admin original | admin/archive/life-admin-tracker.md |
| Cross-tracker rules | tasks/cross-tracker-intelligence.md |
| People, parcels, shopping and case-status views | admin/<same filename> |
| Root financial views and switching history | finance/<same filename> |
| Monthly investment evidence | finance/evidence/investment-monthly.md |
| BP, wellness and anxiety root files | health/<same filename> |
| Google Health reference | health/google-health-data-reference.md |
| Solar view | home/solar-tracker.md |
| Nine HA reports and the doorbell investigation | home/evidence/<same filename> |
| Current system map and Kindle guide | ops/<same filename> |
| Root ops incidents, audits, closeouts and one-off runbook | ops/archive/<same filename> |
| Email style guide | documents/email-style-guide.md |
| Instinct research and Manchester research | documents/research/<same filename> |
| Drive proposal, dated briefing and retrospective | documents/archive/<same filename> |
| Thinking note and wins log | documents/<same filename> |
| Retired mentions capture | tasks/archive/mentions-2026-11-04.md |
| Therapy entrance | Rename to therapy/index.md; archive superseded compiled pages there |
| Combined wiki/format guide | ops/wiki-guide.md; preserve its predecessors in ops/archive/ |
Leave PDFs and their sidecars together. Leave generated/, source CSVs, journals, hidden plans, application documentation and handoff packages in their established locations.
Why: Subjects become browsable without scattering sources or breaking application packages.
Files affected: Moved files, producers, consumer paths, schema, indexes and link resolver.
Risk: Medium to high for hard-coded paths and source provenance.
Verification: Update producers and readers in the same bounded change. Preserve source IDs, original locators and hashes through the move ledger. Every moved evidence file must have identical bytes. No duplicate physical “current” copies.
Reversible: Yes, by reversing the path ledger and code/configuration changes together.
12. Close the navigation and prove the result
Change: Rewrite the map links to final paths. Remove temporary compatibility entrances once all references resolve. Record completion and remaining gates in log.md. Retain snapshots, migration mappings and the reverse path.
Why: Completion means Joe can navigate the estate and each consumer follows its declared owner.
Files affected: Map, indexes, temporary links, schema, change log and verification records.
Risk: Medium if compatibility is retired before an overlooked consumer moves.
Verification: Run wiki lint, schema validation and normalisation checks against the revised ownership rules. Demonstrate that every Markdown file is reachable through its area or source collection. Search code and configuration for retired operational paths. Prove on a copy that recovery retains a task edit made after cutover. Report any remaining exception explicitly.
Reversible: Yes. Retiring compatibility links does not authorise deleting evidence, snapshots or mappings.
12 change orders. 2 require Joe: orders 6 and 7. Execute first: 1 — preserve the baseline and move ledger; 2 — publish the map and area entrances; 3 — rewrite the short, current instructions.