Skip to content

canon(6B): execute P0002 — Bide as 6th B + Borrow Evaluation constraint + bootstrap bullet#166

Merged
klappy merged 1 commit intomainfrom
claude/p0002-canon-edits-z4FK
May 5, 2026
Merged

canon(6B): execute P0002 — Bide as 6th B + Borrow Evaluation constraint + bootstrap bullet#166
klappy merged 1 commit intomainfrom
claude/p0002-canon-edits-z4FK

Conversation

@klappy
Copy link
Copy Markdown
Owner

@klappy klappy commented May 5, 2026

Executes the three coordinated canon edits proposed by docs/promotions/P0002-borrow-evaluation-before-implementation.md (status: accepted per PR #165). Per klappy.dev/AGENTS.md, agents do not write canon — this PR is opened under explicit operator authorization on 2026-05-05 ("Let's do 3/4") in the recurrence-escalation conversation following AMS PR #33's hosted /mcp handroll.

What this PR does

Edit 1 — canon/methods/borrow-bend-break-beget-build.md (modified)

  • Frontmatter: title and # heading updated to "Borrow, Bend, Break, Beget, Bide, Build"; tags add 6B, bide, strategic-patience, reversibility; epoch advanced E0005 → E0008.5; complements adds the new constraint; supersedes_concept records the 5B → 6B history.
  • Filename and URI retained for backward compatibility (renaming would break references across canon and consumer projects).
  • Opening blockquote: extended to acknowledge Bide as deliberate strategic patience with a tripwire and inspection step.
  • Summary: "Five Steps" → "Six Steps"; new closing paragraph names Bide's discipline and points at the agent-binding constraint.
  • The Sequence: new Bide — Wait for the Field to Build It For You, Then Inspect What Surfaces subsection inserted between Beget and Build. Names the three resolution paths (waiting / inspected-and-adopted / inspected-and-rejected), the three required components (reason, tripwire, inspection step), the six inspection criteria for rejection, and the framing that both fork outcomes are success states.
  • Build subsection retitled to "Only What Nobody Else Can Carry and What Waiting Cannot Resolve".
  • Constraints: "borrow, bend, and beget" → "borrow, bend, beget, and bide"; new paragraph on reversibility as a planning-time criterion the method requires consideration of.

Edit 2 — canon/constraints/borrow-evaluation-before-implementation.md (NEW)

Tier-1 constraint, semi_stable, ~330 lines. Operationalizes the 6B method as a falsifiable planning-mode artifact the agent must produce before implementation execution. Contents:

  • Goldratt frame (why local "inefficiency" is global efficiency)
  • Trigger conditions (when the constraint binds)
  • The six-row evaluation table with verdict vocabulary
  • What counts as a real Borrow vs. a real Bide
  • The six inspection criteria (vision conflict, foundational gap, gross overcomplication, opinionated stack imposition, improper authority, persistent gap)
  • Operational sequence in planning
  • What is forbidden
  • Three worked examples — both fork outcomes framed as success: oddkit write layer (Bide → inspected-and-adopted), AMS wire layer (Bide → inspected-and-rejected → Build = minimal), six MCP server failure shape
  • Failure-mode table
  • Risks, reversibility, and disconfirmer for the constraint itself
  • Relationship to other canon

Edit 3 — canon/bootstrap/model-operating-contract.md (modified)

New bullet under "Before Shipping Code" pointing at the new constraint. Restates the surface: six-row evaluation; named justifications for skips; named criteria for inspected-and-rejected; tripwires for waiting; one-line Reversibility Note; falsifiable, not ritual; explicit empirical base ("six times across six MCP server projects; do not be the seventh").

Authorization context

klappy.dev/AGENTS.md says:

Canon is read-only. Do not modify files under canon/.
Agents cannot: Decide what becomes Canon · Merge promotion artifacts · Write governing rules

This PR is an operator-authorized exception for this specific case. The operator wrote the rule; the operator is exercising authority to authorize this specific application; the PR documents the authorization in commit and PR text so the precedent is visible. The rule remains unchanged for default agent behavior; this PR is not a precedent for agents touching canon/ without explicit operator directive.

The substantive criteria for the exception are met:

What this PR does NOT include

  • P0002 status flip from accepted to executed — left to a tiny follow-up PR after this PR merges and the canon-edit commit SHAs are stable. Avoids merge-order coupling with the in-flight PR docs(promotions): P0002 — sixth evidence row + accepted (operator decision) #165 that touches P0002's frontmatter for the accepted flip.
  • Filename rename to borrow-bend-break-beget-bide-build.md — declined to preserve URI continuity. The in-doc title carries the rename; the URI does not.

URI integrity

Verified:

  • Bide section references klappy://canon/constraints/borrow-evaluation-before-implementation — created in this PR.
  • New constraint references klappy://canon/methods/borrow-bend-break-beget-build — already exists.
  • Bootstrap bullet references klappy://canon/constraints/borrow-evaluation-before-implementation — created in this PR.
  • New constraint references ams://canon/constraints/mcp-build-side-governance — resolves once companion AMS PR Add writings directory with first two essays #35 merges.

Reversibility

Two-way. The 6B method's filename/URI are unchanged; the in-doc title and content are extensions, not rewrites. The new constraint is itself reversible per its own "Risks and Reversibility" section. If the constraint produces ritual rather than insight, or systematically rejects substrates that turn out to be the right answer, it is updated via canon revision. The disconfirmer is named in the doc.

Sequence with related PRs

PR Repo What Order
AMS #35 agent-messaging-service AMS-local manifestation + SPEC §11 patch + journal Mergeable independently
klappy.dev #165 klappy.dev P0002 sixth evidence row + status accepted Mergeable independently
THIS PR klappy.dev Three coordinated canon edits Mergeable after #165 (touches different sections of P0002 indirectly via dependency on accepted status); merge conflicts on P0002 are not expected since this PR does not touch P0002
Future tiny PR klappy.dev P0002 status acceptedexecuted + Execution Record SHAs After this PR merges

After all four land, klappy://canon/constraints/borrow-evaluation-before-implementation will resolve, the bootstrap will surface it on first turn of every session, the 6B method will be canonical, and oddkit_search for "borrow" / "build" / "SDK" / "handroll" will surface the rule during preflight on any new MCP server (or any other implementation task with an upstream substrate) project across all of klappy's work.


Note

Medium Risk
Medium risk because it changes tier-1 canon governance that will affect agent planning/execution behavior across projects; mistakes or unclear requirements could cause process friction or inconsistent compliance.

Overview
Canon governance update: extends the borrow-bend-break-beget-build method to 6B by inserting Bide (wait-with-tripwire + inspection) and updating the method’s constraints to require considering reversibility before choosing to build.

New binding constraint: adds canon/constraints/borrow-evaluation-before-implementation.md, requiring a falsifiable planning artifact (6-row 6B evaluation + one-line Reversibility Note) before executing implementation work when an upstream substrate or field convergence exists.

Bootstrap surfaced: updates canon/bootstrap/model-operating-contract.md to include a new “Before Shipping Code” bullet that points operators/agents to the new Borrow Evaluation constraint.

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

…nt + bootstrap bullet

Operator-authorized exception to the agent-canon-read-only rule in AGENTS.md.
Authorization: operator directive 'Let's do 3/4' on 2026-05-05 in the
recurrence-escalation conversation following AMS PR #33's hosted /mcp
handroll (the sixth occurrence of the pattern P0002 documents).

The default rule remains: agents do not write canon. This commit is the
mechanical application of operator-accepted drafts (P0002 status: accepted
2026-05-05) to the three named target files. Per docs/promotions/README.md,
this corresponds to the 'executed' step of the promotion lifecycle.

THREE COORDINATED EDITS:

Edit 1 — canon/methods/borrow-bend-break-beget-build.md
- Frontmatter: title and # heading updated to 'Borrow, Bend, Break, Beget,
  Bide, Build'; tags add 6B, bide, strategic-patience, reversibility;
  epoch advanced E0005 -> E0008.5; date updated; complements adds the new
  constraint; supersedes_concept records the 5B->6B history.
- Filename and URI retained for backward compatibility (renaming would
  break existing references).
- Opening blockquote: extended to acknowledge Bide as deliberate strategic
  patience with a tripwire and inspection step.
- Summary: 'Five Steps' -> 'Six Steps'; intro paragraph adds the
  strategic-patience concept; new closing paragraph names Bide's discipline
  and points at the agent-binding constraint.
- The Sequence: new 'Bide — Wait for the Field to Build It For You, Then
  Inspect What Surfaces' subsection inserted between Beget and Build.
  Names the three resolution paths (waiting / inspected-and-adopted /
  inspected-and-rejected), the three required components (reason, tripwire,
  inspection step), the six inspection criteria for rejection, and the
  framing that both fork outcomes are success states.
- Build subsection retitled to 'Only What Nobody Else Can Carry and What
  Waiting Cannot Resolve'.
- Constraints section: 'borrow, bend, and beget' -> 'borrow, bend, beget,
  and bide'; new paragraph naming reversibility as a planning-time
  criterion the method requires consideration of.

Edit 2 — canon/constraints/borrow-evaluation-before-implementation.md (NEW)
- Tier-1 constraint, ~330 lines, semi_stable.
- Operationalizes the 6B method as a falsifiable planning-mode artifact.
- Includes: Goldratt frame, when the constraint binds, the six-row
  evaluation table with verdict vocabulary, what counts as a real Borrow
  vs. a real Bide, the six inspection criteria, operational sequence,
  what is forbidden, three worked examples (oddkit write layer adopted;
  AMS wire layer rejected-then-built-minimal; six MCP server failure
  shape), failure-mode table, risks and reversibility of the constraint
  itself, relationship to other canon, see-also.

Edit 3 — canon/bootstrap/model-operating-contract.md
- New bullet under 'Before Shipping Code' pointing at the new constraint.
- Restates the rule's surface: six-row evaluation; named justifications;
  named criteria for rejected; tripwires for waiting; reversibility note;
  falsifiable, not ritual; explicit empirical base ('six times across six
  MCP server projects; do not be the seventh').

NOT INCLUDED:
- P0002 status flip from 'accepted' to 'executed' — left to a follow-up
  PR after this PR merges and the canon-edit commit SHAs are stable, to
  avoid merge-order coupling with the in-flight PR #165 that touches
  P0002's frontmatter for the accepted-status flip.
- Filename rename to 'borrow-bend-break-beget-bide-build.md' — declined
  to preserve URI continuity for existing references across canon and
  consumer projects.

URI integrity: all internal references between the three files resolve
at merge time. External references (ams://canon/constraints/mcp-build-
side-governance) resolve once the companion AMS PR #35 merges.

Reversibility: two-way. The 6B method's filename/URI are unchanged; the
in-doc title and content are extensions, not rewrites. The new constraint
is itself reversible per its own 'Risks and Reversibility' section.
@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 5, 2026

Canon Quality — oddkit_audit ⚠️

8 finding(s) in writings/ (39 files scanned). Mode: soft.

writings/agentic-software-development.md — 1 finding(s)
Line Rule Occurrence Message
242 dead-reference klappy://writings/nothing-new-even-ai URI does not resolve
writings/choosing-faith-not-fear.md — 1 finding(s)
Line Rule Occurrence Message
203 dead-reference klappy://writings/four-questions-that-change-everything URI does not resolve
writings/getting-started-with-odd-and-oddkit.md — 4 finding(s)
Line Rule Occurrence Message
69 legacy-link-pattern /page/writings/the-journey-from-ai-tasks-to-ai-augmented-workflows Use a klappy:// URI instead of /page/ path
202 legacy-link-pattern /page/docs/oddkit/proactive/proactive-bootstrap Use a klappy:// URI instead of /page/ path
204 legacy-link-pattern /page/docs/examples/project-instructions-template Use a klappy:// URI instead of /page/ path
260 legacy-link-pattern /page/writings/the-journey-from-ai-tasks-to-ai-augmented-workflows Use a klappy:// URI instead of /page/ path
writings/the-broken-wall-and-the-buried-talent.md — 1 finding(s)
Line Rule Occurrence Message
332 dead-reference klappy://draft-zeros/appendix-a-the-biblical-roots URI does not resolve
writings/the-voice-came-first.md — 1 finding(s)
Line Rule Occurrence Message
244 dead-reference klappy://writings/four-questions-that-change-everything URI does not resolve

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: #36

@klappy klappy merged commit 244ec53 into main May 5, 2026
2 checks passed
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.

2 participants