@event4u/agent-config 2.7.0 → 2.9.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.
Files changed (76) hide show
  1. package/.agent-src/personas/cmo.md +122 -0
  2. package/.agent-src/personas/customer-success-lead.md +126 -0
  3. package/.agent-src/personas/engineering-manager.md +133 -0
  4. package/.agent-src/personas/finance-partner.md +129 -0
  5. package/.agent-src/personas/growth-pm.md +134 -0
  6. package/.agent-src/personas/people-strategist.md +126 -0
  7. package/.agent-src/personas/revops.md +125 -0
  8. package/.agent-src/personas/strategist.md +129 -0
  9. package/.agent-src/skills/activation-design/SKILL.md +160 -0
  10. package/.agent-src/skills/build-buy-partner/SKILL.md +145 -0
  11. package/.agent-src/skills/churn-prevention/SKILL.md +156 -0
  12. package/.agent-src/skills/comp-banding/SKILL.md +160 -0
  13. package/.agent-src/skills/competitive-moat-analysis/SKILL.md +152 -0
  14. package/.agent-src/skills/content-funnel-design/SKILL.md +170 -0
  15. package/.agent-src/skills/contracts-cognition/SKILL.md +147 -0
  16. package/.agent-src/skills/data-handling-judgment/SKILL.md +155 -0
  17. package/.agent-src/skills/deal-qualification-meddic/SKILL.md +165 -0
  18. package/.agent-src/skills/editorial-calendar/SKILL.md +161 -0
  19. package/.agent-src/skills/expansion-playbook/SKILL.md +171 -0
  20. package/.agent-src/skills/forecast-accuracy/SKILL.md +157 -0
  21. package/.agent-src/skills/forecasting/SKILL.md +164 -0
  22. package/.agent-src/skills/fundraising-narrative/SKILL.md +189 -0
  23. package/.agent-src/skills/funnel-analysis/SKILL.md +26 -2
  24. package/.agent-src/skills/gtm-launch/SKILL.md +165 -0
  25. package/.agent-src/skills/hiring-loop-design/SKILL.md +167 -0
  26. package/.agent-src/skills/market-entry-analysis/SKILL.md +144 -0
  27. package/.agent-src/skills/messaging-architecture/SKILL.md +184 -0
  28. package/.agent-src/skills/onboarding-design/SKILL.md +158 -0
  29. package/.agent-src/skills/onboarding-program/SKILL.md +157 -0
  30. package/.agent-src/skills/one-on-one-cadence/SKILL.md +161 -0
  31. package/.agent-src/skills/org-design/SKILL.md +158 -0
  32. package/.agent-src/skills/perf-feedback-craft/SKILL.md +157 -0
  33. package/.agent-src/skills/pipeline-strategy/SKILL.md +159 -0
  34. package/.agent-src/skills/positioning-strategy/SKILL.md +177 -0
  35. package/.agent-src/skills/privacy-review/SKILL.md +160 -0
  36. package/.agent-src/skills/retention-loops/SKILL.md +161 -0
  37. package/.agent-src/skills/runway-cognition/SKILL.md +136 -0
  38. package/.agent-src/skills/scenario-modeling/SKILL.md +139 -0
  39. package/.agent-src/skills/subagent-orchestration/SKILL.md +1 -1
  40. package/.agent-src/skills/throughput-vs-morale-tradeoff/SKILL.md +165 -0
  41. package/.agent-src/skills/unit-economics-modeling/SKILL.md +54 -7
  42. package/.agent-src/skills/vision-articulation/SKILL.md +146 -0
  43. package/.agent-src/skills/voice-and-tone-design/SKILL.md +163 -0
  44. package/.agent-src/templates/agents/agent-project-settings.example.yml +1 -1
  45. package/.agent-src/templates/scripts/telemetry/settings.py +65 -0
  46. package/.agent-src/templates/scripts/tier_usage_report.py +183 -0
  47. package/.claude-plugin/marketplace.json +34 -2
  48. package/AGENTS.md +1 -1
  49. package/CHANGELOG.md +135 -153
  50. package/README.md +3 -3
  51. package/docs/architecture.md +37 -11
  52. package/docs/archive/CHANGELOG-pre-2.7.0.md +185 -0
  53. package/docs/catalog.md +38 -4
  54. package/docs/contracts/adr-forecast-construction-shape.md +89 -0
  55. package/docs/contracts/adr-gtm-context-spine.md +115 -0
  56. package/docs/contracts/adr-wing4-context-spine.md +125 -0
  57. package/docs/contracts/command-clusters.md +41 -0
  58. package/docs/contracts/command-surface-tiers.md +30 -9
  59. package/docs/contracts/context-spine.md +58 -12
  60. package/docs/contracts/cross-wing-handoff.md +3 -3
  61. package/docs/contracts/mcp-beta-criteria.md +129 -0
  62. package/docs/contracts/persona-schema.md +20 -3
  63. package/docs/guidelines/gtm-handoff.md +114 -0
  64. package/docs/guidelines/wing4-handoff.md +127 -0
  65. package/docs/mcp-server.md +1 -1
  66. package/package.json +1 -1
  67. package/scripts/_cli/cmd_doctor.py +527 -14
  68. package/scripts/_cli/cmd_validate.py +10 -0
  69. package/scripts/agent-config +19 -18
  70. package/scripts/install.py +5 -0
  71. package/scripts/lint_context_spine_usage.py +5 -1
  72. package/scripts/mcp_server/__init__.py +1 -0
  73. package/scripts/mcp_server/server.py +4 -3
  74. package/scripts/schemas/persona.schema.json +5 -0
  75. package/scripts/schemas/skill.schema.json +2 -2
  76. package/scripts/skill_linter.py +284 -6
