Skip to content

canon: promote 'Skills Are Procedure, Not Judgment' to a ratified principle#257

Merged
klappy merged 2 commits into
mainfrom
canon/skills-are-procedure-not-judgment
Jun 19, 2026
Merged

canon: promote 'Skills Are Procedure, Not Judgment' to a ratified principle#257
klappy merged 2 commits into
mainfrom
canon/skills-are-procedure-not-judgment

Conversation

@git-repo-auth

@git-repo-auth git-repo-auth Bot commented Jun 19, 2026

Copy link
Copy Markdown
Contributor

What this is

Promotes the candidate principle Skills Are Procedure, Not Judgment from klappy/refinery (odd/principles/skills-are-procedure-not-judgment.md, candidate / not-yet-ratified) to a full ratified canon principle at canon/principles/skills-are-procedure-not-judgment.md.

Scope fence honored: strictly procedure vs judgment. The persona/identity/costume axis is explicitly out of scope and pointed at its existing home, Crew, Not Clone.

⚠️ DO NOT MERGE YET

Two gates remain, by design, and neither was faked in-session:

  1. Author editorial pass — the maintainer reviews the exact text and approves explicitly (publish-gauntlet step 7). Constitutionally the maintainer's.
  2. Independent fresh-context validation — per canon/principles/verification-requires-fresh-context, the authoring session cannot validate its own work. This PR was authored in one session; validation requires a separate context (fresh session / different reviewer). Same-session self-review was deliberately NOT performed and NOT labeled as validation.

Gauntlet evidence trail

  • Preflight — run on the topic; surfaced writing-canon, triangle-pass, guide-posture, dual-context, ai-voice-cliches, revision-lens-sequence, canon-integration-audit, frontmatter-schema, publish-gauntlet. All fetched live at current hash (recall does not count).
  • Draft inside the constraints — sibling-principle shape (blockquote → Summary → body → See Also), neutral canon voice.
  • Mechanical ghost-writer audit — no negation-parallelism closers, no formulaic transitions (Moreover/Furthermore/etc.), no sycophantic openers. Em-dash clustering found in 2 paragraphs and de-clustered (now 35 total across ~2.2k words, none clustered 3+). Pacing varies 3–60 words/sentence (not metronomic).
  • Progressive disclosure (writing-canon) — stance title; complete-compressed-argument blockquote; self-contained ## Summary —; header scan tells the full argument in sequence; no buried claims.
  • Frontmatter / validator-completeness audit — complete type/enum/path validator: tier int, tags list, derives_from a quoted comma-separated string of .md paths (closes canon-integration-audit Gap 3 — NOT a YAML list), date native, all enums valid, uri matches file location.
  • Canon-integration audit (three checks):
    • Concept audit — no prior canon home for the principle existed (when-skills-arent-enough is an essay that gestures at the edge but does not canonize it). This doc IS the home.
    • Adjacent-canon audit — search surfaced discernment-layer as load-bearing (the human-side companion); added to derives_from. Also cites the four named anchors.
    • Validator-completeness audit — run (above).
  • Challengeoddkit_challenge in canon-tier-2 mode. Thesis held (block_until_addressed: false). Sharpenings folded into the draft: explicit retraction condition, decision-tree counter-example ("a fork is still a step"), honest comparative positioning vs discernment-layer and when-skills-arent-enough, and "never" anchored to the definition of a skill (definitional necessity, not empirical over-claim).
  • Validateoddkit_validate returned NEEDS_ARTIFACTS (visual proof / version bump). This is the known prose gap: validate's DoD is shaped for UI/code; for a canon essay the substantive gate is challenge, which passed.
  • Reference integrity — every derives_from and See-Also URI resolves. klappy://canon/validation-as-epistemic-mode confirmed via resolve (renders at /canon/validation-as-epistemic-mode; file lives under canon/definitions/).

derives_from

audit-gates-are-spawned-agent-sessions, prompt-over-code, verification-requires-fresh-context, validation-as-epistemic-mode, discernment-layer

DOLCHEO (session capture)

  • D — Deliverable is one canon principle doc (not a public writings/ essay, not a dual pair); placement and target_repo: outcomes-driven-development resolved from frontmatter-schema + sibling pattern, not asked.
  • Owhen-skills-arent-enough (essay) and discernment-layer (principle) are the closest neighbors; neither canonized this principle.
  • Loddkit_get by the slug URI klappy://canon/validation-as-epistemic-mode returns NOT_FOUND (naive path derivation misses canon/definitions/), but resolve handles it. Use resolve for link verification.
  • C — derives_from must be a quoted CSV string, not a list (Gap 3); persona axis stays parked.
  • H — Next: maintainer editorial pass on exact text + independent fresh-context validation, then merge.
  • E — Encoded the procedure/judgment boundary and the rule "encode the procedure, never the verdict."
  • O (open) — Whether a separate public writings/ essay version is wanted later (not in this scope).

Note

Low Risk
Documentation-only canon addition with no runtime or auth changes; main risk is editorial or link/frontmatter drift, not production behavior.

