Ideas Go Faster — Cabinet Secretary
Cabinet Secretary orchestrates composite business idea generation across multiple expert lenses. Not a kanban health checker. Not a WIP counter. This is a multi-stage pipeline that produces ideas, scores them, clusters them, filters them, prioritizes them, creates cards for top-priority ideas, and seeds fact-find stage docs for immediate investigation.
Pete triggers the sweep via /lp-do-idea-generate. Everything after that is autonomous.
Invocation
/lp-do-idea-generate # default: --stance=improve-data
/lp-do-idea-generate --stance=improve-data
/lp-do-idea-generate --stance=grow-business
/lp-do-idea-generate --dry-run # preview-only: generate/report ideas, no API writes
/lp-do-idea-generate --dry-run --stance=grow-business
/lp-do-idea-generate --dry-run --allow-api-degraded # allow filesystem-only fallback when API preflight fails
/lp-do-idea-generate --force-code-review # force technical cabinet even without triggers
/lp-do-idea-generate --assumptions-file <path-to-md> # optional assumptions input file
/lp-do-idea-generate --verbosity=compact|standard|extended
/lp-do-idea-generate --stage7b # enable optional Stage 7b single-card backfill slot
scripts/run-idea-generate.sh --dry-run --stance=improve-data # recommended runner (loads .env.local)
scripts/run-idea-generate.sh --dry-run --allow-api-degraded --stance=improve-data
Invocation control contract:
- Assumptions input supports both:
- inline assumptions block in invocation context
--assumptions-file <path>
- If both inline and file assumptions are present, file input takes precedence.
- Verbosity mode supports
compact, standard, extended (default: standard).
--allow-api-degraded is valid only with --dry-run (never valid for live mode).
- Recommended execution path is
scripts/run-idea-generate.sh so Agent API env vars are loaded from .env.local.
scripts/run-idea-generate.sh is initiator-agent-preserving: it auto-selects the local agent CLI (codex first, then claude) so the invoking agent can execute the sweep without forced cross-agent handoff.
Mandatory CLI Reminder
At the start of every /lp-do-idea-generate run, emit this exact CLI message:
remember to find out why any good ideas generated via this skill have not been picked up automatically, and revise the workflow so that in the future they are
Constitution (Non-Negotiable Invariants)
These rules override all other instructions. The sweep must not produce output that violates any of them.
The Elon Musk 5-Step Algorithm (Constitutional Invariant)
The Musk lens applies this algorithm in strict order during its generation pass. Every recommendation from the Musk lens must be classified into one of these steps. They are executed in strict order — you must exhaust each step before moving to the next. This is not a tiebreaker. This is the law.
Question every requirement. Each must have a named owner (a person, not a department). All requirements are recommendations until proven otherwise. Only physics is immutable. If you cannot name who requested it and why, delete it.
Delete parts and processes. If you're not adding back at least 10% of what you deleted, you didn't delete enough. The best part is no part. The best process is no process.
Simplify and optimize. Only AFTER steps 1-2. The most common mistake is optimizing something that should not exist. Do not make this mistake.
Accelerate cycle time. Every process can be sped up. But only AFTER steps 1-3. Speed up a bad process and you get bad results faster.
Automate. Last, never first. Automating a process that should be deleted is worse than not automating it.
Anti-Theater Invariants
- Constraint-first. Do not propose work until you name the current constraint and the evidence that proves it. No unsourced claims. No hand-waving.
- Do not optimize work that should not exist. Before improving a process, ask: should this process exist at all?
- Activity is not progress. More tasks does not mean more throughput. More ideas does not mean better ideas. Measure outcomes, not output volume.
- Do not produce feature-factory outputs. Every recommendation must tie directly to a named constraint. If it doesn't relieve a constraint, it doesn't belong in the sweep.
- Evidence and traceability. Every claim must point to observable facts — API data, plan targets, profile capacity, maturity model position. No hallucinated metrics.
- Named ownership. Every recommendation must name a responsible person and clarify handoffs.
- Smallest shippable learning unit. Prefer minimal changes that produce a measurable signal quickly. Do not propose 6-month roadmaps.
- Safety and sustainability. Do not recommend burnout, heroics, or policy violations. Optimize for sustained throughput.
Sales-First Portfolio Directives (Ideas-Generation Scope)
For /lp-do-idea-generate, operate in sales-first mode:
- Treat revenue businesses as primary:
BRIK, PIPE, XA, HEAD, PET, HBAG.
- Treat enabling systems as secondary:
PLAT, BOS.
- Mission: maximize startup sales velocity; all but
BRIK are startup streams and must be pushed to first/next sales ASAP.
- Portfolio split: target
95% of promoted/card-eligible output on direct revenue-business sales outcomes, max 5% on side-project platform work.
- CMS exception:
3-hour launch via CMS remains a side project and must not block direct app delivery for sales.
- PLAT/BOS idea rule: allowed only when they explicitly unblock a named revenue business sales bottleneck.
- UI/DS rule: no standalone
@acme/ui / @acme/design-system cleanup ideas. UI/DS ideas are valid only when attached to a concrete startup-sales deliverable.
- Convergence rule: checkout/inventory paths for startup businesses must converge to shared platform authority; ideas that preserve long-term divergence are not promotable.
- Launch proof rule: launch/sales-go-live ideas must include unit/integration/e2e evidence, two-source user testing evidence (CLI audit + ChatGPT prompting), SEO baseline, and Google monitoring baseline (GA4 + Search Console).
Operating Mode
READ + ANALYZE + CONDITIONAL WRITE (Live) / PREVIEW (Dry-Run)
Allowed:
- Read all agent API endpoints (businesses, people, cards, ideas, stage-docs)
- Read business plans from filesystem:
docs/business-os/strategy/<BIZ>/plan.user.md
- Read people profiles from filesystem:
docs/business-os/people/people.user.md
- Read the maturity model:
docs/business-os/strategy/business-maturity-model.md
- Read persona files from
_shared/cabinet/ as needed during execution
- Create ideas via
POST /api/agent/ideas (live mode only)
- Create cards via
POST /api/agent/cards (live mode only)
- Create fact-find stage docs via
POST /api/agent/stage-docs (live mode only)
- Write sweep report to
docs/business-os/sweeps/<YYYY-MM-DD>-sweep.user.md
Persistence mode (run-level):
- Default (
live): run full pipeline including Stage 6/7 persistence.
--dry-run: run full analysis and ranking pipeline, but do NOT perform Stage 6/7 API write calls. Output preview tables for would-create ideas/cards/stage-docs in the sweep report.
--dry-run --allow-api-degraded: if Agent API preflight fails, continue using filesystem-only fallback inputs and mark run as degraded.
API preflight mode (run-level):
strict (default): API preflight failures are fatal.
degraded-filesystem-only (dry-run only): allowed only when --allow-api-degraded is present.
Not allowed:
- Modify existing cards or ideas (no PATCH on cards/ideas — Drucker/Porter runs before card creation, so no priority updates needed)
- Stage-doc PATCH is allowed only for latest-wins
fact-find upsert safety (avoid duplicate stage-doc POSTs)
- Move cards between lanes directly (baseline deterministic lane transitions are handled downstream by /lp-do-plan and /lp-do-build)
- Run destructive commands
- Auto-schedule or self-invoke
In-Run Progress Updates (Mandatory)
The sweep must provide progress visibility while execution is underway.
Progress artifact:
- Write to
docs/business-os/sweeps/<YYYY-MM-DD>-progress.user.md (or run-scoped subdirectory equivalent when used).
- Create the progress artifact as the first write action after invocation parsing.
Progress artifact frontmatter (required):
---
Type: Sweep-Progress
Date: YYYY-MM-DD
Run-Status: running | complete | partial | failed-preflight
Persistence-Mode: live | dry-run
Stance: improve-data | grow-business
Current-Stage: preflight | stage-1 | stage-2 | stage-3 | stage-4 | stage-5 | stage-5.5 | stage-6 | stage-7 | stage-7.5 | complete
Last-Updated-UTC: YYYY-MM-DDTHH:MM:SSZ
Progress-Events: N
Final-Report-Path: <path-or-pending>
---
Update cadence (required):
- Emit a progress event at each stage transition (start + complete).
- Emit per-business progress events during long loops (Stage 1, Stage 2, Stage 4, Stage 5).
- Emit heartbeat updates every
<=90 seconds while a long stage is running.
- After each progress artifact update, emit a concise terminal line:
Progress: <stage> <state> (<completed>/<total>)
Completion/failure finalization (required):
- On success or partial completion, set
Run-Status, Current-Stage: complete, and Final-Report-Path.
- On fatal preflight, still finalize progress artifact with
Run-Status: failed-preflight and failure reason.
Failure Policy (Two-Phase)
Phase 1 — Fatal (STOP sweep pipeline stages before persistence):
Stop the sweep if any of these fail:
- Fetch businesses list from Agent API
- Read maturity model file
- Fetch existing cards/ideas/stage-docs for dedup + priority baseline
In fatal cases: stop all pipeline stages and attempt one final write of a minimal sweep report marked Run-Status: failed-preflight including the error.
Dry-run degraded preflight fallback (explicitly opt-in):
- Trigger condition:
--dry-run --allow-api-degraded and Agent API preflight fails.
- Continue in
API-Preflight-Mode: degraded-filesystem-only using:
- filesystem business plans under
docs/business-os/strategy/<BIZ>/plan.user.md
- maturity model file (still required)
- people profiles file
- Degraded consequences (must be reported):
- existing cards/ideas/stage-doc baseline dedup may be unavailable
- reaffirmation/addendum matching becomes low-confidence
- set run
partial unless API preflight recovers before Stage 6
- Live mode never uses degraded preflight fallback.
Phase 2 — Non-fatal (record + continue during persistence):
During Stages 6–7 (live-mode creates):
- In
--dry-run, do NOT issue write calls (POST/PATCH) to ideas/cards/stage-docs endpoints; record preview output instead.
- Ideas/cards are non-idempotent POST creates. Do NOT blind-retry create calls.
- On idea/card create failure: run one reconciliation read. If entity is confirmed, treat as success; if not, record failure and continue.
- Stage docs use latest-wins upsert semantics (
GET /api/agent/stage-docs/{cardId}/fact-find -> PATCH when present, POST only when missing).
- Mark sweep report
Run-Status: partial and list all failed creates/updates
- Never create a stage doc unless its card exists
- Emit a reconciliation checklist in the sweep report (what succeeded, what failed, exact repair commands, and next action owner)
Rationale: ideas are always documented in the sweep report; persistence is best-effort without pretending transactional guarantees.
MACRO Framework (Business Process Audit Categories)
Every business is audited against 5 process categories. Measure comes first because without measurement, everything else is guesswork.
M — Measure (Can you see what's happening?)
Without measurement, you are flying blind. This is always the first question.
| Diagnostic Question |
What a "No" Means |
| Is web analytics installed and collecting data? (GA, Plausible, etc.) |
You cannot measure traffic, conversion, or content performance. CRITICAL gap. |
| Is Search Console connected? |
You cannot measure SEO performance, indexing, or keyword rankings. |
| Are conversion events tracked? (bookings, purchases, signups) |
You cannot measure whether your site works. |
| Is there marketing attribution? (UTM params, channel tracking) |
You cannot measure which acquisition channels work. |
| Are revenue metrics visible? (ADR, RevPAR, occupancy, GMV, AOV) |
You cannot measure business health. |
| Is customer feedback collected? (NPS, reviews, surveys, support tickets) |
You cannot hear your customers. |
| Are operational metrics tracked? (response time, fulfillment, error rates) |
You cannot measure whether the machine runs well. |
| Is there a time-series record? (even a spreadsheet) |
You cannot detect trends. Every sweep starts from scratch. |
A — Acquire (Are customers finding you?)
Traffic that costs nothing to maintain is the foundation of sustainable growth.
| Diagnostic Question |
What a "No" Means |
| Is there organic search traffic? |
All acquisition is paid — spend stops, traffic stops. |
| Are content assets being produced? (guides, articles, landing pages) |
No compounding SEO assets. Every visitor costs marginal money. |
| Is content in target languages? |
Missing international traffic at near-zero marginal cost. |
| Are social/referral channels active? |
Single-channel dependency. |
| Is there a content calendar or production cadence? |
Content production is ad-hoc, not systematic. |
| Does the business appear in relevant directories/aggregators? |
Missing distribution channels. |
C — Convert (Are they buying?)
Traffic without conversion is a vanity metric.
| Diagnostic Question |
What a "No" Means |
| Is there a clear call-to-action on every page? |
Visitors don't know what to do. |
| Is the checkout/booking flow optimized? |
Friction kills conversion. |
| Are pricing and availability clear? |
Uncertainty prevents purchase. |
| Is trust established? (reviews, social proof, security signals) |
Customers don't trust you enough to transact. |
| Are abandoned carts/bookings tracked and recovered? |
Leaving money on the table. |
| Is there A/B testing on conversion paths? |
You're guessing, not learning. |
R — Retain (Are they coming back?)
Acquisition without retention is a leaky bucket.
| Diagnostic Question |
What a "No" Means |
| Is there post-purchase communication? (email, follow-up) |
Customer relationship ends at checkout. |
| Is there a loyalty/repeat purchase mechanism? |
No reason to come back. |
| Are customer service channels responsive? |
Customers leave when ignored. |
| Is there self-service content for common questions? |
Every support query costs human time. |
| Is customer satisfaction measured? |
You don't know if customers are happy. |
O — Operate (Is the machine efficient?)
Even a good product fails if the operations are broken.
| Diagnostic Question |
What a "No" Means |
| Are core business operations documented? |
Knowledge is in people's heads — bus factor = 1. |
| Is there cross-app data flow? (products ↔ content ↔ bookings) |
Manual data re-entry. Inconsistency. |
| Are operational costs tracked? |
You can't optimize what you don't measure. |
| Is the development/deployment pipeline reliable? |
Shipping is slow or risky. |
| Are there automated quality checks? (content validation, data integrity) |
Quality is manual and inconsistent. |
| Is there capacity planning? (people, infrastructure, budget) |
Surprises instead of planning. |
Cabinet Pipeline (7 Stages)
Stage 1: Preflight + Composite Generation
Source of truth for businesses: Agent API (NOT businesses.json).
Preflight (per sweep):
- Fetch businesses from
GET /api/agent/businesses (fatal if fails).
- For each business:
- Read business plan:
docs/business-os/strategy/<BIZ>/plan.user.md (degrade if missing).
- Read maturity model fallback:
docs/business-os/strategy/business-maturity-model.md (fatal if missing).
- Read people profiles:
docs/business-os/people/people.user.md (degrade if missing).
- Fetch existing cards + ideas + stage-docs via Agent API (fatal if fails):
- Build Existing Priority Set:
- open cards (not Done/Archived), prioritize P1–P3
- tags include
cabinet-v1 and/or sweep-generated
- Build Existing Canon for dedup:
- normalize titles, cluster tags, and referenced problem statements
- Build a DGP Resurfacing Queue from existing ideas (MANDATORY):
- Include ideas tagged
dgp + gap:<type> with status=raw
- Query contract: Agent API list calls support only
location=inbox|worked. For full DGP backlog coverage, query both inbox and worked, then union by idea ID (do not use location=all).
- Partition by
gap:data, gap:timing, gap:dependency
- Compute
Resurfacing-State:
ready-now:
gap:data: default when stance is improve-data; rank by VOI-Score DESC
gap:timing: Re-evaluate-When is due (date <= today) or trigger explicitly met
gap:dependency: dependency evidence indicates prerequisite is complete
watch: valid DGP but trigger/dependency not yet satisfied
- Output resurfacing table in sweep report (ready-now first)
- For each business, write a Constraint Statement (1–3 sentences) with:
- Current constraint (MACRO category)
- Evidence pointers (file paths and/or API entities)
- Constraint confidence (0–100, subjective)
- Resolve Human Assumptions Input (optional):
- Accept inline assumptions block from invocation context.
- Accept
--assumptions-file <path> when provided.
- If both are present, file input wins.
- Record assumptions source in report frontmatter (
none | inline | file).
- Apply sales-first portfolio classification for this run:
- mark each business as
revenue or enabler
- define startup set (
PIPE, XA, HEAD, PET, HBAG) for sales-velocity emphasis
- enforce CMS work as side-project lane (non-blocking)
Composite Generation (per business):
Run sequential multi-lens passes to generate ideas.
Generation cadence (quality-first, mandatory):
- Divergence pass: Each sub-expert contributes at most 1 net-new candidate idea per business.
- Focus shortlist: Rank divergence candidates by direct constraint relief + evidence quality + owner-fit + time-to-signal.
- Deepening pass: Deepen only the top 8 candidates per business (hard cap: 10) before Stage 2.
- Depth gate: Any candidate missing minimum evidence/falsification fields cannot enter Stage 2.
Sub-experts in order (generic — all businesses except BRIK):
musk (Musk lens — feasibility)
bezos (Bezos lens — customer-backwards)
hopkins (Marketing lens — scientific advertising)
ogilvy (Marketing lens — brand)
reeves (Marketing lens — USP)
lafley (Marketing lens — consumer insight)
patterson (Sales lens — systematic selling)
benioff (Sales lens — challenger positioning)
chambers (Sales lens — ecosystem and distribution)
finder (Sourcing lens — product selection and supplier discovery)
bridge (Sourcing lens — negotiation and supplier relationship depth)
mover (Sourcing lens — logistics, compliance, and landed cost)
BRIK-specific sub-experts (replaces sourcing with brikette lens):
musk (Musk lens — feasibility)
bezos (Bezos lens — customer-backwards)
hopkins (Marketing lens — scientific advertising)
ogilvy (Marketing lens — brand)
reeves (Marketing lens — USP)
lafley (Marketing lens — consumer insight)
patterson (Sales lens — systematic selling)
benioff (Sales lens — challenger positioning)
chambers (Sales lens — ecosystem and distribution)
crawford (Brikette lens — interior/lived comfort)
starck (Brikette lens — interior/bold identity)
nakajima (Brikette lens — maintenance/TPM)
deming (Brikette lens — maintenance/quality systems)
kroc (Brikette lens — cleaning/standards)
gawande (Brikette lens — cleaning/checklists)
schulze (Brikette lens — cleaning/culture)
hopkins (Brikette lens — hostel promotion/scientific advertising)
ogilvy (Brikette lens — hostel promotion/brand)
sutherland (Brikette lens — hostel promotion/behavioral economics)
meyer (Brikette lens — F&B/hospitality)
degroff (Brikette lens — F&B/bar program)
schrager (Brikette lens — events/atmosphere)
jones (Brikette lens — events/community)
generator (Brikette lens — events/hostel-native ops)
Note: Hopkins and Ogilvy appear twice for BRIK — once under Marketing lens (generic frameworks) and once under Brikette lens (hostel-specific framing). Distinguished by Originator-Lens: marketing vs Originator-Lens: brikette. Clustering (Stage 3) handles any duplicate ideas.
Existing Priority Check (MANDATORY, per sub-expert):
Before proposing a new idea, check the Existing Priority Set / Canon:
- If idea is already covered: do NOT create a new idea.
- Output a "Reaffirmation/Addendum" note (lens viewpoint + existing card/idea reference) in the sweep report.
- If genuinely new or materially different: proceed.
For each sub-expert (new ideas only):
- Read the lens file from
.claude/skills/_shared/cabinet/lens-<lens>.md
- For composite lenses with split experts (marketing, sales): also read
lens-<lens>-<expert>.md for the current sub-expert pass (e.g., lens-marketing-hopkins.md for Hopkins, lens-sales-benioff.md for Benioff). The coordinator file provides shared toolbox, stance behavior, and cross-lens rules; the individual file provides the expert's evidence anchor, required tools, and diagnostic questions.
- Apply stance-specific diagnostic questions to the business:
- Under
improve-data: Focus on measurement, data quality, knowledge gaps
- Under
grow-business: Focus on revenue, acquisition, conversion, retention
- Generate 0-1 candidate idea per sub-expert per business (divergence pass only)
- Format each idea with Dossier Header (see
dossier-template.md):
Originator-Expert: person-level attribution (e.g., hopkins)
Originator-Lens: lens-level grouping (e.g., marketing)
Confidence-Tier: Set to candidate initially
Confidence-Score: 0-100 (preliminary, before confidence gate)
Pipeline-Stage: Set to candidate
Impact-Type: growth | savings | risk-avoidance | time
Impact-Mechanism: Acquire | Convert | Retain | Measure | Operate
Impact-Band: XS | S | M | L | XL (see Impact rubric)
Impact-Confidence: 0-100 (subjective; must cite evidence pointers or mark unknown)
Impact rubric (for Impact-Band):
- XS: small/local improvement; unlikely to move a plan target materially
- S: noticeable improvement; could move a sub-metric
- M: meaningful; could move a primary KPI if executed well
- L: large; likely to move a plan target materially
- XL: step-change; materially changes the business trajectory
Deepening pass (mandatory before Stage 2):
- Keep top 8 candidates per business from divergence ranking (hard cap 10)
- For each deepened candidate, add all of:
Evidence-Pointers: at least 2 concrete pointers (files, API entities, or metrics)
Falsification-Test: one explicit condition that could disprove the core claim
First-Signal: one measurable leading indicator with owner + review date
- Candidates missing deepening fields are rerouted:
- to DGP (
Gap-Type=data) if thesis is promising but under-evidenced
- to hunch log if no credible test/evidence path exists
Context discipline: use compress-and-carry-forward plus summary-block mode and coverage thresholds from the Context Discipline Strategy section.
MACRO emphasis by stance (see stances.md):
- Under
improve-data: Measure (HIGH), Operate (HIGH), Acquire (MEDIUM), Convert (MEDIUM), Retain (LOW)
- Under
grow-business: Acquire (HIGH), Convert (HIGH), Retain (MEDIUM), Measure (MEDIUM), Operate (LOW)
Musk 5-step constitutional invariant:
During the Musk lens pass, all recommendations must follow strict step ordering (Question → Delete → Simplify → Accelerate → Automate). This is a first-order constraint on the Musk lens only, not on other lenses.
Stage 2: Confidence Gate
For each candidate idea, evaluate against the 5 presentable criteria (see dossier-template.md).
Prerequisites:
- Impact fields (Impact-Type, Impact-Mechanism, Impact-Band, Impact-Confidence) must exist in the Dossier Header, even if values are
unknown.
- Stage 1 depth-gate fields must be present for every candidate entering Stage 2:
Evidence-Pointers (>=2)
Falsification-Test (exactly one explicit disproof condition)
First-Signal (metric + owner + review date)
- Candidates missing depth-gate fields must not enter Stage 2; reroute to DGP/hunch per Stage 1 rules.
Assumption Challenge (F3, conditional):
- If
Assumptions-Source is inline or file, evaluate each assumption and classify as accept, condition, or reject.
- Each assumption verdict must include at least one evidence pointer and list affected ideas.
- Ideas that depend on a
reject assumption cannot remain Promote candidates; reroute to Hold (Gap-Type=data) unless revised with new evidence.
- Record assumption-verdict notes in dossier decision logs and summarize in the report's Assumption Challenge section.
- Customer/user identified — Who is this for? Named segment or persona.
- Problem statement present — What pain or opportunity? Clear and specific.
- At least one feasibility signal — Technical or commercial evidence this is doable.
- Evidence or reasoning chain — Not just assertion. Data, research, or logical argument.
- Business alignment — How does this serve a known business goal or fill a plan gap?
Scoring:
- 5/5 criteria met → Confidence-Tier:
presentable, Confidence-Score: 60-100 → Proceed to clustering
- 3-4/5 criteria met → Confidence-Tier:
decision-gap, Confidence-Score: 30-59 → Create DGP (see below)
- 0-2/5 criteria met → Confidence-Tier:
hunch, Confidence-Score: 0-29 → Log in sweep report only, do NOT persist
Decision Gap Proposals (DGPs):
DGP = Decision Gap Proposal (not only data gaps).
- Create via
POST /api/agent/ideas with:
Status: raw
Tags: ["sweep-generated", "cabinet-v1", "dgp", "gap:<type>"] where <type> is data, timing, or dependency
Content: Full Dossier with Dossier Header
Required DGP fields in Dossier Header:
Gap-Type: data | timing | dependency
VOI-Score: required only if Gap-Type=data (0-1 scale)
Decision-Blocked: what decision cannot be made
Re-evaluate-When: date or trigger condition
Owner: named person responsible for closing the gap
DGP content must include (see data-gap-lifecycle.md):
- Problem statement (provisional)
- Proposed solution (sketch)
- Blocking questions or triggers (numbered list)
- Proposed investigation or re-evaluation plan
- Presentable Criteria Check — which criteria are met, which are missing
- VOI Justification — required for Gap-Type=data; optional for timing/dependency
Gap-Type definitions:
- data: Missing information blocks the decision. Requires VOI-Score + investigation plan.
- timing: Idea is sound but timing is wrong. Requires triggers + re-evaluation date.
- dependency: Prerequisite work must complete first. Names the prerequisite work + owners.
VOI-Score (Value of Information, 0-1 — required for Gap-Type=data):
- 0.8-1.0: High VOI (decision completely changes if data contradicts assumptions)
- 0.4-0.7: Medium VOI (data helps but doesn't fundamentally change decision)
- 0.1-0.3: Low VOI (could make decent decision without data)
Hunches (not persisted):
- Log in sweep report with rationale for suppression
- If hunch gains new evidence in future sweep, re-submit as fresh evaluation
Stance sensitivity: INVARIANT (confidence criteria do not change by stance)
Stage 3: Cluster/Dedup
Group presentable ideas using clustering rules (see clustering.md):
Hard clustering boundaries (NEVER violated):
- Never merge across businesses — BRIK ideas don't cluster with PIPE ideas
- Never merge across jobs-to-be-done — Customer-facing vs infrastructure vs data-quality
- Max cluster size: 4 lens variants
Clustering heuristic:
Two ideas cluster if:
- Same business
- Same MACRO category (same job-to-be-done)
- Same core problem or opportunity (can be phrased differently but same essence)
Merged dossier structure:
- Unified Dossier Header:
Originator-Expert: First dossier in cluster (chronological)
Originator-Lens: First dossier in cluster
Contributors: All experts from all dossiers in cluster
Confidence-Tier: Highest tier from cluster
Confidence-Score: Highest score from cluster
Pipeline-Stage: Must be same for all cluster members (enforced)
Cluster-ID: Assigned (format: {BUSINESS}-CLU-{NNN})
Rival-Lenses: Lenses that disagree on approach/priority/feasibility
- Unified Decision Log: Concatenate all Decision Log blocks from cluster members
- Main Idea Content: Most complete variant or synthesis
- Lens Variants Section: Each lens's original perspective preserved as subsection
- Agreement Section: Where lenses converge (what they agree on)
- Rivalry Section: Where lenses disagree (what they disagree on, why, how to resolve)
Singletons: Ideas with no match pass through unchanged
Stance sensitivity: INVARIANT (clustering rules do not change by stance)
Stage 4: Munger/Buffett/Thiel Filter
Apply filter-munger-buffett.md persona (v2.2) to each clustered dossier. The filter now runs a two-phase process:
Read the filter persona file: .claude/skills/_shared/cabinet/filter-munger-buffett.md
Phase 1 — Munger–Thiel Contrarian Gate (mandatory pre-check):
Produces a Contrarian Status (PASS / UNRESOLVED / FAIL) by evaluating 7 required artifacts:
- Opposite-Side Steelman (Munger) — best argument against the idea
- Inversion Pre-Mortem (Munger) — top 5 ways it dies with leading indicators + exits
- Contrarian Secret (Thiel) — "most believe X, truth is ¬X" + operational advantage
- Capture-Value Proof (Thiel) — pricing power under stress, why customers pay us
- Competition Escape Plan (Thiel) — wedge, path to differentiation, "by cycle N" milestone
- Market Definition Reality Check (Thiel) — narrow vs. skeptical framing
- Incentive Truth-Bending Check (Munger × Thiel) — where we're tempted to misdescribe
Contrarian Status constrains the final verdict:
- PASS → verdict may be Kill, Hold, or Promote
- UNRESOLVED (missing cheap facts) → verdict must be Hold (Promote is blocked)
- FAIL (fatal) → verdict must be Kill (unless reframed as tiny timeboxed test → Hold)
Phase 2 — Munger–Buffett Capital-Allocation Verdict:
- Munger: Inversion (how could this fail?), mental model lattice, avoiding stupidity
- Buffett: Circle of competence, margin of safety, opportunity cost, competitive moats
Verdicts (constrained by Contrarian Status):
- Kill → Reject permanently (outside competence, catastrophic downside, negative opportunity cost, no contrarian secret, commodity with no escape)
- Hold → Defer (reason varies — see Gap-Type below)
- Promote → Approve for next stage (requires Contrarian Status PASS + within competence, bounded downside, high optionality, passes inversion test, value capture credible)
Output: Append TWO Decision Log blocks to dossier:
- Munger–Thiel Contrarian Gate block: Contrarian Status + all 7 artifact sections
- Munger-Buffett Filter block: Verdict + Verdict-Constrained-By + Rationale + Risk-Assessment + Opportunity-Cost
Killed ideas: Logged in sweep report with Contrarian Status, not persisted
Held ideas: Stored as DGPs (Decision Gap Proposals) with:
Tags: ["sweep-generated", "cabinet-v1", "dgp", "gap:<type>", "held"]
- Gap-Type determined by Hold reason:
data — promising thesis but insufficient evidence (needs investigation)
data — Contrarian Status UNRESOLVED (missing cheap facts for gate artifacts — see data-gap-lifecycle.md)
timing — good idea but market/team isn't ready (needs trigger/date)
dependency — blocked by prerequisite work (needs that work to complete)
- For Contrarian Gate UNRESOLVED holds: add
gate-unresolved tag and specify which of the 7 artifacts are incomplete
Promoted ideas: Must have Contrarian Status PASS. Proceed to Drucker/Porter priority (Stage 5)
Stance sensitivity: STANCE-INVARIANT (bad ideas are bad regardless of stance)
Stage 5: Drucker/Porter Priority
Apply prioritize-drucker-porter.md persona to rank all promoted dossiers before card creation:
Input validation: Only ideas with Verdict=Promote and Contrarian Status=PASS enter this stage. Ideas with Kill or Hold verdicts must not reach Stage 5 (Kill → sweep report only; Hold → DGP).
Read the prioritizer persona file: .claude/skills/_shared/cabinet/prioritize-drucker-porter.md
Read business plans: For each business, read docs/business-os/strategy/<BIZ>/plan.user.md
- If plan missing: flag as critical finding in sweep report, fall back to maturity model
- Maturity model path:
docs/business-os/strategy/business-maturity-model.md
Evaluation framework:
- Drucker: Effectiveness over efficiency (doing the right things), manage by objectives, knowledge worker productivity
- Porter: Five forces, value chain, strategic positioning (cost leadership OR differentiation), activity system fit
Priority levels:
- P1: Do immediately (high impact, clear path, urgent timing, strong plan alignment)
- P2: Do soon (high impact but needs preparation)
- P3: Schedule for later (medium impact, good fit, lower urgency)
- P4: Keep in backlog (low urgency, potentially valuable later)
- P5: Deprioritize (low fit, low impact, wrong timing)
Stance weighting (STANCE-SENSITIVE):
Under improve-data:
- Higher weight: Measurement infrastructure, data quality, knowledge gaps, feedback loops, plan/profile completeness
- Lower weight: Revenue tactics, feature development, market expansion
- MACRO emphasis: Measure (HIGH), Operate (HIGH), Acquire (MEDIUM), Convert (MEDIUM), Retain (LOW)
Under grow-business:
- Higher weight: Customer acquisition, conversion optimization, revenue growth, retention, competitive positioning
- Lower weight: Pure infrastructure without growth link, measurement for measurement's sake
- MACRO emphasis: Acquire (HIGH), Convert (HIGH), Retain (MEDIUM), Measure (MEDIUM), Operate (LOW)
Sales-first portfolio gates (mandatory in both stances):
- Revenue businesses (
BRIK, PIPE, XA, HEAD, PET, HBAG) are the default promotion path.
PLAT/BOS ideas must include:
Enabled-Business: one of the revenue businesses
Sales-Blocker: explicit blocker removed
Unblock-SLA: date/clock for expected unblock signal
CMS 3-hour launch ideas are side-project candidates only; cap to <=5% of P1-P3 card-eligible output per sweep and never ahead of unresolved startup sales blockers.
- Reject standalone UI/DS cleanup (
@acme/ui, @acme/design-system) unless tied to a named startup-sales deliverable and measurable sales effect.
- Startup commerce ideas must reinforce checkout/inventory convergence toward shared platform authority; non-convergent proposals are capped at P4/P5 unless they include an explicit convergence milestone.
Output: Append Decision Log block to dossier with:
- Priority: [P1|P2|P3|P4|P5]
- Potential-Impact: [Impact-Band from dossier + mechanism + confidence assessment]
- Strategic-Fit: How this aligns with business plan targets
- Plan-Target: Which specific plan target this addresses
- Stance-Weight: How stance influenced the ranking
- Sales-Link: direct sales outcome path for this idea
- Enabled-Business: revenue business directly enabled (
self for revenue-business ideas)
- Economics-Gate: [pass|blocked]
- Economics-Missing-Fields: [list of missing fields, empty if pass]
- Sales-Readiness-Gate: [pass|blocked|n/a]
- Sales-Readiness-Missing-Fields: [list of missing launch-proof fields, empty if pass]
- Rationale: 2-3 sentences using effectiveness, positioning, or value chain reasoning
Economics gate (F5, mandatory before Stage 6):
- A Promote candidate must include all fields:
Upside
Downside
Reversibility
Cost-of-Delay
Time-to-Signal
- If any field is missing:
- set
Economics-Gate: blocked
- block card eligibility for that idea
- reroute to Hold (
Gap-Type=data) with missing fields recorded
- include the idea in the report's Economics Gate section with blocker reason
Sales-readiness gate (mandatory for startup launch/sales-go-live ideas):
- If idea claims launch readiness, checkout readiness, or near-term sales-go-live, it must include:
Unit-Test-Evidence
Integration-Test-Evidence
E2E-Test-Evidence
User-Test-CLI-Audit-Evidence
User-Test-ChatGPT-Evidence
SEO-Baseline-Evidence
Google-Monitoring-Evidence (GA4 + Search Console baseline; equivalent signal allowed only with explicit rationale)
- CLI audit settings contract for
User-Test-CLI-Audit-Evidence:
- Must reference a current output from
.claude/skills/meta-user-test/scripts/run-meta-user-test.mjs
- Must include no-JS predicate evidence:
NO_JS_BAILOUT_MARKER, hasNoI18nKeyLeak, hasMetadataBodyParity, hasSocialProofSnapshotDate
- Must include SEO artifacts from the same run:
...-seo-summary.json and ...-seo-artifacts/
- Must include smoke/go-live signal for launch path confidence:
pnpm launch-smoke --wait --json (or config smokeChecks) and applicable launch-go-live gate status
- Two-source user-testing contract (mandatory):
- Source A: CLI-agent audit evidence (contract above)
- Source B: ChatGPT prompting evidence (prompt set, date, verdict, critical risks/open questions)
- Single-source user testing is invalid for launch/sales-go-live promotion
- If any required field is missing:
- set
Sales-Readiness-Gate: blocked
- block card eligibility for that idea
- reroute to Hold (
Gap-Type=data) with missing fields recorded
- include the idea in the report's gate section with blocker reason
Traction mode (under grow-business, market-facing L1-L2 businesses only):
- Use traction-mode Decision Log format for P1/P2 (includes Traction Objective, Test Plan, Porter Fit, Abandonment)
- Output a Rigor Pack for each P1/P2 (5 components: Objective & Contribution Card, Traction Test Card, Trade-off Statement, Evidence & Unknowns, Abandonment Note)
- Rigor Pack content is passed to Stage 7 for fact-find stage doc pre-population
- P1 cap: max 3 P1s per business per sweep
- Reversibility rule: if Munger/Buffett noted "bounded and reversible downside" → Rigor Pack sufficient; if cautious → require Full Strategy Pack
- Infrastructure businesses (PLAT, BOS) use standard format under
grow-business, no traction mode
No PATCH calls needed: Priority is assigned before card creation (Stage 6), so cards are created with the correct priority from the start.
Stance sensitivity: STANCE-SENSITIVE (plan target weighting changes by stance; traction mode activates under grow-business for L1-L2 market-facing businesses)
Stage 5.5: Persistence Prepare (3A Contract)
Build persistence artifacts before any write
…(truncated)
1---2name: lp-do-idea-generate3description: Radical business growth process auditor. Cabinet Secretary orchestrates multi-lens composite idea generation with attribution, confidence gating, and priority ranking.4---5
6# Ideas Go Faster — Cabinet Secretary
7
8Cabinet Secretary orchestrates composite business idea generation across multiple expert lenses. Not a kanban health checker. Not a WIP counter. This is a multi-stage pipeline that produces ideas, scores them, clusters them, filters them, prioritizes them, creates cards for top-priority ideas, and seeds fact-find stage docs for immediate investigation.
9
10Pete triggers the sweep via `/lp-do-idea-generate`. Everything after that is autonomous.
11
12---
13
14## Invocation
15
16```
17/lp-do-idea-generate # default: --stance=improve-data
18/lp-do-idea-generate --stance=improve-data
19/lp-do-idea-generate --stance=grow-business
20/lp-do-idea-generate --dry-run # preview-only: generate/report ideas, no API writes
21/lp-do-idea-generate --dry-run --stance=grow-business
22/lp-do-idea-generate --dry-run --allow-api-degraded # allow filesystem-only fallback when API preflight fails
23/lp-do-idea-generate --force-code-review # force technical cabinet even without triggers
24/lp-do-idea-generate --assumptions-file <path-to-md> # optional assumptions input file
25/lp-do-idea-generate --verbosity=compact|standard|extended
26/lp-do-idea-generate --stage7b # enable optional Stage 7b single-card backfill slot
27scripts/run-idea-generate.sh --dry-run --stance=improve-data # recommended runner (loads .env.local)
28scripts/run-idea-generate.sh --dry-run --allow-api-degraded --stance=improve-data
29```
30
31**Invocation control contract:**
32- Assumptions input supports both:
33 - inline assumptions block in invocation context
34 - `--assumptions-file <path>`
35- If both inline and file assumptions are present, file input takes precedence.
36- Verbosity mode supports `compact`, `standard`, `extended` (default: `standard`).
37- `--allow-api-degraded` is valid only with `--dry-run` (never valid for live mode).
38- Recommended execution path is `scripts/run-idea-generate.sh` so Agent API env vars are loaded from `.env.local`.
39- `scripts/run-idea-generate.sh` is initiator-agent-preserving: it auto-selects the local agent CLI (`codex` first, then `claude`) so the invoking agent can execute the sweep without forced cross-agent handoff.
40
41### Mandatory CLI Reminder
42
43At the start of every `/lp-do-idea-generate` run, emit this exact CLI message:
44
45`remember to find out why any good ideas generated via this skill have not been picked up automatically, and revise the workflow so that in the future they are`
46
47---
48
49## Constitution (Non-Negotiable Invariants)
50
51These rules override all other instructions. The sweep must not produce output that violates any of them.
52
53### The Elon Musk 5-Step Algorithm (Constitutional Invariant)
54
55The Musk lens applies this algorithm in **strict order** during its generation pass. Every recommendation from the Musk lens must be classified into one of these steps. They are executed **in strict order** — you must exhaust each step before moving to the next. This is not a tiebreaker. This is the law.
56
571. **Question every requirement.** Each must have a named owner (a person, not a department). All requirements are recommendations until proven otherwise. Only physics is immutable. If you cannot name who requested it and why, delete it.
58
592. **Delete parts and processes.** If you're not adding back at least 10% of what you deleted, you didn't delete enough. The best part is no part. The best process is no process.
60
613. **Simplify and optimize.** Only AFTER steps 1-2. The most common mistake is optimizing something that should not exist. Do not make this mistake.
62
634. **Accelerate cycle time.** Every process can be sped up. But only AFTER steps 1-3. Speed up a bad process and you get bad results faster.
64
655. **Automate.** Last, never first. Automating a process that should be deleted is worse than not automating it.
66
67### Anti-Theater Invariants
68
69- **Constraint-first.** Do not propose work until you name the current constraint and the evidence that proves it. No unsourced claims. No hand-waving.
70- **Do not optimize work that should not exist.** Before improving a process, ask: should this process exist at all?
71- **Activity is not progress.** More tasks does not mean more throughput. More ideas does not mean better ideas. Measure outcomes, not output volume.
72- **Do not produce feature-factory outputs.** Every recommendation must tie directly to a named constraint. If it doesn't relieve a constraint, it doesn't belong in the sweep.
73- **Evidence and traceability.** Every claim must point to observable facts — API data, plan targets, profile capacity, maturity model position. No hallucinated metrics.
74- **Named ownership.** Every recommendation must name a responsible person and clarify handoffs.
75- **Smallest shippable learning unit.** Prefer minimal changes that produce a measurable signal quickly. Do not propose 6-month roadmaps.
76- **Safety and sustainability.** Do not recommend burnout, heroics, or policy violations. Optimize for sustained throughput.
77
78### Sales-First Portfolio Directives (Ideas-Generation Scope)
79
80For `/lp-do-idea-generate`, operate in **sales-first mode**:
81
82- Treat **revenue businesses** as primary: `BRIK`, `PIPE`, `XA`, `HEAD`, `PET`, `HBAG`.
83- Treat **enabling systems** as secondary: `PLAT`, `BOS`.
84- **Mission:** maximize startup sales velocity; all but `BRIK` are startup streams and must be pushed to first/next sales ASAP.
85- **Portfolio split:** target `95%` of promoted/card-eligible output on direct revenue-business sales outcomes, max `5%` on side-project platform work.
86- **CMS exception:** `3-hour launch via CMS` remains a side project and must not block direct app delivery for sales.
87- **PLAT/BOS idea rule:** allowed only when they explicitly unblock a named revenue business sales bottleneck.
88- **UI/DS rule:** no standalone `@acme/ui` / `@acme/design-system` cleanup ideas. UI/DS ideas are valid only when attached to a concrete startup-sales deliverable.
89- **Convergence rule:** checkout/inventory paths for startup businesses must converge to shared platform authority; ideas that preserve long-term divergence are not promotable.
90- **Launch proof rule:** launch/sales-go-live ideas must include unit/integration/e2e evidence, two-source user testing evidence (CLI audit + ChatGPT prompting), SEO baseline, and Google monitoring baseline (GA4 + Search Console).
91
92---
93
94## Operating Mode
95
96**READ + ANALYZE + CONDITIONAL WRITE (Live) / PREVIEW (Dry-Run)**
97
98**Allowed:**
99- Read all agent API endpoints (businesses, people, cards, ideas, stage-docs)
100- Read business plans from filesystem: `docs/business-os/strategy/<BIZ>/plan.user.md`
101- Read people profiles from filesystem: `docs/business-os/people/people.user.md`
102- Read the maturity model: `docs/business-os/strategy/business-maturity-model.md`
103- Read persona files from `_shared/cabinet/` as needed during execution
104- Create ideas via `POST /api/agent/ideas` (live mode only)
105- Create cards via `POST /api/agent/cards` (live mode only)
106- Create fact-find stage docs via `POST /api/agent/stage-docs` (live mode only)
107- Write sweep report to `docs/business-os/sweeps/<YYYY-MM-DD>-sweep.user.md`
108
109**Persistence mode (run-level):**
110- **Default (`live`):** run full pipeline including Stage 6/7 persistence.
111- **`--dry-run`:** run full analysis and ranking pipeline, but do NOT perform Stage 6/7 API write calls. Output preview tables for would-create ideas/cards/stage-docs in the sweep report.
112- **`--dry-run --allow-api-degraded`:** if Agent API preflight fails, continue using filesystem-only fallback inputs and mark run as degraded.
113
114**API preflight mode (run-level):**
115- **`strict` (default):** API preflight failures are fatal.
116- **`degraded-filesystem-only` (dry-run only):** allowed only when `--allow-api-degraded` is present.
117
118**Not allowed:**
119- Modify existing cards or ideas (no PATCH on cards/ideas — Drucker/Porter runs before card creation, so no priority updates needed)
120- Stage-doc PATCH is allowed only for latest-wins `fact-find` upsert safety (avoid duplicate stage-doc POSTs)
121- Move cards between lanes directly (baseline deterministic lane transitions are handled downstream by /lp-do-plan and /lp-do-build)
122- Run destructive commands
123- Auto-schedule or self-invoke
124
125### In-Run Progress Updates (Mandatory)
126
127The sweep must provide progress visibility while execution is underway.
128
129**Progress artifact:**
130- Write to `docs/business-os/sweeps/<YYYY-MM-DD>-progress.user.md` (or run-scoped subdirectory equivalent when used).
131- Create the progress artifact as the first write action after invocation parsing.
132
133**Progress artifact frontmatter (required):**
134```yaml
135---
136Type: Sweep-Progress
137Date: YYYY-MM-DD
138Run-Status: running | complete | partial | failed-preflight
139Persistence-Mode: live | dry-run
140Stance: improve-data | grow-business
141Current-Stage: preflight | stage-1 | stage-2 | stage-3 | stage-4 | stage-5 | stage-5.5 | stage-6 | stage-7 | stage-7.5 | complete
142Last-Updated-UTC: YYYY-MM-DDTHH:MM:SSZ
143Progress-Events: N
144Final-Report-Path: <path-or-pending>
145---
146```
147
148**Update cadence (required):**
149- Emit a progress event at each stage transition (start + complete).
150- Emit per-business progress events during long loops (Stage 1, Stage 2, Stage 4, Stage 5).
151- Emit heartbeat updates every `<=90 seconds` while a long stage is running.
152- After each progress artifact update, emit a concise terminal line:
153 - `Progress: <stage> <state> (<completed>/<total>)`
154
155**Completion/failure finalization (required):**
156- On success or partial completion, set `Run-Status`, `Current-Stage: complete`, and `Final-Report-Path`.
157- On fatal preflight, still finalize progress artifact with `Run-Status: failed-preflight` and failure reason.
158
159### Failure Policy (Two-Phase)
160
161**Phase 1 — Fatal (STOP sweep pipeline stages before persistence):**
162Stop the sweep if any of these fail:
163- Fetch businesses list from Agent API
164- Read maturity model file
165- Fetch existing cards/ideas/stage-docs for dedup + priority baseline
166
167In fatal cases: stop all pipeline stages and attempt one final write of a minimal sweep report marked `Run-Status: failed-preflight` including the error.
168
169**Dry-run degraded preflight fallback (explicitly opt-in):**
170- Trigger condition: `--dry-run --allow-api-degraded` and Agent API preflight fails.
171- Continue in `API-Preflight-Mode: degraded-filesystem-only` using:
172 - filesystem business plans under `docs/business-os/strategy/<BIZ>/plan.user.md`
173 - maturity model file (still required)
174 - people profiles file
175- Degraded consequences (must be reported):
176 - existing cards/ideas/stage-doc baseline dedup may be unavailable
177 - reaffirmation/addendum matching becomes low-confidence
178 - set run `partial` unless API preflight recovers before Stage 6
179- Live mode never uses degraded preflight fallback.
180
181**Phase 2 — Non-fatal (record + continue during persistence):**
182During Stages 6–7 (live-mode creates):
183- In `--dry-run`, do NOT issue write calls (`POST/PATCH`) to ideas/cards/stage-docs endpoints; record preview output instead.
184- Ideas/cards are non-idempotent POST creates. Do NOT blind-retry create calls.
185- On idea/card create failure: run one reconciliation read. If entity is confirmed, treat as success; if not, record failure and continue.
186- Stage docs use latest-wins upsert semantics (`GET /api/agent/stage-docs/{cardId}/fact-find` -> `PATCH` when present, `POST` only when missing).
187- Mark sweep report `Run-Status: partial` and list all failed creates/updates
188- Never create a stage doc unless its card exists
189- Emit a reconciliation checklist in the sweep report (what succeeded, what failed, exact repair commands, and next action owner)
190
191Rationale: ideas are always documented in the sweep report; persistence is best-effort without pretending transactional guarantees.
192
193---
194
195## MACRO Framework (Business Process Audit Categories)
196
197Every business is audited against 5 process categories. **Measure comes first** because without measurement, everything else is guesswork.
198
199### M — Measure (Can you see what's happening?)
200
201Without measurement, you are flying blind. This is always the first question.
202
203| Diagnostic Question | What a "No" Means |
204|---|---|
205| Is web analytics installed and collecting data? (GA, Plausible, etc.) | You cannot measure traffic, conversion, or content performance. CRITICAL gap. |
206| Is Search Console connected? | You cannot measure SEO performance, indexing, or keyword rankings. |
207| Are conversion events tracked? (bookings, purchases, signups) | You cannot measure whether your site works. |
208| Is there marketing attribution? (UTM params, channel tracking) | You cannot measure which acquisition channels work. |
209| Are revenue metrics visible? (ADR, RevPAR, occupancy, GMV, AOV) | You cannot measure business health. |
210| Is customer feedback collected? (NPS, reviews, surveys, support tickets) | You cannot hear your customers. |
211| Are operational metrics tracked? (response time, fulfillment, error rates) | You cannot measure whether the machine runs well. |
212| Is there a time-series record? (even a spreadsheet) | You cannot detect trends. Every sweep starts from scratch. |
213
214### A — Acquire (Are customers finding you?)
215
216Traffic that costs nothing to maintain is the foundation of sustainable growth.
217
218| Diagnostic Question | What a "No" Means |
219|---|---|
220| Is there organic search traffic? | All acquisition is paid — spend stops, traffic stops. |
221| Are content assets being produced? (guides, articles, landing pages) | No compounding SEO assets. Every visitor costs marginal money. |
222| Is content in target languages? | Missing international traffic at near-zero marginal cost. |
223| Are social/referral channels active? | Single-channel dependency. |
224| Is there a content calendar or production cadence? | Content production is ad-hoc, not systematic. |
225| Does the business appear in relevant directories/aggregators? | Missing distribution channels. |
226
227### C — Convert (Are they buying?)
228
229Traffic without conversion is a vanity metric.
230
231| Diagnostic Question | What a "No" Means |
232|---|---|
233| Is there a clear call-to-action on every page? | Visitors don't know what to do. |
234| Is the checkout/booking flow optimized? | Friction kills conversion. |
235| Are pricing and availability clear? | Uncertainty prevents purchase. |
236| Is trust established? (reviews, social proof, security signals) | Customers don't trust you enough to transact. |
237| Are abandoned carts/bookings tracked and recovered? | Leaving money on the table. |
238| Is there A/B testing on conversion paths? | You're guessing, not learning. |
239
240### R — Retain (Are they coming back?)
241
242Acquisition without retention is a leaky bucket.
243
244| Diagnostic Question | What a "No" Means |
245|---|---|
246| Is there post-purchase communication? (email, follow-up) | Customer relationship ends at checkout. |
247| Is there a loyalty/repeat purchase mechanism? | No reason to come back. |
248| Are customer service channels responsive? | Customers leave when ignored. |
249| Is there self-service content for common questions? | Every support query costs human time. |
250| Is customer satisfaction measured? | You don't know if customers are happy. |
251
252### O — Operate (Is the machine efficient?)
253
254Even a good product fails if the operations are broken.
255
256| Diagnostic Question | What a "No" Means |
257|---|---|
258| Are core business operations documented? | Knowledge is in people's heads — bus factor = 1. |
259| Is there cross-app data flow? (products ↔ content ↔ bookings) | Manual data re-entry. Inconsistency. |
260| Are operational costs tracked? | You can't optimize what you don't measure. |
261| Is the development/deployment pipeline reliable? | Shipping is slow or risky. |
262| Are there automated quality checks? (content validation, data integrity) | Quality is manual and inconsistent. |
263| Is there capacity planning? (people, infrastructure, budget) | Surprises instead of planning. |
264
265---
266
267## Cabinet Pipeline (7 Stages)
268
269### Stage 1: Preflight + Composite Generation
270
271**Source of truth for businesses:** Agent API (NOT businesses.json).
272
273**Preflight (per sweep):**
2741. Fetch businesses from `GET /api/agent/businesses` (fatal if fails).
2752. For each business:
276 - Read business plan: `docs/business-os/strategy/<BIZ>/plan.user.md` (degrade if missing).
277 - Read maturity model fallback: `docs/business-os/strategy/business-maturity-model.md` (fatal if missing).
278 - Read people profiles: `docs/business-os/people/people.user.md` (degrade if missing).
279 - Fetch existing cards + ideas + stage-docs via Agent API (fatal if fails):
280 - Build **Existing Priority Set**:
281 - open cards (not Done/Archived), prioritize P1–P3
282 - tags include `cabinet-v1` and/or `sweep-generated`
283 - Build **Existing Canon** for dedup:
284 - normalize titles, cluster tags, and referenced problem statements
2853. Build a **DGP Resurfacing Queue** from existing ideas (MANDATORY):
286 - Include ideas tagged `dgp` + `gap:<type>` with `status=raw`
287 - Query contract: Agent API list calls support only `location=inbox|worked`. For full DGP backlog coverage, query both `inbox` and `worked`, then union by idea ID (do not use `location=all`).
288 - Partition by `gap:data`, `gap:timing`, `gap:dependency`
289 - Compute `Resurfacing-State`:
290 - `ready-now`:
291 - `gap:data`: default when stance is `improve-data`; rank by `VOI-Score` DESC
292 - `gap:timing`: `Re-evaluate-When` is due (date <= today) or trigger explicitly met
293 - `gap:dependency`: dependency evidence indicates prerequisite is complete
294 - `watch`: valid DGP but trigger/dependency not yet satisfied
295 - Output resurfacing table in sweep report (ready-now first)
2964. For each business, write a **Constraint Statement** (1–3 sentences) with:
297 - Current constraint (MACRO category)
298 - Evidence pointers (file paths and/or API entities)
299 - Constraint confidence (0–100, subjective)
3005. Resolve **Human Assumptions Input** (optional):
301 - Accept inline assumptions block from invocation context.
302 - Accept `--assumptions-file <path>` when provided.
303 - If both are present, file input wins.
304 - Record assumptions source in report frontmatter (`none` | `inline` | `file`).
3056. Apply **sales-first portfolio classification** for this run:
306 - mark each business as `revenue` or `enabler`
307 - define startup set (`PIPE`, `XA`, `HEAD`, `PET`, `HBAG`) for sales-velocity emphasis
308 - enforce CMS work as side-project lane (non-blocking)
309
310**Composite Generation (per business):**
311Run sequential multi-lens passes to generate ideas.
312
313**Generation cadence (quality-first, mandatory):**
3141. **Divergence pass:** Each sub-expert contributes at most 1 net-new candidate idea per business.
3152. **Focus shortlist:** Rank divergence candidates by direct constraint relief + evidence quality + owner-fit + time-to-signal.
3163. **Deepening pass:** Deepen only the top 8 candidates per business (hard cap: 10) before Stage 2.
3174. **Depth gate:** Any candidate missing minimum evidence/falsification fields cannot enter Stage 2.
318
319**Sub-experts in order (generic — all businesses except BRIK):**
3201. `musk` (Musk lens — feasibility)
3212. `bezos` (Bezos lens — customer-backwards)
3223. `hopkins` (Marketing lens — scientific advertising)
3234. `ogilvy` (Marketing lens — brand)
3245. `reeves` (Marketing lens — USP)
3256. `lafley` (Marketing lens — consumer insight)
3267. `patterson` (Sales lens — systematic selling)
3278. `benioff` (Sales lens — challenger positioning)
3289. `chambers` (Sales lens — ecosystem and distribution)
32910. `finder` (Sourcing lens — product selection and supplier discovery)
33011. `bridge` (Sourcing lens — negotiation and supplier relationship depth)
33112. `mover` (Sourcing lens — logistics, compliance, and landed cost)
332
333**BRIK-specific sub-experts (replaces sourcing with brikette lens):**
3341. `musk` (Musk lens — feasibility)
3352. `bezos` (Bezos lens — customer-backwards)
3363. `hopkins` (Marketing lens — scientific advertising)
3374. `ogilvy` (Marketing lens — brand)
3385. `reeves` (Marketing lens — USP)
3396. `lafley` (Marketing lens — consumer insight)
3407. `patterson` (Sales lens — systematic selling)
3418. `benioff` (Sales lens — challenger positioning)
3429. `chambers` (Sales lens — ecosystem and distribution)
34310. `crawford` (Brikette lens — interior/lived comfort)
34411. `starck` (Brikette lens — interior/bold identity)
34512. `nakajima` (Brikette lens — maintenance/TPM)
34613. `deming` (Brikette lens — maintenance/quality systems)
34714. `kroc` (Brikette lens — cleaning/standards)
34815. `gawande` (Brikette lens — cleaning/checklists)
34916. `schulze` (Brikette lens — cleaning/culture)
35017. `hopkins` (Brikette lens — hostel promotion/scientific advertising)
35118. `ogilvy` (Brikette lens — hostel promotion/brand)
35219. `sutherland` (Brikette lens — hostel promotion/behavioral economics)
35320. `meyer` (Brikette lens — F&B/hospitality)
35421. `degroff` (Brikette lens — F&B/bar program)
35522. `schrager` (Brikette lens — events/atmosphere)
35623. `jones` (Brikette lens — events/community)
35724. `generator` (Brikette lens — events/hostel-native ops)
358
359**Note:** Hopkins and Ogilvy appear twice for BRIK — once under Marketing lens (generic frameworks) and once under Brikette lens (hostel-specific framing). Distinguished by `Originator-Lens: marketing` vs `Originator-Lens: brikette`. Clustering (Stage 3) handles any duplicate ideas.
360
361**Existing Priority Check (MANDATORY, per sub-expert):**
362Before proposing a new idea, check the Existing Priority Set / Canon:
363- If idea is already covered: do NOT create a new idea.
364 - Output a "Reaffirmation/Addendum" note (lens viewpoint + existing card/idea reference) in the sweep report.
365- If genuinely new or materially different: proceed.
366
367**For each sub-expert (new ideas only):**
3681. Read the lens file from `.claude/skills/_shared/cabinet/lens-<lens>.md`
369 - For composite lenses with split experts (**marketing**, **sales**): also read `lens-<lens>-<expert>.md` for the current sub-expert pass (e.g., `lens-marketing-hopkins.md` for Hopkins, `lens-sales-benioff.md` for Benioff). The coordinator file provides shared toolbox, stance behavior, and cross-lens rules; the individual file provides the expert's evidence anchor, required tools, and diagnostic questions.
3702. Apply stance-specific diagnostic questions to the business:
371 - Under `improve-data`: Focus on measurement, data quality, knowledge gaps
372 - Under `grow-business`: Focus on revenue, acquisition, conversion, retention
3733. Generate 0-1 candidate idea per sub-expert per business (divergence pass only)
3744. Format each idea with Dossier Header (see `dossier-template.md`):
375 - `Originator-Expert`: person-level attribution (e.g., `hopkins`)
376 - `Originator-Lens`: lens-level grouping (e.g., `marketing`)
377 - `Confidence-Tier`: Set to `candidate` initially
378 - `Confidence-Score`: 0-100 (preliminary, before confidence gate)
379 - `Pipeline-Stage`: Set to `candidate`
380 - **`Impact-Type`:** growth | savings | risk-avoidance | time
381 - **`Impact-Mechanism`:** Acquire | Convert | Retain | Measure | Operate
382 - **`Impact-Band`:** XS | S | M | L | XL (see Impact rubric)
383 - **`Impact-Confidence`:** 0-100 (subjective; must cite evidence pointers or mark unknown)
384
385**Impact rubric (for Impact-Band):**
386- **XS:** small/local improvement; unlikely to move a plan target materially
387- **S:** noticeable improvement; could move a sub-metric
388- **M:** meaningful; could move a primary KPI if executed well
389- **L:** large; likely to move a plan target materially
390- **XL:** step-change; materially changes the business trajectory
391
392**Deepening pass (mandatory before Stage 2):**
393- Keep top 8 candidates per business from divergence ranking (hard cap 10)
394- For each deepened candidate, add all of:
395 - `Evidence-Pointers`: at least 2 concrete pointers (files, API entities, or metrics)
396 - `Falsification-Test`: one explicit condition that could disprove the core claim
397 - `First-Signal`: one measurable leading indicator with owner + review date
398- Candidates missing deepening fields are rerouted:
399 - to DGP (`Gap-Type=data`) if thesis is promising but under-evidenced
400 - to hunch log if no credible test/evidence path exists
401
402**Context discipline:** use compress-and-carry-forward plus summary-block mode and coverage thresholds from the Context Discipline Strategy section.
403
404**MACRO emphasis by stance** (see `stances.md`):
405- Under `improve-data`: Measure (HIGH), Operate (HIGH), Acquire (MEDIUM), Convert (MEDIUM), Retain (LOW)
406- Under `grow-business`: Acquire (HIGH), Convert (HIGH), Retain (MEDIUM), Measure (MEDIUM), Operate (LOW)
407
408**Musk 5-step constitutional invariant:**
409During the Musk lens pass, all recommendations must follow strict step ordering (Question → Delete → Simplify → Accelerate → Automate). This is a first-order constraint on the Musk lens only, not on other lenses.
410
411### Stage 2: Confidence Gate
412
413For each candidate idea, evaluate against the 5 presentable criteria (see `dossier-template.md`).
414
415**Prerequisites:**
416- Impact fields (Impact-Type, Impact-Mechanism, Impact-Band, Impact-Confidence) must exist in the Dossier Header, even if values are `unknown`.
417- Stage 1 depth-gate fields must be present for every candidate entering Stage 2:
418 - `Evidence-Pointers` (>=2)
419 - `Falsification-Test` (exactly one explicit disproof condition)
420 - `First-Signal` (metric + owner + review date)
421- Candidates missing depth-gate fields must not enter Stage 2; reroute to DGP/hunch per Stage 1 rules.
422
423**Assumption Challenge (F3, conditional):**
424- If `Assumptions-Source` is `inline` or `file`, evaluate each assumption and classify as `accept`, `condition`, or `reject`.
425- Each assumption verdict must include at least one evidence pointer and list affected ideas.
426- Ideas that depend on a `reject` assumption cannot remain Promote candidates; reroute to Hold (`Gap-Type=data`) unless revised with new evidence.
427- Record assumption-verdict notes in dossier decision logs and summarize in the report's Assumption Challenge section.
428
4291. Customer/user identified — Who is this for? Named segment or persona.
4302. Problem statement present — What pain or opportunity? Clear and specific.
4313. At least one feasibility signal — Technical or commercial evidence this is doable.
4324. Evidence or reasoning chain — Not just assertion. Data, research, or logical argument.
4335. Business alignment — How does this serve a known business goal or fill a plan gap?
434
435**Scoring:**
436- **5/5 criteria met** → Confidence-Tier: `presentable`, Confidence-Score: 60-100 → Proceed to clustering
437- **3-4/5 criteria met** → Confidence-Tier: `decision-gap`, Confidence-Score: 30-59 → Create DGP (see below)
438- **0-2/5 criteria met** → Confidence-Tier: `hunch`, Confidence-Score: 0-29 → Log in sweep report only, do NOT persist
439
440**Decision Gap Proposals (DGPs):**
441
442DGP = **Decision Gap Proposal** (not only data gaps).
443
444- Create via `POST /api/agent/ideas` with:
445 - `Status`: `raw`
446 - `Tags`: `["sweep-generated", "cabinet-v1", "dgp", "gap:<type>"]` where `<type>` is `data`, `timing`, or `dependency`
447 - `Content`: Full Dossier with Dossier Header
448
449**Required DGP fields in Dossier Header:**
450- `Gap-Type`: `data` | `timing` | `dependency`
451- `VOI-Score`: required only if Gap-Type=data (0-1 scale)
452- `Decision-Blocked`: what decision cannot be made
453- `Re-evaluate-When`: date or trigger condition
454- `Owner`: named person responsible for closing the gap
455
456**DGP content must include** (see `data-gap-lifecycle.md`):
457- Problem statement (provisional)
458- Proposed solution (sketch)
459- Blocking questions or triggers (numbered list)
460- Proposed investigation or re-evaluation plan
461- Presentable Criteria Check — which criteria are met, which are missing
462- VOI Justification — required for Gap-Type=data; optional for timing/dependency
463
464**Gap-Type definitions:**
465- **data**: Missing information blocks the decision. Requires VOI-Score + investigation plan.
466- **timing**: Idea is sound but timing is wrong. Requires triggers + re-evaluation date.
467- **dependency**: Prerequisite work must complete first. Names the prerequisite work + owners.
468
469**VOI-Score** (Value of Information, 0-1 — required for Gap-Type=data):
470- 0.8-1.0: High VOI (decision completely changes if data contradicts assumptions)
471- 0.4-0.7: Medium VOI (data helps but doesn't fundamentally change decision)
472- 0.1-0.3: Low VOI (could make decent decision without data)
473
474**Hunches (not persisted):**
475- Log in sweep report with rationale for suppression
476- If hunch gains new evidence in future sweep, re-submit as fresh evaluation
477
478**Stance sensitivity:** INVARIANT (confidence criteria do not change by stance)
479
480### Stage 3: Cluster/Dedup
481
482Group presentable ideas using clustering rules (see `clustering.md`):
483
484**Hard clustering boundaries (NEVER violated):**
4851. Never merge across businesses — BRIK ideas don't cluster with PIPE ideas
4862. Never merge across jobs-to-be-done — Customer-facing vs infrastructure vs data-quality
4873. Max cluster size: 4 lens variants
488
489**Clustering heuristic:**
490Two ideas cluster if:
491- Same business
492- Same MACRO category (same job-to-be-done)
493- Same core problem or opportunity (can be phrased differently but same essence)
494
495**Merged dossier structure:**
4961. **Unified Dossier Header:**
497 - `Originator-Expert`: First dossier in cluster (chronological)
498 - `Originator-Lens`: First dossier in cluster
499 - `Contributors`: All experts from all dossiers in cluster
500 - `Confidence-Tier`: Highest tier from cluster
501 - `Confidence-Score`: Highest score from cluster
502 - `Pipeline-Stage`: Must be same for all cluster members (enforced)
503 - `Cluster-ID`: Assigned (format: `{BUSINESS}-CLU-{NNN}`)
504 - `Rival-Lenses`: Lenses that disagree on approach/priority/feasibility
5052. **Unified Decision Log:** Concatenate all Decision Log blocks from cluster members
5063. **Main Idea Content:** Most complete variant or synthesis
5074. **Lens Variants Section:** Each lens's original perspective preserved as subsection
5085. **Agreement Section:** Where lenses converge (what they agree on)
5096. **Rivalry Section:** Where lenses disagree (what they disagree on, why, how to resolve)
510
511**Singletons:** Ideas with no match pass through unchanged
512
513**Stance sensitivity:** INVARIANT (clustering rules do not change by stance)
514
515### Stage 4: Munger/Buffett/Thiel Filter
516
517Apply `filter-munger-buffett.md` persona (v2.2) to each clustered dossier. The filter now runs a two-phase process:
518
519**Read the filter persona file:** `.claude/skills/_shared/cabinet/filter-munger-buffett.md`
520
521**Phase 1 — Munger–Thiel Contrarian Gate (mandatory pre-check):**
522Produces a **Contrarian Status** (PASS / UNRESOLVED / FAIL) by evaluating 7 required artifacts:
5231. Opposite-Side Steelman (Munger) — best argument against the idea
5242. Inversion Pre-Mortem (Munger) — top 5 ways it dies with leading indicators + exits
5253. Contrarian Secret (Thiel) — "most believe X, truth is ¬X" + operational advantage
5264. Capture-Value Proof (Thiel) — pricing power under stress, why customers pay us
5275. Competition Escape Plan (Thiel) — wedge, path to differentiation, "by cycle N" milestone
5286. Market Definition Reality Check (Thiel) — narrow vs. skeptical framing
5297. Incentive Truth-Bending Check (Munger × Thiel) — where we're tempted to misdescribe
530
531**Contrarian Status constrains the final verdict:**
532- **PASS** → verdict may be Kill, Hold, or Promote
533- **UNRESOLVED** (missing cheap facts) → verdict must be Hold (Promote is blocked)
534- **FAIL** (fatal) → verdict must be Kill (unless reframed as tiny timeboxed test → Hold)
535
536**Phase 2 — Munger–Buffett Capital-Allocation Verdict:**
537- **Munger:** Inversion (how could this fail?), mental model lattice, avoiding stupidity
538- **Buffett:** Circle of competence, margin of safety, opportunity cost, competitive moats
539
540**Verdicts (constrained by Contrarian Status):**
541- **Kill** → Reject permanently (outside competence, catastrophic downside, negative opportunity cost, no contrarian secret, commodity with no escape)
542- **Hold** → Defer (reason varies — see Gap-Type below)
543- **Promote** → Approve for next stage (requires Contrarian Status PASS + within competence, bounded downside, high optionality, passes inversion test, value capture credible)
544
545**Output:** Append TWO Decision Log blocks to dossier:
5461. **Munger–Thiel Contrarian Gate block:** Contrarian Status + all 7 artifact sections
5472. **Munger-Buffett Filter block:** Verdict + Verdict-Constrained-By + Rationale + Risk-Assessment + Opportunity-Cost
548
549**Killed ideas:** Logged in sweep report with Contrarian Status, not persisted
550**Held ideas:** Stored as DGPs (Decision Gap Proposals) with:
551- `Tags`: `["sweep-generated", "cabinet-v1", "dgp", "gap:<type>", "held"]`
552- Gap-Type determined by Hold reason:
553 - `data` — promising thesis but insufficient evidence (needs investigation)
554 - `data` — Contrarian Status UNRESOLVED (missing cheap facts for gate artifacts — see `data-gap-lifecycle.md`)
555 - `timing` — good idea but market/team isn't ready (needs trigger/date)
556 - `dependency` — blocked by prerequisite work (needs that work to complete)
557- For Contrarian Gate UNRESOLVED holds: add `gate-unresolved` tag and specify which of the 7 artifacts are incomplete
558**Promoted ideas:** Must have Contrarian Status PASS. Proceed to Drucker/Porter priority (Stage 5)
559
560**Stance sensitivity:** STANCE-INVARIANT (bad ideas are bad regardless of stance)
561
562### Stage 5: Drucker/Porter Priority
563
564Apply `prioritize-drucker-porter.md` persona to rank all promoted dossiers **before** card creation:
565
566**Input validation:** Only ideas with Verdict=Promote and Contrarian Status=PASS enter this stage. Ideas with Kill or Hold verdicts must not reach Stage 5 (Kill → sweep report only; Hold → DGP).
567
568**Read the prioritizer persona file:** `.claude/skills/_shared/cabinet/prioritize-drucker-porter.md`
569
570**Read business plans:** For each business, read `docs/business-os/strategy/<BIZ>/plan.user.md`
571- If plan missing: flag as critical finding in sweep report, fall back to maturity model
572- Maturity model path: `docs/business-os/strategy/business-maturity-model.md`
573
574**Evaluation framework:**
575- **Drucker:** Effectiveness over efficiency (doing the right things), manage by objectives, knowledge worker productivity
576- **Porter:** Five forces, value chain, strategic positioning (cost leadership OR differentiation), activity system fit
577
578**Priority levels:**
579- **P1:** Do immediately (high impact, clear path, urgent timing, strong plan alignment)
580- **P2:** Do soon (high impact but needs preparation)
581- **P3:** Schedule for later (medium impact, good fit, lower urgency)
582- **P4:** Keep in backlog (low urgency, potentially valuable later)
583- **P5:** Deprioritize (low fit, low impact, wrong timing)
584
585**Stance weighting (STANCE-SENSITIVE):**
586
587Under `improve-data`:
588- Higher weight: Measurement infrastructure, data quality, knowledge gaps, feedback loops, plan/profile completeness
589- Lower weight: Revenue tactics, feature development, market expansion
590- MACRO emphasis: Measure (HIGH), Operate (HIGH), Acquire (MEDIUM), Convert (MEDIUM), Retain (LOW)
591
592Under `grow-business`:
593- Higher weight: Customer acquisition, conversion optimization, revenue growth, retention, competitive positioning
594- Lower weight: Pure infrastructure without growth link, measurement for measurement's sake
595- MACRO emphasis: Acquire (HIGH), Convert (HIGH), Retain (MEDIUM), Measure (MEDIUM), Operate (LOW)
596
597**Sales-first portfolio gates (mandatory in both stances):**
598- Revenue businesses (`BRIK`, `PIPE`, `XA`, `HEAD`, `PET`, `HBAG`) are the default promotion path.
599- `PLAT`/`BOS` ideas must include:
600 - `Enabled-Business`: one of the revenue businesses
601 - `Sales-Blocker`: explicit blocker removed
602 - `Unblock-SLA`: date/clock for expected unblock signal
603- `CMS` 3-hour launch ideas are side-project candidates only; cap to <=5% of P1-P3 card-eligible output per sweep and never ahead of unresolved startup sales blockers.
604- Reject standalone UI/DS cleanup (`@acme/ui`, `@acme/design-system`) unless tied to a named startup-sales deliverable and measurable sales effect.
605- Startup commerce ideas must reinforce checkout/inventory convergence toward shared platform authority; non-convergent proposals are capped at P4/P5 unless they include an explicit convergence milestone.
606
607**Output:** Append Decision Log block to dossier with:
608- Priority: [P1|P2|P3|P4|P5]
609- Potential-Impact: [Impact-Band from dossier + mechanism + confidence assessment]
610- Strategic-Fit: How this aligns with business plan targets
611- Plan-Target: Which specific plan target this addresses
612- Stance-Weight: How stance influenced the ranking
613- Sales-Link: direct sales outcome path for this idea
614- Enabled-Business: revenue business directly enabled (`self` for revenue-business ideas)
615- Economics-Gate: [pass|blocked]
616- Economics-Missing-Fields: [list of missing fields, empty if pass]
617- Sales-Readiness-Gate: [pass|blocked|n/a]
618- Sales-Readiness-Missing-Fields: [list of missing launch-proof fields, empty if pass]
619- Rationale: 2-3 sentences using effectiveness, positioning, or value chain reasoning
620
621**Economics gate (F5, mandatory before Stage 6):**
622- A Promote candidate must include all fields:
623 - `Upside`
624 - `Downside`
625 - `Reversibility`
626 - `Cost-of-Delay`
627 - `Time-to-Signal`
628- If any field is missing:
629 - set `Economics-Gate: blocked`
630 - block card eligibility for that idea
631 - reroute to Hold (`Gap-Type=data`) with missing fields recorded
632 - include the idea in the report's Economics Gate section with blocker reason
633
634**Sales-readiness gate (mandatory for startup launch/sales-go-live ideas):**
635- If idea claims launch readiness, checkout readiness, or near-term sales-go-live, it must include:
636 - `Unit-Test-Evidence`
637 - `Integration-Test-Evidence`
638 - `E2E-Test-Evidence`
639 - `User-Test-CLI-Audit-Evidence`
640 - `User-Test-ChatGPT-Evidence`
641 - `SEO-Baseline-Evidence`
642 - `Google-Monitoring-Evidence` (GA4 + Search Console baseline; equivalent signal allowed only with explicit rationale)
643- CLI audit settings contract for `User-Test-CLI-Audit-Evidence`:
644 - Must reference a current output from `.claude/skills/meta-user-test/scripts/run-meta-user-test.mjs`
645 - Must include no-JS predicate evidence: `NO_JS_BAILOUT_MARKER`, `hasNoI18nKeyLeak`, `hasMetadataBodyParity`, `hasSocialProofSnapshotDate`
646 - Must include SEO artifacts from the same run: `...-seo-summary.json` and `...-seo-artifacts/`
647 - Must include smoke/go-live signal for launch path confidence: `pnpm launch-smoke --wait --json` (or config `smokeChecks`) and applicable launch-go-live gate status
648- Two-source user-testing contract (mandatory):
649 - Source A: CLI-agent audit evidence (contract above)
650 - Source B: ChatGPT prompting evidence (prompt set, date, verdict, critical risks/open questions)
651 - Single-source user testing is invalid for launch/sales-go-live promotion
652- If any required field is missing:
653 - set `Sales-Readiness-Gate: blocked`
654 - block card eligibility for that idea
655 - reroute to Hold (`Gap-Type=data`) with missing fields recorded
656 - include the idea in the report's gate section with blocker reason
657
658**Traction mode (under `grow-business`, market-facing L1-L2 businesses only):**
659- Use traction-mode Decision Log format for P1/P2 (includes Traction Objective, Test Plan, Porter Fit, Abandonment)
660- Output a **Rigor Pack** for each P1/P2 (5 components: Objective & Contribution Card, Traction Test Card, Trade-off Statement, Evidence & Unknowns, Abandonment Note)
661- Rigor Pack content is passed to Stage 7 for fact-find stage doc pre-population
662- P1 cap: max 3 P1s per business per sweep
663- Reversibility rule: if Munger/Buffett noted "bounded and reversible downside" → Rigor Pack sufficient; if cautious → require Full Strategy Pack
664- Infrastructure businesses (PLAT, BOS) use standard format under `grow-business`, no traction mode
665
666**No PATCH calls needed:** Priority is assigned before card creation (Stage 6), so cards are created with the correct priority from the start.
667
668**Stance sensitivity:** STANCE-SENSITIVE (plan target weighting changes by stance; traction mode activates under `grow-business` for L1-L2 market-facing businesses)
669
670### Stage 5.5: Persistence Prepare (3A Contract)
671
672Build persistence artifacts before any write
673
674…(truncated)