@@ -0,0 +1,139 @@
1
+ ---
2
+ name: scenario-modeling
3
+ description: "Use when constructing base / upside / downside scenarios — three-statement modeling, sensitivity analysis, optionality reasoning. Triggers on 'model the scenarios', 'what if growth halves'."
4
+ status: active
5
+ tier: senior
6
+ source: package
7
+ domain: process
8
+ context_spine: [org-stage, fiscal-period, product]
9
+ ---
10
+
11
+ # scenario-modeling
12
+
13
+ ## When to use
14
+
15
+ - A board pack, fundraise process, or annual plan needs base / upside / downside scenarios — not a single forecast number with a sensitivity table bolted on.
16
+ - A strategic bet (build / buy / partner, geo-expansion, pricing change) needs the **shape of its downside** before it locks; *"what's the worst defensible outcome"* is the load-bearing question.
17
+ - A founder or finance-partner needs to compare two options by their optionality, not their expected value — the option whose downside is bounded wins, not the option with the highest mean.
18
+
19
+ Do NOT use for per-customer economics (route to `unit-economics-modeling` (O1)), forecast-call construction (route to `forecasting` (O2)), or runway-shape reasoning (route to `runway-cognition` (O3)). This skill **composes** all three; it doesn't replace them.
20
+
21
+ ## Cognition cluster
22
+
23
+ - **Mental model 21 — Second-order thinking.** Each scenario is a chain: revenue → margin → burn → runway → fundraise → dilution. Single-statement scenarios (just revenue) skip the chain and read like wishlists. See [`mental-models.md`](../../../docs/contracts/mental-models.md) § 21.
24
+ - **Mental model 29 — Premortem.** *"It's two windows from now and the downside scenario happened. Walk back."* The premortem forces concrete failure paths into the model; without it the downside is just a 20 % discount on base. See `mental-models.md` § 29.
25
+ - **Mental model 26 — Optionality.** Optionality = preserved future choices. Read each scenario by what choices it preserves vs forecloses. Bounded downside + preserved optionality > unbounded upside with foreclosed optionality. See `mental-models.md` § 26.
26
+ - **Context-spine — org-stage + fiscal-period + product.** Read **org-stage** for which scenarios matter (pre-revenue → upside is traction speed; growth → downside is competitive pressure). Read **fiscal-period** for the modeling horizon. Read **product** for which revenue lines are real vs roadmap. See [`context-spine`](../../../docs/contracts/context-spine.md).
27
+
28
+ ## Procedure
29
+
30
+ ### Step 0: Inspect and pull the upstream frames
31
+
32
+ Read the three Wing-4 inputs:
33
+
34
+ 1. **`unit-economics-frame.md`** from O1 — CAC, LTV, contribution margin per channel and blended; burn-multiple direction.
35
+ 2. **`forecast-band.json`** from O2 — construction shape, commit / best-case / pipeline, confidence band, retro signature.
36
+ 3. **`runway-frame.md`** from O3 — current cash, burn shape, band-target, fundraise verdict, cut-or-grow verdict.
37
+
38
+ If any frame is missing, STOP and route to the producing skill. Do not synthesize the upstream frame; that breaks the boundary.
39
+
40
+ ### Step 1: Define the three scenario shapes
41
+
42
+ 1. **Base** = O2 commit + O3 status-quo burn + O1 channel mix unchanged. The "everything you've already said" scenario.
43
+ 2. **Upside** = O2 best-case + O1 channel-mix shift to highest LTV/CAC + one named tailwind (segment proof / channel scale / pricing). *Name the tailwind*; un-named upside is wishlisting.
44
+ 3. **Downside** = O2 commit-band lower bound + O1 channel mix shift to declining channel + one named headwind (segment churn / channel saturation / competitive entry). *Name the headwind*; un-named downside is "everything is 20 % worse".
45
+
46
+ ### Step 2: Construct three statements per scenario
47
+
48
+ For each of the three scenarios, write three statements — **not three full models, three statements**:
49
+
50
+ 1. **Revenue statement** — top-line shape over the horizon. Cite which O2 inputs flex.
51
+ 2. **Margin statement** — gross + contribution shape. Cite which O1 inputs flex (channel mix, pricing, COGS).
52
+ 3. **Cash statement** — net burn → runway gap shape. Cite the O3 band-target it lands against.
53
+
54
+ Each scenario = nine numbers (three statements × three time slices: now / mid-horizon / end-horizon) plus a one-line "what made this scenario this scenario" explanation.
55
+
56
+ ### Step 3: Premortem each scenario
57
+
58
+ 1. **Base premortem** — *"if base under-delivers by 20 %, which input was the load-bearing assumption?"* If the answer is one input, the base is fragile; demote that input and recompute.
59
+ 2. **Upside premortem** — *"if upside hits, did we have the operating capacity to absorb it?"* Upside without operating-capacity reasoning is a fundraise pitch, not a plan.
60
+ 3. **Downside premortem** — *"if downside hits, what's the next decision and when?"* Tag the decision points; un-tagged downsides have no operational meaning.
61
+
62
+ ### Step 4: Run sensitivity, not Monte Carlo
63
+
64
+ For each scenario, vary the single load-bearing input (named in Step 3) by ±20 %. Read whether the runway-gap verdict changes shape.
65
+
66
+ A scenario whose verdict is stable under ±20 % sensitivity on its load-bearing input is robust. A scenario whose verdict flips is brittle; demote it into a *"what if"* footnote, not a board-pack scenario.
67
+
68
+ Monte-Carlo is over-precise for this cognition; the question is *"does the verdict survive the obvious sensitivity?"* — not *"what's the 95th percentile?"*.
69
+
70
+ ### Step 5: Read the optionality, not just the mean
71
+
72
+ For each scenario, write the option-preservation note:
73
+
74
+ - *"This scenario preserves: ___ (named choices)."*
75
+ - *"This scenario forecloses: ___ (named choices)."*
76
+
77
+ The decision shape is rarely *"pick the highest mean"*. It's *"pick the scenario whose foreclosures we can live with and whose preserved options match the strategy"*.
78
+
79
+ ### Step 6: Emit the scenario bundle
80
+
81
+ Produce `scenario-bundle.md` — the artifact strategist (T2 / P1 `build-buy-partner`) and finance-partner (T1) read for downstream decisions. Per `docs/guidelines/wing4-handoff.md` § Chain 1.
82
+
83
+ ## Related Skills
84
+
85
+ **WHEN to use this**
86
+
87
+ - Constructing base / upside / downside for a board pack, fundraise, or strategic bet.
88
+ - Comparing two strategic options by their optionality and downside shape.
89
+
90
+ **WHEN NOT to use this**
91
+
92
+ - Per-customer economics — route to [`unit-economics-modeling`](../unit-economics-modeling/SKILL.md) (O1).
93
+ - Forecast-call construction — route to [`forecasting`](../forecasting/SKILL.md) (O2).
94
+ - Runway shape / fundraise timing — route to [`runway-cognition`](../runway-cognition/SKILL.md) (O3).
95
+ - Insource-vs-outsource-vs-acquire decisions — route to [`build-buy-partner`](../build-buy-partner/SKILL.md) (P1); P1 consumes this skill's bundle.
96
+ - Whole-business intrinsic value with terminal value — route to [`dcf-modeling`](../dcf-modeling/SKILL.md).
97
+
98
+ Wing-4 handoff: this skill reads `unit-economics-frame.md` (O1),
99
+ `forecast-band.json` (O2), `runway-frame.md` (O3); emits
100
+ `scenario-bundle.md` consumed by P1 and T1. Per
101
+ `docs/guidelines/wing4-handoff.md` § Chain 1.
102
+
103
+ ## When the agent should load this
104
+
105
+ - "Model base / upside / downside for the board pack."
106
+ - "What does the downside look like if growth halves?"
107
+ - "Compare option A and option B by their downside shape."
108
+ - "Wie sehen unsere Szenarien aus?"
109
+
110
+ ## Output
111
+
112
+ 1. **`scenario-bundle.md`** *(Wing-4 handoff)* — three scenarios × three statements × three time slices, plus tailwind / headwind names, sensitivity-stability flag, and optionality note per scenario.
113
+ 2. **`load-bearing-inputs.md`** — one input named per scenario as the load-bearing assumption; sensitivity result on each.
114
+ 3. **`optionality-map.md`** — preserved / foreclosed choices per scenario; decision-shape recommendation.
115
+ 4. **`premortems.md`** — base / upside / downside premortems with named failure paths and tagged decision points.
116
+
117
+ ## Gotcha
118
+
119
+ - "Downside = base × 0.8" is the most common deception. Downside must have a *named* headwind; without it the scenario doesn't model anything.
120
+ - Upside without operating-capacity reasoning is a fundraise narrative, not a plan. Capacity (hiring lag, infrastructure, support load) is the inversion check.
121
+ - Monte-Carlo simulations on a forecast that has a typed confidence band are over-precise theatre. Sensitivity ±20 % on the load-bearing input is the honest test.
122
+ - Three-statement = three statements per scenario, not three full models. Nine numbers + one-line explanation = a readable bundle.
123
+
124
+ ## Do NOT
125
+
126
+ - Do NOT construct scenarios without the three upstream frames (O1 / O2 / O3) — that breaks Wing-4 cognition boundaries.
127
+ - Do NOT name a scenario without naming its tailwind / headwind / decision points — the labels are the cognition.
128
+ - Do NOT optimise on mean; optimise on optionality + downside shape.
129
+
130
+ ## Runnable example
131
+
132
+ Series-A SaaS, annual plan window.
133
+
134
+ - Step 0 — frames: O1 says blended LTV/CAC 3.1, burn-multiple 1.8 decel. O2 says hybrid forecast, commit $6.3M, best-case $8.1M, band ±14 %. O3 says runway gap −5mo, fundraise=raise.
135
+ - Step 1 — Base = $6.3M revenue, status-quo burn. Upside = $8.1M, tailwind = "enterprise segment proof point closes Q2". Downside = $5.4M, headwind = "competitor enters mid-market, churn spikes 2× in Q3".
136
+ - Step 2 — three statements × three slices each. Base lands at gap −5mo; upside closes to −1mo; downside opens to −9mo.
137
+ - Step 3 — base premortem: load-bearing = enterprise segment close rate. Upside premortem: capacity = need 2 AEs by Q1 or upside is shape-wrong. Downside premortem: decision point = if churn ≥ 1.5× by mid-Q3, cut non-headcount + tighten fundraise narrative.
138
+ - Step 4 — sensitivity on close-rate ±20 %: base flips brittle (gap shape changes); demote to "fragile-base" footnote, re-run with conservative close rate.
139
+ - Step 5 — upside preserves M&A optionality; downside forecloses pricing-experiment optionality. Recommendation: plan against re-run base, raise narrative on upside, hold downside as triggered playbook.
@@ -149,7 +149,7 @@ worktree → delegated-skill consumes the input shape declared in its
149
149
  `## Input` (or `## When the agent should load this`) block. The
