From bf651f2ab5feb5d6e85bc33d0c619b2b8a87621e Mon Sep 17 00:00:00 2001 From: klappy <118073+klappy@users.noreply.github.com> Date: Fri, 4 Sep 2026 00:25:15 +0000 Subject: [PATCH] canon/lenses: klappy-strategy, klappy-architect (DRAFT-FOR-OWNER 0.1.0), INDEX with driver-seat as portable (lf-portable-lenses) --- canon/lenses/INDEX.md | 14 ++++++ canon/lenses/klappy-architect.md | 76 ++++++++++++++++++++++++++++++++ canon/lenses/klappy-strategy.md | 75 +++++++++++++++++++++++++++++++ 3 files changed, 165 insertions(+) create mode 100644 canon/lenses/INDEX.md create mode 100644 canon/lenses/klappy-architect.md create mode 100644 canon/lenses/klappy-strategy.md diff --git a/canon/lenses/INDEX.md b/canon/lenses/INDEX.md new file mode 100644 index 00000000..4e07adb0 --- /dev/null +++ b/canon/lenses/INDEX.md @@ -0,0 +1,14 @@ +# lenses/INDEX.md — klappy.dev (portable lenses, the house's cross-project layer) +frame: 1.0.0 + +| lens | owner | kind | phase | class | gate | body | owner_reviewed | state | +|---|---|---|---|---|---|---|---|---| +| `klappy://canon/methods/driver-seat-lens` | house (prompt: Jeffrey Emanuel) | portable | shaping | meal, entrée, catering | design | 1.0.0 | 2026-09-03 | active | +| `klappy://canon/lenses/klappy-strategy` | klappy | portable | evaluating | meal, catering | order, bind | 0.1.0 | — | draft | +| `klappy://canon/lenses/klappy-architect` | klappy | portable | evaluating | meal, entrée, catering | design | 0.1.0 | — | draft | + +Import by URI: a project INDEX lists the URI in the `lens` column and the seat +resolves it with `oddkit_resolve` at run time (frame: +`klappy/kitchen` `cookbook/lenses/INDEX-TEMPLATE.md`). Draft rows run and +leave rows in `custody=run`; they do not block bind until `owner_reviewed` +is set. diff --git a/canon/lenses/klappy-architect.md b/canon/lenses/klappy-architect.md new file mode 100644 index 00000000..95ea6930 --- /dev/null +++ b/canon/lenses/klappy-architect.md @@ -0,0 +1,76 @@ +--- +uri: klappy://canon/lenses/klappy-architect +title: "Lens — Klappy, Architect Seat" +audience: canon +exposure: nav +tier: 2 +voice: klappy +stability: evolving +status: draft +date: 2026-09-03 +id: klappy-architect +owner: klappy +kind: portable +seat: "Architect. Reads the plan as the system that will run, not the parts that will ship." +phase: evaluating +gates: [design] +classes: [meal, entrée, catering] +needs: [SPEC or design doc, PLAN, TENSIONS or the rail's open tensions for this repo] +boundary: "Not product copy. Not persona feel. Not whether the work is worth doing — that is the founder seat." +cut_profile: [crystallize:accept, discard, uncertain-encode, crystallize:tension] +frame: 1.0.0 +body: 0.1.0 +owner_reviewed: +grounds: + - klappy://canon/constraints/dispatcher-dispatches-never-executes + - klappy://canon/constraints/canon-is-metaphor-agnostic + - klappy://canon/constraints/borrow-evaluation-before-implementation + - klappy://kitchens/stack # §Tool Boarding, §Multi-Homing (captain rulings 2026-08-31) + - klappy/kitchen rail/1-ordered/2026-08-29-bee-transcript-retention (never single-pointed) + - klappy/kitchen rail/1-ordered/2026-09-03-gitauth-write-verb (write rides the token, not the sandbox) +imports: none +--- + +# Lens — Klappy, Architect Seat + +> **DRAFT-FOR-OWNER.** Paraphrases of rulings, each with its address. Not +> bound until `owner_reviewed` carries a date. Captain edits; seat does not. +> `body: 0.1.0`. + +## prompt + +Read this design as the architect who will be paged when it fails. One row +per answer, twelve-column floor: + +1. **Who does the writing, and where does the credential live?** If a seat + must hold a secret to land a plate, the design is wrong; the write rides + the token, not the sandbox. — grounds: `2026-09-03-gitauth-write-verb`, + R4 +2. **Does it board cold?** A seat with nothing but a URI and GitAuth must be + able to fetch what it needs in read order. If a step lives in someone's + memory, it is not a step. — grounds: STACK §Multi-Homing, §Tool Boarding +3. **What is borrowed, what is bent, what is built?** Every upstream + substrate gets its row before a line is written. — grounds: + `borrow-evaluation-before-implementation` +4. **What is single-pointed?** Hour-plus thinking, raw testimony, and + credentials each need a second home named in the design. — grounds: + `2026-08-29-bee-transcript-retention` +5. **Whose words are these?** If the design's law is written in one + metaphor's vocabulary, the next metaphor cannot inherit it; neutral terms + bind, metaphors illustrate. — grounds: `canon-is-metaphor-agnostic` +6. **Who dispatches and who executes?** A dispatcher that cooks is a wiring + gap made permanent. Name the seat for each. — grounds: + `dispatcher-dispatches-never-executes` +7. **What is the observable at each gate?** If done-means cannot be read + off git by a stranger, it is not done-means. — grounds: + `klappy://canon/values/axioms` (4) +8. **What breaks first, and what does the seat do when it does?** Failure + Modes and Required Response are not optional sections. — grounds: house + L1 shape (every canon method carries both) + +## exemplar +> none yet. + +## Changelog +- **0.1.0** (2026-09-03): Seat draft from rulings on the rail and STACK; tapes + owed before 1.0.0. Ticket `2026-09-03-lf-portable-lenses`. diff --git a/canon/lenses/klappy-strategy.md b/canon/lenses/klappy-strategy.md new file mode 100644 index 00000000..2bfeaac1 --- /dev/null +++ b/canon/lenses/klappy-strategy.md @@ -0,0 +1,75 @@ +--- +uri: klappy://canon/lenses/klappy-strategy +title: "Lens — Klappy, Founder Seat (Strategy)" +audience: canon +exposure: nav +tier: 2 +voice: klappy +stability: evolving +status: draft +date: 2026-09-03 +id: klappy-strategy +owner: klappy +kind: portable +seat: "Founder. The one person on every project; the one who pays in attention." +phase: evaluating +gates: [order, bind] +classes: [meal, catering] +needs: [MEAL.md, CHARTER or PRD, the rail walk at this gate] +boundary: "Not implementation. Not code shape. Not persona feel. Those have their own lenses." +cut_profile: [crystallize:accept, discard, uncertain-encode, crystallize:tension] +frame: 1.0.0 +body: 0.1.0 +owner_reviewed: +grounds: + - klappy://canon/values/trust-kernel + - klappy://canon/values/axioms + - klappy://kitchens/stack # §Three Currencies, §What Works and Why (captain rulings 2026-08-31) + - klappy/kitchen health-code/HYGIENE.md L63 (rail is not a plate), L103 (one version, one place) + - klappy/kitchen rail/1-ordered/2026-08-29-bee-policy-raw-over-summary (raw is the only testimony) +imports: none +--- + +# Lens — Klappy, Founder Seat (Strategy) + +> **DRAFT-FOR-OWNER.** Every question below is the seat's paraphrase of a +> ruling the captain already made, with the ruling's address beside it. None +> of it is bound until `owner_reviewed` carries a date. The captain edits; +> the seat does not (HUMAN-ONLY: voice). `body: 0.1.0`. + +## prompt + +Read this plan as the founder who will pay for it in attention before money. +Answer each, one row per answer, in the twelve-column floor: + +1. **What does this buy per unit of attention?** ROI before another plate. + If the answer is "throughput later," name the plate that later throughput + lands. — grounds: `klappy://kitchens/stack` §Three Currencies +2. **What expectation does this set, and with whom?** Trust is expectation + management; a plan that sets one it cannot keep is a debt in someone + else's ledger. — grounds: `klappy://canon/values/trust-kernel` +3. **What has been observed, and what is being assumed?** Every claim in the + MEAL is a debt; name the ones with no receipt. — grounds: + `klappy://canon/values/axioms` (1, 2) +4. **Where is the raw?** If this rests on a summary of a conversation, tape, + or meeting, it rests on nothing; point to the raw or mark the row + `uncertain-encode`. — grounds: `2026-08-29-bee-policy-raw-over-summary` +5. **Is this the queue or the door?** Anything that lives only in chat dies + when the captain leaves. Name the rail file that holds it. — grounds: + `klappy://kitchens/stack` §Door Is Not the Queue +6. **What is the one place this version lives?** Two copies of anything is a + lie waiting to age. — grounds: HYGIENE 19 +7. **What is the tension nobody wrote down?** If a constraint is known to be + false, it is a named tension on the rail, not a workaround in the plan. + — grounds: HYGIENE 3 (named override), kitchens STACK §Policy Ladders +8. **Would I still order this tomorrow morning?** If the honest answer is + "not at this cost," say so now; a false "yes" costs more than an honest + "not yet." — grounds: `klappy://canon/values/axioms` (3) + +## exemplar +> none yet — first run lands the first row. + +## Changelog +- **0.1.0** (2026-09-03): Seat draft from rulings on the rail and STACK; no + tape read (Bee `10255652`, `10215390` owed before 1.0.0). Ticket + `2026-09-03-lf-portable-lenses`.