@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,158 @@
1
+ ---
2
+ name: onboarding-design
3
+ description: "Use when designing customer onboarding — time-to-first-value, milestone design, friction audit, drop-off diagnosis. Triggers on 'fix onboarding', 'why do new accounts churn fast'."
4
+ status: active
5
+ tier: senior
6
+ source: package
7
+ domain: product
8
+ context_spine: [product, customer-segment, funnel-stage]
9
+ ---
10
+
11
+ # onboarding-design
12
+
13
+ ## When to use
14
+
15
+ - New accounts churn inside their first 30 days and the team cannot name which onboarding milestone they failed to reach — drop-off is treated as a single number, not a stage-by-stage signal.
16
+ - A new segment is being onboarded against an onboarding flow built for a previous segment — the milestones likely do not match the new segment's switch-event shape.
17
+ - Time-to-first-value is *"days, maybe weeks"* — the answer needs to be a number with a falsifiable definition, not a sentiment.
18
+
19
+ Do NOT use to onboard employees (that is the Wing-4
20
+ employee-onboarding program — different audience, different
21
+ contract), diagnose long-cycle churn (route to
22
+ `churn-prevention`), or run the full visitor → paid funnel (route
23
+ to `funnel-analysis`).
24
+
25
+ ## Cognition cluster
26
+
27
+ - **Mental model 14 — Meadows leverage points.** Onboarding is a
28
+ high-leverage system: a change in the milestone *definition*
29
+ reshapes retention more than a change in the welcome email. Pick
30
+ the leverage point — milestone definition over surface polish.
31
+ See
32
+ [`docs/contracts/mental-models.md`](../../../docs/contracts/mental-models.md) § 14.
33
+ - **Mental model 16 — Leading vs. lagging indicators.**
34
+ Time-to-first-value and milestone-completion are leading; D30
35
+ retention is lagging. Onboarding decisions built on lagging
36
+ signals can only confirm churn after it lands. See
37
+ `mental-models.md` § 16.
38
+ - **Mental model 13 — Occam's razor.** When new accounts drop off,
39
+ the simpler explanation usually wins: *"the first milestone is
40
+ too far from the buyer's job to complete in one session"* beats
41
+ *"users do not understand our value proposition."* Pick the
42
+ simpler explanation; it changes the move. See
43
+ `mental-models.md` § 13.
44
+ - **Context-spine — product + customer-segment + funnel-stage.**
45
+ Read the **product** slot for what the segment can actually
46
+ configure unattended, the **customer-segment** slot for the
47
+ segment's job and switch-event, and the **funnel-stage** slot for
48
+ where activation sits relative to signup and paid. See
49
+ [`context-spine`](../../../docs/contracts/context-spine.md).
50
+
51
+ ## Procedure
52
+
53
+ ### Step 0: Inspect — pull the current onboarding shape
54
+
55
+ Inspect the actual funnel: signup → milestone-1 → milestone-2 →
56
+ activation → D30. For each transition pull conversion rate (with
57
+ band) and median time-to-transition for the last two cohorts.
58
+ Inspect whether the activation event correlates with paid retention;
59
+ if not, the activation event is mis-defined and Step 2 fixes it.
60
+
61
+ ### Step 1: Define time-to-first-value with a falsifiable definition
62
+
63
+ Write the sentence: *"\<Segment\> reaches first value when
64
+ \<observable buyer action\> happens, by \<target hours / days\>
65
+ after signup."* The action must be observable in instrumentation,
66
+ must correlate with paid retention (Step 0 inspection), and must be
67
+ something the buyer accomplishes — not something the product
68
+ displays.
69
+
70
+ ### Step 2: Design three milestones earning activation
71
+
72
+ Each milestone is a buyer action with a definition, a friction
73
+ audit, and a default outcome.
74
+
75
+ 1. **Milestone definition** — one sentence in buyer-action form
76
+ (*"buyer has imported one record"*, not *"buyer has seen the
77
+ import screen"*).
78
+ 2. **Friction audit** — name the three highest-friction steps the
79
+ buyer must clear; each gets a *cheapest-fix* hypothesis.
80
+ 3. **Default outcome** — if the buyer does nothing, what does the
81
+ product do for them? A milestone with no default is a milestone
82
+ the busy half of the segment will miss.
83
+
84
+ ### Step 3: Audit friction at each milestone
85
+
86
+ For each milestone, time the buyer journey: clicks, fields, decision
87
+ points, wait states. Tag each as *blocker* (cannot proceed without
88
+ it), *toll* (proceed but slow), or *fog* (buyer unsure what to do
89
+ next). Fog kills more onboarding than blockers — fog is silent.
90
+
91
+ ### Step 4: Diagnose drop-off by segment × milestone
92
+
93
+ The drop-off is rarely uniform. Segment by segment × milestone;
94
+ the cell with the steepest below-band drop is the binding fix.
95
+ Two cells dropping at once usually means a shared upstream cause
96
+ (account-provisioning failure, ICP mismatch) — fix upstream, not
97
+ in the milestone.
98
+
99
+ ### Step 5: Hand back
100
+
101
+ Hand the time-to-first-value definition, the three milestones with
102
+ friction audits, and the segment × milestone drop-off table to the
103
+ implementing team and to
104
+ [`churn-prevention`](../churn-prevention/SKILL.md) for downstream
105
+ health-score signal definition. Onboarding owns days 0–30;
106
+ churn-prevention owns the signals after.
107
+
108
+ ## Related Skills
109
+
110
+ **WHEN to use this**
111
+
112
+ - Designing or auditing days 0–30 of the customer lifecycle.
113
+ - Defining time-to-first-value as a falsifiable event, not a sentiment.
114
+
115
+ **WHEN NOT to use this**
116
+
117
+ - Long-cycle churn diagnosis (D60+) — route to
118
+ [`churn-prevention`](../churn-prevention/SKILL.md).
119
+ - Account expansion or upsell mechanics — route to
120
+ [`expansion-playbook`](../expansion-playbook/SKILL.md).
121
+ - Full visitor → paid funnel diagnosis — route to
122
+ [`funnel-analysis`](../funnel-analysis/SKILL.md).
123
+ - Activation-event redefinition or aha-moment selection — route to
124
+ [`activation-design`](../activation-design/SKILL.md).
125
+
126
+ ## When the agent should load this
127
+
128
+ - "Fix our onboarding — new accounts churn fast."
129
+ - "Why does cohort-9 drop at milestone-2?"
130
+ - "Define time-to-first-value for the mid-market segment."
131
+ - "Wie viele Klicks bis zum ersten Wert?"
132
+
133
+ ## Output
134
+
135
+ 1. **`time-to-first-value.md`** — falsifiable definition: segment × observable action × target time × correlation with paid retention.
136
+ 2. **`milestones.md`** — three milestones, each with definition · friction audit (blocker / toll / fog) · default outcome.
137
+ 3. **`dropoff-table.md`** — segment × milestone conversion rates with bands; binding-fix cell flagged.
138
+
139
+ ## Gotcha
140
+
141
+ - An activation event that does not correlate with paid retention is a vanity event. The funnel will look healthy and D30 will keep dropping.
142
+ - *"Onboarding emails"* is not onboarding design. Emails are a surface; milestones are the system. Designing emails before milestones is rearranging deck chairs.
143
+ - A milestone without a default outcome assumes the buyer drives the journey. Half of every segment will not — design for the half that will not.
144
+
145
+ ## Do NOT
146
+
147
+ - Do NOT use industry-average onboarding benchmarks as targets; segment shape and product complexity dominate them.
148
+ - Do NOT confuse signup with activation; signup is consent, activation is value.
149
+ - Do NOT redesign milestones one at a time mid-cycle without an A/B holdout — concurrent changes destroy the signal.
150
+
151
+ ## Runnable example
152
+
153
+ B2B mid-market analytics tool, D30 retention sagging from 71 % to 58 % over two quarters.
154
+
155
+ - Time-to-first-value — *"Mid-market: buyer reaches first value when one connected data source returns one rendered dashboard, within 24 hours of signup."* Correlation with D90 paid retention: r = 0.62.
156
+ - Milestones — *(1)* connect data source (friction: OAuth scope confusion = fog; default: paste-CSV fallback). *(2)* save first query (friction: schema picker = toll; default: starter-template per segment). *(3)* share dashboard with one teammate (friction: invite-flow buried = blocker; default: auto-invite admin).
157
+ - Drop-off table — Mid-Market × milestone-1: 41 % conv (band 35–47, vs trailing-cohort median 62 %). Binding fix: OAuth fog at milestone-1.
158
+ - Hand-off — milestones + drop-off → eng team for OAuth-fog fix; `churn-prevention` picks up D30+ health-score signals.
@@ -0,0 +1,159 @@
1
+ ---
2
+ name: pipeline-strategy
3
+ description: "Use when designing or auditing a sales pipeline — stage exit criteria, per-cell conversion, coverage reasoning, leak detection. Triggers on 'tighten our pipeline', 'where is the leak'."
4
+ status: active
5
+ tier: senior
6
+ source: package
7
+ domain: product
8
+ context_spine: [product, customer-segment, channel-stage]
9
+ ---
10
+
11
+ # pipeline-strategy
12
+
13
+ ## When to use
14
+
15
+ - Pipeline stages are named but have no exit criteria — reps move deals on gut and forecasts ride on opinion, not evidence.
16
+ - Coverage is being computed from a flat multiple (*"3x quota"*) without per-stage conversion rates, so the multiple flatters or punishes the team at random.
17
+ - A board ask names *"why did pipeline coverage look fine and the quarter still missed?"* — a leak is hiding inside a healthy-looking total.
18
+
19
+ Do NOT use to qualify a single deal (route to
20
+ `deal-qualification-meddic`), construct the forecast call from a
21
+ locked pipeline (route to `forecast-accuracy`), or configure
22
+ CRM stage fields in a specific vendor tool (out of scope — this
23
+ skill is strategy, not tooling).
24
+
25
+ ## Cognition cluster
26
+
27
+ - **Mental model 6 — Theory of constraints.** A pipeline has one
28
+ binding stage at any time; rates upstream of the constraint are
29
+ inventory that never ships, rates downstream cannot exceed the
30
+ constraint. Find the constraint before changing anything else. See
31
+ [`docs/contracts/mental-models.md`](../../../docs/contracts/mental-models.md) § 6.
32
+ - **Mental model 16 — Leading vs. lagging indicators.** Stage-to-stage
33
+ conversion is leading; closed-won is lagging. A coverage call built
34
+ on lagging signals can only confirm the miss after it lands. See
35
+ `mental-models.md` § 16.
36
+ - **Mental model 3 — Pareto (80/20).** ~20 % of segment × stage cells
37
+ carry ~80 % of revenue risk. Coverage uniformly applied across cells
38
+ is theatre; coverage weighted by cell-level conversion is reasoning.
39
+ See `mental-models.md` § 3.
40
+ - **Context-spine — product + customer-segment + channel-stage.**
41
+ Read the **product** slot for what is actually sellable this
42
+ quarter, the **customer-segment** slot for which segments belong in
43
+ pipeline (and which are pre-pipeline education), and the
44
+ **channel-stage** slot for where each segment enters. See
45
+ [`context-spine`](../../../docs/contracts/context-spine.md).
46
+
47
+ ## Procedure
48
+
49
+ ### Step 0: Inspect — inventory the current pipeline shape
50
+
51
+ Pull stage counts, $ value, age in stage, and stage-to-stage
52
+ conversion for the trailing two quarters. Inspect whether each
53
+ stage has a written exit criterion; if not, write one now (one
54
+ bullet per stage, falsifiable). A pipeline without exit criteria
55
+ cannot be audited.
56
+
57
+ ### Step 1: Lock stage definitions with exit criteria
58
+
59
+ Each stage gets three lines:
60
+
61
+ 1. **Definition** — what the deal looks like in this stage (one sentence).
62
+ 2. **Entry trigger** — the buyer event that moves a deal in (not a rep action).
63
+ 3. **Exit criterion** — the artefact or signal that proves the deal earned the next stage (one bullet, falsifiable; *"meeting booked"* is not falsifiable, *"economic buyer named and confirmed"* is).
64
+
65
+ Reject any stage whose exit criterion is a rep activity ("call
66
+ made") rather than a buyer signal ("buyer confirmed budget owner").
67
+
68
+ ### Step 2: Compute per-stage conversion rates with bands
69
+
70
+ For each stage transition, compute the trailing-quarter rate and a
71
+ 95 % confidence band. Segment by customer-segment (and channel-stage
72
+ if the channel mix changed). Report the band, not the point — a
73
+ 30 % rate on 12 deals and a 30 % rate on 300 deals are different
74
+ signals.
75
+
76
+ ### Step 3: Find the binding constraint
77
+
78
+ The constraint is the stage whose conversion rate is **furthest
79
+ below its segment-historical median, weighted by $ value flowing
80
+ through it**. Add deals upstream of any other stage and watch them
81
+ queue; add deals upstream of the constraint and they queue twice as
82
+ fast. A pipeline-coverage call that ignores the constraint
83
+ multiplies inventory the team cannot ship.
84
+
85
+ ### Step 4: Compute coverage cell by cell, not by total
86
+
87
+ Coverage = (pipeline $ at stage *s*) ÷ (target closed-won $ in
88
+ window) ÷ (cumulative conversion from *s* to closed-won). Compute
89
+ per segment × stage cell. A 3× total can hide a 0.8× cell — the
90
+ 0.8× cell is the quarter's risk.
91
+
92
+ ### Step 5: Name three leaks with falsifiable hypotheses
93
+
94
+ For the three lowest coverage cells (or the three steepest
95
+ conversion-rate drops vs trailing-quarter median), write one
96
+ sentence per leak: *"\<cell\> leaks at \<stage\> because \<cause\>;
97
+ falsified if \<test\> shows \<expected signal\>."* If a cause is
98
+ not testable in under two weeks, the hypothesis is not yet sharp
99
+ enough — sharpen before recommending a fix.
100
+
101
+ ### Step 6: Hand back
102
+
103
+ Hand the locked stages, the per-cell coverage table, and the three
104
+ leak hypotheses to
105
+ [`forecast-accuracy`](../forecast-accuracy/SKILL.md) for
106
+ commit / best-case categorisation, and to
107
+ [`deal-qualification-meddic`](../deal-qualification-meddic/SKILL.md)
108
+ when the leak is upstream qualification, not late-stage execution.
109
+
110
+ ## Related Skills
111
+
112
+ **WHEN to use this**
113
+
114
+ - Designing or auditing pipeline stages and per-stage rates.
115
+ - Computing coverage by segment × stage instead of by total.
116
+
117
+ **WHEN NOT to use this**
118
+
119
+ - Single-deal qualification — route to
120
+ [`deal-qualification-meddic`](../deal-qualification-meddic/SKILL.md).
121
+ - Forecast call construction from a locked pipeline — route to
122
+ [`forecast-accuracy`](../forecast-accuracy/SKILL.md).
123
+ - Product-led conversion-funnel diagnosis (signup → activation → paid) — route to
124
+ [`funnel-analysis`](../funnel-analysis/SKILL.md).
125
+
126
+ ## When the agent should load this
127
+
128
+ - "Tighten our pipeline stages — exit criteria are vibes."
129
+ - "Coverage looks 3× and we still missed. Where is the leak?"
130
+ - "Audit per-stage conversion by segment."
131
+ - "Welche Stage ist das Bottleneck im Quartal?"
132
+
133
+ ## Output
134
+
135
+ 1. **`stage-definitions.md`** — one block per stage: definition · entry trigger · exit criterion (buyer signal, falsifiable).
136
+ 2. **`coverage-by-cell.md`** — table of segment × stage cells with $ pipeline, cumulative conversion, and computed coverage. Cells under 1× flagged.
137
+ 3. **`leak-hypotheses.md`** — three leaks with falsifiable test + expected signal + 2-week deadline.
138
+
139
+ ## Gotcha
140
+
141
+ - A pipeline with exit criteria written as rep activities (*"call made"*) is unauditable — reps move deals on activity, not on buyer signal, and forecasts inherit the noise.
142
+ - Total-pipeline coverage is the wrong unit. A 3× total made of 5× early-stage and 0.5× late-stage will miss the quarter even though the dashboard looks healthy.
143
+ - Per-stage conversion rates without confidence bands are gossip dressed as evidence. Twelve deals give you a band so wide the rate is uninformative.
144
+
145
+ ## Do NOT
146
+
147
+ - Do NOT invent stages to flatter the dashboard. Each stage must have a buyer signal earning the transition.
148
+ - Do NOT compare the quarter's coverage to a fixed historical multiple if segment mix changed — recompute per cell.
149
+ - Do NOT recommend a fix to a leak before naming the falsifiable test that proves the cause.
150
+
151
+ ## Runnable example
152
+
153
+ Mid-market SaaS, total coverage 3.1×, quarter missed by 18 %.
154
+
155
+ - Stages with exit criteria — *Discovery → Qualified (economic buyer named) → Proposal (pricing in writing) → Negotiation (terms in redline) → Won.*
156
+ - Per-cell coverage — Mid-Market × Proposal: **0.7×**. Mid-Market × Discovery: **6.4×**. Enterprise × Negotiation: **2.1×**.
157
+ - Constraint — Proposal → Negotiation conversion 22 % vs 41 % trailing-quarter median (band 14–31 %). Constraint is **Proposal exit**, not pipeline volume.
158
+ - Leaks — *(1)* Mid-Market proposals stall at pricing-page review; falsified if a pre-proposal pricing-walkthrough call lifts Proposal → Negotiation to 35 %+ within four weeks. *(2)* Enterprise Negotiation drags > 60 days; falsified if procurement-checklist shipped at Proposal stage cuts median age by 20 days. *(3)* Discovery overflow is unqualified — route to `deal-qualification-meddic`.
159
+ - Hand-off — coverage table + leaks → `forecast-accuracy` for commit / best-case rebuild on the corrected denominator.
@@ -0,0 +1,177 @@
1
+ ---
2
+ name: positioning-strategy
3
+ description: "Use when locking the market frame — category, segment, alternative, point-of-view — before messaging, launch, or pricing rides on it. Triggers on 'who are we for', 'opposable audit'."
4
+ status: active
5
+ tier: senior
6
+ source: package
7
+ domain: product
8
+ context_spine: [product, customer-segment]
9
+ ---
10
+
11
+ # positioning-strategy
12
+
13
+ ## When to use
14
+
15
+ - A category sentence is missing or contested and the next artefact (messaging, launch, pricing page) is about to inherit the ambiguity.
16
+ - The team can name what the product **does** but cannot name **who it is for**, **against what alternative**, or **what it refuses to be**.
17
+ - An opposable-positioning audit is needed: every claim has to survive *"a reasonable competitor would argue the opposite"*.
18
+
19
+ Do NOT use for peer-versus-peer feature comparison (route to
20
+ `competitive-positioning`), copy generation (route to
21
+ `messaging-architecture`), or pricing-tier construction.
22
+
23
+ ## Cognition cluster
24
+
25
+ - **Mental model 1 — First-principles thinking.** Strip the category to
26
+ the underlying job: who fires what, to make what progress, under
27
+ what pressure. Inherited category labels are the trap; the unit of
28
+ positioning is the job, not the label. See
29
+ [`docs/contracts/mental-models.md`](../../../docs/contracts/mental-models.md) § 1.
30
+ - **Mental model 30 — Inversion.** For every positioning claim, ask
31
+ *"what would a competitor with a credible alternative argue against
32
+ this?"* A claim that has no opposable counter is either trivially
33
+ true or invented — drop it. See `mental-models.md` § 30.
34
+ - **Context-spine — product + customer-segment.** Read the **product**
35
+ slot for non-goals and the **customer-segment** slot for the ICP
36
+ shape before locking the frame. Positioning that contradicts either
37
+ slot fails its own audit. See
38
+ [`context-spine`](../../../docs/contracts/context-spine.md).
39
+
40
+ ## Procedure
41
+
42
+ ### Step 0: Frame the job
43
+
44
+ Write one sentence: *"\<Segment\> hires \<category\> to make progress
45
+ in \<situation\>, when motivated by \<pressure\>, expecting
46
+ \<outcome\>."* If you cannot finish the sentence, route to
47
+ [`customer-research`](../customer-research/SKILL.md); positioning
48
+ without job-evidence is invention, not earning.
49
+
50
+ ### Step 1: Lock the four anchors
51
+
52
+ Each anchor is one sentence; ambiguity here propagates.
53
+
54
+ 1. **Category.** *"We are a \<category\>."* The category must be a
55
+ noun that the segment already uses to describe the budget line
56
+ the purchase comes out of — not a coined term.
57
+ 2. **Segment.** *"For \<segment\>."* Specific enough that a single
58
+ buyer recognises themselves; broad enough that the segment has
59
+ shared switch-events.
60
+ 3. **Alternative.** *"Instead of \<alternative\>."* Name the
61
+ single most-likely incumbent — usually a manual workflow, a
62
+ spreadsheet, or a competing product. *"Doing nothing"* counts.
63
+ 4. **Point of view.** *"Because \<load-bearing belief\>."* The
64
+ belief must be opposable — a credible peer holds the opposite.
65
+
66
+ ### Step 2: Validate via the opposable audit
67
+
68
+ For every anchor, write the **strongest counter** a credible peer
69
+ would make. Validate each anchor against the rule *"a credible peer
70
+ holds the opposite"* — if no counter exists, the anchor is
71
+ unfalsifiable (either trivially true or invented) and must be
72
+ replaced before continuing.
73
+
74
+ The four counters become the **assumption ledger**: explicit beliefs
75
+ the positioning rides on. Each gets a re-evaluation trigger (event +
76
+ metric + threshold) the team will watch for.
77
+
78
+ ### Step 3: Identify non-goals
79
+
80
+ Write three sentences in the form *"We are not for \<adjacent
81
+ segment\>, even though \<surface similarity\>, because \<reason
82
+ grounded in the product slot\>."* Non-goals are how positioning
83
+ earns its category — without them every prospect looks like a fit
84
+ and the segment dissolves.
85
+
86
+ ### Step 4: Stress-test the frame
87
+
88
+ For each anchor, walk the chain *"if this is true, then…"* through
89
+ two consequences. If a consequence contradicts the product slot,
90
+ the segment slot, or a shipped commitment, the anchor is wrong —
91
+ fix the anchor, not the consequence.
92
+
93
+ ### Step 5: Hand back
94
+
95
+ Hand the four anchors + assumption ledger + non-goals to
96
+ [`messaging-architecture`](../messaging-architecture/SKILL.md) for
97
+ primary-message construction. Do **not** write copy inside this
98
+ skill — that is `messaging-architecture`'s job.
99
+
100
+ ## Related Skills
101
+
102
+ **WHEN to use this**
103
+
104
+ - The unit of work is the four-anchor frame, not a copy block.
105
+ - A category sentence is contested and the next artefact rides on it.
106
+ - An opposable audit is overdue and the team is shipping claims on faith.
107
+
108
+ **WHEN NOT to use this**
109
+
110
+ - Peer-vs-peer ours-vs-theirs verdict table — route to
111
+ [`competitive-positioning`](../competitive-positioning/SKILL.md).
112
+ - Primary message + supporting proofs construction — route to
113
+ [`messaging-architecture`](../messaging-architecture/SKILL.md).
114
+ - Fundraising "why now / why us" framing under capital constraint —
115
+ route to [`fundraising-narrative`](../fundraising-narrative/SKILL.md).
116
+ - Pricing-tier construction or unit-economics modelling — route to
117
+ [`unit-economics-modeling`](../unit-economics-modeling/SKILL.md).
118
+
119
+ ## When the agent should load this
120
+
121
+ - "Wer sind wir eigentlich für?"
122
+ - "Lock the positioning before we write the launch deck."
123
+ - "Brauche eine Category-Sentence für die Pricing-Page."
124
+ - "Run an opposable-positioning audit on the homepage frame."
125
+ - "Welche Alternative ranken wir uns gegen — Doing Nothing oder ein konkreter Wettbewerber?"
126
+
127
+ ## Output
128
+
129
+ 1. **`positioning.md`** — the four anchors (category · segment ·
130
+ alternative · point-of-view), one sentence each, opposable.
131
+ 2. **`assumption-ledger.md`** — one row per anchor: the strongest
132
+ peer-counter, the load-bearing belief, the re-evaluation trigger
133
+ (event + metric + threshold).
134
+ 3. **`non-goals.md`** — three sentences naming adjacent segments the
135
+ product refuses to serve, each grounded in the product slot.
136
+
137
+ ## Gotcha
138
+
139
+ - A category sentence the segment does not already use is a coined
140
+ term, not a category — the segment will route around it.
141
+ - *"Doing nothing"* is the most common alternative and the most
142
+ often skipped. If the buyer's status quo is free, the alternative
143
+ is free, and the positioning has to clear that bar.
144
+ - A positioning frame without non-goals expands until everyone is a
145
+ prospect; that is the failure mode, not the success state.
146
+
147
+ ## Do NOT
148
+
149
+ - Do NOT invent a category to differentiate — earned categories
150
+ beat coined categories; category theatre is the council Q1
151
+ out-of-scope.
152
+ - Do NOT collapse positioning into a tagline; the four anchors are
153
+ the artefact, the tagline is a downstream compression.
154
+ - Do NOT decide pricing tiers from positioning — hand off to
155
+ pricing / unit-economics work.
156
+
157
+ ## Runnable example
158
+
159
+ Mid-market HR analytics tool, contested category:
160
+
161
+ - Frame: *"\<HR leaders at 200–2000-person companies\> hire
162
+ \<workforce-analytics\> to make progress in \<board-quarter
163
+ retention reporting\>, when motivated by \<exec ask for cohort
164
+ attrition\>, expecting \<one-click roll-up by tenure band\>."*
165
+ - Anchors — **category:** workforce analytics. **Segment:** HR
166
+ leaders at 200–2000-person, growing-headcount companies.
167
+ **Alternative:** a manually maintained spreadsheet plus the
168
+ HRIS-vendor's basic report. **Point of view:** *retention beats
169
+ acquisition as the lever in this segment*.
170
+ - Assumption ledger — peer counter to point of view: *"acquisition
171
+ velocity dominates at \< 500 headcount."* Re-evaluation trigger:
172
+ new-hire-rate > 30 % year-on-year AND retention-flat → revisit.
173
+ - Non-goals — *"We are not for enterprise (5000+); not for
174
+ workforce-planning (capacity modelling); not for engagement-survey
175
+ tooling."* Each grounded in the product slot's non-goals list.
176
+ - Hand-off: four anchors → `messaging-architecture` for primary
177
+ message + audience-by-message matrix.
@@ -0,0 +1,161 @@
1
+ ---
2
+ name: retention-loops
3
+ description: "Use when designing product-led retention — habit formation, trigger-action-reward, network vs single-user loops. Triggers on 'why don't users come back', 'design a habit loop'."
4
+ status: active
5
+ tier: senior
6
+ source: package
7
+ domain: product
8
+ context_spine: [product, customer-segment, funnel-stage]
9
+ ---
10
+
11
+ # retention-loops
12
+
13
+ ## When to use
14
+
15
+ - D30 retention is flat or declining and the team cannot name a single product loop that pulls the user back — retention is treated as marketing's problem, not the product's.
16
+ - A new feature shipped but did not move retention — there is no closed loop between trigger, action, and reward, so the feature is a destination, not a habit.
17
+ - The product depends on a network effect that has not been instrumented as a loop — invites, content, or data are produced but the loop that pulls the next user back is unwritten.
18
+
19
+ Do NOT use to fix days 0–30 onboarding friction (route to
20
+ `onboarding-design`), classify churn causes (route to
21
+ `churn-prevention`), or design human-led account-expansion plays
22
+ (route to `expansion-playbook`).
23
+
24
+ ## Cognition cluster
25
+
26
+ - **Mental model 14 — Meadows leverage points.** A retention loop
27
+ is a feedback structure: the leverage sits in the loop's
28
+ *gain* (how strong the reward is) and *delay* (how long until
29
+ the reward lands), not in the surface UI. Pick the leverage
30
+ point — gain or delay — over surface polish. See
31
+ [`docs/contracts/mental-models.md`](../../../docs/contracts/mental-models.md) § 14.
32
+ - **Mental model 8 — Compounding.** A loop with even small gain
33
+ per cycle compounds across cohorts; a one-time activation
34
+ bump does not. Verify which loops compound before investing
35
+ cycles into them. See `mental-models.md` § 8.
36
+ - **Mental model 18 — Pull vs. push.** A trigger the user pulls
37
+ (intrinsic need surfaced by the product) compounds; a trigger
38
+ the vendor pushes (marketing notification firing) decays the
39
+ channel and trains the user to mute. See `mental-models.md` § 18.
40
+ - **Context-spine — product + customer-segment + funnel-stage.**
41
+ Read the **product** slot for which capability can carry a loop
42
+ (a loop is only as strong as the action it routes through), the
43
+ **customer-segment** slot for which segments have the latent
44
+ need the loop addresses, and the **funnel-stage** slot for where
45
+ the loop sits relative to activation and paid. See
46
+ [`context-spine`](../../../docs/contracts/context-spine.md).
47
+
48
+ ## Procedure
49
+
50
+ ### Step 0: Inspect — name the current loops, if any
51
+
52
+ Inspect the product. For each suspected loop, write the closed
53
+ form: *"\<trigger\> → \<action\> → \<reward\> → \<trigger again\>."*
54
+ If the loop cannot be written closed, it is not a loop; it is a
55
+ funnel ending. Inspect whether the reward arrives quickly enough
56
+ to reinforce the action — verify the delay against the segment's
57
+ attention cycle.
58
+
59
+ ### Step 1: Classify each loop as single-user vs network
60
+
61
+ 1. **Single-user loop** — trigger and reward both originate from
62
+ the same user (a daily-summary email triggered by yesterday's
63
+ activity).
64
+ 2. **Network loop** — trigger or reward involves another user
65
+ (a teammate's comment, a partner's reply, a customer's reaction).
66
+
67
+ Network loops compound harder but require minimum-viable-network
68
+ density; below density they look broken. Classify before investing.
69
+
70
+ ### Step 2: Audit the gain and the delay per loop
71
+
72
+ For each loop:
73
+
74
+ 1. **Gain per cycle** — what observable utility does the user
75
+ receive (information, social affirmation, time saved, reduced
76
+ error)? Gain measured as the user's revealed willingness to
77
+ repeat the action.
78
+ 2. **Delay** — time from trigger to reward. A delay longer than the
79
+ segment's attention window kills the loop regardless of gain.
80
+ 3. **Decay** — does the loop weaken when the user already has the
81
+ reward? Most product loops decay; design the next loop before
82
+ the first decays.
83
+
84
+ ### Step 3: Pick the binding loop and isolate it
85
+
86
+ Of the loops named, pick the one whose gain × frequency × eligible
87
+ segment-size is largest. **Verify** the loop is intrinsic-pull, not
88
+ vendor-push: confirm the trigger originates from a user action or
89
+ state, not from a marketing schedule. A push-trigger labelled as a
90
+ loop will burn the channel.
91
+
92
+ ### Step 4: Design the missing step, not the missing UI
93
+
94
+ If the binding loop is broken, the broken step is almost always:
95
+ *trigger missing*, *action too far from trigger*, *reward delayed*,
96
+ or *no path back to next trigger*. Design the missing **step**, not
97
+ a UI tweak. UI tweaks polish a loop that already closes; they do
98
+ not close an open one.
99
+
100
+ ### Step 5: Hand back
101
+
102
+ Hand the loop inventory, the binding-loop selection with gain /
103
+ delay / decay, and the step-level redesign to the implementing
104
+ team and to
105
+ [`activation-design`](../activation-design/SKILL.md) — activation
106
+ is the loop's first cycle, and the activation event must complete
107
+ the first cycle of the binding loop. Retention work without a named
108
+ loop is rearranging notifications.
109
+
110
+ ## Related Skills
111
+
112
+ **WHEN to use this**
113
+
114
+ - Designing or auditing product-led retention loops.
115
+ - Selecting the binding loop and redesigning its missing step.
116
+
117
+ **WHEN NOT to use this**
118
+
119
+ - Days 0–30 onboarding milestones — route to
120
+ [`onboarding-design`](../onboarding-design/SKILL.md).
121
+ - Cause-classification of churn events — route to
122
+ [`churn-prevention`](../churn-prevention/SKILL.md).
123
+ - Human-led expansion plays — route to
124
+ [`expansion-playbook`](../expansion-playbook/SKILL.md).
125
+ - Activation-event selection (first cycle of the binding loop) —
126
+ route to [`activation-design`](../activation-design/SKILL.md).
127
+
128
+ ## When the agent should load this
129
+
130
+ - "Why don't users come back?"
131
+ - "Design a habit loop for feature X."
132
+ - "Is this loop single-user or network?"
133
+ - "Welcher Loop tr\u00e4gt eigentlich unsere Retention?"
134
+
135
+ ## Output
136
+
137
+ 1. **`loop-inventory.md`** — every named loop in closed form: trigger → action → reward → next trigger, with single-user vs network tag.
138
+ 2. **`gain-delay-audit.md`** — per-loop gain · delay · decay · eligible-segment size · revealed repeat-rate.
139
+ 3. **`binding-loop-redesign.md`** — selected loop, the broken step, and the redesign in step terms (not UI terms).
140
+
141
+ ## Gotcha
142
+
143
+ - A loop whose reward arrives outside the segment's attention window will look broken even when gain is high; delay kills loops more often than gain does.
144
+ - A network loop below minimum-viable density behaves like an open funnel; instrumenting it and designing it before density is theatre.
145
+ - *"Notifications fire daily"* is not a loop; it is a push schedule. A loop needs a closed return path from reward to next trigger that the user — not the vendor — closes.
146
+
147
+ ## Do NOT
148
+
149
+ - Do NOT invest in surface UI on a loop that does not close; the loop closes by adding a step, not polishing one.
150
+ - Do NOT instrument network loops as single-user loops; the metric will look broken until the network reaches density.
151
+ - Do NOT design more than one binding loop at a time; concurrent loop changes destroy the signal.
152
+
153
+ ## Runnable example
154
+
155
+ Mid-market collaboration tool, D30 retention 41 %, two suspected loops named.
156
+
157
+ - Loop inventory — *(L1)* user receives daily summary → opens product → reviews changes → leaves a comment → teammate notified (network). *(L2)* user creates a doc → bookmark surfaces in nav → user reopens (single-user).
158
+ - Gain–delay audit — L1 gain medium, delay 24 h (within attention window), decay low (network refreshes); L2 gain low, delay 0, decay high (bookmark stale within a week).
159
+ - Binding loop — L1 selected (gain × frequency × segment-size dominates). Broken step: *"teammate notified"* fires but does not route teammate back to the originating doc — the loop opens.
160
+ - Redesign — add teammate-return path: notification deep-links into the doc at the commented passage; **verify** with cohort A/B at 4-week horizon. Predicted: D30 +6 pp ± 3 pp.
161
+ - Hand-off — loop inventory + redesign → eng team; activation event redefinition (one comment + one teammate notified) handed to `activation-design`.
@@ -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