150
150
  handoff is auditable; `lint_handoffs.py` validates the chain.
151
151
 
152
- **Example chain (W3 launch):** `positioning` (worktree A) →
152
+ **Example chain (W3 launch):** `positioning-strategy` (worktree A) →
153
153
  `messaging-architecture` (worktree B, consumes positioning's
154
154
  `positioning-statement.md`) → `gtm-launch` (worktree C, consumes
155
155
  both prior artifacts). Each worktree carries one branch; the chain
@@ -0,0 +1,165 @@
1
+ ---
2
+ name: throughput-vs-morale-tradeoff
3
+ description: "Use when balancing eng-team velocity vs quality vs burnout — on-call load, focus fragmentation, reorg shock. Triggers on 'team is burning out', 'why is velocity dropping'."
4
+ status: active
5
+ tier: senior
6
+ source: package
7
+ domain: process
8
+ context_spine: [org-stage, product, customer-segment]
9
+ ---
10
+
11
+ # throughput-vs-morale-tradeoff
12
+
13
+ ## When to use
14
+
15
+ - An engineering team's velocity is dropping (or about to) and the question is *which lever to pull* — scope, on-call, focus-time, team-shape — and *which lever costs more morale than it returns*.
16
+ - Burnout signals are surfacing (cancelled 1:1s, slipped commitments, attrition risk, low Slack-volume) and the question is *which load to take off the team before someone leaves*.
17
+ - A reorg, growth push, or major deadline is being planned and the question is *what's the throughput-vs-morale trade* before the decision is made, not after.
18
+
19
+ Do NOT use this for individual performance issues (route to Q4 `perf-feedback-craft` or S1 `one-on-one-cadence`), as a hiring-rate skill (route to S2 `hiring-loop-design`), or for team-velocity-tracking-platform configuration.
20
+
21
+ ## Cognition cluster
22
+
23
+ - **Mental model — Theory of constraints.** Team throughput has one binding constraint at a time — usually code review queue, single-threaded role, on-call load, or focus-fragmentation. Identifying the constraint with file:line precision is the most leveraged hour an EM spends in a quarter; lifting non-constraint loads produces zero throughput gain. See [`mental-models.md`](../../../docs/contracts/mental-models.md).
24
+ - **Mental model 21 — Second-order thinking.** Throughput borrowed from morale always compounds back. A two-quarter sprint to a deadline costs three-to-four quarters of slower hiring (reputation), slower velocity (post-burnout shape), and senior-IC attrition. Compute the round-trip, not just the deadline.
25
+ - **Mental model 28 — Inversion.** *"What would make this team silently disengage by quarter-end?"* — usually: chronic on-call without recovery, focus-fragmentation > 4 context-switches / day, reorg-shock without re-shape time, leadership-promised-relief that doesn't arrive. Inversion surfaces the 4 canonical morale-collapse causes.
26
+ - **Mental model — Base rates.** A team running at 80% utilization has zero slack for incidents; this is the base rate, not a worst case. A team running at 90% utilization for two quarters has 50%+ attrition base rate. Most EMs over-estimate sustainable utilization by 20 percentage points.
27
+ - **Context-spine — org-stage + product + customer-segment.** Read **org-stage** for what's feasible (10-person co: high tolerance for surge; 50-person: pattern-establishing matters; 150+: well-established burn-rate signals). Read **product** for incident-load shape (consumer high-traffic = heavier on-call; deep-domain = lower volume / higher severity). Read **customer-segment** for SLA-driven on-call obligations.
28
+
29
+ ## Cross-wing handoff
30
+
31
+ - Composed by T4 `engineering-manager` persona; specializes the throughput / morale conversation for engineering teams.
32
+ - Hands off to Q4 `perf-feedback-craft` when team-level morale signals trigger individual feedback exchanges.
33
+ - Hands off to Q1 `org-design` when the binding constraint is structural (team boundary, single-threaded role, span-of-control).
34
+ - Hands off to O3 `runway-cognition` when the throughput-vs-morale trade is being driven by runway pressure — finance owns the runway pressure, EM owns whether the team can absorb the response.
35
+
36
+ ## Procedure
37
+
38
+ ### Step 0: Diagnose the binding constraint, not the symptoms
39
+
40
+ Symptoms (slipped commitment, missed deadline, attrition signal) point at constraints; force the diagnosis before reacting:
41
+
42
+ 1. **Code-review queue** — PRs waiting > 24h on average. Throughput bound by review, not by writing code.
43
+ 2. **Single-threaded role** — one person owns N critical workstreams; vacation / sickness collapses progress.
44
+ 3. **On-call load** — primary on-call shift > 1 in 6 weeks for the same person, or > 50% of weeks with paging; on-call exhaustion is invisible until departures.
45
+ 4. **Focus fragmentation** — > 4 context switches / day, or < 3 hours of contiguous focus time / day. Producing systems work in 30-minute windows is a known anti-pattern.
46
+ 5. **Scope volatility** — > 30% scope change mid-cycle; team velocity drops because half the work in progress becomes throwaway.
47
+ 6. **Reorg / role-change shock** — new manager, new team boundaries, or new role within 90 days; 3–6 months of degraded throughput is the baseline.
48
+
49
+ A team running on multiple constraints simultaneously is in burnout shape; pick the binding one first.
50
+
51
+ ### Step 1: Size the current throughput / morale state
52
+
53
+ For the team in scope, gather:
54
+
55
+ 1. **Sustained utilization** — % of capacity allocated to committed work; > 80% = no slack; > 90% for > 2 quarters = attrition base rate triggers.
56
+ 2. **On-call distribution** — shifts per person per quarter; pages per shift; recovery time after high-page shifts.
57
+ 3. **Morale signals** — cancellation rate of optional meetings, 1:1 cadence health, Slack-volume changes, vacation usage. Each signal is noisy alone; three or more co-occurring = pattern.
58
+ 4. **Throughput trend** — committed-vs-delivered ratio over last 6 cycles. Single-cycle miss = noise; three-cycle decline = pattern.
59
+
60
+ Without measurement, the trade is being made on vibes; force the read.
61
+
62
+ ### Step 2: Inspect the proposed lever before pulling it
63
+
64
+ For each candidate lever to lift the constraint, run an inspect step before committing:
65
+
66
+ 1. **Scope reduction** — what gets deferred, by whom, with what stakeholder communication. Reduces load cleanly; cost = scope conversation with PM / stakeholders.
67
+ 2. **Hiring** — only relevant if hiring lead-time < timeline; cost = onboarding tax (Q3) on existing team.
68
+ 3. **On-call rotation reshape** — wider rotation, better runbooks, page-quality work. Cost = upfront engineering investment.
69
+ 4. **Focus-protection** — meeting-free days, no-Slack windows, makers-vs-managers calendaring. Cost = manager-communication overhead.
70
+ 5. **Reorg / boundary reshape** — Q1 territory; cost = 3–6 months of degraded throughput before settling.
71
+
72
+ The cheapest-looking lever (just push harder for 6 weeks) is the most expensive in second-order terms.
73
+
74
+ ### Step 3: Map the round-trip cost honestly
75
+
76
+ For the chosen lever, name the round-trip:
77
+
78
+ 1. **Q1 cost / benefit** — immediate impact.
79
+ 2. **Q2 cost / benefit** — settling impact.
80
+ 3. **Q3+ cost / benefit** — compounding impact (attrition base rate, hiring reputation, internal trust).
81
+
82
+ Pushing harder for 6 weeks looks like a + in Q1 but is usually – in Q2 + Q3 + Q4 once attrition + slower hiring + reputation effects ripple. Forcing the round-trip honest is the most-skipped step.
83
+
84
+ ### Step 4: Lock the recovery shape, not just the surge shape
85
+
86
+ Throughput borrowed from morale must be paid back; the recovery is part of the design, not an afterthought:
87
+
88
+ 1. **Recovery window** — minimum 4 weeks of reduced-load work after a 6-week sprint; 8 weeks after a quarter-long sprint.
89
+ 2. **No-overlap rule** — recovery from sprint A cannot run during sprint B; sequential, not parallel.
90
+ 3. **Recovery-shape clarity** — what does "reduced load" mean concretely (e.g., 20% allocation to tech-debt, 0 on-call shifts for the 2 people who carried most pages, explicit no-deadline-commits in the recovery window).
91
+ 4. **Manager-visible recovery** — recovery is named, scheduled, and protected; recoveries that exist only in the manager's head do not happen.
92
+
93
+ Sprints without recovery are extraction; the team learns that "sprint" means "permanent state" and morale collapses.
94
+
95
+ ### Step 5: Validate the throughput / morale plan before announcing
96
+
97
+ Before communicating the plan to the team, inspect three things:
98
+
99
+ 1. **Constraint named with precision** — confirm Step 0 named exactly one binding constraint with file:line / person:role specificity; multi-constraint or vague reads fail and must be re-diagnosed.
100
+ 2. **Round-trip honest** — assert Step 3's Q2+ cost is sized in attrition-base-rate and throughput-recovery-time terms; missing round-trip means the plan over-claims and must be re-sized.
101
+ 3. **Recovery shape locked** — verify Step 4's recovery window is named, scheduled, and on the calendar before the surge starts; recovery promised after surge launches almost never lands.
102
+
103
+ All three must pass. If any fails, return to the failing step.
104
+
105
+ ### Step 6: Emit the throughput / morale plan
106
+
107
+ Produce the plan artifact for the EM + their VP / leadership chain + a team-facing version. The leadership artifact contains the diagnosis + lever + round-trip + recovery shape. The team-facing version names the surge + when it ends + what recovery looks like + how morale signals will be monitored during the surge.
108
+
109
+ ## Related Skills
110
+
111
+ **WHEN to use this**
112
+
113
+ - Velocity drops, missed commitments, surfacing burnout signals.
114
+ - Pre-decision read on a planned sprint / deadline / reorg.
115
+ - Annual capacity / on-call shape planning.
116
+ - Post-incident retrospective when team load was a contributing factor.
117
+
118
+ **WHEN NOT to use this**
119
+
120
+ - Individual performance issues — route to [`perf-feedback-craft`](../perf-feedback-craft/SKILL.md) (Q4) or [`one-on-one-cadence`](../one-on-one-cadence/SKILL.md) (S1).
121
+ - Hiring-loop / role-family design — route to [`hiring-loop-design`](../hiring-loop-design/SKILL.md) (S2).
122
+ - Org-shape / team-boundary decisions — route to [`org-design`](../org-design/SKILL.md) (Q1).
123
+ - Runway-pressure-driven scope conversation — route to [`runway-cognition`](../runway-cognition/SKILL.md) (O3) for the upstream finance read.
124
+
125
+ ## When the agent should load this
126
+
127
+ - "Team is burning out."
128
+ - "Why is velocity dropping?"
129
+ - "Should we push harder this quarter?"
130
+ - "On-call is killing the team."
131
+ - "Wie balanciere ich Tempo und Moral?"
132
+
133
+ ## Output
134
+
135
+ 1. **`constraint-diagnosis.md`** — named binding constraint with file:line / person:role specificity.
136
+ 2. **`current-state-sizing.md`** — sustained utilization, on-call distribution, morale signals, throughput trend.
137
+ 3. **`lever-comparison.md`** — candidate levers × immediate cost / benefit × round-trip cost / benefit.
138
+ 4. **`recovery-shape.md`** — recovery window + reduced-load definition + no-overlap rule + calendar-locked dates.
139
+ 5. **`team-facing-plan.md`** — surge scope + end date + recovery shape + morale-signal monitoring during surge.
140
+
141
+ ## Gotcha
142
+
143
+ - "We can push harder for 6 weeks" is the most expensive sentence an EM says. Round-trip cost is 3–4 quarters.
144
+ - 80% sustained utilization has zero slack for incidents; teams at 90% for two quarters have base-rate 50%+ attrition.
145
+ - A surge without a calendar-locked recovery is extraction. The team learns the word "sprint" means "permanent state".
146
+ - Multi-constraint reads are usually under-diagnosed; press for the binding one, even if multiple feel binding.
147
+ - "Morale" in EMs' heads is usually 30–60 days behind reality; lagging-indicator decisions are the canonical mis-shape.
148
+
149
+ ## Do NOT
150
+
151
+ - Do NOT pull a throughput lever without sizing the round-trip cost; first-order math always favors pulling, second-order math often doesn't.
152
+ - Do NOT promise recovery after the surge ends; schedule it before the surge starts or it doesn't happen.
153
+ - Do NOT confuse this with individual-performance work; team-level constraints have team-level fixes.
154
+
155
+ ## Runnable example
156
+
157
+ Series-B SaaS eng team (8 engineers), velocity has dropped 30% over 3 cycles, two senior ICs hinting at leaving, on-call has been heavy.
158
+
159
+ - Step 0 — Constraint diagnosis: 2 of 8 engineers are doing 60% of on-call (specialty domain knowledge); single-threaded-role + on-call-load both binding. Binding-most: on-call distribution.
160
+ - Step 1 — Current state: 88% sustained utilization (no slack), 4-in-6-week primary on-call for the 2 specialists, vacation usage near zero for those 2, throughput trend declining 3 cycles. Pattern is unambiguous.
161
+ - Step 2 — Lever comparison: (a) push-harder = + 0 throughput, very negative round-trip; (b) widen on-call rotation requires 6 weeks of runbook + onboarding work for 3 other engineers; (c) defer Q3 scope by 20% — clean immediate relief; (d) hire — lead-time 3-6 months, doesn't help this cycle.
162
+ - Step 3 — Round-trip: lever (b) + (c) combined: Q1 = -10% throughput on current scope (runbook investment + deferred scope) but + 0 on roadmap (defer absorbed); Q2 = + 15% throughput (wider on-call + recovered ICs); Q3+ = + retention base rate (specialists no longer at exhaustion).
163
+ - Step 4 — Recovery shape: 6 weeks of reduced load for the 2 specialists (no primary on-call, 20% tech-debt allocation) starting week 1 of Q3. Calendar-locked, communicated.
164
+ - Step 5 — Validate: binding constraint named with person-specificity; round-trip sized in attrition + Q2 / Q3 throughput terms; recovery on calendar before plan announced. Pass.
165
+ - Step 6 — Emit leadership plan (diagnosis + (b)+(c) lever + round-trip + recovery) and team-facing plan (Q3 scope-defer + on-call reshape + named recovery window for the 2 specialists).
@@ -1,10 +1,11 @@
1
1
  ---
