skilldrop-cli 1.3.0 → 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -10
- package/bin/skilldrop.js +15 -10
- package/catalogue.json +8 -4
- package/contracts/catalogue.schema.json +2 -1
- package/model-routing.json +70 -78
- package/package.json +1 -1
- package/packs/ai-engineering/skills/agent-adoption-stage/SKILL.md +0 -1
- package/packs/ai-engineering/skills/agent-adoption-stage/manifest.json +3 -4
- package/packs/ai-engineering/skills/ai-adoption-rollout/SKILL.md +0 -1
- package/packs/ai-engineering/skills/ai-adoption-rollout/manifest.json +3 -4
- package/packs/ai-engineering/skills/ai-readiness-assessment/SKILL.md +0 -1
- package/packs/ai-engineering/skills/ai-readiness-assessment/manifest.json +1 -2
- package/packs/ai-engineering/skills/ai-use-case-triage/manifest.json +3 -3
- package/packs/ai-engineering/skills/judge-audit/SKILL.md +29 -13
- package/packs/ai-engineering/skills/judge-audit/evals/evals.json +30 -0
- package/packs/ai-engineering/skills/judge-audit/evals/files/12/judge_runs.csv +241 -0
- package/packs/ai-engineering/skills/judge-audit/evals/files/12/rosa_labels.csv +33 -0
- package/packs/ai-engineering/skills/judge-audit/evals/files/13/moderation_eval.csv +601 -0
- package/packs/ai-engineering/skills/judge-audit/manifest.json +2 -3
- package/packs/ai-engineering/skills/llm-eval-harness/SKILL.md +1 -2
- package/packs/ai-engineering/skills/llm-eval-harness/manifest.json +3 -3
- package/packs/ai-engineering/skills/mcp-pairing/manifest.json +1 -1
- package/packs/ai-engineering/skills/mcp-pairing/reference.md +4 -3
- package/packs/ai-engineering/skills/subagent-design/SKILL.md +1 -0
- package/packs/ai-engineering/skills/subagent-design/examples/help-center-localization.md +146 -0
- package/packs/ai-engineering/skills/subagent-design/manifest.json +2 -2
- package/packs/api-builder/skills/prompt-caching-advisor/SKILL.md +4 -0
- package/packs/api-builder/skills/prompt-caching-advisor/examples/support-bot-block-order.md +120 -0
- package/packs/api-builder/skills/prompt-caching-advisor/manifest.json +2 -2
- package/packs/api-builder/skills/tool-use-schema-writer/manifest.json +2 -2
- package/packs/career/skills/application-form-answers/manifest.json +3 -3
- package/packs/career/skills/cover-letter/manifest.json +3 -3
- package/packs/career/skills/resume-tailor/manifest.json +3 -3
- package/packs/converters/skills/md-to-docx/manifest.json +3 -3
- package/packs/core/loops/ship-a-draft/evals/evals.json +28 -0
- package/packs/core/loops/ship-a-draft/evals/files/ship-a-draft-adr-from-thread/slack-thread.txt +47 -0
- package/packs/core/loops/ship-a-draft/evals/files/ship-a-draft-announcement-unsettled/ticket-PRD-412.md +44 -0
- package/packs/core/skills/output-hygiene/manifest.json +3 -3
- package/packs/data-analytics/loops/measure/evals/evals.json +30 -0
- package/packs/data-analytics/loops/measure/evals/files/measure-active-customers-dispute/schema.md +43 -0
- package/packs/data-analytics/loops/measure/evals/files/measure-active-customers-dispute/sql/finance_active_customers.sql +7 -0
- package/packs/data-analytics/loops/measure/evals/files/measure-active-customers-dispute/sql/growth_active_customers.sql +9 -0
- package/packs/data-analytics/loops/measure/evals/files/measure-active-customers-dispute/thread.md +30 -0
- package/packs/data-analytics/loops/measure/evals/files/measure-retention-dashboard/request.md +34 -0
- package/packs/data-analytics/loops/measure/evals/files/measure-retention-dashboard/schema.md +58 -0
- package/packs/data-analytics/loops/measure/evals/files/measure-retention-dashboard/sql/active_subscribers.sql +17 -0
- package/packs/data-analytics/loops/measure/evals/files/measure-retention-dashboard/sql/net_revenue_by_plan.sql +15 -0
- package/packs/data-analytics/loops/measure/evals/files/measure-retention-dashboard/sql/weekly_churn_rate.sql +34 -0
- package/packs/data-analytics/skills/dashboard-spec/SKILL.md +0 -1
- package/packs/data-analytics/skills/dashboard-spec/manifest.json +1 -2
- package/packs/design/skills/slide-outliner/manifest.json +2 -2
- package/packs/dev-team/loops/build/evals/evals.json +28 -0
- package/packs/dev-team/loops/build/evals/files/build-promo-codes/.github/workflows/ci.yml.fixture +19 -0
- package/packs/dev-team/loops/build/evals/files/build-promo-codes/cartcalc/__init__.py +4 -0
- package/packs/dev-team/loops/build/evals/files/build-promo-codes/cartcalc/pricing.py +47 -0
- package/packs/dev-team/loops/build/evals/files/build-promo-codes/pyproject.toml.fixture +9 -0
- package/packs/dev-team/loops/build/evals/files/build-promo-codes/story.md +61 -0
- package/packs/dev-team/loops/build/evals/files/build-promo-codes/tests/__init__.py +0 -0
- package/packs/dev-team/loops/build/evals/files/build-promo-codes/tests/test_pricing.py +49 -0
- package/packs/dev-team/loops/build/evals/files/build-rate-limiter-not-ready/.github/workflows/ci.yml.fixture +19 -0
- package/packs/dev-team/loops/build/evals/files/build-rate-limiter-not-ready/bug-report.md +25 -0
- package/packs/dev-team/loops/build/evals/files/build-rate-limiter-not-ready/pr-description.md +42 -0
- package/packs/dev-team/loops/build/evals/files/build-rate-limiter-not-ready/pyproject.toml.fixture +9 -0
- package/packs/dev-team/loops/build/evals/files/build-rate-limiter-not-ready/ratelimit/__init__.py +4 -0
- package/packs/dev-team/loops/build/evals/files/build-rate-limiter-not-ready/ratelimit/bucket.py +49 -0
- package/packs/dev-team/loops/build/evals/files/build-rate-limiter-not-ready/tests/__init__.py +0 -0
- package/packs/dev-team/loops/build/evals/files/build-rate-limiter-not-ready/tests/test_bucket.py +63 -0
- package/packs/dev-team/loops/modernize/evals/evals.json +30 -0
- package/packs/dev-team/loops/modernize/evals/files/modernize-late-fee-batch-port/.github/workflows/ci.yml.fixture +11 -0
- package/packs/dev-team/loops/modernize/evals/files/modernize-late-fee-batch-port/README.md +17 -0
- package/packs/dev-team/loops/modernize/evals/files/modernize-late-fee-batch-port/docs/adr/0004-late-fee-calculation.md +25 -0
- package/packs/dev-team/loops/modernize/evals/files/modernize-late-fee-batch-port/legacy/feecalc.py +74 -0
- package/packs/dev-team/loops/modernize/evals/files/modernize-late-fee-batch-port/samples/accounts_2026-10.txt +10 -0
- package/packs/dev-team/loops/modernize/evals/files/modernize-late-fee-batch-port/samples/accounts_edge.txt +11 -0
- package/packs/dev-team/loops/modernize/evals/files/modernize-late-fee-batch-port/tests/test_feecalc_smoke.py +21 -0
- package/packs/dev-team/loops/modernize/evals/files/modernize-late-fee-rewrite-not-equivalent/.github/workflows/ci.yml.fixture +11 -0
- package/packs/dev-team/loops/modernize/evals/files/modernize-late-fee-rewrite-not-equivalent/PR-412.md +24 -0
- package/packs/dev-team/loops/modernize/evals/files/modernize-late-fee-rewrite-not-equivalent/README.md +17 -0
- package/packs/dev-team/loops/modernize/evals/files/modernize-late-fee-rewrite-not-equivalent/docs/adr/0004-late-fee-calculation.md +25 -0
- package/packs/dev-team/loops/modernize/evals/files/modernize-late-fee-rewrite-not-equivalent/hartwell_fees/__init__.py +1 -0
- package/packs/dev-team/loops/modernize/evals/files/modernize-late-fee-rewrite-not-equivalent/hartwell_fees/cli.py +33 -0
- package/packs/dev-team/loops/modernize/evals/files/modernize-late-fee-rewrite-not-equivalent/hartwell_fees/extract.py +33 -0
- package/packs/dev-team/loops/modernize/evals/files/modernize-late-fee-rewrite-not-equivalent/hartwell_fees/rules.py +39 -0
- package/packs/dev-team/loops/modernize/evals/files/modernize-late-fee-rewrite-not-equivalent/legacy/feecalc.py +74 -0
- package/packs/dev-team/loops/modernize/evals/files/modernize-late-fee-rewrite-not-equivalent/samples/accounts_2026-10.txt +10 -0
- package/packs/dev-team/loops/modernize/evals/files/modernize-late-fee-rewrite-not-equivalent/samples/accounts_edge.txt +11 -0
- package/packs/dev-team/loops/modernize/evals/files/modernize-late-fee-rewrite-not-equivalent/tests/test_feecalc_smoke.py +21 -0
- package/packs/dev-team/loops/release/LOOP.md +4 -4
- package/packs/dev-team/loops/release/evals/eval_queries.json +10 -0
- package/packs/dev-team/loops/release/evals/evals.json +34 -0
- package/packs/dev-team/loops/release/evals/files/release-irreversible-tomorrow/0061_switch_to_haldrin_tokens.sql +22 -0
- package/packs/dev-team/loops/release/evals/files/release-irreversible-tomorrow/eng-notes.md +40 -0
- package/packs/dev-team/loops/release/evals/files/release-irreversible-tomorrow/merged-prs.md +13 -0
- package/packs/dev-team/loops/release/evals/files/release-saved-searches/merged-prs.md +13 -0
- package/packs/dev-team/loops/release/evals/files/release-saved-searches/readiness-evidence.md +27 -0
- package/packs/dev-team/loops/release/evals/files/release-saved-searches/traffic-baseline.md +23 -0
- package/packs/dev-team/loops/release/loop.json +1 -1
- package/packs/dev-team/skills/bug-triage/SKILL.md +1 -0
- package/packs/dev-team/skills/bug-triage/examples/export-row-limit-escalation.md +126 -0
- package/packs/dev-team/skills/bug-triage/manifest.json +2 -2
- package/packs/dev-team/skills/feature-implement-loop/manifest.json +2 -2
- package/packs/dev-team/skills/pr-description-writer/manifest.json +3 -3
- package/packs/dev-team/skills/pre-merge-review/manifest.json +2 -2
- package/packs/dev-team/skills/release-notes/manifest.json +2 -2
- package/packs/dev-team/skills/test-plan-generator/manifest.json +2 -2
- package/packs/experience-design/skills/service-blueprint/manifest.json +3 -3
- package/packs/experience-design/skills/ux-writing/manifest.json +3 -3
- package/packs/grc/loops/comply/evals/evals.json +29 -0
- package/packs/grc/loops/comply/evals/files/comply-chat-vendor-launch/vendor-brief.md +72 -0
- package/packs/grc/loops/comply/evals/files/comply-loyalty-app-unowned-risks/launch-note.md +31 -0
- package/packs/grc/loops/comply/evals/files/comply-loyalty-app-unowned-risks/risk-register.csv +6 -0
- package/packs/infra-as-code/skills/terraform-module/manifest.json +3 -3
- package/packs/product-manager/skills/prd-draft/SKILL.md +1 -0
- package/packs/product-manager/skills/prd-draft/examples/approver-delay-not-slack.md +142 -0
- package/packs/product-manager/skills/prd-draft/manifest.json +2 -2
- package/packs/product-manager/skills/user-journey-map/manifest.json +2 -2
- package/packs/research/loops/research/evals/evals.json +28 -0
- package/packs/research/loops/research/evals/files/research-ticket-spike-confounded/sources/t1-ticket-volume.md +15 -0
- package/packs/research/loops/research/evals/files/research-ticket-spike-confounded/sources/t2-release-notes-4-2.md +11 -0
- package/packs/research/loops/research/evals/files/research-ticket-spike-confounded/sources/t3-billing-migration.md +12 -0
- package/packs/research/loops/research/evals/files/research-ticket-spike-confounded/sources/t4-agent-poll.md +11 -0
- package/packs/research/loops/research/evals/files/research-ticket-spike-confounded/sources/t5-app-store-reviews.md +12 -0
- package/packs/research/loops/research/evals/files/research-trial-conversion-drop/sources/s1-analytics-export.md +29 -0
- package/packs/research/loops/research/evals/files/research-trial-conversion-drop/sources/s2-email-delivery-report.md +25 -0
- package/packs/research/loops/research/evals/files/research-trial-conversion-drop/sources/s3-pricing-changelog.md +9 -0
- package/packs/research/loops/research/evals/files/research-trial-conversion-drop/sources/s4-trial-interview-notes.md +21 -0
- package/packs/research/loops/research/evals/files/research-trial-conversion-drop/sources/s5-competitor-note.md +9 -0
- package/packs/research/loops/research/evals/files/research-trial-conversion-drop/sources/s6-weekly-growth-recap.md +7 -0
- package/packs/research/skills/research-plan/manifest.json +3 -3
- package/packs/research/skills/source-synthesis/manifest.json +3 -3
- package/packs/skill-engineering/skills/skill-author/manifest.json +3 -3
- package/packs/solution-architect/loops/design/evals/evals.json +28 -0
- package/packs/solution-architect/loops/design/evals/files/design-bulk-export/adr/0001-postgres-system-of-record.md +23 -0
- package/packs/solution-architect/loops/design/evals/files/design-bulk-export/adr/0002-background-work-via-job-queue.md +23 -0
- package/packs/solution-architect/loops/design/evals/files/design-bulk-export/adr/0003-tenant-isolation-row-level.md +25 -0
- package/packs/solution-architect/loops/design/evals/files/design-bulk-export/prd-bulk-export.md +50 -0
- package/packs/solution-architect/loops/design/evals/files/design-draft-prd-webhooks/adr/0002-background-work-via-job-queue.md +23 -0
- package/packs/solution-architect/loops/design/evals/files/design-draft-prd-webhooks/adr/0004-new-stateful-infra-needs-platform-signoff.md +22 -0
- package/packs/solution-architect/loops/design/evals/files/design-draft-prd-webhooks/prd-partner-webhooks.md +36 -0
- package/packs/solution-architect/skills/api-contract-draft/manifest.json +3 -3
- package/packs/solution-architect/skills/architecture-diagrams/manifest.json +3 -3
- package/packs/solution-architect/skills/design-doc/manifest.json +2 -2
- package/packs/solution-architect/skills/figma-diagrams/manifest.json +3 -3
- package/packs/sre-oncall/skills/cloud-cost-review/SKILL.md +0 -1
- package/packs/sre-oncall/skills/cloud-cost-review/manifest.json +1 -2
- package/packs/sre-oncall/skills/delivery-metrics-report/SKILL.md +0 -1
- package/packs/sre-oncall/skills/delivery-metrics-report/manifest.json +1 -2
- package/packs/sre-oncall/skills/incident-comms/manifest.json +2 -2
- package/packs/sre-oncall/skills/postmortem-generator/manifest.json +2 -2
- package/packs/stakeholder-comms/skills/decision-log/manifest.json +2 -2
- package/packs/trackers/skills/team-status-report/manifest.json +3 -3
- package/profiles.json +1 -1
- package/packs/ai-engineering/loops/adopt/LOOP.md +0 -120
- package/packs/ai-engineering/loops/adopt/evals/eval_queries.json +0 -10
- package/packs/ai-engineering/loops/adopt/evals/evals.json +0 -69
- package/packs/ai-engineering/loops/adopt/evals/files/adopt-first-wave-to-sign-off/ai-ideas.md +0 -15
- package/packs/ai-engineering/loops/adopt/evals/files/adopt-first-wave-to-sign-off/org-context.md +0 -27
- package/packs/ai-engineering/loops/adopt/evals/files/adopt-first-wave-to-sign-off/staff-survey.csv +0 -11
- package/packs/ai-engineering/loops/adopt/evals/files/adopt-sponsor-slice-blocked-by-client-data/ai-ideas.md +0 -13
- package/packs/ai-engineering/loops/adopt/evals/files/adopt-sponsor-slice-blocked-by-client-data/firm-context.md +0 -23
- package/packs/ai-engineering/loops/adopt/loop.json +0 -53
- package/packs/ai-engineering/skills/ai-usage-report/SKILL.md +0 -111
- package/packs/ai-engineering/skills/ai-usage-report/evals/eval_queries.json +0 -30
- package/packs/ai-engineering/skills/ai-usage-report/evals/evals.json +0 -46
- package/packs/ai-engineering/skills/ai-usage-report/evals/files/1/northwind-ai-events.csv +0 -4213
- package/packs/ai-engineering/skills/ai-usage-report/evals/files/2/draftwell-events.csv +0 -249
- package/packs/ai-engineering/skills/ai-usage-report/evals/files/2/export-note.md +0 -9
- package/packs/ai-engineering/skills/ai-usage-report/evals/files/2/published-assets.csv +0 -44
- package/packs/ai-engineering/skills/ai-usage-report/evals/files/2/team-roster.md +0 -10
- package/packs/ai-engineering/skills/ai-usage-report/examples/weekly-engineering-team.md +0 -133
- package/packs/ai-engineering/skills/ai-usage-report/manifest.json +0 -12
- package/packs/ai-engineering/skills/ai-usage-report/scripts/build_report.py +0 -453
- package/packs/ai-engineering/skills/ai-usage-report/templates/report-per-user.md +0 -42
- package/packs/ai-engineering/skills/ai-usage-report/templates/report-team-rollup.md +0 -49
- package/packs/ai-engineering/skills/ai-usage-report/templates/usage-event-schema.md +0 -76
- package/packs/career/loops/apply/LOOP.md +0 -97
- package/packs/career/loops/apply/evals/eval_queries.json +0 -9
- package/packs/career/loops/apply/evals/evals.json +0 -27
- package/packs/career/loops/apply/loop.json +0 -52
- package/packs/product-manager/loops/discover/LOOP.md +0 -82
- package/packs/product-manager/loops/discover/evals/eval_queries.json +0 -30
- package/packs/product-manager/loops/discover/evals/evals.json +0 -26
- package/packs/product-manager/loops/discover/loop.json +0 -41
- package/packs/product-manager/skills/lean-canvas/SKILL.md +0 -162
- package/packs/product-manager/skills/lean-canvas/evals/eval_queries.json +0 -42
- package/packs/product-manager/skills/lean-canvas/evals/evals.json +0 -82
- package/packs/product-manager/skills/lean-canvas/evals/files/1/pawpass-notes.md +0 -54
- package/packs/product-manager/skills/lean-canvas/evals/files/3/lunchloop-pitch.md +0 -30
- package/packs/product-manager/skills/lean-canvas/evals/files/4/clubkit-notes.md +0 -44
- package/packs/product-manager/skills/lean-canvas/evals/files/5/cost-model.csv +0 -5
- package/packs/product-manager/skills/lean-canvas/evals/files/5/proposal.md +0 -40
- package/packs/product-manager/skills/lean-canvas/evals/files/5/stakeholder-emails.txt +0 -18
- package/packs/product-manager/skills/lean-canvas/examples/bike-repair.md +0 -72
- package/packs/product-manager/skills/lean-canvas/manifest.json +0 -34
- package/packs/product-manager/skills/lean-canvas/reference.md +0 -102
- package/packs/product-manager/skills/lean-canvas/scripts/unit_economics.py +0 -211
- package/packs/sre-oncall/loops/operate/LOOP.md +0 -84
- package/packs/sre-oncall/loops/operate/evals/eval_queries.json +0 -30
- package/packs/sre-oncall/loops/operate/evals/evals.json +0 -25
- package/packs/sre-oncall/loops/operate/loop.json +0 -41
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"skill_name": "lean-canvas",
|
|
3
|
-
"evals": [
|
|
4
|
-
{
|
|
5
|
-
"id": 1,
|
|
6
|
-
"prompt": "Can you do a lean canvas for my startup? My notes are in pawpass-notes.md. Accelerator application is due Friday and I want to know what the weak spots are before they find them.",
|
|
7
|
-
"files": [
|
|
8
|
-
"evals/files/1/pawpass-notes.md"
|
|
9
|
-
],
|
|
10
|
-
"assertions": [
|
|
11
|
-
"The reply opens with the single riskiest assumption and a test for it, before the canvas, and the riskiest assumption is about the problem, the customer or the channel rather than the no-show predictor's accuracy",
|
|
12
|
-
"Says the AI no-show predictor is a feature, not an unfair advantage, and the unfair-advantage box reads none yet (or equivalent) rather than a substitute moat",
|
|
13
|
-
"Flags that LinkedIn ads and PetTech Expo don't reach solo mobile groomers, who the notes say aren't big on social media and that the expo draws chains and franchise buyers",
|
|
14
|
-
"Computes CAC as $1,200 / 3 = $400, contribution as $29 - $6 = $23 a month, CAC payback of about 17.4 months, and lifetime margin of $23 x 9 = $207, and says payback is longer than the 9-month lifetime so each customer loses money",
|
|
15
|
-
"Downgrades the six salon-groomer interviews as evidence from the wrong segment (salon, not mobile) and stated intent rather than behaviour",
|
|
16
|
-
"Says plainly that the idea should change before building (channel and/or economics), not only lists risks",
|
|
17
|
-
"Each top test names what to do, a sample, a pass/fail threshold set in advance, a cost and a time; no test is 'validate the market' or 'run a survey'",
|
|
18
|
-
"Does not invent competitors, market sizes, churn figures, channels presented as facts, or prices not in the notes; every canvas entry is tagged evidence (with source) or assumption"
|
|
19
|
-
]
|
|
20
|
-
},
|
|
21
|
-
{
|
|
22
|
-
"id": 2,
|
|
23
|
-
"prompt": "Quick one. I'm a product lead at Brackenridge Health (regional hospital group). Idea: an internal app where ward nurses swap shifts with each other directly instead of emailing the rostering office. Rostering says they handle about 150 swap emails a week. Every swap still needs the ward manager to sign off. Nurses would hear about it from the staff intranet news page and a poster in the canteen. Our unfair advantage is we own the rostering data, so no vendor can integrate as cleanly. No budget numbers yet. Lean canvas plus what I should test first? Keep it short.",
|
|
24
|
-
"assertions": [
|
|
25
|
-
"Opens with the riskiest assumption and its test, and the riskiest is about adoption by nurses or ward-manager sign-off, not whether the app can be built",
|
|
26
|
-
"Notes the 150 emails a week measures the rostering office's workload, not that nurses find swapping painful or will change how they swap",
|
|
27
|
-
"Treats ward managers as a second customer whose sign-off behaviour can block the idea",
|
|
28
|
-
"Accepts ownership of rostering data as a real advantage for an internal product over vendors, while saying it does not show nurses will adopt the app",
|
|
29
|
-
"Reads revenue streams for an internal product as the budget or saving that funds it, and does not invent a price, budget or cost figure; unit economics are skipped and the missing numbers are listed to confirm",
|
|
30
|
-
"The test has a sample, a pass/fail line set before it runs, a cost and a time (for example a manual or concierge swap run on one ward with a stated count)",
|
|
31
|
-
"Stays short as asked: no more than about 350 words, with the canvas as one line per box"
|
|
32
|
-
]
|
|
33
|
-
},
|
|
34
|
-
{
|
|
35
|
-
"id": 3,
|
|
36
|
-
"prompt": "Here are my pitch notes for LunchLoop (lunchloop-pitch.md). Is this worth quitting my job for? What should I test before building the app?",
|
|
37
|
-
"files": [
|
|
38
|
-
"evals/files/3/lunchloop-pitch.md"
|
|
39
|
-
],
|
|
40
|
-
"assertions": [
|
|
41
|
-
"Answers the quit-and-build question in the first lines, and says the idea should change (or be tested) before building the full app",
|
|
42
|
-
"Computes per-customer monthly revenue as 8 x 15% x $12 = $14.40, delivery cost as 8 x $1.10 = $8.80, contribution of $5.60 a month, and break-even of about 1,608 active customers from $9,000 fixed costs",
|
|
43
|
-
"Flags that break-even (about 1,608 customers) exceeds the founder's own estimate of 1,200 workers who would use it, so the model cannot cover the salary in this town at these numbers",
|
|
44
|
-
"Computes CAC as $500 / 20 = $25 and lifetime margin as $5.60 x 6 = $33.60, and does not claim CAC payback is longer than lifetime (payback is about 4.5 months, inside 6)",
|
|
45
|
-
"Notes the 8 lunches a month and 6-month stay come only from customers who stuck with it, in a 3-month pilot, so lifetime and order frequency are overstated or unproven",
|
|
46
|
-
"Says 'everyone who eats lunch at work' is not an early adopter and names the need for a narrower one",
|
|
47
|
-
"Moves 'our food is better than any chain' out of unfair advantage (it is a value proposition) and leaves unfair advantage as none yet or a candidate grounded in the notes",
|
|
48
|
-
"Does not invent food-safety rules, competitor names, delivery partners or numbers not in the notes; anything assumed is tagged as an assumption"
|
|
49
|
-
]
|
|
50
|
-
},
|
|
51
|
-
{
|
|
52
|
-
"id": 4,
|
|
53
|
-
"held_out": "2026-10-20",
|
|
54
|
-
"prompt": "ok so I've been sitting on this idea for months and I think it's time. my notes are in clubkit-notes.md (sorry they're a mess). can you do the lean canvas thing on it and tell me straight — is this worth quitting my job for? be honest, my mates all say it's a great idea",
|
|
55
|
-
"assertions": [
|
|
56
|
-
"Answers the actual question directly and early: gives a plain verdict on whether to quit the job now (a good answer says not yet / not on this evidence, and names what would have to be true first) rather than burying it under the canvas.",
|
|
57
|
-
"Flags that the survey is weak evidence of willingness to pay because the club is the payer but only 4 of the 31 respondents were committee members, and only 1 of those 4 said yes to £15/month; it does not present '23 of 31 (74%) would use it' or '9 said yes' as demand from buyers.",
|
|
58
|
-
"Computes unit economics from the notes correctly: variable cost £3.80 per club per month (£1.20 hosting + £2.30 SMS + £0.30 payment fee), contribution £11.20, CAC £150 (£300 / 2 paid clubs), and with the guessed 5% monthly churn a lifetime value of about £224, giving an LTV:CAC of roughly 1.5 and a payback of about 13 months; it notes CAC rests on just 2 conversions.",
|
|
59
|
-
"Catches that the '400 clubs x £15 = £6,000/month' quit plan confuses revenue with take-home: at 400 clubs contribution is £4,480/month, and at 5% churn replacing about 20 clubs a month at £150 CAC costs about £3,000/month, leaving roughly £1,480 — well short of the £3,500 needed.",
|
|
60
|
-
"Tags the 5% churn figure as an assumption (the founder says it is a guess) and raises the June-August shutdown as a specific risk to a monthly subscription (seasonal cancellations), ranking churn/seasonality among the riskiest assumptions.",
|
|
61
|
-
"Ranks the riskiest assumptions explicitly (e.g. club committees will pay £15/month; clubs will switch from or add to the free TeamHuddle app; churn), and for the top ones proposes a cheap test with a pass/fail threshold stated before the test runs (e.g. a set number of committee members pre-paying or committing out of a stated number approached).",
|
|
62
|
-
"Fills the canvas only from the notes: entries such as the Ferncross Rovers secretary experience, the 17 'chasing subs' mentions, the ads test and the ~1,200 Westmarch County FA clubs are tagged as evidence with their source, while price, churn and the 'clubs will pay for subs' belief are tagged as assumptions.",
|
|
63
|
-
"Invents nothing not in the notes: no made-up competitors beyond TeamHuddle, no market-size, conversion or churn benchmarks presented as fact, no extra survey figures, and any missing box (e.g. unfair advantage or channels beyond Facebook ads) is marked as a gap or open question rather than filled with invented content."
|
|
64
|
-
]
|
|
65
|
-
},
|
|
66
|
-
{
|
|
67
|
-
"id": 5,
|
|
68
|
-
"held_out": "2026-10-20",
|
|
69
|
-
"prompt": "We're taking ClaimLens to the investment committee on Thursday. The proposal, cost model and the stakeholder emails are in this folder (proposal.md, cost-model.csv, stakeholder-emails.txt). The committee chair has told us she wants to see that we've stress-tested the idea, not just pitched it. Can you build a lean canvas for it and set out our riskiest assumptions and how we'd test them? Keep it to something we could put in an appendix.",
|
|
70
|
-
"assertions": [
|
|
71
|
-
"Catches that the proposal's break-even of 163 seats omits the product support cost in cost-model.csv: running costs are £6,500 + £2,500/month (0.5 FTE, £30,000/year) = £9,000/month, so break-even at £40/seat is 225 seats, and it states this correction plainly rather than repeating the 163 figure.",
|
|
72
|
-
"Points out that 225 seats exceeds the total potential seats across all three departments (120 + 60 + 35 = 215, which would bring in £8,600/month, about £400 short), so even full adoption does not cover running costs and the £180,000 build is never paid back at the current chargeback price.",
|
|
73
|
-
"Reads the stakeholder emails and corrects the 'confirmed interest' label: Underwriting only agreed to see a demo, and Complaints said its budget is locked until April and nothing can be charged this financial year; it treats neither as committed demand.",
|
|
74
|
-
"Flags the pilot usage drop (weekly active users fell from 22 of 25 in week 1 to 11 of 25 in week 6) as evidence against sustained adoption, and treats the 18-minutes-saved figure as weak evidence because it is self-reported by only 3 handlers.",
|
|
75
|
-
"Ranks the riskiest assumptions, with the economics/price-versus-cost gap and sustained handler usage near the top, and for each top assumption gives a cheap test with a pass/fail line set in advance (e.g. a signed chargeback commitment from the Claims head for a stated number of seats, or a measured time study with a stated minutes-saved threshold) — none of which requires spending the £180,000 first.",
|
|
76
|
-
"Makes a plain call that the proposal should change before the committee approves the build (e.g. reprice, cut run cost, re-scope, or ask for a smaller staged amount gated on the tests) rather than presenting the current ask as sound.",
|
|
77
|
-
"Fits the request for an appendix: a compact canvas plus a ranked assumptions/test table, with each canvas entry tagged evidence (citing proposal.md, cost-model.csv or stakeholder-emails.txt) or assumption, not a long essay.",
|
|
78
|
-
"Invents nothing not in the files: no new costs, salaries, seat counts, departments, usage figures, people or vendor names, and no outside benchmarks presented as fact; anything the files do not cover is marked as unknown."
|
|
79
|
-
]
|
|
80
|
-
}
|
|
81
|
-
]
|
|
82
|
-
}
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
# PawPass — my notes (Dana Okafor, co-founder)
|
|
2
|
-
|
|
3
|
-
Okay, braindump before the accelerator application is due.
|
|
4
|
-
|
|
5
|
-
## The idea
|
|
6
|
-
|
|
7
|
-
PawPass is an app for **mobile dog groomers** — the ones who work out of a converted van
|
|
8
|
-
and drive to the customer's house. It sends SMS reminders, takes a card deposit when the
|
|
9
|
-
appointment is booked, and rebooks the slot from a waitlist if someone cancels.
|
|
10
|
-
|
|
11
|
-
## Why
|
|
12
|
-
|
|
13
|
-
No-shows are killing groomers. My sister runs a grooming salon in town and I spent a
|
|
14
|
-
Saturday there and talked to the 6 groomers who work for her. All 6 said no-shows are
|
|
15
|
-
"really annoying" and 4 of them said they'd "definitely use an app for it". A report I read
|
|
16
|
-
from the Pet Care Trade Association says no-shows cost grooming businesses about 10% of
|
|
17
|
-
revenue.
|
|
18
|
-
|
|
19
|
-
Mobile groomers have it worse, I think, because they've already driven there when the
|
|
20
|
-
customer isn't home.
|
|
21
|
-
|
|
22
|
-
## Who
|
|
23
|
-
|
|
24
|
-
Early adopters: solo mobile groomers, one van, doing 4–6 dogs a day. They live on their
|
|
25
|
-
phones between jobs. Most of them are not big on social media and don't use any booking
|
|
26
|
-
software today — paper diary or their phone's calendar.
|
|
27
|
-
|
|
28
|
-
Later: grooming salons, then vets.
|
|
29
|
-
|
|
30
|
-
## How we'll get customers
|
|
31
|
-
|
|
32
|
-
- LinkedIn ads targeting "pet care business owners"
|
|
33
|
-
- A booth at PetTech Expo in March (the big pet-industry technology show — mostly chains and
|
|
34
|
-
franchise buyers go, but it's where the industry is)
|
|
35
|
-
- Referral credit: one free month for each groomer you refer
|
|
36
|
-
|
|
37
|
-
## Money
|
|
38
|
-
|
|
39
|
-
- Price: $29 a month per groomer.
|
|
40
|
-
- Our costs per groomer: SMS and card processing come to about $6 a month.
|
|
41
|
-
- Fixed costs: hosting $300 a month plus our contract developer at $4,000 a month. Neither of
|
|
42
|
-
us founders takes a salary yet.
|
|
43
|
-
- We ran a test LinkedIn campaign last month: spent $1,200 and got 3 paying sign-ups.
|
|
44
|
-
- From our 20 beta groomers, people stay about 9 months on average before they quit
|
|
45
|
-
(we looked at a similar app's public numbers and it matched).
|
|
46
|
-
|
|
47
|
-
## Unfair advantage
|
|
48
|
-
|
|
49
|
-
Our AI no-show predictor. It looks at past bookings and flags the customers likely to
|
|
50
|
-
not show, so the groomer can ask for a bigger deposit. Nobody else has this.
|
|
51
|
-
|
|
52
|
-
## Goal
|
|
53
|
-
|
|
54
|
-
300 paying groomers by the end of next year.
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
# LunchLoop — pitch notes (Marco Quill)
|
|
2
|
-
|
|
3
|
-
**One line:** home cooks in Fernbrook sell freshly made lunches to office workers, ordered by
|
|
4
|
-
11am and delivered by 12:30.
|
|
5
|
-
|
|
6
|
-
**Problem:** Office lunch in Fernbrook is the same three sandwich chains. People are bored and
|
|
7
|
-
it's expensive.
|
|
8
|
-
|
|
9
|
-
**Customers:** Everyone who eats lunch at work. Also the home cooks, who want extra income
|
|
10
|
-
from their own kitchens.
|
|
11
|
-
|
|
12
|
-
**What we've done so far:**
|
|
13
|
-
- 14 home cooks signed up after a post in the Fernbrook community Facebook group.
|
|
14
|
-
- 3-month pilot in two office buildings. We spent $500 on flyers and lobby tastings and ended
|
|
15
|
-
up with 20 regular customers. The ones who stuck with it ordered about 8 lunches a month
|
|
16
|
-
each and stayed about 6 months on average (some started before the pilot via
|
|
17
|
-
word of mouth).
|
|
18
|
-
|
|
19
|
-
**Money:**
|
|
20
|
-
- A lunch sells for $12. We keep 15% as our fee; the cook gets the rest.
|
|
21
|
-
- Delivery costs us $1.10 per order (bike couriers).
|
|
22
|
-
- Fixed costs: my salary $7,000 a month plus software and insurance $2,000 a month.
|
|
23
|
-
|
|
24
|
-
**Market:** There are about 40 office buildings in Fernbrook. I reckon around 1,200 office
|
|
25
|
-
workers in total would use something like this.
|
|
26
|
-
|
|
27
|
-
**Unfair advantage:** Our cooks' food is better than any chain. Once people taste it they
|
|
28
|
-
don't go back.
|
|
29
|
-
|
|
30
|
-
**Ask:** I want to quit my job and build the full app this winter.
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
# ClubKit — notes (messy, sorry)
|
|
2
|
-
|
|
3
|
-
## the idea
|
|
4
|
-
app for grassroots football clubs. subs collection, match-day availability ("who's playing sat?"),
|
|
5
|
-
kit orders, reminders by text. one place instead of 4 whatsapp groups + a spreadsheet + chasing
|
|
6
|
-
people for £5 in the car park.
|
|
7
|
-
|
|
8
|
-
charge the CLUB, not the players. monthly subscription.
|
|
9
|
-
|
|
10
|
-
## why me
|
|
11
|
-
- I've been club secretary at Ferncross Rovers for 6 yrs. I do all of this by hand. it's awful.
|
|
12
|
-
- I can build it (I'm a backend dev by day)
|
|
13
|
-
|
|
14
|
-
## survey (did it in Sept)
|
|
15
|
-
posted a google form in the Westmarch Sunday League whatsapp group. 31 responses.
|
|
16
|
-
- who answered: 19 players, 8 parents, 4 committee members (secretaries / treasurers)
|
|
17
|
-
- "would you use an app like this?" -> 23 of 31 said yes (74%!!)
|
|
18
|
-
- "would your club pay £15/month for it?" -> 9 said yes, 14 maybe, 8 no
|
|
19
|
-
- of the 4 committee people: 1 yes, 2 maybe, 1 no
|
|
20
|
-
- most common complaint: chasing subs (17 mentions)
|
|
21
|
-
|
|
22
|
-
## pricing guesses
|
|
23
|
-
- £15/month per club. felt right. TeamHuddle (the free app loads of clubs already use for
|
|
24
|
-
availability) doesn't do subs properly, so I think clubs will pay for that bit.
|
|
25
|
-
- maybe £120/year option later
|
|
26
|
-
|
|
27
|
-
## costs per club per month (my estimates)
|
|
28
|
-
- hosting: £1.20
|
|
29
|
-
- SMS reminders: £2.30 (assumes ~50 texts/club/month)
|
|
30
|
-
- payment processing: 2% of the subscription
|
|
31
|
-
|
|
32
|
-
## ads test (Oct)
|
|
33
|
-
- spent £300 on facebook ads targeting club admins in Westmarch county
|
|
34
|
-
- 6 clubs signed up for the free 30-day trial
|
|
35
|
-
- 2 of them converted to paid at £15/month (as of last week)
|
|
36
|
-
|
|
37
|
-
## churn
|
|
38
|
-
no idea really. guessing 5% a month? that's what I read is normal for small SaaS.
|
|
39
|
-
NB most clubs basically shut down June-August (no fixtures)
|
|
40
|
-
|
|
41
|
-
## the dream
|
|
42
|
-
- there are ~1,200 grassroots clubs registered with Westmarch County FA
|
|
43
|
-
- 400 clubs x £15 = £6,000/month. I need about £3,500/month take-home to quit my job.
|
|
44
|
-
- so 400 clubs and I'm out!!
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
item,type,amount_gbp,period,notes
|
|
2
|
-
Build (contractor team),one-off,180000,once,5 months to production
|
|
3
|
-
Cloud hosting,run,2500,month,fixed
|
|
4
|
-
Model API usage,run,4000,month,platform minimum commitment; covers up to 300 seats
|
|
5
|
-
Product support (0.5 FTE),people,30000,year,half of one analyst salary; from go-live
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
# ClaimLens — Investment Committee proposal (DRAFT v3)
|
|
2
|
-
|
|
3
|
-
Harbourline Insurance — Innovation Lab
|
|
4
|
-
Sponsor: Priya Okafor (Head of Innovation)
|
|
5
|
-
|
|
6
|
-
## Summary
|
|
7
|
-
ClaimLens reads a claim file (forms, adjuster notes, photo captions, correspondence) and produces
|
|
8
|
-
a one-page summary with flagged inconsistencies for the handler. We propose to roll it out as an
|
|
9
|
-
internal product, funded by chargeback to the departments that use it.
|
|
10
|
-
|
|
11
|
-
## Problem
|
|
12
|
-
Claims handlers spend a large share of their day reading long files before they can act.
|
|
13
|
-
Handlers in the pilot said this is the most tedious part of the job.
|
|
14
|
-
|
|
15
|
-
## Pilot results (Claims, 25 seats, 6 weeks)
|
|
16
|
-
- Weekly active users: week 1 = 22 of 25; week 6 = 11 of 25
|
|
17
|
-
- Time saved: average 18 minutes per claim file (self-reported by 3 handlers in a feedback session)
|
|
18
|
-
- Satisfaction: "really useful when it works" (feedback session quote)
|
|
19
|
-
|
|
20
|
-
## Target departments
|
|
21
|
-
| Department | Staff (potential seats) | Status |
|
|
22
|
-
|---------------|-------------------------|---------------------------|
|
|
23
|
-
| Claims | 120 | Pilot running |
|
|
24
|
-
| Underwriting | 60 | Confirmed interest |
|
|
25
|
-
| Complaints | 35 | Confirmed interest |
|
|
26
|
-
|
|
27
|
-
See stakeholder-emails.txt for the interest from Underwriting and Complaints.
|
|
28
|
-
|
|
29
|
-
## Pricing (internal chargeback)
|
|
30
|
-
£40 per seat per month, billed quarterly to the department cost centre.
|
|
31
|
-
|
|
32
|
-
## Financials
|
|
33
|
-
See cost-model.csv.
|
|
34
|
-
Running costs are £6,500/month, so **we break even on running costs at 163 seats**
|
|
35
|
-
(£6,500 / £40 = 162.5). With Claims alone at 120 seats plus either other department we are
|
|
36
|
-
comfortably past break-even.
|
|
37
|
-
|
|
38
|
-
## Ask
|
|
39
|
-
Approve £180,000 build budget (contractor team, 5 months) to take ClaimLens from pilot to
|
|
40
|
-
production for all three departments.
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
From: Dan Whitlow (Head of Underwriting Operations)
|
|
2
|
-
To: Priya Okafor
|
|
3
|
-
Subject: RE: ClaimLens
|
|
4
|
-
Date: 2026-09-29
|
|
5
|
-
|
|
6
|
-
Hi Priya — sounds interesting. Happy to see a demo when it's ready and we can take it from there.
|
|
7
|
-
Dan
|
|
8
|
-
|
|
9
|
-
----------------------------------------------------------------
|
|
10
|
-
|
|
11
|
-
From: Mei Lindqvist (Complaints Manager)
|
|
12
|
-
To: Priya Okafor
|
|
13
|
-
Subject: RE: ClaimLens — interest for Complaints?
|
|
14
|
-
Date: 2026-10-06
|
|
15
|
-
|
|
16
|
-
Priya, the team would love something like this. Honestly though, our budget is locked until
|
|
17
|
-
April, so nothing new can be charged to us this financial year. Let's talk again in the spring.
|
|
18
|
-
Mei
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
# Example: on-site bike repair subscription
|
|
2
|
-
|
|
3
|
-
## Input
|
|
4
|
-
|
|
5
|
-
> Lean canvas for my idea please. SpokeStop: a mechanic with a folding repair stand visits
|
|
6
|
-
> office bike racks once a week, and members get unlimited tune-ups and puncture fixes for
|
|
7
|
-
> $12 a month. People who cycle to work hate losing an evening to the bike shop. Early
|
|
8
|
-
> adopters: daily cycle commuters at offices with 500+ staff in the business district — the
|
|
9
|
-
> council's travel survey says about 2,000 people cycle in daily. 12 people at my running
|
|
10
|
-
> club said they'd definitely sign up. Channels: Instagram ads, and a stall at the city
|
|
11
|
-
> cycling festival in June. Our test Instagram campaign cost $900 and got 10 paying sign-ups.
|
|
12
|
-
> Mechanic time and parts work out at $7 per member per month. Fixed costs are a van lease
|
|
13
|
-
> and insurance at $6,000 a month. Members will probably drop off in winter, so I'd guess
|
|
14
|
-
> six months average. Unfair advantage: my folding stand design, nobody else has one.
|
|
15
|
-
|
|
16
|
-
## Output
|
|
17
|
-
|
|
18
|
-
**Riskiest assumption: that commuters need repairs often enough to keep paying $12 every
|
|
19
|
-
month.** It scores 9 (likely wrong × fatal). The 10 Instagram sign-ups show people will try
|
|
20
|
-
it, not that they stay; the six-month lifetime is a guess; and the economics below lose money
|
|
21
|
-
on every member, so how often the problem bites is what decides the model. A better stand
|
|
22
|
-
changes none of that, which is why the solution isn't the risk here.
|
|
23
|
-
|
|
24
|
-
Test it this week: stand at two office bike racks for a morning each and ask 20 cyclists
|
|
25
|
-
about the last time their bike needed fixing; don't pitch. **Fail if fewer than 6 paid for a
|
|
26
|
-
repair in the past three months.** Cost: $0. Time: two mornings. If it fails, the offer moves
|
|
27
|
-
from a subscription to pay-per-fix.
|
|
28
|
-
|
|
29
|
-
**Change before building:**
|
|
30
|
-
- Each member costs $90 to acquire and returns $30 of margin over six months: every sign-up
|
|
31
|
-
adds a $60 loss, so growth deepens it.
|
|
32
|
-
- Break-even needs 1,200 members at once, 60% of the 2,000 daily cyclists the survey counts.
|
|
33
|
-
|
|
34
|
-
**Canvas**
|
|
35
|
-
|
|
36
|
-
| Box | Entry | Tag |
|
|
37
|
-
|---|---|---|
|
|
38
|
-
| Problem | Losing an evening to the bike shop for routine repairs; how often it happens is unknown | `[assumption]` |
|
|
39
|
-
| Customer segments | Daily cycle commuters in the business district; early adopter: those at offices with 500+ staff | `[evidence: council survey, ~2,000 daily]` for the size; `[assumption]` that they feel the problem |
|
|
40
|
-
| UVP | Your bike fixed at the office rack while you work | `[assumption]` |
|
|
41
|
-
| Solution | Weekly mechanic visit with a folding stand; unlimited tune-ups and puncture fixes | `[evidence: founder's design]` |
|
|
42
|
-
| Channels | Instagram ads; stall at the June cycling festival | `[evidence: $900 test → 10 sign-ups]` for Instagram; festival `[assumption]` and reaches leisure riders, not only commuters |
|
|
43
|
-
| Revenue streams | $12 a month per member | `[evidence: stated price]` |
|
|
44
|
-
| Cost structure | $7 per member per month; $6,000 a month fixed; $90 to acquire a member | `[evidence: founder's figures]`; CAC derived as $900 ÷ 10 |
|
|
45
|
-
| Key metrics | `[not stated]` — paid members and months retained are the two that test the model | `[assumption]` |
|
|
46
|
-
| Unfair advantage | None yet. The folding stand is a feature any mechanic can buy or copy. A candidate: exclusive access agreements with office landlords, if they would sign them | — |
|
|
47
|
-
|
|
48
|
-
The running-club interest is from the wrong segment (runners, not cycle commuters) and is
|
|
49
|
-
stated intent, so the problem box stays an assumption.
|
|
50
|
-
|
|
51
|
-
**Next assumptions**
|
|
52
|
-
|
|
53
|
-
2. **Members stay six months** (score 6: likely wrong — a guess with winter churn named —
|
|
54
|
-
× pivot). Test: a concierge month for the 10 Instagram sign-ups, then count who renews.
|
|
55
|
-
Fail if fewer than 7 of 10 renew for month two. Cost: one mechanic day a week. Time: five
|
|
56
|
-
weeks.
|
|
57
|
-
3. **Instagram reaches commuters at $10 or less per paying member** (score 6). $10 is a
|
|
58
|
-
third of lifetime margin, the most a member can cost if the fixed costs are to be covered.
|
|
59
|
-
Test: $200 on ads targeted to the business district. Fail above $10 per paying sign-up.
|
|
60
|
-
Time: one week. Today's $90 is nine times over it.
|
|
61
|
-
|
|
62
|
-
**Unit economics** (computed)
|
|
63
|
-
- Contribution: $12 − $7 = $5 a member a month (41.7% gross margin)
|
|
64
|
-
- Lifetime margin: $5 × 6 = $30; LTV:CAC 0.33
|
|
65
|
-
- CAC payback: $90 ÷ $5 = 18 months, three times the six-month lifetime
|
|
66
|
-
- Break-even: $6,000 ÷ $5 = 1,200 active members
|
|
67
|
-
- Most a member can cost to acquire: $30 at break-even, $10 at 3:1
|
|
68
|
-
|
|
69
|
-
**To confirm:** how the six-month lifetime was arrived at; whether the 10 Instagram
|
|
70
|
-
sign-ups were commuters; whether office landlords allow a mechanic at the racks.
|
|
71
|
-
|
|
72
|
-
Next step: run the two rack mornings before ordering anything for the van.
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "lean-canvas",
|
|
3
|
-
"version": "0.1.1",
|
|
4
|
-
"description": "Turn a startup or internal-product idea into a lean canvas that finds what could kill it — the nine boxes filled only from what the user said, each entry tagged evidence-backed (with its source) or assumption, the assumptions ranked by how likely each is wrong times how badly the idea fails if it is, the cheapest test with a pass/fail line set in advance for the top ones, a computed unit-economics check when price and costs are given, and a plain call when the idea should change before anything is built. Use when the user says \"lean canvas\", \"help me think through my startup idea\", \"what are the riskiest assumptions\", \"how do I validate this idea\", \"is this idea worth building\", or \"poke holes in my business model\".",
|
|
5
|
-
"entrypoint": "SKILL.md",
|
|
6
|
-
"deps": { "npm": [], "pip": [] },
|
|
7
|
-
"env": { "required": [], "optional": [] },
|
|
8
|
-
"related": ["business-case", "feedback-synthesis", "prfaq", "strategy-analysis", "success-metrics"],
|
|
9
|
-
"handoff": [
|
|
10
|
-
{
|
|
11
|
-
"to": "feedback-synthesis",
|
|
12
|
-
"when": "the problem interviews from the top test have been run and the notes are in",
|
|
13
|
-
"purpose": "Count how many distinct interviewees raised the problem unprompted, against the pass/fail line set before the test.",
|
|
14
|
-
"fallback": "If feedback-synthesis is absent, count distinct interviewees who described a recent instance before the problem was named, compare the count with the pre-set line, and say which canvas box changes."
|
|
15
|
-
},
|
|
16
|
-
{
|
|
17
|
-
"to": "business-case",
|
|
18
|
-
"when": "the riskiest assumptions have passed their tests and the idea needs money or headcount approved",
|
|
19
|
-
"purpose": "Turn the tested canvas into a costed invest/defer decision with do-nothing as the baseline.",
|
|
20
|
-
"fallback": "If business-case is absent, state the ask, the cost, the tested assumptions and the one that would flip the decision in five lines."
|
|
21
|
-
}
|
|
22
|
-
],
|
|
23
|
-
"tags": ["lean-canvas", "startup", "assumptions", "validation", "unit-economics"],
|
|
24
|
-
"permissions": {
|
|
25
|
-
"network": [],
|
|
26
|
-
"commands": [],
|
|
27
|
-
"files": "named-paths",
|
|
28
|
-
"notes": "The script reads numbers from flags, a JSON file the user names, or stdin, and writes only to an -o path the user names."
|
|
29
|
-
},
|
|
30
|
-
"model": {
|
|
31
|
-
"tier": "standard",
|
|
32
|
-
"rationale": "Filling the canvas is structured; the value is in ranking assumptions by risk and naming the cheapest test that could kill the riskiest one."
|
|
33
|
-
}
|
|
34
|
-
}
|
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
# lean-canvas reference
|
|
2
|
-
|
|
3
|
-
Long-form material for the steps in `SKILL.md`. The canvas is Ash Maurya's adaptation of the
|
|
4
|
-
Business Model Canvas (*Running Lean*); the interview rules follow Rob Fitzpatrick's *The Mom
|
|
5
|
-
Test*.
|
|
6
|
-
|
|
7
|
-
## The nine boxes, in the order to fill them
|
|
8
|
-
|
|
9
|
-
| Box | What goes in | Common wrong entry |
|
|
10
|
-
|---|---|---|
|
|
11
|
-
| Problem | The top 1–3 problems, and how the early adopter copes today (existing alternatives) | A solution phrased as a problem: "no app for X" |
|
|
12
|
-
| Customer segments | Who has the problem; the **early adopter** named separately, narrow enough to find by name | "Small businesses", "everyone who…" |
|
|
13
|
-
| Unique value proposition | One sentence: why this, for the early adopter, instead of what they do today | A feature list |
|
|
14
|
-
| Solution | The smallest thing that addresses each problem | A roadmap |
|
|
15
|
-
| Channels | The paths to the early adopter, free and paid | Channels that reach the later segment |
|
|
16
|
-
| Revenue streams | Price, who pays, how often | "Freemium" with no paid tier defined |
|
|
17
|
-
| Cost structure | Cost to serve one customer, fixed costs, acquisition cost | Fixed costs only |
|
|
18
|
-
| Key metrics | The 1–3 numbers that show the model works (activation, retention, paid conversion) | Downloads, page views |
|
|
19
|
-
| Unfair advantage | What a funded competitor can't copy or buy within a year | A feature, "AI", "first mover", "passion" |
|
|
20
|
-
|
|
21
|
-
**Internal products.** Revenue streams = the budget line or measured saving that keeps it
|
|
22
|
-
funded. Customer = the team that has to change how it works; early adopter = the one team
|
|
23
|
-
with the worst version of the problem and a lead who asked for help. Channel = how that team
|
|
24
|
-
hears about and gets onto the tool (a mandate, a team lead, an existing workflow it plugs
|
|
25
|
-
into). Unfair advantage can be real here: access to internal data or a mandate no vendor
|
|
26
|
-
has. Still test whether the team will change its habits.
|
|
27
|
-
|
|
28
|
-
## Grading evidence
|
|
29
|
-
|
|
30
|
-
| Signal | Grade |
|
|
31
|
-
|---|---|
|
|
32
|
-
| Paid, pre-ordered, signed a letter of intent, or switched from a current tool | Behaviour — strongest |
|
|
33
|
-
| Describes a recent, specific instance of the problem unprompted, and what it cost | Behaviour about the past — strong |
|
|
34
|
-
| Built a workaround (spreadsheet, hired someone) | Behaviour — strong |
|
|
35
|
-
| "I'd definitely use it", "great idea", survey interest | Opinion — weak, counts as assumption |
|
|
36
|
-
| Industry statistic or report | Sizes the market; says nothing about this segment's willingness to pay |
|
|
37
|
-
| Any of the above from a segment other than the early adopter | Counts as assumption for the early adopter |
|
|
38
|
-
|
|
39
|
-
## Scoring risk
|
|
40
|
-
|
|
41
|
-
| | Fatal (3) | Pivot (2) | Tune (1) |
|
|
42
|
-
|---|---|---|---|
|
|
43
|
-
| **High (3)** — no evidence, wrong segment, opinion only | 9 | 6 | 3 |
|
|
44
|
-
| **Medium (2)** — right segment, few people or indirect | 6 | 4 | 2 |
|
|
45
|
-
| **Low (1)** — observed behaviour, right segment | 3 | 2 | 1 |
|
|
46
|
-
|
|
47
|
-
Ties: rank the assumption whose test is cheaper first; it clears the way for the rest.
|
|
48
|
-
|
|
49
|
-
Why problem, customer and channel usually top the list: a wrong solution is fixed by
|
|
50
|
-
rebuilding it, which a team can do in weeks. A wrong problem or an unreachable customer means
|
|
51
|
-
the next build lands on nobody, and no amount of engineering moves it.
|
|
52
|
-
|
|
53
|
-
## Test menu, cheapest first
|
|
54
|
-
|
|
55
|
-
| Test | Proves wrong | Typical sample | Typical cost and time |
|
|
56
|
-
|---|---|---|---|
|
|
57
|
-
| Problem interview | The problem, the segment | 10–20 early adopters | $0–$200, 1–2 weeks |
|
|
58
|
-
| Channel smoke test | The channel and its cost | $100–$500 of spend or one week of outreach on one channel | the spend, 1 week |
|
|
59
|
-
| Landing page with a price | The UVP and the price | 100+ visitors from the stated channel | $100–$500, 1–2 weeks |
|
|
60
|
-
| Concierge run (deliver it by hand) | The solution and retention | 3–10 customers | founder time, 2–4 weeks |
|
|
61
|
-
| Pre-sale or letter of intent | Willingness to pay | 5–20 asks | $0, 2–4 weeks |
|
|
62
|
-
| Wizard of Oz (looks automated, done by hand) | The solution at small volume | 10–30 uses | founder time, 2–4 weeks |
|
|
63
|
-
|
|
64
|
-
A survey and "build an MVP and see" are not on the menu: the first measures opinion, the
|
|
65
|
-
second costs months to learn what an interview learns in a week.
|
|
66
|
-
|
|
67
|
-
## Setting the pass/fail line
|
|
68
|
-
|
|
69
|
-
- **Write it before the test runs**, as a count: "fewer than 4 of 10". A line set after the
|
|
70
|
-
results arrive moves to fit them.
|
|
71
|
-
- **Take it from the numbers when they exist.** Channel test fail line = the most a customer
|
|
72
|
-
can cost to acquire (lifetime margin ÷ 3 for a business that has to cover fixed costs;
|
|
73
|
-
lifetime margin at break-even). Landing-page fail line = the conversion that would
|
|
74
|
-
produce that cost per customer at the channel's cost per visitor.
|
|
75
|
-
- **No numbers yet:** a problem interview passes when at least 4 in 10 describe a recent
|
|
76
|
-
instance unprompted; a pre-sale passes when at least 1 in 5 pays or signs.
|
|
77
|
-
- **Say what failure changes:** which box is rewritten, and what the next test is.
|
|
78
|
-
|
|
79
|
-
## Problem-interview rules
|
|
80
|
-
|
|
81
|
-
1. Ask about the past, never the future. ✅ "When did that last happen? What did you do?"
|
|
82
|
-
❌ "Would you use an app that…?"
|
|
83
|
-
2. Don't pitch until the end, if at all. The moment the idea is described, people are polite.
|
|
84
|
-
3. Ask what it cost them: time, money, a lost customer.
|
|
85
|
-
4. Ask what they do about it today and what that costs. No workaround is a warning sign.
|
|
86
|
-
5. Count who raised the problem **before** it was named, separately from who agreed once asked.
|
|
87
|
-
|
|
88
|
-
Five-question script: "Walk me through your last [day/week/job]." / "What was the hardest
|
|
89
|
-
part?" / "When did [problem area] last go wrong? What happened?" / "What did you do about
|
|
90
|
-
it, and what did that cost?" / "What have you tried to fix it?"
|
|
91
|
-
|
|
92
|
-
## What counts as an unfair advantage
|
|
93
|
-
|
|
94
|
-
Counts: insider information, an existing audience or customer base, a network effect,
|
|
95
|
-
a community, exclusive contracts or access, regulatory permission others lack, a team
|
|
96
|
-
member whose name opens doors in this market, internal data or a mandate (internal products).
|
|
97
|
-
|
|
98
|
-
Doesn't count: a feature, an algorithm, "AI", a patent pending on a feature, first-mover,
|
|
99
|
-
better UX, lower price, hard work, passion. These go in Solution or UVP.
|
|
100
|
-
|
|
101
|
-
"None yet" is the most common correct answer at this stage. Name a candidate the idea
|
|
102
|
-
could grow into, if the input supports one.
|