reimagine-industry — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited reimagine-industry (Agent Skill) and scored it 96/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 1 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 1 flagged
The text {match} tells the agent to skip the normal "ask the user first" gate. Used adversarially it removes the human-in-the-loop check before destructive or sensitive actions, turning a normally-gated agent into a fire-and-forget executor.
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
For a single industry, generate a ranked shortlist of venture concepts for disrupting it. Most commonly runs AFTER analyze-industry has produced a structural brief, inheriting its outputs from 08-knowledge/world-model/industries/[slug]/working/. Works standalone if given enough raw data — Phase 2/3 dispatch the librarian for missing inputs.
Three-layer output: ranked venture concepts (venture-concepts.md), narrative synthesis (reimagination-brief.md), and the structured dataset that powers both (disruption-dataset.yaml). Three approval gates. Reimagination-specific bar test from fresh-context sub-agent.
The bar (per `references/bar-test-criteria.md`): a senior strategist reading the shortlist should find ≥3 non-obvious concepts, zero AI-washed concepts, zero feature-not-company concepts, and every concept's why-now must survive a partner-meeting test.
Iron rules:
../_shared/provenance-tagging.md.../_shared/pyramid-scqa.md.../_shared/2026-terminology.md.references/voice-constraints.md — no consultantese in venture-concepts.md or reimagination-brief.md. The dataset YAML is exempt.references/gate-html-output.md. Markdown gate reviews are forbidden.references/edge-cases.md RULE-1.references/edge-cases.md RULE-2.load_bearing_hypothesis + validation_test + value_if_true on every concept, both lanes. The Phase 5 human gate is test-worthiness ("which experiments are worth funding?"), not conviction. See references/seven-structural-moves.md Move 8 + bet enrichment.references/lane-allocation.md), ratified by the human at Gate 2, not hardcoded. Incumbent-anchored signals stay within the allocated share; the shortlist carries ≥1 concept from each lane (the floor). The first-principles lane (Phase 3 capability seeds + Move 8 + Secrets) must be load-bearing, not decorative.references/edge-cases.md RULE-3.references/bar-test-criteria.md.Ask: industry slug, scope question ("how would we disrupt [X]?" / "venture concepts for [X]?"), whether analyze-industry outputs exist at 08-knowledge/world-model/industries/[slug]/, and what primary data the user has (interviews, operational experience, surveys). Run python scripts/init_reimagination.py --slug <industry-slug> --question "<scope-question>" to create or extend the industry folder.
Read references/gate-prompts.md Gate 1 template AND references/gate-html-output.md. Render the gate review via the html-output skill (archetype: report.html) to 08-knowledge/world-model/industries/<slug>/gates/gate-1-<date>.html. Present in chat: link to the HTML + the four-line decision prompt (Why we're asking / Default / Tradeoff / Or). User confirms scope + data plan. python scripts/log_run.py --slug <slug> --event gate-1-approved.
Read references/dataset-schema.md section "value_chain + market_structure". Populate the industry, value_chain, and market_structure blocks of disruption-dataset.yaml from working/value-chain-profit-pools.md if present, else from inherited industry-brief.yaml if present, else dispatch the librarian for a structural scan. Every numeric claim gets a V/C/A/I tag. Output: disruption-dataset.yaml populated through market_structure. Render the populated structure as an HTML diagram review (diagram-mermaid.html embedded in report.html) via html-output — value chain as Mermaid flowchart with margin pools shaded, customer-relationship-owner highlighted. See references/gate-html-output.md for the diagram spec.
Read references/dataset-schema.md section "value_chain_pain". For each entity type in the value chain (customers, suppliers, intermediaries, adjacent players, non-consumers), build a structured pain inventory.
Data path: if working/demand.md exists, seed from it. If the user lacks primary data, dispatch the librarian via python scripts/dispatch_pain_research.py --slug <slug> — this generates a structured brief covering all value chain entities (not just customers) and writes it to working/value-chain-pain-audit.md.
For each entity:
Run python scripts/validate_dataset.py --slug <slug> --phase 2 before proceeding. Hard-fails: flat job map, all-7s pain syndrome, untagged claims, missing non-consumption.
Read references/dataset-schema.md section "enabling_conditions". Walk five axes: technology unlocks, cost curves, behavioral shifts, regulatory changes, supply-side availability. For each, populate 2-4 specific dated conditions.
Data path: if working/trajectory.md exists, inherit S-curve inflections and discontinuities. Else dispatch the librarian via python scripts/dispatch_pain_research.py --slug <slug> --mode enabling-conditions to do a 5-axis scan.
After population, run intersection analysis: identify 2-3-way intersections of conditions that create a window that didn't exist before (this is the load-bearing why-now for Phase 6). Classify each intersection by window timing (wide-open / open with competition / closing / closed) and Benedict Evans access-vs-use phase.
Seed step — capability → newly-possible jobs (generative, not just why-now). This is the change that makes Phase 3 feed generation, not only validation. For each intersection, generate 2-4 candidate jobs-to-be-done that become possible (not merely cheaper) now that these capabilities co-exist — jobs no incumbent serves because they could not exist before. Write them to the capability_seeds block (see schema). Each seed cites the intersection ID and the specific capability; it does not need to cite an incumbent — the citation is to the capability. These seeds feed Phase 5 Move 8 and the Thiel Secret reframe in Phase 4.6.
Run python scripts/validate_dataset.py --slug <slug> --phase 3 before proceeding. Hard-fails: single-axis why-now, untagged dates, missing intersection thesis, missing window timing, missing capability_seeds block (≥1 seed required).
6.0. Lane allocation (compute the generation budget first). Before generating signals, read references/lane-allocation.md and score the industry from the Phase 1-3 dataset: three structure reads (favouring the incumbent-anchored lane) + three frontier reads (favouring the first-principles lane). Map the two scores to a target incumbent:capability share via the decision table (70:30 / 50:50 / 30:70). Write the proposal + rationale to the lane_allocation block of disruption-dataset.yaml. This replaces the old fixed ≤50% incumbent cap — the allocation is the cap for this run. It is a recommended default; the human ratifies (or overrides) it at Gate 2, and the ≥1-per-lane floor always holds.
Read references/frameworks-cheatsheet.md. Run six frameworks in parallel against the populated dataset:
load_bearing_hypothesis, and it ships with a cheapest-test design. Output per Secret: handle + distillation + the bet it generates (load_bearing_hypothesis + validation_test + value_if_true). See references/frameworks-cheatsheet.md §4.6.Source balance (rebalance rule). Frameworks 4.1-4.4 are incumbent-anchored — they start from the industry as it is, which is what drives a shortlist to triangulate from existing players. Incumbent-anchored signals must stay within the `lane_allocation` incumbent share computed in 6.0 (not a fixed 50%). The remainder is the first-principles lane: Phase 3 capability_seeds and the Thiel Secrets (4.6). If a lane is under its budget, generate more of that lane before proceeding — do not pad the over-budget lane. The ≥1-per-lane floor always holds regardless of allocation.
Every framework signal gets a memorable handle alongside its structured ID. All signals land in framework-signals.yaml. Run python scripts/validate_dataset.py --slug <slug> --phase 4 — hard-fails: missing lane_allocation block, skipped frameworks without N/A rationale, untagged signals, AI-washed Aggregation, counter-positioning that incumbents could copy, 7 Powers labels without mechanism, Secrets not in grounded form, Secrets without a generated bet (load_bearing_hypothesis + validation_test), incumbent-anchored signals exceeding the allocated incumbent share, or either lane below its ≥1 floor.
Read references/gate-prompts.md Gate 2 template AND references/gate-html-output.md. Surface the proposed `lane_allocation` (6.0) for ratification — show the incumbent:capability mix, the structure/frontier scores, and the one-sentence rationale per references/lane-allocation.md. The human approves the mix or overrides it ("make it 50/50" / "lead incumbent"). On override, set final_* shares and rebalance signals (generate more of the underweighted lane — cheap) before Phase 5; the ≥1-per-lane floor holds either way. Render via html-output skill (archetype: slide-deck.html — McKinsey consulting-deck style). Required elements: value chain diagram repeated for orientation, per-framework signal cards each with memorable handle + plain-English explainer + structured ID, counter-positioning trap diagrams per incumbent, 7 Powers trajectory diagram per signal, pain heatmap, JTBD opportunity scatter, why-now timeline with intersection Venn. Plain-English explainers for every framework named (Aggregation Theory, Counter-positioning, etc.) per gate-html-output.md glossary. Save to gates/gate-2-<date>.html. Surface link + four-line decision prompt in chat. Flag any signal resting on [A]/[I]-tagged claims as load-bearing risk for Phase 6. python scripts/log_run.py --slug <slug> --event gate-2-approved.
8a. Authoring spec (ghost-deck discipline) — BEFORE drafting concepts. Invoke write-report in mode: spec to retrieve the authoring template for the document you're about to produce. Pick structural_framework: minto-pyramid (recommendation-driven brief — default). Fill in the template using subject context from the populated dataset: governing observation, MECE supporting axes (the structural moves you'll generate against), SCQA opening, evidence inventory per axis, plain-English handles for all concept_ids and framework signals. Write the filled-in spec to working/authoring-spec.md.
Then invoke write-report in mode: spec-judge with the filled-in spec + supporting_artifacts manifest pointing at disruption-dataset.yaml and the working/ folder + intent_summary describing the reader and the decision the brief informs. If the judge returns FAIL, revise the spec (you have the subject context — apply the suggested_fix_shape per fix-patterns.md) and re-invoke. Loop until PASS or max_spec_iterations: 3 ESCALATE. Most structural failures (broken governing observation, MECE-overlap, weak evidence inventory) are caught at this stage and save 60-70% of the iteration cost of post-hoc structure fixes.
8b. Generate concepts (two lanes). Read references/seven-structural-moves.md AND references/voice-constraints.md before drafting concepts. Generate one venture concept per move applied to framework-signals.yaml — in parallel across all eight moves. Moves 1-7 are the incumbent-anchored lane (start from an existing intermediary, aggregator, incumbent, or pain). Move 8 (Capability-first / new-to-the-world) is the first-principles lane — it starts from a single Phase 3 capability_seed and asks what job becomes possible (not just cheaper) that no incumbent serves because it could not exist before. Move 8 requires NO incumbent citation; its citation is to the capability seed. The Thiel Secrets (4.6) also emit concepts into the first-principles lane. A move that cannot be executed returns "not viable because [specific reason citing dataset]" — valid output, do NOT force.
Every concept ships as a bet. Each concept — both lanes — carries load_bearing_hypothesis (the single claim that, if false, kills it), validation_test (cheapest experiment + pass-threshold + fail-threshold + time-to-signal), and value_if_true (the prize). First-principles concepts (Move 8 + Secret-derived) also carry why_unknown (why this can't be desk-researched — it needs a forward test) and are tagged origin: capability-first. Incumbent-anchored concepts are origin: incumbent-first — their hypotheses are usually desk-researchable, but the bet fields are still required.
Each concept MUST carry a memorable 3-5 word handle (e.g., "Wirecutter-for-niche, AI-citation-first") that captures the core idea, alongside its concept_id (e.g., M4-OWN-EVALUATE). The handle is what surfaces in HTML gate reviews; the ID is for the dataset. Per references/edge-cases.md RULE-1.
Secret-derived concepts carry the secret restated as their load_bearing_hypothesis plus the validation_test that resolves it (per RULE-2 — Secrets are bets, never truth-gated). There is no endorsed_secrets_dependency tagging and no truth/conviction endorsement — both obsolete. The human never decides whether a Secret is true; at the filter step the human decides which bets are worth testing.
Run automated diversity check: concepts must differ across ≥2 segments, ≥2 entity types, ≥2 revenue models, ≥2 incumbents, the kept set must roughly honour the ratified lane_allocation mix, AND include ≥1 concept from each lane (≥1 origin: capability-first and ≥1 origin: incumbent-first — the floor that holds at any allocation). If diversity is thin or a lane floor is unmet, re-run underweighted moves with structural-difference constraint and generate from un-used capability seeds.
Filter to 3-5 concepts (human-led) using a test-worthiness judgment, not a truth or conviction judgment. For each bet the human weighs: prize if the hypothesis holds (value_if_true) × cost to test (validation_test) × time-to-signal. The question is "which of these tests are worth funding?" — answerable without possessing the secret. Conviction is the output of running the test, not an input to this gate. Strategic fit (founder bandwidth, capital, horizon) and non-obviousness still apply. The AI does not pre-filter; the human selects which experiments to run, narrowing to 3-5. Render the bets (handle + load-bearing hypothesis + test + prize) as a fundable-experiment portfolio via html-output (comparison-table.html) for the human review.
Enrich each kept concept with market-size hypothesis, wedge product, and year-1 success metric. Y1 metric must be bottoms-up per RULE-3 — if it implies outperforming a Phase 3 industry projection, include explicit bottoms-up justification (conversion deltas, competing-merchant counts, precedent operator timelines). Run python scripts/validate_dataset.py --slug <slug> --phase 5 — hard-fails: free-associated concepts, AI-washing in one-liners, missing memorable handle, missing enrichment fields, missing load_bearing_hypothesis or validation_test on any concept, either lane absent from the kept set (need ≥1 capability-first and ≥1 incumbent-first), goal-seeked Y1 metrics, fewer than 3 or more than 5 kept concepts.
Read references/stress-test-prompts.md. Run four stress tests per kept concept:
Then run the Bet-Validity Gate (Test 5) on every concept — validates the load_bearing_hypothesis is the real kill-switch and the validation_test is a cheap, fundable forward experiment with named pass/fail thresholds. A KILL here kills the concept regardless of the four-test matrix. This is decisive for origin: capability-first concepts, where the backward idea-maze runs thin and the forward test is the only honest validation.
Aggregate verdict per concept (SHIP / PROCEED / RECONSIDER / KILL). Concepts that die get appended to signals-log.md with rejection rationale — append-only.
Run reimagination-specific bar test via python scripts/bar_test.py --slug <slug> --concepts-path 08-knowledge/world-model/industries/<slug>/venture-concepts.md. The script writes the prompt for a fresh-context sub-agent; the orchestrator spawns the sub-agent and captures its JSON verdict. If bar test returns ITERATE, loop back to the specific Phase that failed — no "log and defer" path.
Working markdown drafts. Stress-test outputs, per-concept analyses, and prose drafts live in working/ as markdown. These are scaffolding artifacts — not reader-facing — and do NOT go through write-report. They exist for audit trail and for the next step to consume as input. Files in this phase: working/venture-concepts-draft.md, working/reimagination-brief-draft.md, per-concept stress-test reports, etc.
The reader-facing deliverable is a single combined HTML report — prose argument with charts and diagrams integrated inline at the points where they support the argument. This is the canonical output the founder-COO reads; the markdown drafts in working/ are the audit substrate.
Read references/gate-html-output.md for the consulting-deck visual conventions. Invoke the html-output skill to render <slug>-reimagination-report.html at the industry root (08-knowledge/world-model/industries/<slug>/<slug>-reimagination-report.html). Combine into a single HTML report:
Plain-English explainers for every framework name (Aggregation Theory, Counter-positioning, etc.) per gate-html-output.md glossary. Charts must support arguments, not decorate — every diagram earns its place by illustrating a specific load-bearing point in the prose.
Now invoke write-report against the HTML report — the reader-facing artifact. The markdown drafts in working/ are NOT reviewed; only the HTML is.
mode: review, pass: 1, structural_framework: minto-pyramid, strictness: standard on <slug>-reimagination-report.html. Supply the manifest (supporting_artifacts pointing at disruption-dataset.yaml + working/; load_bearing_elements declaring concept_ids [A-Z]+-[A-Z0-9]+, evidence_tags \[(V|C|A|I): [^\]]+\], phase_citations Phase [0-9]+(\.[0-9]+)?; intent_summary describing the reader and decision). If FAIL, read the violation report + fix-patterns.md, apply targeted Edit calls to the HTML directly (prose-level fixes) OR regenerate sections via html-output (structural fixes that need the renderer). Re-invoke with same audit_dir and previous_violations. Loop until PASS.mode: review, pass: 2 against the same HTML and same audit_dir (Pass 2 is gated on Pass 1 PASS). Same apply-fixes-yourself loop. Expected pattern: code-in-prose violations on D5 readability — apply the canonical handle-on-first-mention fix per fix-patterns.md.Optional humanizer pass: AFTER write-report clears both passes, optionally run the humanizer skill on the HTML's prose sections to strip residual AI tells. Skip for disruption-dataset.yaml (machine-readable) and working/ drafts (not reader-facing). Recommended when the drafting model is Opus or when the user has flagged prose drift in prior runs.
The HTML report IS the Gate 3 review artifact. No separate render needed. Save a copy of the cleared HTML to gates/gate-3-<date>.html for audit trail. Surface link to the canonical <slug>-reimagination-report.html + four-line decision prompt (Why we're asking / Default / Tradeoff / Or) in chat. User reviews the HTML report and approves / iterates / rejects. If iterate: caller applies fixes to the HTML and re-runs quality review; if approve: log gate-3-approved. python scripts/log_run.py --slug <slug> --event gate-3-approved.
Ask the four-routing question: any feedback for learnings (behavioral preferences) / edge-cases (industry-specific exceptions) / rules (never again) / approved-examples (save as reference output)? Save outputs accordingly.
If invoked with --update <industry-slug>, skip Phases 1-3 (inherit existing dataset) and re-run Phases 4-6. Use when enabling conditions have shifted or new framework signals warrant re-ideation.
mode: spec + mode: spec-judge at Phase 5 start as ghost-deck discipline before drafting (the spec is a private scaffold — markdown — not reader-facing); (2) mode: review pass: 1 and pass: 2 at Phase 7 against the HTML deliverable (<slug>-reimagination-report.html). Markdown drafts in working/ are NOT reviewed — they're audit substrate. Use structural_framework: minto-pyramid. See .claude/skills/write-report/references/calling-contract.md for the manifest schema.working/ for audit only.bar_test.py spawns a fresh sub-agent with concepts but NOT the drafting context; if first-pass PASS, re-run with a different sub-agent role prompt to verify.signals-log.md rejected concepts and either skips them OR explicitly justifies re-proposal based on changed conditions.venture-concepts.md or reimagination-brief.md reads like a McKinsey deck — "leverages", "fundamentally reshapes", "robust", "meaningful value", "stakeholders". Cause: strategy work on Opus drifts to consultantese; the source material (Stratechery, McKinsey, Helmer) is already jargon-laden, compounding the drift. Fix: Phase 5 drafting reads references/voice-constraints.md first; bar test sub-agent applies the specificity test ("could this sentence appear in any strategy deck about any industry?"); optionally run the humanizer skill before Gate 3.edge-cases.md — every gate review is HTML via html-output with memorable handle as card title + one-sentence distillation + framework explainer on first mention. See references/gate-html-output.md.edge-cases.md — the human is never asked whether a Secret is true. Each Secret emits a bet (load-bearing hypothesis + cheapest test); the gate asks "which experiments are worth funding?" Conviction is the test's output, not its input.edge-cases.md — Y1 metrics implying outperformance of Phase 3 projections require bottoms-up justification (conversion deltas, competing-merchant counts, precedent operators).references/gate-html-output.md. Markdown gate reviews are forbidden — strategy work needs visual layout.origin: capability-first concept.[A] pain points — load-bearing pain requires V or C provenance via librarian research.lane_allocation incumbent share (computed at Phase 4 start, ratified at Gate 2), and never ship a shortlist without ≥1 concept from each lane — the ≥1-per-lane floor holds at any allocation. See references/lane-allocation.md.load_bearing_hypothesis + validation_test + value_if_true on every concept, both lanes.write-report clearing Pass 1 (structure) and Pass 2 (readability) on the HTML deliverable (<slug>-reimagination-report.html) at standard strictness — see Phase 7 + Phase 11.write-report; markdown drafts in working/ do NOT. The disruption-dataset.yaml and signals-log.md are machine artifacts and never reviewed.signals-log.md — append-only, including rejected concepts with rationale.references/voice-constraints.md blocklist.references/gate-html-output.md.references/edge-cases.md RULE-1.references/edge-cases.md RULE-2.references/edge-cases.md RULE-3.encoding='utf-8'.../_shared/pyramid-scqa.md.../_shared/2026-terminology.md.None yet — v1.
<!-- Built with Agent Engineer Master — get your own production-ready skill: www.agentengineermaster.com/skill-engineer -->
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.