2
2
  name: unit-economics-modeling
3
- description: "Use when modeling CAC, LTV, gross-margin payback, or contribution margin per customer — for SaaS, marketplace, or transactional businesses."
3
+ description: "Use when modeling CAC, LTV, payback, contribution margin, or burn-multiple per customer — SaaS, marketplace, or transactional. Triggers on 'are we unit-economic', 'what is our LTV/CAC'."
4
4
  status: active
5
5
  tier: senior
6
6
  source: package
7
7
  domain: product
8
+ context_spine: [product, fiscal-period]
8
9
  ---
9
10
 
10
11
  # unit-economics-modeling
@@ -14,9 +15,30 @@ domain: product
14
15
  - A board ask: "is this business unit-economic?" — needs CAC / LTV / payback, not vibes.
15
16
  - A new channel is scaling and the question is whether the CAC payback period is sustainable.
16
17
  - A pricing or packaging change needs to be tested against contribution margin per cohort.
18
+ - A finance-partner needs to construct burn-multiple cognition before the next forecast or scenario pass.
17
19
 
18
20
  Do NOT use for full-business intrinsic-value modeling, OKR setting, funnel-stage diagnosis, or backlog ranking (see Related Skills).
19
21
 
22
+ ## Cognition cluster
23
+
24
+ - **Mental model 1 — First principles.** Strip the unit to one paying
25
+ customer and one fully-loaded acquisition dollar. Aggregate ratios
26
+ ride on per-unit truth; if the unit is mis-defined (trial vs paid,
27
+ household vs seat), every ratio downstream is decoration. See
28
+ [`docs/contracts/mental-models.md`](../../../docs/contracts/mental-models.md) § 1.
29
+ - **Mental model 8 — Second-order thinking.** A CAC drop driven by
30
+ discounting lifts LTV/CAC on paper while shortening cohort
31
+ retention — the second-order effect lands two quarters later in
32
+ churn. Score the second-order cost of every lever, not just the
33
+ first-order ratio. See `mental-models.md` § 8.
34
+ - **Context-spine — product + fiscal-period.** Read the **product**
35
+ slot for what a "customer" actually is in this scope (seat vs
36
+ household vs paid trial vs activated free), and the
37
+ **fiscal-period** slot for the close-window the ratios must
38
+ reconcile against (monthly close vs quarterly board pack vs
39
+ annual plan). See
40
+ [`context-spine`](../../../docs/contracts/context-spine.md).
41
+
20
42
  ## Procedure
