@event4u/agent-config 2.6.1 → 2.8.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 (164) hide show
  1. package/.agent-src/commands/agent-handoff.md +1 -0
  2. package/.agent-src/commands/agent-status.md +1 -0
  3. package/.agent-src/commands/agents/audit.md +1 -0
  4. package/.agent-src/commands/agents/init.md +1 -0
  5. package/.agent-src/commands/agents/optimize.md +1 -0
  6. package/.agent-src/commands/agents.md +1 -0
  7. package/.agent-src/commands/analyze-reference-repo.md +1 -0
  8. package/.agent-src/commands/bug-fix.md +1 -0
  9. package/.agent-src/commands/bug-investigate.md +1 -0
  10. package/.agent-src/commands/challenge-me/vision.md +1 -0
  11. package/.agent-src/commands/challenge-me/with-docs.md +1 -0
  12. package/.agent-src/commands/challenge-me.md +1 -0
  13. package/.agent-src/commands/chat-history/import.md +1 -0
  14. package/.agent-src/commands/chat-history/learn.md +1 -0
  15. package/.agent-src/commands/chat-history/show.md +1 -0
  16. package/.agent-src/commands/chat-history.md +1 -0
  17. package/.agent-src/commands/check-current-md.md +1 -0
  18. package/.agent-src/commands/commit/in-chunks.md +1 -0
  19. package/.agent-src/commands/commit.md +1 -0
  20. package/.agent-src/commands/compress.md +1 -0
  21. package/.agent-src/commands/context/create.md +1 -0
  22. package/.agent-src/commands/context/refactor.md +1 -0
  23. package/.agent-src/commands/context.md +1 -0
  24. package/.agent-src/commands/cost-report.md +1 -0
  25. package/.agent-src/commands/council/default.md +1 -0
  26. package/.agent-src/commands/council/design.md +1 -0
  27. package/.agent-src/commands/council/optimize.md +1 -0
  28. package/.agent-src/commands/council/pr.md +1 -0
  29. package/.agent-src/commands/council.md +1 -0
  30. package/.agent-src/commands/create-pr/description-only.md +1 -0
  31. package/.agent-src/commands/create-pr.md +1 -0
  32. package/.agent-src/commands/e2e-heal.md +1 -0
  33. package/.agent-src/commands/e2e-plan.md +1 -0
  34. package/.agent-src/commands/estimate-ticket.md +1 -0
  35. package/.agent-src/commands/feature/dev.md +1 -0
  36. package/.agent-src/commands/feature/explore.md +1 -0
  37. package/.agent-src/commands/feature/plan.md +1 -0
  38. package/.agent-src/commands/feature/refactor.md +1 -0
  39. package/.agent-src/commands/feature/roadmap.md +1 -0
  40. package/.agent-src/commands/feature.md +1 -0
  41. package/.agent-src/commands/fix/ci.md +1 -0
  42. package/.agent-src/commands/fix/portability.md +1 -0
  43. package/.agent-src/commands/fix/pr-bot-comments.md +1 -0
  44. package/.agent-src/commands/fix/pr-comments.md +1 -0
  45. package/.agent-src/commands/fix/pr-developer-comments.md +1 -0
  46. package/.agent-src/commands/fix/refs.md +1 -0
  47. package/.agent-src/commands/fix/seeder.md +1 -0
  48. package/.agent-src/commands/fix.md +1 -0
  49. package/.agent-src/commands/grill-me.md +1 -0
  50. package/.agent-src/commands/implement-ticket.md +1 -0
  51. package/.agent-src/commands/jira-ticket.md +1 -0
  52. package/.agent-src/commands/judge/on-diff.md +1 -0
  53. package/.agent-src/commands/judge/solo.md +1 -0
  54. package/.agent-src/commands/judge/steps.md +1 -0
  55. package/.agent-src/commands/judge.md +1 -0
  56. package/.agent-src/commands/memory/add.md +1 -0
  57. package/.agent-src/commands/memory/load.md +1 -0
  58. package/.agent-src/commands/memory/mine-session.md +1 -0
  59. package/.agent-src/commands/memory/promote.md +1 -0
  60. package/.agent-src/commands/memory/propose.md +1 -0
  61. package/.agent-src/commands/memory.md +1 -0
  62. package/.agent-src/commands/mode.md +1 -0
  63. package/.agent-src/commands/module/create.md +1 -0
  64. package/.agent-src/commands/module/explore.md +1 -0
  65. package/.agent-src/commands/module.md +1 -0
  66. package/.agent-src/commands/onboard.md +1 -0
  67. package/.agent-src/commands/optimize/agents-dir.md +1 -0
  68. package/.agent-src/commands/optimize/augmentignore.md +1 -0
  69. package/.agent-src/commands/optimize/rtk.md +1 -0
  70. package/.agent-src/commands/optimize/skills.md +1 -0
  71. package/.agent-src/commands/optimize-prompt.md +1 -0
  72. package/.agent-src/commands/optimize.md +1 -0
  73. package/.agent-src/commands/orchestrate.md +1 -0
  74. package/.agent-src/commands/override/create.md +1 -0
  75. package/.agent-src/commands/override/manage.md +1 -0
  76. package/.agent-src/commands/override.md +1 -0
  77. package/.agent-src/commands/package-reset.md +1 -0
  78. package/.agent-src/commands/package-test.md +1 -0
  79. package/.agent-src/commands/prepare-for-review.md +1 -0
  80. package/.agent-src/commands/project-analyze.md +1 -0
  81. package/.agent-src/commands/project-health.md +1 -0
  82. package/.agent-src/commands/quality-fix.md +1 -0
  83. package/.agent-src/commands/refine-ticket.md +1 -0
  84. package/.agent-src/commands/research/deep.md +1 -0
  85. package/.agent-src/commands/research/report.md +1 -0
  86. package/.agent-src/commands/research.md +1 -0
  87. package/.agent-src/commands/review-changes.md +1 -0
  88. package/.agent-src/commands/review-routing.md +1 -0
  89. package/.agent-src/commands/roadmap/ai-council.md +1 -0
  90. package/.agent-src/commands/roadmap/create.md +1 -0
  91. package/.agent-src/commands/roadmap/process-full.md +1 -0
  92. package/.agent-src/commands/roadmap/process-phase.md +1 -0
  93. package/.agent-src/commands/roadmap/process-step.md +1 -0
  94. package/.agent-src/commands/roadmap.md +1 -0
  95. package/.agent-src/commands/rule-compliance-audit.md +1 -0
  96. package/.agent-src/commands/set-cost-profile.md +1 -0
  97. package/.agent-src/commands/sync-agent-settings.md +1 -0
  98. package/.agent-src/commands/sync-gitignore/fix.md +1 -0
  99. package/.agent-src/commands/sync-gitignore.md +1 -0
  100. package/.agent-src/commands/tests/create.md +1 -0
  101. package/.agent-src/commands/tests/execute.md +1 -0
  102. package/.agent-src/commands/tests.md +1 -0
  103. package/.agent-src/commands/threat-model.md +1 -0
  104. package/.agent-src/commands/update-form-request-messages.md +1 -0
  105. package/.agent-src/commands/upstream-contribute.md +1 -0
  106. package/.agent-src/commands/work.md +1 -0
  107. package/.agent-src/personas/cmo.md +122 -0
  108. package/.agent-src/personas/customer-success-lead.md +126 -0
  109. package/.agent-src/personas/growth-pm.md +134 -0
  110. package/.agent-src/personas/revops.md +125 -0
  111. package/.agent-src/skills/activation-design/SKILL.md +160 -0
  112. package/.agent-src/skills/churn-prevention/SKILL.md +156 -0
  113. package/.agent-src/skills/content-funnel-design/SKILL.md +170 -0
  114. package/.agent-src/skills/deal-qualification-meddic/SKILL.md +165 -0
  115. package/.agent-src/skills/editorial-calendar/SKILL.md +161 -0
  116. package/.agent-src/skills/expansion-playbook/SKILL.md +171 -0
  117. package/.agent-src/skills/forecast-accuracy/SKILL.md +157 -0
  118. package/.agent-src/skills/fundraising-narrative/SKILL.md +189 -0
  119. package/.agent-src/skills/funnel-analysis/SKILL.md +26 -2
  120. package/.agent-src/skills/gtm-launch/SKILL.md +165 -0
  121. package/.agent-src/skills/messaging-architecture/SKILL.md +184 -0
  122. package/.agent-src/skills/onboarding-design/SKILL.md +158 -0
  123. package/.agent-src/skills/pipeline-strategy/SKILL.md +159 -0
  124. package/.agent-src/skills/positioning-strategy/SKILL.md +177 -0
  125. package/.agent-src/skills/retention-loops/SKILL.md +161 -0
  126. package/.agent-src/skills/subagent-orchestration/SKILL.md +1 -1
  127. package/.agent-src/skills/voice-and-tone-design/SKILL.md +163 -0
  128. package/.agent-src/templates/agents/agent-project-settings.example.yml +1 -1
  129. package/.claude-plugin/marketplace.json +17 -2
  130. package/AGENTS.md +4 -4
  131. package/CHANGELOG.md +60 -2257
  132. package/README.md +59 -33
  133. package/docs/architecture/augment-projection.md +70 -0
  134. package/docs/architecture/claude-bundle.md +77 -0
  135. package/docs/architecture/compression.md +67 -0
  136. package/docs/architecture/multi-tool-projection.md +72 -0
  137. package/docs/architecture.md +32 -55
  138. package/docs/archive/CHANGELOG-pre-2.2.0.md +2138 -0
  139. package/docs/archive/CHANGELOG-pre-2.7.0.md +185 -0
  140. package/docs/catalog.md +19 -3
  141. package/docs/contracts/CHANGELOG-conventions.md +121 -0
  142. package/docs/contracts/adr-gtm-context-spine.md +115 -0
  143. package/docs/contracts/command-surface-tiers.md +145 -0
  144. package/docs/contracts/context-spine.md +50 -12
  145. package/docs/contracts/cross-wing-handoff.md +3 -3
  146. package/docs/contracts/mcp-cloud-scope.md +193 -21
  147. package/docs/contracts/mcp-phase-1-scope.md +1 -0
  148. package/docs/contracts/persona-schema.md +20 -3
  149. package/docs/decisions/ADR-007-agent-discovery-scopes.md +67 -0
  150. package/docs/guidelines/gtm-handoff.md +114 -0
  151. package/docs/setup/enterprise-and-offline.md +201 -0
  152. package/docs/setup/per-ide/augment.md +37 -25
  153. package/package.json +1 -1
  154. package/scripts/_bootstrap_tier_frontmatter.py +151 -0
  155. package/scripts/agent-config +146 -83
  156. package/scripts/hermetic-install.sh +235 -0
  157. package/scripts/install.py +8 -1
  158. package/scripts/lint_command_tiers.py +115 -0
  159. package/scripts/lint_context_spine_usage.py +4 -1
  160. package/scripts/mcp_server/__init__.py +5 -0
  161. package/scripts/schemas/command.schema.json +5 -0
  162. package/scripts/schemas/persona.schema.json +5 -0
  163. package/scripts/schemas/skill.schema.json +2 -2
  164. package/scripts/skill_linter.py +177 -3
