🧭 INTAKE, DESIGN & GOVERNANCE SPEC: HARLEY'S INTAKE ENGINE (IM-1..IM-12 · owner-packages-2314-imports/intake-module-2026-10-22)
Summary (12 Lines —
IM-6/PROCESS-OWNER-REVIEW.mdMandatory Top Digest)
- What: Canonical specification and as-built reconciliation for the Harley's Intake & Governance Module (
App 0B / IM-1..IM-12), chewingowner-packages-2314-imports/intake-module-2026-10-22(00-HANDOFF.md,01-OWNER-INTENT.md,02-AS-BUILT.md,03-BUILD-LIST.md).- Reader & Purpose: Defines the HOW of turning every Owner ask into a numbered, triaged, peer-reviewed, and owner-gated artifact or build slice (companion to
INTAKE-DESIGN-BACKLOG-AND-INTAKE-PHILOSOPHY.html, which defines the WHYIN-1..IN-10).- The 4 Spine Rules (
IM-1..IM-4): (1) One Ask Register (ASKS.md/OWNER-ASKS-AND-TODO-LEDGER.mdwith auto-allocatedA<n>ids, verbatim owner words,E/I/Htag, never deleted), (2) One Backlog of Record (BACKLOG.mdwithBO-<slug>rows), (3) Exact Trigger Words to 4 Lanes (backlog,intake,bugfix,hotfix— plusbreakfixas a gate-exception word, NOT a separate skill perA574), and (4) Strict Design-to-Build Gate (zero code commits from an intake until explicit OwnerOK).- The 8 Supporting Loops (
IM-5..IM-12): Question Cards (max 4/batch, max 2 blocking), 12-Line Summary Readouts (.htmlfirst), Artifact Registry (archive/superseded/<date>/), Decisions & Challenges Ledger (C<n>+FG-<n>), Computed 80/20 Effort-Mix (E/I/H), Owner To-Do & Reply Trailer (n, k, qcomputed from file), MechanicalT0Staff-Path Tiering (STAFF-PATH-FILES.txt), and Frozen-App Export Packs (A555).- Skill & Ledger Drift Resolved (
02-AS-BUILT.mds6): Reconciles all 6 drift items flagged in02-AS-BUILT.md—collapsing duplicate skill names to 1 skill per lane, removing the standalonebreakfixskill (A574), gating staging sync behind explicit Owner approval or standing auto-pilot (A514), and replacing hand-typed trailer/effort counts with deterministic CLI helpers.- Status:
[x] RATIFIED & LOCKED BY OWNER (A574 / A576 · 2026-10-22)· Source Pack:owner-packages-2314-imports/intake-module-2026-10-22
1. The 12 Build Items of the Harley's Intake Engine (IM-1 to IM-12)
Every item below maps the Owner's exact rules (01-OWNER-INTENT.md), the as-built audit (02-AS-BUILT.md), and the executable verification gate (03-BUILD-LIST.md):
| ID | Component | Rule Source | Exact Specification & Record Shape | "Works When" (Executable Verification Gate) |
|---|---|---|---|---|
IM-1 | One Ask Register | A46, A76; 01 s2 | Single ledger file with one A<n> row per owner ask: \| A<n> \| YYYY-MM-DD \| "<owner's words, verbatim>" \| E/I/H \| <STATUS>: <answer>; <where> \|. Statuses: DONE, BUILDING, QUEUED, WAITING OWNER, PARKED, BACKLOG, DECIDED, CLEARED (never deleted). CLI helper bin/next-id.py ask allocates the next consecutive A<n>. | Two asks in one message get two consecutive A<n> rows; no row is ever deleted; every reply names the A<n> numbers it answers. |
IM-2 | One Backlog of Record | A572, A277 | Single canonical backlog file with BO-<slug> rows: \| BO-<slug> \| <item, owner's words> \| NOW/NEXT/LATER/PARKED/DECIDED \| <why parked / what unblocks it> \| <pack/pillar id> \|. Includes Section 1 (Built Features), Section 3 (Wanted BO- rows), Section 4 (Dropped), Section 5 (Merged Duplicates), Section 6 (Gaps). | backlog <idea> adds exactly one BO-<slug> row plus one A<n> row (BACKLOG) in the same turn; no second competing backlog file is written. |
IM-3 | Trigger Words to 4 Lanes | A277, A574; 01 s3 | Exactly four lane skills: backlog (capture), design-intake (design), bugfix (medium), hotfix (express), plus fable-gate (classification). "breakfix" is a gate-exception word honoured by hotfix on a live breakage, never a separate skill (A574). Zero duplicate skill folders. | Each trigger word loads exactly one skill; "breakfix" routes to hotfix; an untagged idea gets an A<n> row + "do now / do small / park" recommendation, never an unauthorized build. |
IM-4 | Design-to-Build Gate | PROCESS-DESIGN-TO-BUILD; IN-4 (A367) | 5-Stage Gate: (1) Design (with Enablement + UAT) -> (2) Adversarial Peer Review -> (3) One-page digest / 12-line readout + Owner OK/NO -> (4) Build-approach assessment + Owner sign-off -> (5) Build. Only "hotfix" / "breakfix" may bypass on a live breakage. | An intake run without Owner OK leaves zero code commits; the readout displays [ ] PROPOSED — WAITING FOR OWNER OK/NO. |
IM-5 | Question Cards | 01 s2; feedback-question-format | Interactive Question Cards (ask_question / pop-up): Plain-question title, "You asked" (verbatim), 1-paragraph explanation, Options with (Recommended) first and 1-line effect each, "If you do nothing" default. Max 4 cards per batch, max 2 blocking per round. Nudge after 1 hour; never silently auto-take defaults. | Zero prose question lists in replies; pending questions appear in the trailer count (q) and re-nudge after 1 hour. |
IM-6 | Readout with 12-Line Summary | PROCESS-OWNER-REVIEW; A429 | Every generated document is rendered as a local .html twin (with .md kept as source) featuring a top summary box of at most 12 lines and at most 5 decisions, an Artifact Registry row, and a review ask in the same turn. All inter-document links point to .html. | Every new readout ships with its .html twin, 12-line top summary box, registry entry, and review card in the same turn. |
IM-7 | Artifact Registry | 2026-10-10 Rule | \| <Artefact> \| <path to .html> \| YYYY-MM-DD \| CURRENT / IN REVIEW / SUPERSEDED (by <path>) / HISTORY (<owner OK date, A<n>>) \|. Replaced files are moved to archive/superseded/<date>/, never deleted; owner-written files never move. | Superseding an artifact moves the prior file to archive/superseded/<date>/ and updates its registry row atomically. |
IM-8 | Decisions & Challenges Ledger | 2026-10-05; Tough-Judge Rule | \| C<n> \| <owner decision> (YYYY-MM-DD) \| <challenge, with evidence> \| <recommendation> \| <status / revisit date or trigger> \| plus FG-<nn> Fable-gate verdict rows. Overruled objections remain open with a revisit trigger until closed by empirical evidence. | Every decision reply includes one sharp, evidence-based challenge and appends a C<n> / FG-<nn> row. |
IM-9 | Computed 80/20 Effort Mix | 2026-10-06 Rule | Every ask in ASKS.md carries an E (End-User), I (Internal), or H (Hybrid = 0.5) tag. CLI script computes the rolling share across the last 15 asks and current bundle; prints a single nudge when I + 0.5*H > 30%. | Effort split in the reply trailer is computed mechanically from the ask register, never hand-typed. |
IM-10 | Owner To-Do & Reply Trailer | CLAUDE.md; A76 | Single OWNER-TODO.md with NOW (max 5 owner-only actions, each with A<n>, ~minutes, and clickable LINK:), WAITING ON BUILD (with trigger), and QUESTIONS OPEN (<1h). Every reply ends with: Effort split: ... + To-do now (n actions, ~m min) \| Waiting on build (k) \| Questions open (<1h): q + Challenge: .... | n, m, k, and q in the reply trailer match the parsed counts in OWNER-TODO.md 100%. |
IM-11 | Mechanical Tiering (T0–T3) | STAFF-PATH-FILES.txt; IN-5 | STAFF-PATH-FILES.txt globs classify any diff touching staff/kiosk/money/auth paths as Tier 0 (T0 Rock-Solid) automatically without human discretion, triggering the full T0 verification & adversarial review suite. | Any git diff matching a glob in STAFF-PATH-FILES.txt is reported as T0 mechanically by preflight script. |
IM-12 | Export Packs for Frozen Apps | A555; IN-10 | While an app is frozen (e.g., pilot app restricted to bugfix/hotfix only per A555), backlog and intake lanes output structured Export Packs (00-HANDOFF.md, 01-OWNER-INTENT.md, 02-AS-BUILT.md, 03-BUILD-LIST.md, sources/, .html, .zip) for the receiving build, never code branches on the frozen repo. | Running intake on a frozen app produces a complete 4-file export pack + .html readout without creating a feature branch in the frozen repo. |
2. Trigger Words, Lane Boundaries & Quantitative Guardrails (01-OWNER-INTENT.md Sections 3–4)
2.1 Canonical Trigger-to-Lane Routing Table
| Trigger Words | Lane | Mandatory Outputs | Strictly Forbidden (Must Never Do) |
|---|---|---|---|
"backlog <idea>", "add to backlog", "quick add", /backlog | Capture (backlog) | BO-<slug> row (verbatim owner words); A<n> row (BACKLOG, E/I/H); 1–3 short questions asked once; 3-line reply (where filed, row id, one unknown); QUICK flag if XS/S + T2/T3 + 1 persona. | Never run conflict scan, Fable, spec, design, challenge, or unapproved staging sync inside a capture turn. |
"intake <id>", "intake this", "design this", "tighten this", /intake, or any big new ask | Design Intake (design-intake) | A<n> row first; 6 steps (Clarity -> Conflicts -> Backlog Synergy -> 5-Part Architecture Pass [Reuse, Shape, Challenge, Dependencies, Verdict] -> Deep Scan -> Adversarial Reviewer); cards in chat; 12-line summary .html readout; pause for Owner OK/NO. | Never build code. Never push board cards before "push". Never start a build from a design alone. |
"bug:", "bugfix", "this is broken", screenshot of wrong behaviour, /bugfix | Bugfix (bugfix — Medium) | BUG A<n> row; dedupe against ASKS & backlog; mechanical tier (T0–T3) by touched files; failing reproduction test first; fix on isolated branch with regression test; batch for merge train. | Never skip the failing repro test. Never push to staging without approval/auto-pilot. |
"hotfix <problem>" or "breakfix" (Owner's word only) | Express (hotfix + Gate Exception) | 60-second triage; feature-switch OFF or 1-commit revert first; smallest diff; express checks; T0 diff review never skipped; HOTFIX row with rollback command + follow-up root-cause BUG- row. | Never initiated by agent alone. Never touch staging without Owner's yes (or standing auto-pilot A514). Never touch production. |
"push" / "build <card>" / "clear A<n>" / "ack A<n>" | Explicit Execution Verbs | "push" creates board items; "build <card>" authorizes a builder lane for that single card; "clear A<n>" marks row CLEARED; "ack A<n>" closes Part 3 review rows. | Never execute without the exact Owner trigger word. |
2.2 Resolved Number & Rule Conflicts (01-OWNER-INTENT.md Section 6 & 02-AS-BUILT.md Section 6)
Conflict Item in 01 s6 / 02 s6 | Competing Values Found in History | Canonical Rule Locked for Receiving Build (IM-1..IM-12) |
|---|---|---|
1. breakfix Skill vs Word (A574) | User-level ~/.claude/skills/breakfix created at 22:02 vs Owner A574 "Do Nothing". | breakfix is a gate-exception trigger word routed to hotfix, NOT a separate skill. |
| 2. Duplicate Skill Folders | 6 duplicate skill dirs (backlog/harleys-backlog, bugfix/harleys-bugfix, design-intake/harleys-enhance/harleys-intake, hotfix/breakfix). | 1 canonical skill per lane (backlog, design-intake, bugfix, hotfix, fable-gate); aliases removed so triggers match deterministically. |
3. Backlog Grouping (A277 vs A572) | Department sections vs Module sections vs App 0–8 Pillars. | Dual-indexed in one table: Every BO-<slug> row carries both its Module/Theme tag and its Target Application Pillar (App 0 -> App 8) so both views filter from a single source of truth. |
4. Lane Token Caps & Live Lanes (A136) | Older memory (150k/300k, 5 lanes) vs later A136 (150k T3 / 250k T1-T2 / 400k T0, max 3 live lanes, 90-min cap, ~600 LOC / 3 migrations per slice). | A136 stricter limits win: 150k (T3) / 250k (T1-T2) / 400k (T0), max 3 concurrent lanes, zero overlapping file ownership, and ~600 LOC / 3 migrations slice budget. |
| 5. Default Reply Length & Usage Stop | 5 lines (BUILD-MASTER.md) vs 8 lines (2026-10-09); 95% vs 98% weekly usage stop. | 8 lines max + mandatory 3-line Reply Trailer (no recap of artifact contents); stop and check in at 98% weekly usage (CLAUDE.md). |
| 6. Staging Sync in Capture Lane | Rewritten backlog Mode B synced to staging unconditionally. | Capture lanes write local ledger files only. Syncing to staging requires explicit Owner approval or active standing Staging Auto-Pilot (A514), with every step logged. Production is 100% Owner-pull only. |

OneOps