21
43
 
22
44
  ### Step 0: Inspect
@@ -51,13 +73,30 @@ Do NOT use for full-business intrinsic-value modeling, OKR setting, funnel-stage
51
73
  2. **LTV / CAC ratio**: target ≥ 3.0. Below 1.5 is acquisition-loss territory; above 5.0 means under-investment in growth (or bad LTV math).
52
74
  3. Both numbers, not one. Payback drives capital efficiency; ratio drives long-run economics.
53
75
 
54
- ### Step 5: Cohort the answer
55
-
56
- 1. Run Steps 1–4 by signup-quarter cohort. Trends matter more than the point estimate.
76
+ ### Step 5: Compute burn-multiple judgment
77
+
78
+ 1. **Burn multiple** = `net burn / net new ARR` over the fiscal-period
79
+ slot's reporting window (monthly close / quarterly / annual).
80
+ It answers *"how many dollars of cash do we burn to add one
81
+ dollar of recurring revenue?"* — a single ratio that compresses
82
+ CAC, gross margin, and churn into capital efficiency.
83
+ 2. Compute on **net** new ARR (gross new − churn − contraction).
84
+ Burn-multiple on gross new ARR flatters the picture by exactly
85
+ the churn rate; auditors and acquirers will recompute.
86
+ 3. Read the ratio against the org-stage colour from the
87
+ **fiscal-period** + product spine — do not hardcode a band here.
88
+ The cognition is *"smaller is better, and the direction across
89
+ cohorts matters more than the point estimate."* Bands belong in
90
+ `runway-cognition` (O3) where stage context is the load-bearing
91
+ input.
92
+
93
+ ### Step 6: Cohort the answer
94
+
95
+ 1. Run Steps 1–5 by signup-quarter cohort. Trends matter more than the point estimate.
57
96
  2. If LTV/CAC is improving but payback is lengthening, you are buying retention with discounting — flag.
58
97
  3. If both deteriorate, the channel mix has shifted to a worse channel — segment by channel to find the leak.
59
98
 
60
- ### Step 6: Validate
99
+ ### Step 7: Validate
61
100
 
62
101
  1. Sanity-check LTV against revenue retention. If implied LTV > 8× annual revenue per customer with monthly churn > 2%, the math is wrong.
63
102
  2. Sanity-check CAC against fully-loaded P&L. If channel CACs sum to less than total acquisition spend, allocations are missing.
@@ -88,6 +127,13 @@ Do NOT use for full-business intrinsic-value modeling, OKR setting, funnel-stage
88
127
  - Diagnosing where conversion drops — route to [`funnel-analysis`](../funnel-analysis/SKILL.md).
89
128
  - Ranking competing initiatives — route to [`rice-prioritization`](../rice-prioritization/SKILL.md).
90
129
  - Setting team objectives that move these metrics — route to [`okr-tree-modeling`](../okr-tree-modeling/SKILL.md).
130
+ - Cash-runway shape, fundraise-trigger heuristics, or layoff-vs-cut-vs-grow framing — route to [`runway-cognition`](../runway-cognition/SKILL.md) (O3).
131
+ - Multi-statement scenario construction over base / upside / downside — route to [`scenario-modeling`](../scenario-modeling/SKILL.md) (O4).
132
+ - Forecast-call construction (commit / best-case / pipeline) — route to [`forecasting`](../forecasting/SKILL.md) (O2).
133
+
134
+ Wing-4 handoff: this skill ships the `unit-economics-frame.md`
135
+ artifact that `scenario-modeling` (O4) reads as its money input
136
+ (`docs/guidelines/wing4-handoff.md` § Chain 1).
91
137
 
92
138
  ## When the agent should load this
93
139
 
