From c4ba9efb224ad04054e111c8cd414d63d422c225 Mon Sep 17 00:00:00 2001 From: Klappy Date: Sun, 10 May 2026 16:20:09 +0000 Subject: [PATCH] canon: sweep DOLCHEO+H residue from active surfaces (P0009 enforcement) P0009 named DOLCHEO+H as an explicit anti-pattern but never swept the existing residue. This commit fixes the two active surfaces where the malformed vocabulary was leaking: 1. canon/constraints/mode-transitions-require-encoded-handoff.md (Tier 1) - frontmatter complements: replace docs/oddkit/proactive/oldc-h-vocabulary.md with canon/definitions/dolcheo-vocabulary.md - body: 3 occurrences of DOLCHEO+H -> DOLCHEO - body: 3 links to klappy://docs/oddkit/proactive/oldc-h-vocabulary -> klappy://canon/definitions/dolcheo-vocabulary - corrected the artifact-list ordering in the journal-entry section to match DOLCHEO order (decisions, observations, learnings, constraints, handoffs, encodes, opens) and added 'opens' which had been missing 2. writings/reverse-engineer-the-future.md (published essay) - line 256: DOLCHEO+H artifacts -> DOLCHEO artifacts - the seven-item expansion was already DOLCHEO-shaped; only the bracketing acronym needed correction The Tier-1 constraint was the worst leak: it was both using the anti- pattern AND linking to a superseded URI on the same line, so every session that fetched mode-transition canon read DOLCHEO+H as if it were governance and could not even reach the corrected vocabulary doc by following the link. Out of scope for this PR (flagged for separate handling): - writings/from-passive-to-proactive.md uses 'encode OLDC+H' in two recollective passages about historical practice; those are correctly historical and should not be retroactively rewritten - bootstrap doc canon/bootstrap/model-operating-contract.md is already correct on main; oddkit MCP's R2 cache was serving a stale prior version, which is an oddkit cache-invalidation concern, not a canon residue concern - many odd/ledger/* and odd/handoffs/* entries use OLDC+H or DOLCHE because that was the vocabulary at write time; they are historical record --- .../mode-transitions-require-encoded-handoff.md | 8 ++++---- writings/reverse-engineer-the-future.md | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/canon/constraints/mode-transitions-require-encoded-handoff.md b/canon/constraints/mode-transitions-require-encoded-handoff.md index 1c6e0da..fe0ca29 100644 --- a/canon/constraints/mode-transitions-require-encoded-handoff.md +++ b/canon/constraints/mode-transitions-require-encoded-handoff.md @@ -10,7 +10,7 @@ tags: ["canon", "constraints", "epistemic-modes", "handoff-contract", "journal", epoch: E0008.5 date: 2026-05-10 derives_from: "canon/principles/sessions-mirror-modes.md, canon/definitions/epistemic-modes.md, canon/constraints/critic-cannot-be-resolver.md, canon/principles/verification-requires-fresh-context.md" -complements: "canon/methods/persona-shaped-agent-runtime.md, docs/mode-separated-conversations.md, docs/oddkit/proactive/oldc-h-vocabulary.md" +complements: "canon/methods/persona-shaped-agent-runtime.md, docs/mode-separated-conversations.md, canon/definitions/dolcheo-vocabulary.md" governs: "Every transition between epistemic modes — exploration, planning, execution, validation, resolution — across all surfaces (agent runtime, human conversation, mixed teams)" status: proposed --- @@ -27,7 +27,7 @@ Every legitimate transition between epistemic modes produces two artifacts: ### 1. Journal Entry — Universal, No Exception -Every transition produces a journal entry recording what happened. The format is DOLCHEO+H per [the canonical vocabulary](klappy://docs/oddkit/proactive/oldc-h-vocabulary): observations, learnings, decisions, constraints, encodes, handoffs. The journal entry captures: +Every transition produces a journal entry recording what happened. The format is DOLCHEO per [the canonical vocabulary](klappy://canon/definitions/dolcheo-vocabulary): decisions, observations, learnings, constraints, handoffs, encodes, opens. The journal entry captures: - The mode transition itself (from → to, with timestamp) - What was completed in the prior mode (obligations met) @@ -119,7 +119,7 @@ This is a consumer pattern, not a runtime feature, and it is documented separate ## Confidence -**Working belief.** The journal-entry requirement extends an already-canonical practice (DOLCHEO+H entries on every session per [oldc-h-vocabulary](klappy://docs/oddkit/proactive/oldc-h-vocabulary)) to mode transitions specifically. The transition-specific handoff requirements extend already-canonical practice for individual transitions (P0008 for validator deliverables, plan documents for execution work, etc.) into a uniform contract. +**Working belief.** The journal-entry requirement extends an already-canonical practice (DOLCHEO entries on every session per [the dolcheo-vocabulary](klappy://canon/definitions/dolcheo-vocabulary)) to mode transitions specifically. The transition-specific handoff requirements extend already-canonical practice for individual transitions (P0008 for validator deliverables, plan documents for execution work, etc.) into a uniform contract. **Retraction conditions:** @@ -135,7 +135,7 @@ This is a consumer pattern, not a runtime feature, and it is documented separate - [Sessions Mirror Modes](klappy://canon/principles/sessions-mirror-modes) — the principle this constraint operationalizes - [Epistemic Modes](klappy://canon/epistemic-modes) — the parent canon defining the modes whose transitions this constraint governs -- [DOLCHEO+H Vocabulary](klappy://docs/oddkit/proactive/oldc-h-vocabulary) — the journal entry format required at every transition +- [DOLCHEO Vocabulary](klappy://canon/definitions/dolcheo-vocabulary) — the journal entry format required at every transition - [Verification Requires Fresh Context](klappy://canon/principles/verification-requires-fresh-context) — the principle motivating the encoded handoff for execution → validation specifically - [Critic Cannot Be Resolver](klappy://canon/constraints/critic-cannot-be-resolver) — the constraint motivating the encoded handoff for validation → resolution specifically - [P0008 — Fresh-Validator Deliverable Is a DOLCHEO Ledger](klappy://docs/promotions/P0008-pr-validator-dolcheo-ledger-as-deliverable) — the operationalized handoff pattern for the validator role diff --git a/writings/reverse-engineer-the-future.md b/writings/reverse-engineer-the-future.md index 31258d9..d4f4840 100644 --- a/writings/reverse-engineer-the-future.md +++ b/writings/reverse-engineer-the-future.md @@ -253,7 +253,7 @@ For about four hours each evening, I babysat agents. The ratio of human discernment to model output, in the kind of work I am doing right now, is unusually high. This is not a long-running production codebase where the path is well-trodden and the AI can charge ahead. This is the part where the architecture is being negotiated session by session — where a single bad commit can lock in a domain assumption that takes a week to undo. An agent making seventy decisions an hour, untended, would produce a server I would not want to maintain. -So I sat with it. I read what it wrote. I caught the moments when it was about to add a tool that should be a canon document, or write a feature flag that should be a CLI argument, or import a library that would lock the build to a runtime I had spent three days designing my way out of. Most of those moments lasted ten or fifteen seconds. The whole evening was a string of those ten-second corrections. By two in the morning the day's transcripts had been encoded as DOLCHEO+H artifacts — Decisions, Observations, Learnings, Constraints, Handoffs, Encodings, Opens — into the project's canon, where the next session would inherit them. +So I sat with it. I read what it wrote. I caught the moments when it was about to add a tool that should be a canon document, or write a feature flag that should be a CLI argument, or import a library that would lock the build to a runtime I had spent three days designing my way out of. Most of those moments lasted ten or fifteen seconds. The whole evening was a string of those ten-second corrections. By two in the morning the day's transcripts had been encoded as DOLCHEO artifacts — Decisions, Observations, Learnings, Constraints, Handoffs, Encodings, Opens — into the project's canon, where the next session would inherit them. I have been asked, more than once: *why don't you just automate that?* The answer is that I am not optimizing for the throughput of any single feature. I am optimizing for the integrity of the architecture across many features. Automation will catch up. Once the patterns I am writing now solidify into canon, the next round of similar projects will largely write themselves — that's what already happened with the Scripture App Builder server, which I built more than half by replaying the playbook on a new domain.