Conversation
Slate of promotions distilled from patterns observed across klappy/PTXprint-MCP (v1.0 -> v1.2 arc, PR #30 fresh-validator review) and klappy/agent-messaging-service (hosted /mcp planning, 2026-05-03). Each follows docs/promotions/TEMPLATE.md. Each cites adjacent existing canon via derives_from chains. Risk levels: 5 Low, 2 Medium. P0003 (Method, Medium) Reframe Before Trimming P0004 (Pattern, Low) Docs Proxy - Canon-as-Tool P0005 (Principle, Low) Async by Default for Long-Running Tools P0006 (Amend Vodka, Med) Boundary Enumeration as Spec Convention P0007 (Amend DoD, Low) DoD as Agent-Observable Behaviors P0008 (Amend Gate, Med) Validator DOLCHEO Ledger as Deliverable P0009 (Amend Vocab, Low) DOLCHEO+H Anti-Pattern Callout Pre-push gauntlet: - Audit 1 (link-rot): 8/8 existing canon URIs resolve, 3 new URIs correctly unresolved (will resolve on acceptance) - Audit 2 (adjacent-canon): derives_from chains cite all matching adjacent canon (doing-less-enables-more, partial-data, vodka-arch, dolcheo-vocabulary, release-validation-gate, specs-lock, etc.) - Audit 3 (frontmatter): 9/9 files type-discipline-compliant - oddkit_challenge against P0003 (highest stakes): canon constraints surfaced; doing-less-enables-more cited as the structural empirical claim; P0003 positioned as the operational complement (method, not principle) Per docs/promotions/README.md: each promotion is a proposal, not canon. Reviewer triage expected.
Canon Quality —
|
| Line | Rule | Occurrence | Message |
|---|---|---|---|
| 242 | dead-reference |
klappy://writings/nothing-new-even-ai |
URI does not resolve |
3 finding(s) suppressed via <!-- audit-allow: ... --> directives.
Soft-block mode — this status is informational; the job will not fail. Hard-block ships in PR-3.2 after the observation cycle.
What to do for each finding:
- Fix the slug if the target now lives at a different
klappy://URI.- Remove the link if it is no longer needed.
- Allowlist with a reason if the rot is intentional (e.g. forward-ref to an upcoming article): place
<!-- audit-allow: dead-reference reason="..." -->on the line above the offending link. The directive is line-level and scopes to the next markdown link.
Spec: klappy://docs/oddkit/specs/oddkit-audit · Workflow: .github/workflows/canon-quality.yml · Run: #31
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Slate of seven promotion artifacts (
P0003-P0009) distilled from patterns observed across two MCP server projects in this program —klappy/PTXprint-MCP(v1.0 → v1.2 arc, PR #30 fresh-validator review) andklappy/agent-messaging-service(hosted/mcpplanning, 2026-05-03). Each promotion is a proposal, not canon, perdocs/promotions/README.md. Reviewer triage expected.Why this slate exists
canon/principles/ritual-is-a-smell: "if correctness depends on people repeatedly remembering a procedure, the system is compensating for missing design." These patterns have been re-derived independently across at least two server projects within ~6 weeks. The fix per ritual-is-a-smell is to encode the discipline as canon so the next server project reads it once at preflight rather than re-deriving it under time pressure.The seven promotions
canon/methods/reframe-before-trimming.mdcanon/patterns/docs-proxy-canon-as-tool.mddocsproxy so consumers wire one MCP, not two.canon/principles/async-by-default-for-long-running-tools.mdvodka-architecturedefinition-of-donerelease-validation-gatedolcheo-vocabularyRecommended sequencing
If shipping all seven: P0007 first (low-risk DoD sharpening, immediately useful for in-flight specs) → P0004 (most actionable, AMS could adopt this week) → P0003 + P0006 together (adjacent moves) → P0005 (independent, lands any time) → P0009 (small-blast-radius, kills a recurring hallucination at canon source) → P0008 last (highest operational ripple).
Each can also ship independently. Reviewer may accept any subset.
Pre-push gauntlet results
Audit 1 — link-rot (oddkit_audit-equivalent): 8/8 cited existing canon URIs resolve in this clone. 3 new canon URIs (the targets the promotions create) correctly unresolved — they exist only post-acceptance.
Audit 2 — adjacent-canon (
canon-integration-auditAudit 2): every promotion cites the matching existing canon viaderives_fromchains. Notably:doing-less-enables-more(landed 2026-05-02, canon: add doing-less-enables-more — the empirical principle behind vodka architecture #162) as the structural empirical claim it operationalizespartial-data-with-transparency-and-background-warmas the read-side complement to its action-side principledolcheo-vocabularyandrelease-validation-gate(the two docs it joins at the deliverable layer)dolcheo-vocabularyand the supersededoldc-h-vocabulary(the propagation source)Audit 3 — frontmatter validation (
canon-integration-auditAudit 3): 9/9 files indocs/promotions/pass type-discipline (uri, title, audience, exposure, tier, voice, stability, tags, promotion_status). All 7 new files have URI tails matching their filenames and titles starting withP####:.oddkit_challengeagainst P0003 (highest stakes — Medium risk, recently-landed-canon adjacent): challenge surfaced the standard prereqs for pattern-coinage / principle-extraction (alternatives considered, retraction conditions, sample size).block_until_addressed: false. P0003 was already reframed mid-authoring fromcanon/principles/inversion-before-trimming.mdtocanon/methods/reframe-before-trimming.mdafter surveying recent canon — the principle space is occupied bydoing-less-enables-more; P0003 positions itself as the operational method (post-drift diagnosis), not a competing principle.Mid-session recovery — numbering collision
My initial clone showed only
P0001indocs/promotions/. While running the gauntlet, theoddkit_challengeresponse surfaced a citation toP0002-borrow-evaluation-before-implementationthat did not exist locally.git pullrevealed PR #163 had merged in the interim, takingP0002. I renumbered all seven fromP0002-P0008→P0003-P0009(URIs, titles, body self-refs all updated; verified via grep). No content collision with the newP0002(different topic — adding "Bide" to the 5B method).Promotion #4 — DOLCHEO not DOLCHEO+H (P0009)
Worth special note: this promotion grew out of an operator-flagged hallucination during the slate-authoring session itself. The malformed string "DOLCHEO+H" propagated from a canon-resident artifact in
klappy/PTXprint-MCP(canon/encodings/pr-30-fresh-validator-ledger.mdline ~12) into freshly-authored slate documents, 8 instances across 2 files before the operator caught and corrected it. Operator framing: "It is minor but I am frustrated at it resurfacing every conversation."P0009 proposes a two-paragraph anti-pattern callout in the DOLCHEO vocabulary doc that makes the malformed form findable through
oddkit_search, killing the hallucination at canon source. The PTXprint-MCP repo also has the malformed string and would benefit from a sibling cleanup PR (noted in the promotion).Per the
docs/promotions/README.mdrulesproposedAuthor
Claude (Sonnet) via
klappy/agent-messaging-serviceplanning session, 2026-05-03. Authoring transcript and prior-session artifacts available on request.Note
Low Risk
Documentation-only change adding proposed promotion artifacts; no runtime or build impact, with only process/guidance implications if later accepted into canon.
Overview
Adds seven new proposed promotion artifacts (
P0003–P0009) underdocs/promotions/, each capturing an observed MCP-server governance pattern and proposing specific canon additions or amendments.The slate covers: reframing bloated tool surfaces before trimming, adding a
docsproxy tool to avoid wiring two MCPs, defaulting long-running tools to an asyncid + status + cancelshape, and tightening spec/review conventions (explicit vodka boundary enumeration, DoD as agent-observable behaviors, fresh-validator output as a committed DOLCHEO ledger, and an anti-pattern note to avoid the termDOLCHEO+H).Reviewed by Cursor Bugbot for commit a0dba09. Bugbot is set up for automated code reviews on this repo. Configure here.