@@ -99,7 +145,8 @@ Do NOT use for full-business intrinsic-value modeling, OKR setting, funnel-stage
99
145
 
100
146
  ## Output
101
147
 
102
- 1. **`unit-econ-table.md`** — table per channel and blended: CAC · ARPA · gross margin · payback months · LTV · LTV/CAC. With cohort columns (last 4 quarters).
148
+ 1. **`unit-econ-table.md`** — table per channel and blended: CAC · ARPA · gross margin · payback months · LTV · LTV/CAC · burn-multiple. With cohort columns (last 4 quarters).
103
149
  2. **`assumptions.md`** — formula chosen (SaaS / marketplace / transactional), churn definition, COGS allocation method, lifetime cap. One bullet per choice.
104
- 3. **`cohort-trend.md`** — trend chart (ASCII or markdown table) of CAC, payback, LTV/CAC over the last 4–8 cohorts. Annotate channel-mix shifts.
150
+ 3. **`cohort-trend.md`** — trend chart (ASCII or markdown table) of CAC, payback, LTV/CAC, burn-multiple over the last 4–8 cohorts. Annotate channel-mix shifts.
105
151
  4. **`sanity-checks.md`** — explicit cross-checks (LTV vs annual revenue, channel CAC sum vs P&L). Flag any that fail with a one-line investigation pointer.
152
+ 5. **`unit-economics-frame.md`** *(Wing-4 handoff)* — the typed artifact `scenario-modeling` (O4) reads: CAC / LTV ratio, contribution margin, payback band, burn-multiple verdict, segment scope, fiscal-period the frame reconciles against. Per `docs/guidelines/wing4-handoff.md` § Chain 1.
@@ -0,0 +1,146 @@
1
+ ---
2
+ name: vision-articulation
3
+ description: "Use when articulating internal vision — where we're going / why now / why us, founder-mode anchor, distinct from fundraising pitch. Triggers on 'what's our vision', 'why are we doing this'."
4
+ status: active
5
+ tier: senior
6
+ source: package
7
+ domain: process
8
+ context_spine: [org-stage, product, customer-segment]
9
+ ---
10
+
11
+ # vision-articulation
12
+
13
+ ## When to use
14
+
15
+ - An internal anchor is needed — board off-site, all-hands, strategy doc — and the question is *where are we going, why now, why us*. The audience is the team, not investors.
16
+ - A founder or strategist is sense-checking whether the current direction still holds, or whether reality has diverged from the stated vision.
17
+ - A new hire / new exec needs the founder-mode read of the company — not the fundraise pitch, the durable internal frame.
18
+
19
+ Do NOT use for outward-facing fundraise pitch (route to Wing-3 `fundraising-narrative` (H7); vision is internal-anchor, fundraising is external-pitch — different audiences, different proof bars), positioning copy / launch narrative (route to Wing-3 `positioning-strategy` / `messaging-architecture`), or roadmap construction (route to `feature-roadmap` workflows; vision constrains roadmaps, doesn't replace them).
20
+
21
+ ## Cognition cluster
22
+
23
+ - **Mental model 27 — Why now.** Vision without a *why now* is a wishlist. The market shift, technology wave, regulatory change, or demographic inflection that makes the vision *achievable in this window* is the load-bearing claim. See [`mental-models.md`](../../../docs/contracts/mental-models.md) § 27.
24
+ - **Mental model 1 — First principles.** Strip the vision to outcomes for a named cohort, not feature lists or company milestones. *"Be the X for Y"* is shape; *"customer C does outcome O 10× faster"* is substance. See `mental-models.md` § 1.
25
+ - **Mental model 21 — Second-order thinking.** *"If this vision is realised, what does the world look like in 5 years?"* If the answer is just *"we got bigger"*, the vision isn't load-bearing; if the answer is structural change (workflow shift, market re-shape), it is. See `mental-models.md` § 21.
26
+ - **Context-spine — org-stage + product + customer-segment.** Read **org-stage** for vision-horizon (pre-seed = 3-year survival vision; growth = 5–7-year market-shape vision; mature = 10-year). Read **product** for the realistic shipping shape. Read **customer-segment** for the cohort whose outcome anchors the vision.
27
+
28
+ ## Procedure
29
+
30
+ ### Step 0: Identify stance — founder vs operator
31
+
32
+ Vision-articulation is a founder-mode act, not an operator-mode act (per council Q6). Before starting:
33
+
34
+ 1. Confirm the requester is in founder-stance — they are setting the durable frame, not optimising within an existing frame.
35
+ 2. If the requester is in operator-stance (planning, executing, refining within a fixed frame), this skill is wrong; route to roadmap / planning skills.
36
+
37
+ Founder-stance is the precondition; without it the output is mis-shaped.
38
+
39
+ ### Step 1: Frame "where we're going" — cohort + outcome + horizon
40
+
41
+ One sentence: *"In [horizon], [customer-segment] [does outcome O] [because of structural change S]."*
42
+
43
+ Anti-patterns to reject:
44
+
45
+ 1. *"We're the [Big Company] of [Vertical]"* — feature-comparison, not cohort outcome. Reject.
46
+ 2. *"We're building the future of X"* — generic, no cohort named. Reject.
47
+ 3. *"We're growing to $100M ARR"* — milestone, not vision. Reject.
48
+
49
+ The sentence must name *who*, *what they do that they can't do today*, *why it matters in [horizon]*.
50
+
51
+ ### Step 2: Construct "why now"
52
+
53
+ Name 2–3 inflections that make this vision achievable in this window — not next decade, not last decade:
54
+
55
+ 1. **Technology inflection** — capability newly cheap / newly possible (AI, edge compute, new platform).
56
+ 2. **Market inflection** — buyer behaviour shift, segment opening, incumbent vulnerability (M&A churn, regulatory burden, talent loss).
57
+ 3. **Demographic / regulatory inflection** — workforce shift, policy change, generational handover.
58
+
59
+ Each inflection must be *recent* (last 24–36 months) or *imminent* (next 24 months). Inflections from 10 years ago are settled; inflections 10 years out are speculative. The *why now* window is narrow.
60
+
61
+ ### Step 3: Construct "why us"
62
+
63
+ Name 2–3 reasons this team, not another, can execute the vision. Honesty test:
64
+
65
+ 1. **Unique capability** — composes `competitive-moat-analysis` (P3); cite the moat dimensions where we score strong with evidence.
66
+ 2. **Unique distribution** — channel, community, partnership we have and competitors structurally can't replicate.
67
+ 3. **Unique insight** — founder / team origin gives us a read on the cohort that competitors don't have.
68
+
69
+ If the answer is *"we're hardworking"* or *"we move fast"*, the answer is none. Most teams are. Re-run.
70
+
71
+ ### Step 4: Inversion — what would falsify the vision?
72
+
73
+ For each load-bearing claim (cohort outcome, why-now inflection, why-us reason), write:
74
+
75
+ 1. *"What evidence in the next 12 months would falsify this?"* — leading signal that the vision is wrong-shaped.
76
+ 2. *"What change in the world would make this vision obsolete?"* — exogenous shift we're betting against.
77
+
78
+ A vision that can't be falsified is a slogan. Concrete falsifiers = real vision.
79
+
80
+ ### Step 5: Validate the vision before emitting
81
+
82
+ Before producing the artifact, verify three things:
83
+
84
+ 1. **Cohort-outcome specificity** — confirm the Step-1 sentence names a specific cohort + specific outcome + specific horizon; generic phrasing fails and must be re-run.
85
+ 2. **Why-now timestamp** — assert each Step-2 inflection is dated within the recent-24-36-months or imminent-24-months window; un-timestamped inflections are claims, not inflections.
86
+ 3. **Why-us falsifiability** — check that each Step-3 reason has a named Step-4 falsifier; un-falsifiable reasons are slogans and must be demoted.
87
+
88
+ All three must pass. If any fails, return to the failing step.
89
+
90
+ ### Step 6: Emit the vision frame
91
+
92
+ Produce the vision-frame artifact for internal use (board, all-hands, exec onboarding). Hand off to Wing-3 `fundraising-narrative` (H7) if an external pitch derivative is needed — that's a translation, not a copy.
93
+
94
+ ## Related Skills
95
+
96
+ **WHEN to use this**
97
+
98
+ - Internal vision articulation for board off-site, all-hands, strategy doc.
99
+ - Founder / exec sense-check on vision-vs-reality divergence.
100
+ - New-hire / new-exec onboarding to founder-mode read.
101
+
102
+ **WHEN NOT to use this**
103
+
104
+ - Outward-facing fundraise pitch — route to Wing-3 [`fundraising-narrative`](../fundraising-narrative/SKILL.md) (H7); vision is internal anchor, fundraising is external pitch.
105
+ - Positioning / messaging copy — route to Wing-3 [`positioning-strategy`](../positioning-strategy/SKILL.md) and [`messaging-architecture`](../messaging-architecture/SKILL.md).
106
+ - Moat reading — route to [`competitive-moat-analysis`](../competitive-moat-analysis/SKILL.md) (P3); this skill composes P3 for the "why us" frame.
107
+ - Roadmap / phase planning — route to roadmap workflows; vision constrains roadmaps, doesn't replace them.
108
+
109
+ ## When the agent should load this
110
+
111
+ - "What's our vision?"
112
+ - "Sense-check our direction — does this still hold?"
113
+ - "Draft the vision section for the board off-site."
114
+ - "Why now / why us frame for the strategy doc."
115
+ - "Wo wollen wir hin und warum jetzt?"
116
+
117
+ ## Output
118
+
119
+ 1. **`vision-frame.md`** — one-sentence vision (cohort + outcome + horizon), three "why now" inflections, three "why us" reasons.
120
+ 2. **`falsifiers.md`** — leading signals + exogenous shifts that would falsify each load-bearing claim.
121
+ 3. **`vision-vs-reality.md`** *(optional)* — when used as a sense-check, the delta between stated vision and current trajectory; named divergence points.
122
+
123
+ ## Gotcha
124
+
125
+ - "Be the X for Y" frames are positioning slogans, not vision. Reject; force cohort-outcome-horizon.
126
+ - "Why now" with no timestamp is a claim, not an inflection. Force a date.
127
+ - "Why us" answers like *"we're a great team"* mean none. Force unique capability / distribution / insight cited with evidence.
128
+ - Vision artifacts that survive zero change in the world over 5 years are slogans. Real visions have falsifiers.
129
+
130
+ ## Do NOT
131
+
132
+ - Do NOT collapse vision into fundraise pitch — different audiences, different proof bars.
133
+ - Do NOT skip the inversion / falsifier step — un-stressed visions are unfalsifiable.
134
+ - Do NOT bolt vision onto roadmap milestones — milestones are downstream of vision, not the same thing.
135
+
136
+ ## Runnable example
137
+
138
+ Series-A vertical SaaS, founder requests vision sense-check for board off-site.
139
+
140
+ - Step 0 — Stance: founder-mode confirmed (off-site context, setting durable frame).
141
+ - Step 1 — Vision: *"In 5 years, mid-size healthcare specialty groups (50–200 providers) deliver patient scheduling with 80 % less administrative load because the workflow is regulation-aware and self-adapting per state."*
142
+ - Step 2 — Why now: (a) state-licensure data became machine-readable in the last 24 months (tech inflection); (b) incumbent hospital-focused vendors hit their growth ceiling and are starting to mis-fit specialty groups (market inflection); (c) post-COVID, specialty-group practice owners control admin spend directly (buyer-behaviour shift, last 36 months).
143
+ - Step 3 — Why us: (a) founder's clinical-ops background + customer-segment access (unique insight, cited with 12 customer interviews); (b) switching-cost moat from 24-month deployment depth (composes P3, cited evidence); (c) HIPAA + 50-state licensure capability stack (unique capability).
144
+ - Step 4 — Falsifiers: (a) incumbent ships specialty-group focused migration tooling = unique-capability claim erodes; (b) state-licensure data becomes opaque again (regulatory rollback) = tech inflection inverts; (c) specialty-group consolidation accelerates so 50–200 cohort shrinks = cohort scope shrinks.
145
+ - Step 5 — Validate: cohort + outcome + horizon present; why-now inflections all dated within 24–36 months; why-us reasons each have falsifier. Pass.
146
+ - Step 6 — Emit vision-frame for board off-site; flag potential H7 derivative needed for the upcoming Series-B narrative.