Overview
Adds a new tier-2 canon principle at canon/principles/skills-are-procedure-not-judgment.md, promoting the refinery candidate into ratified canon (procedure vs judgment only; persona/identity is explicitly out of scope and deferred to Crew, Not Clone).

The document states that skills carry repeatable procedure while odd/canon/oddkit carry judgment, with the operational rule encode the procedure, never the verdict. It grounds that split in three existing constraints (spawned audit gates, fresh-context verification / critic≠resolver, prompt-over-code), answers the “decision trees are judgment” objection, positions the piece as the machine-side companion to discernment-layer, and includes definitional plus empirical retraction conditions.

Frontmatter wires derives_from, complements, governs, nav exposure, and See Also links to the cited canon and writings.

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

…nciple

Promotes the candidate principle from klappy/refinery (odd/principles/) to a
full canon principle under canon/principles/. Strictly procedure-vs-judgment;
persona/identity parked to crew-not-clone. Written under the writing gauntlet.
@github-actions

github-actions Bot commented Jun 19, 2026

Copy link
Copy Markdown

Canon Quality — P0010 Retrieval-Readiness ⚠️

Soft report for klappy://canon/constraints/retrieval-disclosure-contract. 677 files scanned. Never blocks — informational until the corpus is ready to enforce.

  • Blocking-class findings: 15 (structural fields the contract would filter on)
  • Warnings: 0 (kind resolves to unknown)
  • Informational: 13 (exempt templates/archive/drafts)

Kind distribution: {'essays': 50, 'canon': 227, 'apocrypha': 38, 'docs': 297, 'journals': 59, 'unknown': 6}
Kind source: {'path': 548, 'frontmatter': 123, 'none': 6} (frontmatter-primary, path-secondary)
Default-include visibility: 574 visible, 103 hidden (journals/apocrypha/unknown)

By rule: {'audience-invalid': 2, 'exposure-missing': 5, 'tier-missing': 5, 'tier-invalid': 7, 'fm-missing': 3, 'kind-unresolvable': 6}

These are not schema violations (see the Frontmatter Schema job for those on writings/). They are corpus-readiness signals for the retrieval contract: invalid/missing audience, exposure, tier, and docs whose kind cannot be resolved. Fix in a corpus-cleanup PR before the contract flips to enforcing. See the retrieval-readiness-findings artifact for the full list.

Validator: scripts/audit-retrieval-readiness.py · Constraint: klappy://canon/constraints/retrieval-disclosure-contract · Run: #285

@github-actions

github-actions Bot commented Jun 19, 2026

Copy link
Copy Markdown

Canon Quality — Homepage Surfacing ✅

48 essay(s) scanned. Soft report — never blocks; the hard field gate is the Frontmatter Schema job.

All published essays resolve to the homepage feed.

Report: scripts/surfacing-report.py · Canon: klappy://canon/constraints/frontmatter-validation-before-merge

@github-actions

github-actions Bot commented Jun 19, 2026

Copy link
Copy Markdown

Canon Quality — Frontmatter Schema ✅

All 48 file(s) in writings/ conform to klappy://canon/meta/frontmatter-schema.

Validator: scripts/validate-frontmatter.py · Canon: klappy://canon/constraints/frontmatter-validation-before-merge · Run: #285

@github-actions

github-actions Bot commented Jun 19, 2026

Copy link
Copy Markdown

Canon Quality — oddkit_audit

No dead klappy:// references or legacy link patterns found in writings/. 50 files scanned.

Spec: klappy://docs/oddkit/specs/oddkit-audit · Workflow: .github/workflows/canon-quality.yml · Run: #285

…e-not-judgment

Iteration from the PR #257 fresh-context validation (verdict REVISE, no majors):

- Reason #2 retitled 'A Procedure Cannot Supply the Independence Validation Requires'; re-aimed from in-context self-review (too narrow) to independence-is-contextual, with an explicit capability-vs-independence split from the audit-gate reason.
- 'When This Would Be Wrong' is now two retraction conditions, definitional + empirical, with a runnable procedure-vs-fresh-context-judge test.
- derives_from and See Also gain canon/constraints/critic-cannot-be-resolver.
@git-repo-auth

git-repo-auth Bot commented Jun 19, 2026

Copy link
Copy Markdown
Contributor Author

Pushed 4d69ca4 — iteration from the fresh-context validation (verdict REVISE, no majors).

Changes

  • Reason Lane-scope mail forwarding cleanup #2"A Procedure Cannot Supply the Independence Validation Requires"; re-aimed from in-context self-review (too narrow) to independence-is-contextual, with an explicit capability-vs-independence split from the audit-gate reason.
  • "When This Would Be Wrong" → two retraction conditions (definitional + empirical) with a runnable procedure-vs-fresh-context-judge test.
  • New anchor canon/constraints/critic-cannot-be-resolver in derives_from + See Also.

Open before un-drafting: author's-voice / exact-text read. This commit was machine-drafted against the validation findings; nothing merges without your read of the diff.

@git-repo-auth git-repo-auth Bot marked this pull request as ready for review June 19, 2026 03:27
@klappy klappy merged commit 142a2db into main Jun 19, 2026
5 checks passed
@klappy klappy deleted the canon/skills-are-procedure-not-judgment branch June 19, 2026 03:36
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