@@ -0,0 +1,165 @@
1
+ ---
2
+ name: deal-qualification-meddic
3
+ description: "Use when qualifying or disqualifying a single deal — MEDDIC slots with evidence, inversion test, disqualification heuristic. Triggers on 'is this deal real', 'should we walk away'."
4
+ status: active
5
+ tier: senior
6
+ source: package
7
+ domain: product
8
+ context_spine: [product, customer-segment]
9
+ ---
10
+
11
+ # deal-qualification-meddic
12
+
13
+ ## When to use
14
+
15
+ - A single deal needs a qualification call construction or a re-qualification mid-cycle — the deal is in pipeline but the team cannot answer *"who signs, on what criterion, against what pain, by when"* in writing.
16
+ - Disqualification is overdue — a deal has slipped two stages or two quarters and the team is reluctant to walk, so resources are bleeding into a cell that should not be in pipeline.
17
+ - A rep keeps reporting *"strong champion"* but the deal stalls — qualification needs to separate champion confidence from economic-buyer reality.
18
+
19
+ Do NOT use to design pipeline stages (route to
20
+ `pipeline-strategy`), construct the forecast call (route to
21
+ `forecast-accuracy`), or build cross-deal pattern libraries (out of
22
+ scope — this skill is single-deal qualification, one cycle).
23
+
24
+ ## Cognition cluster
25
+
26
+ - **Mental model 30 — Inversion.** Do not ask *"why should this deal
27
+ close?"* — ask *"name the reason this deal will not close."* If no
28
+ answer survives, qualification is incomplete; if the answer is
29
+ load-bearing and the team has no countermeasure, disqualification
30
+ is the call. See
31
+ [`docs/contracts/mental-models.md`](../../../docs/contracts/mental-models.md) § 30.
32
+ - **Mental model 9 — Hypothesis-driven thinking.** Each MEDDIC slot
33
+ is a hypothesis with falsification evidence. *"Mary is the
34
+ champion"* is a claim; *"Mary briefed two peers without us in the
35
+ room and reported back unprompted"* is evidence. Slots without
36
+ evidence are unfilled, regardless of rep confidence. See
37
+ `mental-models.md` § 9.
38
+ - **Mental model 13 — Occam's razor.** When MEDDIC slots conflict,
39
+ the simpler explanation is usually right: *"the buyer does not
40
+ feel the pain on the same timeline we do"* beats *"procurement is
41
+ unusually slow this quarter"*. Pick the simpler explanation; it
42
+ changes the move. See `mental-models.md` § 13.
43
+ - **Context-spine — product + customer-segment.** Read the
44
+ **product** slot for sellable scope (a deal asking for non-goal
45
+ scope is not qualified, it is mis-sold), and the
46
+ **customer-segment** slot for the segment's switch-event shape —
47
+ pain claims that do not match the segment's known switch events
48
+ are coaching opportunities, not qualifications. See
49
+ [`context-spine`](../../../docs/contracts/context-spine.md).
50
+
51
+ ## Procedure
52
+
53
+ ### Step 0: Pull the deal record
54
+
55
+ Latest call notes, last three buyer messages, named contacts and
56
+ their org roles, current stage, age in stage, and the
57
+ `stage-definitions.md` from `pipeline-strategy`. Without exit
58
+ criteria you cannot test whether the deal earned its current stage.
59
+
60
+ ### Step 1: Walk the six MEDDIC slots with evidence
61
+
62
+ For each slot, write the claim **plus** the evidence (a buyer
63
+ artefact, a recording, a forwarded email, a board agenda) — not
64
+ *"rep believes"*.
65
+
66
+ 1. **Metrics.** *"\<Buyer\> will measure \<our value\> as
67
+ \<quantified metric\> over \<window\>."* Evidence: buyer wrote
68
+ the metric or quoted it back unprompted.
69
+ 2. **Economic buyer.** *"\<Name, title\> signs the PO."* Evidence:
70
+ buyer-side org chart confirmed; the EB has met the team or
71
+ approved the project unblocked by the champion.
72
+ 3. **Decision criteria.** *"\<Buyer\> chooses on \<criteria\>, in
73
+ that order."* Evidence: criteria from the buyer's RFP, scorecard,
74
+ or written summary — not the rep's inference.
75
+ 4. **Decision process.** *"\<Steps and approvers\>, ending
76
+ \<date\>."* Evidence: a written timeline shared by the buyer.
77
+ 5. **Identify pain.** *"\<Pain\> costs \<\$\>/month;
78
+ business event \<X\> forces resolution by \<date\>."* Evidence:
79
+ buyer named the cost and the forcing event without prompting.
80
+ 6. **Champion.** *"\<Name\> sells internally without us in the
81
+ room; benefits if we win."* Evidence: champion forwarded an
82
+ internal email, briefed peers, or named the personal win.
83
+
84
+ ### Step 2: Inversion — name the reason this deal will not close
85
+
86
+ Write the one sentence that, if true, kills the deal. If no
87
+ sentence is true, the deal is qualified for its stage. If a sentence
88
+ is true and there is no countermeasure planned, the deal moves to
89
+ **disqualified-pending-evidence**.
90
+
91
+ ### Step 3: Run the disqualification heuristic
92
+
93
+ Disqualify if any two of:
94
+
95
+ 1. Economic buyer is unnamed or never met the team after two cycles.
96
+ 2. No metric in writing after a discovery call and a follow-up.
97
+ 3. No forcing event — pain exists but resolution is *"someday"*.
98
+ 4. Champion cannot articulate the personal win when asked directly.
99
+
100
+ Disqualification is not failure; it is recovered selling time.
101
+
102
+ ### Step 4: Set re-qualification triggers
103
+
104
+ For slots still open, set the trigger and deadline: *"\<slot\>
105
+ re-qualified when \<buyer artefact\> arrives by \<date\>."* If the
106
+ date passes without the artefact, the slot reverts to unfilled and
107
+ Step 3 runs again.
108
+
109
+ ### Step 5: Hand back
110
+
111
+ Hand the MEDDIC card, the inversion sentence, and the re-qualification
112
+ triggers to the rep for the next buyer interaction and to
113
+ [`forecast-accuracy`](../forecast-accuracy/SKILL.md) for the
114
+ forecast call. A deal with two or more unfilled MEDDIC slots cannot
115
+ be **commit**, regardless of $ value or stage.
116
+
117
+ ## Related Skills
118
+
119
+ **WHEN to use this**
120
+
121
+ - Qualifying or disqualifying a single deal one cycle at a time.
122
+ - Building the MEDDIC card with falsifiable evidence per slot.
123
+
124
+ **WHEN NOT to use this**
125
+
126
+ - Designing or auditing pipeline stages — route to
127
+ [`pipeline-strategy`](../pipeline-strategy/SKILL.md).
128
+ - Constructing the quarterly forecast call — route to
129
+ [`forecast-accuracy`](../forecast-accuracy/SKILL.md).
130
+ - Diagnosing product-led signup → activation funnels — route to
131
+ [`funnel-analysis`](../funnel-analysis/SKILL.md).
132
+
133
+ ## When the agent should load this
134
+
135
+ - "Qualify this deal — is it real?"
136
+ - "Should we walk away from \<deal\>?"
137
+ - "Why is this stuck in proposal for 60 days?"
138
+ - "Was wissen wir wirklich über den Decision Process?"
139
+
140
+ ## Output
141
+
142
+ 1. **`meddic-card.md`** — six slots, one claim per slot with evidence link or quote. Unfilled slots flagged.
143
+ 2. **`inversion-sentence.md`** — the one reason this deal will not close; countermeasure (or *"none — disqualify"*).
144
+ 3. **`requalification-triggers.md`** — per-slot trigger + deadline + revert behaviour.
145
+
146
+ ## Gotcha
147
+
148
+ - *"Strong champion"* without the personal-win sentence in writing is rep optimism, not qualification.
149
+ - A metric the rep wrote on the buyer's behalf is a metric the buyer will not defend in procurement — it must come from the buyer or be quoted back unprompted.
150
+ - Decision process *"once legal signs off"* is not a process; it is a hand-wave. Demand approvers, sequence, and dates.
151
+
152
+ ## Do NOT
153
+
154
+ - Do NOT call a slot filled because *"the rep is sure"* — qualification is artefact-driven, not confidence-driven.
155
+ - Do NOT keep a deal in **commit** with two or more unfilled slots regardless of size; size flatters, slots don't.
156
+ - Do NOT skip disqualification because the deal is large — large deals with weak qualification miss louder.
157
+
158
+ ## Runnable example
159
+
160
+ Mid-market deal, $ 180 k ACV, stuck at Proposal for 47 days.
161
+
162
+ - MEDDIC card — **Metrics:** *"reduce ticket-handle-time by 30 %"* (buyer wrote it, ✓). **Economic buyer:** *"VP Support — never met"* (✗). **Decision criteria:** RFP scoring (✓). **Decision process:** *"procurement after legal — no dates"* (✗). **Pain:** *"reps overloaded — no forcing event"* (✗ — forcing event missing). **Champion:** *"Team lead Mary — personal win unclear"* (partial).
163
+ - Inversion sentence — *"VP Support has not seen the value case and there is no forcing event; quarter rolls and the deal slides one more cycle."* Countermeasure: book VP-Support exec session within 10 days OR disqualify.
164
+ - Disqualification heuristic — three slots unfilled → **disqualified-pending-evidence**; reverts to qualified only if exec session happens by deadline.
165
+ - Hand-off — card + inversion + triggers → rep for VP-Support outreach; `forecast-accuracy` moves the deal out of **commit** until the slots fill.
@@ -0,0 +1,161 @@
1
+ ---
2
+ name: editorial-calendar
3
+ description: "Use when shaping cadence — evergreen / campaign / reactive split, beat-mapping across channel stages, content-debt management. Triggers on 'plan our content cadence', 'what should we publish'."
4
+ status: active
5
+ tier: senior
6
+ source: package
7
+ domain: product
8
+ context_spine: [product, customer-segment, channel-stage, funnel-stage]
9
+ ---
10
+
11
+ # editorial-calendar
12
+
13
+ ## When to use
14
+
15
+ - A content programme is producing assets in bursts (campaign-shaped only) and the cadence is brittle the quarter the campaign rests.
16
+ - The team owes more drafts than it can ship and the backlog is functioning as content-debt rather than queue — surface and prioritise.
17
+ - A new audience-by-message matrix exists and the team needs to translate it into a repeating cadence with beat-mapping across channel stages.
18
+
19
+ Do NOT use to draft the asset itself (downstream), pick channel-
20
+ specific tactics like ad creative or email subject lines (out of
21
+ scope — channel-agnostic skill), or sequence a one-off launch wave
22
+ (route to `gtm-launch`).
23
+
24
+ ## Cognition cluster
25
+
26
+ - **Mental model 3 — Pareto principle (80/20).** Roughly 20 % of
27
+ the editorial beats produce 80 % of the audience pull. The
28
+ calendar is the discipline of doubling down on the 20 % and
29
+ letting the 80 % be reactive, not core. See
30
+ [`docs/contracts/mental-models.md`](../../../docs/contracts/mental-models.md) § 3.
31
+ - **Mental model 18 — Pull vs. push systems.** Evergreen content is
32
+ a *pull* system (the audience finds it); campaigns are a *push*
33
+ system (we time the arrival). The calendar separates the two so
34
+ campaign collapse does not collapse pull. See `mental-models.md`
35
+ § 18.
36
+ - **Context-spine — product + customer-segment + channel-stage +
37
+ funnel-stage.** Read **product** for what is shippable as proof,
38
+ **customer-segment** for who reads which beat, **channel-stage**
39
+ for where the audience is in the awareness arc, and
40
+ **funnel-stage** for whether a beat is top-of-funnel reach or
41
+ mid-funnel proof. See
42
+ [`context-spine`](../../../docs/contracts/context-spine.md).
43
+
44
+ ## Procedure
45
+
46
+ ### Step 0: Inherit the message stack and audience matrix
47
+
48
+ Identify the locked `primary-message.md`, `supporting-proofs.md`,
49
+ and `audience-matrix.md` from
50
+ [`messaging-architecture`](../messaging-architecture/SKILL.md). The
51
+ editorial calendar is a cadence translation of the matrix; without
52
+ the matrix it is content-as-impulse, not content-as-system.
53
+
54
+ ### Step 1: Analyze the inherited cadence
55
+
56
+ Review existing surfaces: what has the team published in the last
57
+ two quarters, what is its evergreen pull (organic traffic over
58
+ time), and what was campaign-only (a single spike and decay). The
59
+ output is two lists: *load-bearing evergreen* and *campaign
60
+ artefacts that have already paid back*. Everything else is content
61
+ debt — name it explicitly.
62
+
63
+ ### Step 2: Classify each beat — evergreen · campaign · reactive
64
+
65
+ Three buckets, never collapsed:
66
+
67
+ - **Evergreen.** Beats that map to a load-bearing proof and a
68
+ durable audience question. Authored once, refreshed quarterly.
69
+ Pull system.
70
+ - **Campaign.** Beats keyed to a wave (launch, event, season).
71
+ Authored to a date. Push system. Decommissioned by name when the
72
+ wave closes.
73
+ - **Reactive.** Beats keyed to a market or competitor event. No
74
+ pre-allocated slot; the calendar reserves *capacity*, not a
75
+ topic.
76
+
77
+ ### Step 3: Beat-map across channel-stage × funnel-stage
78
+
79
+ For each audience in the matrix, plot **one** evergreen beat per
80
+ *(channel-stage, funnel-stage)* cell that the audience actually
81
+ lives in. Empty cells are explicit gaps; they do not auto-fill.
82
+ Beats per cell beyond one are content noise, not coverage.
83
+
84
+ ### Step 4: Validate against the Pareto cut and the pull-vs-push line
85
+
86
+ Validate the calendar on three checks:
87
+
88
+ 1. **Pareto cut.** Identify the 20 % of beats that, if dropped,
89
+ would visibly shrink audience pull. Verify exactly that 20 % has
90
+ the highest authoring investment. If high investment is going
91
+ into the 80 %, the calendar is upside-down — rebalance.
92
+ 2. **Pull-vs-push separation.** Confirm campaign collapse does not
93
+ collapse evergreen — evergreen surfaces are not on the campaign
94
+ author's critical path.
95
+ 3. **Reactive capacity.** Confirm reactive slots reserve hours, not
96
+ topics. A reactive slot with a pre-decided topic is a campaign
97
+ in disguise.
98
+
99
+ ### Step 5: Manage content debt explicitly
100
+
101
+ Inventory the debt list from Step 1. For each item: *repay*
102
+ (refresh and republish), *archive* (remove from indexed surfaces),
103
+ or *retire* (delete). Untouched debt compounds — it is not free to
104
+ leave on the shelf.
105
+
106
+ ### Step 6: Hand back
107
+
108
+ Hand the artefacts to [`content-funnel-design`](../content-funnel-design/SKILL.md)
109
+ for funnel-stage-to-shape mapping, and to
110
+ [`release-comms`](../release-comms/SKILL.md) when campaign waves
111
+ land near a launch wave from
112
+ [`gtm-launch`](../gtm-launch/SKILL.md).
113
+
114
+ ## Related Skills
115
+
116
+ **WHEN to use this**
117
+
118
+ - The unit of work is the *cadence* (which beats repeat at which frequency on which surface), not a single asset.
119
+ - A team is over-investing in campaigns and under-investing in evergreen pull.
120
+ - A content-debt list is silently growing and needs explicit repay / archive / retire decisions.
121
+
122
+ **WHEN NOT to use this**
123
+
124
+ - Mapping each funnel stage to a content **shape** (deep-dive, comparison, demo) — route to [`content-funnel-design`](../content-funnel-design/SKILL.md).
125
+ - Drafting voice attributes or tone-by-context matrix — route to [`voice-and-tone-design`](../voice-and-tone-design/SKILL.md).
126
+ - Sequencing a launch wave with gates and beats — route to [`gtm-launch`](../gtm-launch/SKILL.md).
127
+ - Authoring the asset copy — out of scope here (downstream).
128
+
129
+ ## When the agent should load this
130
+
131
+ - "Build us an editorial calendar for the next two quarters."
132
+ - "Wir produzieren zu viele Kampagnen-Artefakte — wo ist die Evergreen-Linie?"
133
+ - "Beat-map the cadence against the audience matrix."
134
+ - "What is our content-debt list and what do we repay first?"
135
+ - "Reactive capacity is full of pre-planned topics — fix the calendar."
136
+
137
+ ## Output
138
+
139
+ 1. **`cadence-classification.md`** — every active beat tagged evergreen · campaign · reactive · debt, with the Pareto-cut ranking inside the evergreen bucket.
140
+ 2. **`beat-map.md`** — audience × channel-stage × funnel-stage grid with one evergreen beat per occupied cell, empty cells explicitly named as gaps.
141
+ 3. **`content-debt-ledger.md`** — every debt item with a *repay*, *archive*, or *retire* decision and the date it lapses.
142
+
143
+ ## Gotcha
144
+
145
+ - "We are evergreen-first" is the most common self-description and almost never true on the calendar — verify by authoring investment, not intent.
146
+ - Reactive capacity that is full of pre-planned topics is campaign capacity wearing reactive clothing; the calendar will betray that mid-quarter.
147
+ - Content debt with no archive / retire date is a roadmap pretending to be a queue. Refuse the open-ended *"we will get to it"* row.
148
+
149
+ ## Do NOT
150
+
151
+ - Do NOT draft channel-specific tactics (subject lines, ad creative, video specs) — the calendar is channel-agnostic; tactics live with the channel owner.
152
+ - Do NOT collapse campaign and evergreen on the same critical path — campaign delay should not stall evergreen publish.
153
+ - Do NOT inflate beats past one per matrix cell; the cadence will not survive a quarter of vacation.
154
+
155
+ ## Runnable example
156
+
157
+ Mid-market HR analytics tool, audience matrix locked (HR director · CFO · IT-security):
158
+
159
+ - Cadence classification — evergreen (4 beats, Pareto-cut top 2 carry pull); campaign (2 beats keyed to board-quarter launch wave); reactive (8 hours per fortnight reserved); debt (11 items: 5 repay, 4 archive, 2 retire).
160
+ - Beat-map — HR director (mid-funnel proof): one cohort-retention deep-dive per quarter. CFO (decision-funnel proof): one ROI calculator refresh per board-quarter. IT-security (top-funnel awareness): one HRIS-integration architecture explainer evergreen.
161
+ - Hand-off → `content-funnel-design` translates each beat into its content shape; `release-comms` co-schedules board-quarter campaign with launch waves.
@@ -0,0 +1,171 @@
1
+ ---
2
+ name: expansion-playbook
3
+ description: "Use when designing account-expansion mechanics — upsell vs cross-sell, expansion-trigger signals, NRR cognition. Triggers on 'lift NRR', 'when do we upsell vs cross-sell'."
4
+ status: active
5
+ tier: senior
6
+ source: package
7
+ domain: product
8
+ context_spine: [product, customer-segment]
9
+ ---
10
+
11
+ # expansion-playbook
12
+
13
+ ## When to use
14
+
15
+ - Net Revenue Retention plateaued and the team cannot name *which* expansion lever drives it — upsell, cross-sell, and seat-expansion get conflated under *"NRR"* and the moves are uniform when they should be lever-specific.
16
+ - An expansion play is firing on usage signals alone — accounts using more seats are treated as expansion targets without checking the upstream pain that earned the expansion.
17
+ - A new pricing or packaging change is live and the team needs to re-key the expansion triggers to the new shape before the old triggers misfire.
18
+
19
+ Do NOT use to save churning accounts (route to
20
+ `churn-prevention`), design days 0–30 onboarding (route to
21
+ `onboarding-design`), or build product-led seat-expansion loops
22
+ unattended by a human play (route to `retention-loops`).
23
+
24
+ ## Cognition cluster
25
+
26
+ - **Mental model 18 — Pull vs. push.** Expansion that the buyer
27
+ pulls (because pain or scope grew) compounds; expansion the
28
+ vendor pushes (because the quarter needs the number) corrodes
29
+ the relationship and inflates churn the next cycle. Pick the
30
+ trigger that signals pull. See
31
+ [`docs/contracts/mental-models.md`](../../../docs/contracts/mental-models.md) § 18.
32
+ - **Mental model 9 — Hypothesis-driven thinking.** Each expansion
33
+ trigger is a hypothesis: *"if signal X is true, the buyer will
34
+ accept expansion Y at price Z."* Triggers without falsification
35
+ evidence are wishes; if a trigger has misfired three times, the
36
+ trigger is wrong, not the buyer. See `mental-models.md` § 9.
37
+ - **Mental model 3 — Pareto (80/20).** ~20 % of accounts carry
38
+ ~80 % of expansion potential. Uniform expansion outreach across
39
+ the book is noise; weighted outreach by pull-signal strength is
40
+ reasoning. See `mental-models.md` § 3.
41
+ - **Context-spine — product + customer-segment.** Read the
42
+ **product** slot for which capabilities the segment can absorb
43
+ next (sequencing matters — a cross-sell into a feature the
44
+ segment cannot use yet inflates churn), and the
45
+ **customer-segment** slot for switch-event patterns that signal
46
+ organic scope expansion. See
47
+ [`context-spine`](../../../docs/contracts/context-spine.md).
48
+
49
+ ## Procedure
50
+
51
+ ### Step 0: Inspect — separate upsell, cross-sell, seat-expansion
52
+
53
+ Inspect the trailing four quarters of expansion $ and decompose:
54
+
55
+ 1. **Upsell** — same product family, higher tier (more seats at same SKU, premium tier of same SKU).
56
+ 2. **Cross-sell** — different product family or SKU.
57
+ 3. **Seat-expansion** — same SKU, more users, no tier change.
58
+
59
+ Compute each lever's $ contribution and NRR contribution. A book
60
+ treating these as one number cannot diagnose which lever is
61
+ broken.
62
+
63
+ ### Step 1: Define one expansion trigger per lever, pull-signalled
64
+
65
+ Each trigger is a *buyer-side pull signal* with falsifiable
66
+ evidence:
67
+
68
+ 1. **Upsell trigger** — buyer crosses tier-defining usage ceiling
69
+ (e.g. seats > X, or feature-X-usage > Y) sustained for ≥ 30 days.
70
+ 2. **Cross-sell trigger** — buyer requests a capability that lives
71
+ in an adjacent SKU **twice in 60 days**, by two different
72
+ contacts, in writing.
73
+ 3. **Seat-expansion trigger** — admin invites N new users in a
74
+ rolling 30-day window AND health-score (from `churn-prevention`)
75
+ is green.
76
+
77
+ Triggers that misfire three times in a quarter become Step 0
78
+ diagnoses next quarter; do not patch them inside the quarter.
79
+
80
+ ### Step 2: Map lever → play
81
+
82
+ Each lever gets one default play and one disqualifier:
83
+
84
+ - **Upsell** — quarterly business review surfacing the usage
85
+ ceiling; tier-upgrade proposal with proof-of-value. Disqualifier:
86
+ account on red health score (route to `churn-prevention`).
87
+ - **Cross-sell** — capability-fit discovery call with sponsor +
88
+ user; pilot before contract change. Disqualifier: cross-sell SKU
89
+ not GA for the segment.
90
+ - **Seat-expansion** — admin co-pilot session + group onboarding
91
+ for new seats. Disqualifier: utilisation on existing seats
92
+ < 40 % (you would be selling decay).
93
+
94
+ ### Step 3: Sequence multi-lever opportunities
95
+
96
+ If two triggers fire on the same account in the same quarter:
97
+ sequence **upsell before cross-sell** (compound the contract the
98
+ buyer already believes in) **before seat-expansion** (the most
99
+ fragile lever — easiest to inflate, easiest to lose). Two plays
100
+ fired in parallel signal vendor-push and corrode the relationship.
101
+
102
+ ### Step 4: Compute NRR by lever and verify against the dilution check
103
+
104
+ NRR = (start-ARR + expansion − churn − contraction) ÷ start-ARR,
105
+ per cohort. Decompose expansion into the three levers. **Verify**
106
+ each trigger's pull-signal is intact: confirm the buyer-side
107
+ artefact (usage ceiling crossed, written request, admin invite)
108
+ exists in instrumentation; a lever whose triggers cannot be
109
+ verified against artefacts is push-expansion mislabelled as pull,
110
+ and the next cycle's churn will return the revenue. A book hitting
111
+ 115 % NRR via seat-expansion only is more fragile than a book
112
+ hitting 110 % via upsell + cross-sell — fragility shows up in the
113
+ next cycle's churn, not this one's revenue line.
114
+
115
+ ### Step 5: Hand back
116
+
117
+ Hand the lever decomposition, the three pull-signalled triggers,
118
+ and the per-lever play to CS / AM operations and to
119
+ [`forecast-accuracy`](../forecast-accuracy/SKILL.md) for the
120
+ expansion side of the forecast call. NRR work without lever
121
+ separation is spending in random directions.
122
+
123
+ ## Related Skills
124
+
125
+ **WHEN to use this**
126
+
127
+ - Decomposing NRR into upsell · cross-sell · seat-expansion levers.
128
+ - Defining pull-signalled triggers and per-lever plays.
129
+
130
+ **WHEN NOT to use this**
131
+
132
+ - Saving accounts likely to churn — route to
133
+ [`churn-prevention`](../churn-prevention/SKILL.md).
134
+ - Designing days 0–30 onboarding milestones — route to
135
+ [`onboarding-design`](../onboarding-design/SKILL.md).
136
+ - Product-led, vendor-unattended seat growth loops — route to
137
+ [`retention-loops`](../retention-loops/SKILL.md).
138
+
139
+ ## When the agent should load this
140
+
141
+ - "Lift our NRR — which lever?"
142
+ - "When do we cross-sell vs upsell account X?"
143
+ - "Why does our expansion churn back inside the next cycle?"
144
+ - "Welcher Expansion-Trigger ist eigentlich pull, nicht push?"
145
+
146
+ ## Output
147
+
148
+ 1. **`lever-decomposition.md`** — trailing-quarter expansion $ split into upsell · cross-sell · seat-expansion with NRR contribution per lever.
149
+ 2. **`expansion-triggers.md`** — one pull-signalled trigger per lever · falsifiable evidence · misfire counter.
150
+ 3. **`lever-play-map.md`** — per-lever default play · disqualifier · sequencing rule for multi-trigger accounts.
151
+
152
+ ## Gotcha
153
+
154
+ - A trigger that fires on usage alone, without separating *pain growth* from *consumption growth*, will push when it should pull. Push-expansion lifts this quarter and depresses the next.
155
+ - Seat-expansion looks like the easiest lever and is the most fragile — easy to inflate by selling seats into accounts whose existing seats are under-utilised; the contraction lands one cycle later.
156
+ - *"Strategic"* cross-sell into a capability the segment is not yet ready to use buys revenue and pays for it in churn — segment-readiness is the gate, not vendor-side ambition.
157
+
158
+ ## Do NOT
159
+
160
+ - Do NOT fire multiple expansion plays in parallel on one account; sequence per Step 3.
161
+ - Do NOT count seat-expansion at < 40 % existing-seat utilisation as expansion; it is selling decay.
162
+ - Do NOT chase NRR target without lever decomposition; the headline number can be hit by the most fragile lever.
163
+
164
+ ## Runnable example
165
+
166
+ Mid-market SaaS, NRR 112 % last quarter, churn ticked up this quarter.
167
+
168
+ - Lever decomposition — upsell 35 %, cross-sell 18 %, seat-expansion 47 % of expansion $. Seat-expansion-led growth flagged as fragile.
169
+ - Triggers — *(1)* upsell trigger: seats > 50 sustained 30+ days (band 28–42 % conversion). *(2)* cross-sell: capability request twice in 60 days from two contacts (band 41–61 % conversion). *(3)* seat-expansion: admin invites ≥ 10 new users in 30 days AND green health (band 52–68 % conversion); misfire count for the quarter: 4 — trigger flagged for Step 0 re-diagnosis next quarter.
170
+ - Lever-play map — upsell QBR + tier proposal, disqualified for 3 red-health accounts; cross-sell pilot blocked for 2 accounts where SKU not yet GA-ready for mid-market.
171
+ - Hand-off — decomposition + triggers → CS / AM ops; sequencing rule live; expansion side of `forecast-accuracy` rebuilt on lever-weighted historical close rates.
@@ -0,0 +1,157 @@
1
+ ---
2
+ name: forecast-accuracy
3
+ description: "Use when constructing the forecast call — commit / best-case / pipeline categorisation, deal-level evidence test, accuracy retro-loop. Triggers on 'build the forecast', 'why does our commit miss'."
4
+ status: active
5
+ tier: senior
6
+ source: package
7
+ domain: product
8
+ context_spine: [product, customer-segment]
9
+ ---
10
+
11
+ # forecast-accuracy
12
+
13
+ ## When to use
14
+
15
+ - The quarterly forecast call is being constructed and the team needs a categorisation rule that survives retro — not a feel-good number that flatters this week.
16
+ - Commit has missed two or more quarters and nobody can name which signals broke — the retro-loop is missing or the categorisation rule is unwritten.
17
+ - A new RevOps lead inherits a pipeline and needs to rebuild the forecast call without inheriting last regime's optimism bias.
18
+
19
+ Do NOT use to design pipeline stages (route to
20
+ `pipeline-strategy`), qualify a single deal (route to
21
+ `deal-qualification-meddic`), or build the finance-side
22
+ top-down / bottom-up model (composes against — but does not
23
+ duplicate — the finance-partner forecasting capability,
24
+ via the `forecast-construction-shape` interface).
25
+
26
+ ## Cognition cluster
27
+
28
+ - **Mental model 16 — Leading vs. lagging indicators.** Closed-won
29
+ is lagging; per-stage conversion and MEDDIC-slot completeness
30
+ are leading. A forecast built on lagging signals can only confirm
31
+ the result after it lands. See
32
+ [`docs/contracts/mental-models.md`](../../../docs/contracts/mental-models.md) § 16.
33
+ - **Mental model 29 — Premortem.** Before locking the call, write
34
+ the post-quarter retro as if commit missed by 20 %. The premortem
35
+ surfaces which categorisations are riding on weak evidence; demote
36
+ those before the call locks. See `mental-models.md` § 29.
37
+ - **Mental model 9 — Hypothesis-driven thinking.** Each commit deal
38
+ carries a falsifiable claim: *"this closes by \<date\> because
39
+ \<evidence\>."* If the claim cannot be falsified inside the
40
+ quarter, the deal is best-case, not commit. See
41
+ `mental-models.md` § 9.
42
+ - **Context-spine — product + customer-segment.** Read the
43
+ **product** slot for what is actually GA-shippable this quarter
44
+ (deals depending on non-shipped scope are not commit), and the
45
+ **customer-segment** slot for segment-historical close rates —
46
+ pricing-power and cycle-length differ by segment and the forecast
47
+ must too. See
48
+ [`context-spine`](../../../docs/contracts/context-spine.md).
49
+
50
+ ## Procedure
51
+
52
+ ### Step 0: Inspect — inherit pipeline + qualification artefacts
53
+
54
+ Pull `stage-definitions.md`, `coverage-by-cell.md` from
55
+ `pipeline-strategy`, and the latest `meddic-card.md` per deal from
56
+ `deal-qualification-meddic`. Inspect whether each commit-candidate
57
+ deal carries falsifiable evidence per MEDDIC slot — a forecast
58
+ built without that inspection is rep opinion, not categorisation.
59
+
60
+ ### Step 1: Lock the three categories with falsifiable rules
61
+
62
+ 1. **Commit** — deal closes in-window with ≥ 90 % subjective
63
+ probability **and** MEDDIC slots all filled with evidence **and**
64
+ decision-process has buyer-written dates inside the window.
65
+ 2. **Best-case** — deal *could* close in-window with ≥ 50 %
66
+ probability **and** ≤ 2 MEDDIC slots unfilled **and** at least
67
+ one decision-process date inside the window.
68
+ 3. **Pipeline** — everything else. Pipeline is not a forecast
69
+ category; it is the population from which commit and best-case
70
+ are drawn.
71
+
72
+ Reject *"commit"* placements that do not meet all three commit
73
+ criteria, regardless of $ value or rep confidence.
74
+
75
+ ### Step 2: Apply the segment-historical close rate
76
+
77
+ For each deal, compute *expected $* = $ × segment-historical
78
+ in-window close-rate (trailing four quarters). Aggregate by
79
+ category. If commit-$ exceeds (segment historical commit close-rate
80
+ × pipeline-$ in commit), the call is structurally optimistic — find
81
+ the optimism source before defending the number.
82
+
83
+ ### Step 3: Premortem the commit list
84
+
85
+ Write *"if commit misses by 20 %, the reason is \_\_\_."* The most
86
+ common patterns: (a) one anchor deal slipped, (b) segment cycle
87
+ lengthened, (c) procurement/legal queues bunched at quarter-end.
88
+ Tag each commit deal with which of these would kill it; deals tagged
89
+ with two or more move to best-case.
90
+
91
+ ### Step 4: Construct the call with confidence bands
92
+
93
+ Report **commit $** = sum of commit-tagged after Step 3 demotions.
94
+ **Best-case $** = commit + best-case-tagged. Attach the band:
95
+ *"commit ± \<historical-deviation\>; best-case ± \<historical
96
+ upside\>"*. A call without a band has no honesty about its prior
97
+ miss-rate.
98
+
99
+ ### Step 5: Run the accuracy retro-loop at quarter-end
100
+
101
+ Compare predicted commit / best-case / pipeline to actual
102
+ closed-won by category. Compute per-rep, per-segment, and per-stage
103
+ miss-rate. Patterns that repeat for two quarters become categorisation
104
+ rule changes in Step 1; one-off misses become deal-level evidence
105
+ upgrades in Step 0.
106
+
107
+ ## Related Skills
108
+
109
+ **WHEN to use this**
110
+
111
+ - Constructing the quarterly forecast call from a qualified pipeline.
112
+ - Running the accuracy retro-loop and feeding it back into Step 1.
113
+
114
+ **WHEN NOT to use this**
115
+
116
+ - Designing pipeline stages or per-stage conversion targets — route to
117
+ [`pipeline-strategy`](../pipeline-strategy/SKILL.md).
118
+ - Single-deal qualification or disqualification — route to
119
+ [`deal-qualification-meddic`](../deal-qualification-meddic/SKILL.md).
120
+ - Finance-side top-down model or board-deck forecast — composes
121
+ against (does not replace) the finance-partner forecasting capability
122
+ via the `forecast-construction-shape` interface.
123
+
124
+ ## When the agent should load this
125
+
126
+ - "Build the Q3 forecast call."
127
+ - "Why does our commit keep missing?"
128
+ - "Run the forecast retro for last quarter."
129
+ - "Welche Deals gehören wirklich in Commit?"
130
+
131
+ ## Output
132
+
133
+ 1. **`forecast-call.md`** — commit $ and best-case $ with confidence bands; per-segment breakdown.
134
+ 2. **`commit-list.md`** — one row per commit deal: $, segment, MEDDIC-completeness, decision-process date, premortem tag (none / single-risk / two-risk demoted).
135
+ 3. **`retro-deltas.md`** *(at quarter-end)* — predicted vs actual per category, per-segment, per-rep miss-rate, and the categorisation-rule change (if any) for next quarter.
136
+
137
+ ## Gotcha
138
+
139
+ - *"Strong commit"* without buyer-written dates inside the window is a wish, not a forecast. Subjective probability without artefact evidence is what the retro will punish.
140
+ - Segment-historical close rates change after a pricing change, a packaging change, or a competitive shift. Recompute the rates when the segment shape changes, otherwise the call inherits the old regime's optimism.
141
+ - Reporting commit as a point estimate without the band hides the prior miss-rate. A team that has missed by 18 % twice and reports commit ± 0 % is performing forecasting, not doing it.
142
+
143
+ ## Do NOT
144
+
145
+ - Do NOT place a deal in commit because the size is large; size is independent of evidence.
146
+ - Do NOT skip the premortem on commit deals — most misses come from a small number of anchor deals slipping, and the premortem is where you catch them.
147
+ - Do NOT change categorisation rules on a single-quarter miss; rules change on a two-quarter pattern.
148
+
149
+ ## Runnable example
150
+
151
+ End of Q2, last two commits missed by 14 % and 21 %.
152
+
153
+ - Step 1 enforcement — three deals placed in commit had ≥ 2 MEDDIC slots open; demoted to best-case (–$ 540 k commit, +$ 540 k best-case).
154
+ - Segment close-rate — Mid-Market historical commit close-rate is 78 %; commit-$ implies 91 % aggregate close-rate; structural optimism of ~$ 320 k.
155
+ - Premortem — two anchor deals (each > 10 % of commit) tagged single-risk (procurement queue); one tagged two-risk (no buyer-written date) → demoted.
156
+ - Final call — *"commit $ 4.1 m ± 12 % (historical deviation); best-case $ 6.7 m + 8 % / – 14 %."* Commit-list flags the two procurement-risk anchors for VP-level intervention.
157
+ - Retro at quarter-end — predicted commit $ 4.1 m, actual $ 4.0 m; rule unchanged; one rep over-commits two quarters running → categorisation-coaching action.