Skip to content

canon: DOLCHEO cleanup — supersede DOLCHE doc, note O/O-open intentional collision#113

Merged
klappy merged 1 commit into
mainfrom
canon/dolcheo-supersede-cleanup
Apr 19, 2026
Merged

canon: DOLCHEO cleanup — supersede DOLCHE doc, note O/O-open intentional collision#113
klappy merged 1 commit into
mainfrom
canon/dolcheo-supersede-cleanup

Conversation

@klappy
Copy link
Copy Markdown
Owner

@klappy klappy commented Apr 19, 2026

Two small follow-ups after PR #112 landed the DOLCHEO umbrella. Both items were captured as open threads ([O-open P3] and [O-open P4]) in the PR #112 validation ledger.

1. Supersede the DOLCHE doc

docs/oddkit/proactive/dolche-vocabulary.md was showing status: active despite being explicitly superseded by canon/definitions/dolcheo-vocabulary.md. The umbrella's supersedes: field established the relationship from the authoritative side but the older doc had no matching signal.

Changes:

  • status: activestatus: superseded
  • Adds superseded_by: canon/definitions/dolcheo-vocabulary.md (inverse pointer to the umbrella's supersedes:)
  • Adds a banner blockquote at the top of the body pointing readers at the DOLCHEO umbrella while preserving the doc as the canonical description of the six-dimension pattern

Note: status: superseded and the superseded_by field are newly exercised in this repo. The current frontmatter schema (canon/meta/frontmatter-schema) lists status: active | proposed | final and documents supersedes but not superseded_by. If this becomes the standard pattern, a follow-up should update the schema. For now, these are the logical inverse of existing fields and self-describing.

2. Acknowledge the intentional O/O-open collision

odd/encoding-types/how-to-write-encoding-types.md tells custom-type authors: "Letter should not collide with existing types (D, O, L, C, H, E)." That's been correct for the default set until DOLCHEO introduced the intentional collision between Observation (closed) and Open (forward-pointing), both registered under letter O with facet-based disambiguation.

Changes:

  • One-line-expanded convention that flags the O/O-open case as the one allowed exception, explains how it's resolved (facet field plus section placement), and tells custom-type authors they can follow the same pattern if their domain genuinely needs a collision.

Verification

  • git diff --stat: 2 files, +7/-2 lines
  • Frontmatter native YAML types preserved
  • No other content changed

Ready to merge once CI is green.


Note

Low Risk
Low risk: documentation-only updates that don’t affect runtime behavior; the only potential issue is tooling that assumes a limited status/frontmatter schema.

Overview
Marks docs/oddkit/proactive/dolche-vocabulary.md as superseded (adds superseded_by and a top-of-doc banner) to direct readers to the canon/definitions/dolcheo-vocabulary.md umbrella.

Updates odd/encoding-types/how-to-write-encoding-types.md to explicitly document the intentional O letter collision between Observation and Open and how it is disambiguated (via facet: open and ledger section conventions).

Reviewed by Cursor Bugbot for commit f6c1e4f. Bugbot is set up for automated code reviews on this repo. Configure here.

…l O/O-open collision

Two follow-ups after PR #112 landed the DOLCHEO umbrella:

1. docs/oddkit/proactive/dolche-vocabulary.md:
   - status: active -> superseded
   - superseded_by: canon/definitions/dolcheo-vocabulary.md
   - Adds a banner blockquote pointing readers at the DOLCHEO umbrella
     while preserving the doc for historical reference.

2. odd/encoding-types/how-to-write-encoding-types.md:
   - Custom-type conventions now acknowledge the one intentional exception
     to letter-collision: Observation and Open both register letter O and
     disambiguate by facet plus section placement, per the DOLCHEO
     contract. Future custom types should not introduce collisions unless
     they follow the same facet pattern.
klappy added a commit that referenced this pull request Apr 19, 2026
Handoff for the fresh session that picks up P1.2. Covers scope (feature
half: batch-mode prefixes + per-artifact array; refactor half: read
DOLCHEO vocab from canon at runtime via KnowledgeBaseFetcher with
three-tier fallback, governance_source in envelope, Zod knowledge_base_url
override), the path-3 orchestrator-applies workflow (Sonnet 4.6 validates;
do not dispatch Opus 4.7 exec agents to klappy/oddkit per the prior
session's safety-layer finding), smoke test extensions for
canon-tool-envelope.smoke.mjs, and the priority-ordered reading list.

Carries forward the standing rules from the 2026-04-20 fresh-session
handoff unchanged. Adds the Bugbot-is-informational-on-klappy.dev note
confirmed by #109/#110/#111/#113 merges.
@klappy klappy merged commit 79e423f into main Apr 19, 2026
1 check passed
klappy added a commit that referenced this pull request Apr 19, 2026
…r fresh session) (#114)

Handoff for the fresh session that picks up P1.2. Covers scope (feature
half: batch-mode prefixes + per-artifact array; refactor half: read
DOLCHEO vocab from canon at runtime via KnowledgeBaseFetcher with
three-tier fallback, governance_source in envelope, Zod knowledge_base_url
override), the path-3 orchestrator-applies workflow (Sonnet 4.6 validates;
do not dispatch Opus 4.7 exec agents to klappy/oddkit per the prior
session's safety-layer finding), smoke test extensions for
canon-tool-envelope.smoke.mjs, and the priority-ordered reading list.

Carries forward the standing rules from the 2026-04-20 fresh-session
handoff unchanged. Adds the Bugbot-is-informational-on-klappy.dev note
confirmed by #109/#110/#111/#113 merges.
klappy added a commit that referenced this pull request Apr 19, 2026
…rontmatter schema

Closes the O-open P1 item from the validator report on PRs #113/#114/#115.
The validator flagged that PR #113 and PR #114 used fields the schema did not
yet declare (status, superseded_by, governs, session_span on docs/odd audiences).
Per the schema's own rule — update-first-use-second — the correct sequencing was
inverted. This PR closes the gap.

Additive only. No existing row changed except canon.status (now includes
"superseded" as a valid value).

- canon: status gains 'superseded', new superseded_by row
- docs:  new status row, new superseded_by row
- odd:   new complements/governs/status/session_span rows

epoch/date bumped to E0008.3 / 2026-04-19 to mark this revision.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant