@event4u/agent-config 2.8.0 → 2.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agent-src/personas/engineering-manager.md +133 -0
- package/.agent-src/personas/finance-partner.md +129 -0
- package/.agent-src/personas/people-strategist.md +126 -0
- package/.agent-src/personas/strategist.md +129 -0
- package/.agent-src/rules/no-roadmap-references.md +19 -0
- package/.agent-src/skills/build-buy-partner/SKILL.md +145 -0
- package/.agent-src/skills/comp-banding/SKILL.md +160 -0
- package/.agent-src/skills/competitive-moat-analysis/SKILL.md +152 -0
- package/.agent-src/skills/contracts-cognition/SKILL.md +147 -0
- package/.agent-src/skills/data-handling-judgment/SKILL.md +155 -0
- package/.agent-src/skills/forecasting/SKILL.md +164 -0
- package/.agent-src/skills/hiring-loop-design/SKILL.md +167 -0
- package/.agent-src/skills/market-entry-analysis/SKILL.md +144 -0
- package/.agent-src/skills/onboarding-program/SKILL.md +157 -0
- package/.agent-src/skills/one-on-one-cadence/SKILL.md +161 -0
- package/.agent-src/skills/org-design/SKILL.md +158 -0
- package/.agent-src/skills/perf-feedback-craft/SKILL.md +157 -0
- package/.agent-src/skills/privacy-review/SKILL.md +160 -0
- package/.agent-src/skills/runway-cognition/SKILL.md +136 -0
- package/.agent-src/skills/scenario-modeling/SKILL.md +139 -0
- package/.agent-src/skills/throughput-vs-morale-tradeoff/SKILL.md +165 -0
- package/.agent-src/skills/unit-economics-modeling/SKILL.md +54 -7
- package/.agent-src/skills/vision-articulation/SKILL.md +146 -0
- package/.agent-src/templates/agents/agent-project-settings.example.yml +1 -1
- package/.agent-src/templates/scripts/telemetry/settings.py +65 -0
- package/.agent-src/templates/scripts/tier_usage_report.py +183 -0
- package/.agent-src/templates/scripts/work_engine/hooks/builtin/memory_visibility.py +32 -3
- package/.agent-src/templates/scripts/work_engine/scoring/memory_visibility.py +147 -1
- package/.claude-plugin/marketplace.json +18 -1
- package/AGENTS.md +1 -1
- package/CHANGELOG.md +134 -0
- package/README.md +34 -14
- package/config/agent-settings.template.yml +28 -0
- package/docs/architecture.md +37 -11
- package/docs/catalog.md +22 -4
- package/docs/contracts/adr-forecast-construction-shape.md +89 -0
- package/docs/contracts/adr-wing4-context-spine.md +125 -0
- package/docs/contracts/command-clusters.md +41 -0
- package/docs/contracts/command-surface-tiers.md +25 -9
- package/docs/contracts/context-spine.md +8 -0
- package/docs/contracts/decision-trace-v1.md +30 -0
- package/docs/contracts/hook-architecture-v1.md +46 -0
- package/docs/contracts/mcp-beta-criteria.md +129 -0
- package/docs/contracts/memory-visibility-v1.md +33 -0
- package/docs/contracts/settings-sync-yaml-subset.md +138 -0
- package/docs/guidelines/wing4-handoff.md +127 -0
- package/docs/mcp-server.md +1 -1
- package/docs/readme-split-plan.md +102 -0
- package/package.json +1 -1
- package/scripts/_cli/cmd_doctor.py +527 -14
- package/scripts/_cli/cmd_settings_check.py +171 -0
- package/scripts/_cli/cmd_validate.py +10 -0
- package/scripts/agent-config +59 -18
- package/scripts/chat_history.py +19 -0
- package/scripts/check_council_references.py +46 -5
- package/scripts/hooks/dispatch_hook.py +5 -1
- package/scripts/hooks/replay_hook.py +144 -0
- package/scripts/hooks/state_io.py +24 -1
- package/scripts/hooks_doctor.py +184 -0
- package/scripts/install.py +5 -0
- package/scripts/lint_context_spine_usage.py +1 -0
- package/scripts/lint_hook_concern_budget.py +203 -0
- package/scripts/mcp_server/__init__.py +1 -0
- package/scripts/mcp_server/server.py +4 -3
- package/scripts/roadmap_progress_hook.py +11 -0
- package/scripts/schemas/skill.schema.json +2 -2
- package/scripts/skill_linter.py +107 -3
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: data-handling-judgment
|
|
3
|
+
description: "Use when classifying data, setting retention, judging cross-border transfer, or shaping DSR workflow. Triggers on 'how long do we keep this', 'can this data go to the US'."
|
|
4
|
+
status: active
|
|
5
|
+
tier: senior
|
|
6
|
+
source: package
|
|
7
|
+
domain: process
|
|
8
|
+
context_spine: [regulatory-regime, customer-segment, product]
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# data-handling-judgment
|
|
12
|
+
|
|
13
|
+
## When to use
|
|
14
|
+
|
|
15
|
+
- A data category needs classification (PII / PHI / financial / public / pseudonymous / aggregate) and downstream retention, access, and transfer rules depend on the classification.
|
|
16
|
+
- A retention default is being set (or audited) and the question is *how long is defensible*, *how long is useful*, *how long is dangerous*.
|
|
17
|
+
- A cross-border transfer is proposed (analytics in US, support in Philippines, backup in EU) and the transfer-mechanism + sub-processor obligations need a read.
|
|
18
|
+
- A data-subject-rights (DSR) workflow is being designed: access, deletion, portability, correction, objection, automated-decision-objection.
|
|
19
|
+
|
|
20
|
+
Do NOT use as a regulatory-regime delta read (route to `privacy-review` (P6); this skill composes P6 for the regime floor), for contract-clause depth (route to `contracts-cognition` (P5)), or for data-loss-prevention tool administration / classifier-engine configuration.
|
|
21
|
+
|
|
22
|
+
## Cognition cluster
|
|
23
|
+
|
|
24
|
+
- **Mental model 28 — Inversion.** *"If this data category leaked in this form, who would we have to notify and what would the headline read?"* The headline inversion forces honest classification ahead of operational convenience. See [`mental-models.md`](../../../docs/contracts/mental-models.md) § 28.
|
|
25
|
+
- **Mental model 1 — First principles.** Strip every retention claim to: *what purpose does keeping this another day serve, and whose risk does it grow?* Most retention defaults are inherited from the previous system, not chosen. See `mental-models.md` § 1.
|
|
26
|
+
- **Mental model 26 — Optionality.** Aggressive retention preserves *analytical optionality* but forecloses *deletion optionality* and grows *breach optionality* for the attacker. Each retention choice is a trade. See `mental-models.md` § 26.
|
|
27
|
+
- **Context-spine — regulatory-regime + customer-segment + product.** Read **regulatory-regime** (J1) for floor (GDPR storage-limitation principle; HIPAA retention minimums for medical records; financial-regulator retention mandates). Read **customer-segment** for whose data sets the floor. Read **product** for which features actually need the data.
|
|
28
|
+
|
|
29
|
+
## Cross-wing handoff
|
|
30
|
+
|
|
31
|
+
- Composes / cites J1 `regulatory-regime` for the floor read; this skill operationalises the regime obligations into classification / retention / transfer / DSR shape.
|
|
32
|
+
- Composed by P6 `privacy-review` — privacy-review flags *that* a classification / retention / transfer issue exists, this skill produces the *operational answer*.
|
|
33
|
+
- Hands off to Wing-2 ops skills for implementation (retention-job scheduling, DSR-runbook authoring) — this skill produces the policy shape, ops implements.
|
|
34
|
+
|
|
35
|
+
## Procedure
|
|
36
|
+
|
|
37
|
+
### Step 0: Bind the regime floor and the segment
|
|
38
|
+
|
|
39
|
+
Read J1 `regulatory-regime` for the customer-segment in scope. Note which regime mandates a *minimum* retention (HIPAA medical records: typically 6+ years state-dependent; financial: SOX, regulatory varies) vs which mandates a *maximum* (GDPR storage-limitation; CCPA "necessary purpose"). Both floors and ceilings can apply simultaneously and create a window.
|
|
40
|
+
|
|
41
|
+
### Step 1: Classify the data category
|
|
42
|
+
|
|
43
|
+
For each data category in scope, assign a classification tier and rationale:
|
|
44
|
+
|
|
45
|
+
1. **Public** — already public or designed for publication; no confidentiality obligation.
|
|
46
|
+
2. **Internal** — company-confidential, not subject-specific; protected by trade-secret / commercial logic.
|
|
47
|
+
3. **Pseudonymous** — keyed to subject but not directly identifying; classification depends on re-identifiability (the GDPR test).
|
|
48
|
+
4. **PII** — directly identifying; subject to regime baseline.
|
|
49
|
+
5. **Sensitive-PII** — special-category (GDPR Art. 9), CCPA "sensitive personal information", financial-account, gov-ID.
|
|
50
|
+
6. **PHI / regulated** — HIPAA PHI, payment-card data (PCI), or sector-specific (children = COPPA, biometrics = state laws).
|
|
51
|
+
|
|
52
|
+
Rationale per category cites *what makes it that tier*, not just the label. Mis-classification downward is the canonical risk.
|
|
53
|
+
|
|
54
|
+
### Step 2: Set retention with explicit purpose binding
|
|
55
|
+
|
|
56
|
+
For each data category × processing purpose, name:
|
|
57
|
+
|
|
58
|
+
1. **Purpose** — why we keep it (operational, analytical, legal-hold, contractual, regulatory-mandate).
|
|
59
|
+
2. **Retention** — how long for that purpose; named in calendar units, not "as needed".
|
|
60
|
+
3. **End-state** — at expiry: hard-delete, anonymise, aggregate-only, archive-with-access-restriction.
|
|
61
|
+
4. **Authority** — what makes the chosen retention defensible (regime mandate, contract obligation, documented operational need).
|
|
62
|
+
|
|
63
|
+
Default "indefinite" retention is the failure mode. Every category needs an explicit end-state.
|
|
64
|
+
|
|
65
|
+
### Step 3: Cross-border-transfer judgment
|
|
66
|
+
|
|
67
|
+
For each transfer hop where data crosses a regime boundary:
|
|
68
|
+
|
|
69
|
+
1. **Source regime** vs **destination regime** — which subjects, which categories.
|
|
70
|
+
2. **Mechanism** — adequacy decision, SCC (with which version), BCR, derogation. Schrems-II-level transfer-impact assessment for transfers to non-adequate jurisdictions.
|
|
71
|
+
3. **Government-access risk** — destination jurisdiction's surveillance regime and the supplementary-measures shape (encryption with key-control, pseudonymisation before transfer, contractual challenge).
|
|
72
|
+
4. **Sub-processor chain** — every onward transfer is itself a transfer; map two hops deep, not one.
|
|
73
|
+
|
|
74
|
+
A transfer without a named mechanism + supplementary measures (where required) = an unauthorised transfer.
|
|
75
|
+
|
|
76
|
+
### Step 4: Data-subject-rights workflow shape
|
|
77
|
+
|
|
78
|
+
For each regime × right (access, deletion, portability, correction, objection, automated-decision-objection), name:
|
|
79
|
+
|
|
80
|
+
1. **Window** — regime-mandated response time (GDPR: 1 month; CCPA: 45 days; HIPAA: 30 days for access).
|
|
81
|
+
2. **Owner** — named human / role responsible (not "the team").
|
|
82
|
+
3. **Mechanism** — how the subject submits, how identity is verified, how the response is delivered, how denials are reasoned.
|
|
83
|
+
4. **Edge cases** — joint-controller scenarios, third-party data within a subject's record, deletion-vs-legal-hold conflicts.
|
|
84
|
+
|
|
85
|
+
DSR workflows that exist only as a generic support-inbox process fail under every regime. Force named owners and windows.
|
|
86
|
+
|
|
87
|
+
### Step 5: Validate the data-handling read before emitting
|
|
88
|
+
|
|
89
|
+
Before producing the artifact, verify three things:
|
|
90
|
+
|
|
91
|
+
1. **Classification coverage** — confirm every in-scope data category has a tier + cited rationale; un-rationalised tiers are guesses and must be re-run.
|
|
92
|
+
2. **Retention binding** — assert every category × purpose has a calendar-unit retention + named end-state + cited authority; "as needed" entries fail.
|
|
93
|
+
3. **Transfer + DSR completeness** — check every cross-border hop has a mechanism + supplementary-measures read; every applicable regime × right has a named owner + window. Gaps are surfaced, not smoothed.
|
|
94
|
+
|
|
95
|
+
All three must pass. If any fails, return to the failing step.
|
|
96
|
+
|
|
97
|
+
### Step 6: Emit the data-handling-judgment artifact
|
|
98
|
+
|
|
99
|
+
Produce the data-handling-judgment note for the feature owner, ops lead, and counsel. The artifact operationalises the regime floor into policy that ops can implement and counsel can sign off.
|
|
100
|
+
|
|
101
|
+
## Related Skills
|
|
102
|
+
|
|
103
|
+
**WHEN to use this**
|
|
104
|
+
|
|
105
|
+
- Classifying a new data category and setting downstream rules.
|
|
106
|
+
- Setting / auditing retention defaults against regime and purpose.
|
|
107
|
+
- Judging a cross-border-transfer mechanism + supplementary measures.
|
|
108
|
+
- Designing a DSR workflow with named owners and windows.
|
|
109
|
+
|
|
110
|
+
**WHEN NOT to use this**
|
|
111
|
+
|
|
112
|
+
- Regime-floor regulatory delta read — route to [`privacy-review`](../privacy-review/SKILL.md) (P6); this skill composes P6.
|
|
113
|
+
- Contract-clause redline depth — route to [`contracts-cognition`](../contracts-cognition/SKILL.md) (P5).
|
|
114
|
+
- Regime-floor surface — route to `regulatory-regime` (J1); this skill operationalises J1, doesn't replace it.
|
|
115
|
+
- DLP / classifier-engine tooling — out of scope.
|
|
116
|
+
|
|
117
|
+
## When the agent should load this
|
|
118
|
+
|
|
119
|
+
- "How do we classify this field?"
|
|
120
|
+
- "How long do we keep this?"
|
|
121
|
+
- "Can we send this to the US / India / wherever?"
|
|
122
|
+
- "Design our DSR workflow."
|
|
123
|
+
- "Wie lange dürfen wir Logs aufbewahren?"
|
|
124
|
+
|
|
125
|
+
## Output
|
|
126
|
+
|
|
127
|
+
1. **`classification-map.md`** — every in-scope data category × tier + cited rationale.
|
|
128
|
+
2. **`retention-policy.md`** — category × purpose × retention × end-state × authority.
|
|
129
|
+
3. **`transfer-register.md`** — cross-border hops × mechanism × supplementary measures × sub-processor chain (two-deep).
|
|
130
|
+
4. **`dsr-workflow.md`** — regime × right × window × owner × mechanism × edge cases.
|
|
131
|
+
|
|
132
|
+
## Gotcha
|
|
133
|
+
|
|
134
|
+
- Pseudonymous ≠ anonymous. If re-identification is possible with reasonable means, it's still personal data under GDPR.
|
|
135
|
+
- Retention defaults inherited from the previous system are usually wrong; treat every category as a fresh decision.
|
|
136
|
+
- "Encryption in transit" is not a Schrems-II supplementary measure on its own; the question is who can access the keys in the destination jurisdiction.
|
|
137
|
+
- Joint-controllership is silently common (analytics, embedded widgets); name the controller relationship explicitly per hop.
|
|
138
|
+
|
|
139
|
+
## Do NOT
|
|
140
|
+
|
|
141
|
+
- Do NOT issue privacy legal opinions; this skill produces operational policy, counsel signs it off.
|
|
142
|
+
- Do NOT classify by least-conservative tier to avoid operational burden; mis-classification downward is the canonical regulator finding.
|
|
143
|
+
- Do NOT set retention without a named end-state; "as needed" is not a retention.
|
|
144
|
+
|
|
145
|
+
## Runnable example
|
|
146
|
+
|
|
147
|
+
Series-B SaaS with EU + US customer mix, adding a customer-success analytics integration.
|
|
148
|
+
|
|
149
|
+
- Step 0 — Regime floor: GDPR (EU subjects), CCPA (CA subset), no PHI. GDPR storage-limitation is the ceiling; no minimum-retention mandate applies.
|
|
150
|
+
- Step 1 — Classify: account-id = pseudonymous (low re-id); email = PII; usage-event = PII (linked to email); free-text-feedback = PII + potentially sensitive (subjects may include health / political content). Aggregate cohort metrics = anonymous if k-anonymity ≥ 50.
|
|
151
|
+
- Step 2 — Retention: usage-event for product-analytics = 18 months, hard-delete on expiry; usage-event for billing-dispute = 7 years (contractual + tax authority); free-text-feedback = 12 months, hard-delete; email-for-marketing = until consent withdrawn or 24 months inactive.
|
|
152
|
+
- Step 3 — Transfer: analytics vendor in US (no adequacy), SCC 2021 module 2 + supplementary measures (pseudonymisation of free-text-feedback before transfer, key-control retained in EU). Sub-processor chain: vendor uses logging service in US-only; ok within SCC.
|
|
153
|
+
- Step 4 — DSR: access (1 month, CS lead, in-app + verified-email submission); deletion (1 month, CS lead, soft-delete-then-hard-delete-30d unless legal-hold); portability (1 month, ops engineer, JSON export); objection-to-marketing (immediate, automated).
|
|
154
|
+
- Step 5 — Validate: every category tier rationalised; every retention category × purpose has end-state + authority; transfer hops have SCC + supplementary measures; DSR rights have owners + windows. Pass.
|
|
155
|
+
- Step 6 — Emit data-handling-judgment artifact; ops implements retention jobs and DSR runbook; counsel signs off on transfer-impact assessment.
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: forecasting
|
|
3
|
+
description: "Use when constructing the finance-side forecast — top-down vs bottom-up shape, confidence bands, retro-loop. Triggers on 'build the forecast model', 'reconcile top-down with bottom-up'."
|
|
4
|
+
status: active
|
|
5
|
+
tier: senior
|
|
6
|
+
source: package
|
|
7
|
+
domain: process
|
|
8
|
+
context_spine: [product, fiscal-period, customer-segment]
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# forecasting
|
|
12
|
+
|
|
13
|
+
## When to use
|
|
14
|
+
|
|
15
|
+
- The annual plan or quarterly board pack needs a forecast model that survives a retro — not last quarter's number with a multiplier.
|
|
16
|
+
- Top-down (TAM × penetration × motion) and bottom-up (deal-level) calls have diverged and the reconciliation hasn't been written.
|
|
17
|
+
- A new finance-partner inherits a forecast and needs to rebuild the construction shape without inheriting the prior regime's optimism.
|
|
18
|
+
|
|
19
|
+
Do NOT use to qualify a single deal (route to `deal-qualification-meddic`), construct the RevOps commit list (route to `forecast-accuracy` (H10) — finance owns the shape, RevOps owns the call), or run capital-runway scenarios (route to `runway-cognition` (O3)).
|
|
20
|
+
|
|
21
|
+
## Cognition cluster
|
|
22
|
+
|
|
23
|
+
- **Mental model 9 — Hypothesis-driven thinking.** Each forecast is
|
|
24
|
+
a falsifiable claim about a window. If the call cannot be falsified
|
|
25
|
+
inside the window, the call is a narrative, not a forecast. See
|
|
26
|
+
[`mental-models.md`](../../../docs/contracts/mental-models.md) § 9.
|
|
27
|
+
- **Mental model 29 — Premortem.** Before locking the call, write the
|
|
28
|
+
post-window retro as if commit missed by 20 %. The premortem
|
|
29
|
+
surfaces which construction inputs were riding on weak evidence;
|
|
30
|
+
demote those before the call locks. See `mental-models.md` § 29.
|
|
31
|
+
- **Mental model 16 — Leading vs lagging.** Closed-won is lagging;
|
|
32
|
+
pipeline coverage, segment conversion, and slot-completeness are
|
|
33
|
+
leading. A forecast built only on lagging signals can confirm but
|
|
34
|
+
not steer. See `mental-models.md` § 16.
|
|
35
|
+
- **Context-spine — product + fiscal-period + customer-segment.**
|
|
36
|
+
Read the **product** slot for what is GA-shippable in the window;
|
|
37
|
+
the **fiscal-period** slot for the cadence the model must
|
|
38
|
+
reconcile against (monthly close vs quarterly board pack vs annual
|
|
39
|
+
plan vs multi-year plan); the **customer-segment** slot for
|
|
40
|
+
segment-historical close rates. See
|
|
41
|
+
[`context-spine`](../../../docs/contracts/context-spine.md).
|
|
42
|
+
|
|
43
|
+
## Procedure
|
|
44
|
+
|
|
45
|
+
### Step 0: Inspect the construction shape
|
|
46
|
+
|
|
47
|
+
Read the fiscal-period slot. Decide between three shapes:
|
|
48
|
+
|
|
49
|
+
1. **Top-down** — anchor against TAM × penetration band × motion
|
|
50
|
+
band. Healthy for annual plans and multi-year plans where
|
|
51
|
+
bottom-up evidence is thin past one window.
|
|
52
|
+
2. **Bottom-up** — sum deal-level conviction (composes H10
|
|
53
|
+
`forecast-accuracy` via the `forecast-construction-shape` ADR).
|
|
54
|
+
Healthy for quarterly windows where deal evidence is fresh.
|
|
55
|
+
3. **Hybrid** — both, with an explicit reconciliation. Healthy when
|
|
56
|
+
top-down and bottom-up diverge by more than the historical
|
|
57
|
+
confidence band.
|
|
58
|
+
|
|
59
|
+
State the choice. A forecast without a stated shape inherits the
|
|
60
|
+
prior regime's shape silently.
|
|
61
|
+
|
|
62
|
+
### Step 1: Construct the call against the shape
|
|
63
|
+
|
|
64
|
+
For top-down: write `{tam, penetration_band, motion_band}` — every
|
|
65
|
+
input cites its source. Penetration bands are evidence ranges, not
|
|
66
|
+
single points; motion bands reflect channel mix.
|
|
67
|
+
|
|
68
|
+
For bottom-up: consume H10's commit-list against the
|
|
69
|
+
`forecast-construction-shape` interface. Sum commit-tagged ×
|
|
70
|
+
in-window close-rate per segment.
|
|
71
|
+
|
|
72
|
+
For hybrid: do both, then write the reconciliation. If top-down ≠
|
|
73
|
+
bottom-up by more than the confidence band, the divergence is the
|
|
74
|
+
forecast — not either number.
|
|
75
|
+
|
|
76
|
+
### Step 2: Calibrate the confidence band
|
|
77
|
+
|
|
78
|
+
Compute historical deviation from the last 4–8 windows of the same
|
|
79
|
+
fiscal-period cadence. Attach as `{plus_pct, minus_pct}`. A band
|
|
80
|
+
asymmetric on the downside is honest about prior misses; symmetric
|
|
81
|
+
bands silently pretend prior accuracy.
|
|
82
|
+
|
|
83
|
+
### Step 3: Premortem the construction
|
|
84
|
+
|
|
85
|
+
Write *"if the forecast misses by 20 %, the reason is ___."* For
|
|
86
|
+
top-down: which penetration / motion input was the load-bearing
|
|
87
|
+
assumption? For bottom-up: which anchor deals carry > 10 % of
|
|
88
|
+
commit? Demote inputs that the premortem can name as single-point
|
|
89
|
+
risks.
|
|
90
|
+
|
|
91
|
+
### Step 4: Emit the typed interface
|
|
92
|
+
|
|
93
|
+
Produce `forecast-band.json` per the `forecast-construction-shape`
|
|
94
|
+
ADR. H10 consumes the artifact for the commit-call. The fields:
|
|
95
|
+
`construction_shape`, `commit_value`, `best_case_value`,
|
|
96
|
+
`pipeline_value`, `confidence_band`, `retro_signature`,
|
|
97
|
+
`segment_scope`, `fiscal_period`, `construction_inputs`. Drop the
|
|
98
|
+
artifact in the location H10's `## Output` references.
|
|
99
|
+
|
|
100
|
+
### Step 5: Run the accuracy retro-loop
|
|
101
|
+
|
|
102
|
+
At window-end, compare predicted commit / best-case to actual
|
|
103
|
+
closed-won. Compute per-segment and per-construction-input miss
|
|
104
|
+
rate. Patterns that repeat for two windows become shape changes in
|
|
105
|
+
Step 0 (e.g. switching from bottom-up to hybrid because deal
|
|
106
|
+
evidence stopped predicting); one-off misses become input upgrades
|
|
107
|
+
in Step 1.
|
|
108
|
+
|
|
109
|
+
## Related Skills
|
|
110
|
+
|
|
111
|
+
**WHEN to use this**
|
|
112
|
+
|
|
113
|
+
- Constructing the finance-side forecast (annual plan, board pack, multi-year plan).
|
|
114
|
+
- Running the construction-shape retro and feeding it back into Step 0.
|
|
115
|
+
|
|
116
|
+
**WHEN NOT to use this**
|
|
117
|
+
|
|
118
|
+
- Single-deal qualification — route to [`deal-qualification-meddic`](../deal-qualification-meddic/SKILL.md).
|
|
119
|
+
- Commit / best-case / pipeline categorisation of deals — route to [`forecast-accuracy`](../forecast-accuracy/SKILL.md) (H10); H10 consumes against this skill's `forecast-band.json` interface.
|
|
120
|
+
- Cash-runway shape and fundraise-trigger heuristics — route to [`runway-cognition`](../runway-cognition/SKILL.md) (O3).
|
|
121
|
+
- Multi-statement scenario construction over base / upside / downside — route to [`scenario-modeling`](../scenario-modeling/SKILL.md) (O4).
|
|
122
|
+
|
|
123
|
+
Wing-4 handoff: this skill emits the `forecast-band.json` artifact
|
|
124
|
+
that `forecast-accuracy` (H10, Wing-3) reads. Per
|
|
125
|
+
`docs/contracts/adr-forecast-construction-shape.md`,
|
|
126
|
+
`docs/guidelines/wing4-handoff.md` § Chain 4.
|
|
127
|
+
|
|
128
|
+
## When the agent should load this
|
|
129
|
+
|
|
130
|
+
- "Build the annual forecast model."
|
|
131
|
+
- "Top-down and bottom-up disagree — reconcile them."
|
|
132
|
+
- "Why was last quarter's forecast off?"
|
|
133
|
+
- "Was machen wir bei der Forecast-Konstruktion anders?"
|
|
134
|
+
|
|
135
|
+
## Output
|
|
136
|
+
|
|
137
|
+
1. **`forecast-band.json`** *(Wing-3 / Wing-4 typed interface)* — `construction_shape`, `commit_value`, `best_case_value`, `pipeline_value`, `confidence_band`, `retro_signature`, `segment_scope`, `fiscal_period`, `construction_inputs`. Per `adr-forecast-construction-shape.md`.
|
|
138
|
+
2. **`construction-notes.md`** — shape chosen + why; per-input evidence; reconciliation note (hybrid only).
|
|
139
|
+
3. **`premortem.md`** — "if we miss by 20 %, the reason is ___"; tagged demotions from Step 3.
|
|
140
|
+
4. **`retro-deltas.md`** *(at window-end)* — predicted vs actual per construction input; shape-change recommendation if the pattern repeats.
|
|
141
|
+
|
|
142
|
+
## Gotcha
|
|
143
|
+
|
|
144
|
+
- A forecast without a stated `construction_shape` inherits last regime's shape silently. Always emit the field.
|
|
145
|
+
- Symmetric confidence bands lie about prior misses. If the last two windows missed on the downside, the band is asymmetric.
|
|
146
|
+
- Top-down models with single-point penetration assumptions are scenarios in disguise. Use bands.
|
|
147
|
+
- Hybrid models that don't write the reconciliation are top-down models with bottom-up garnish.
|
|
148
|
+
|
|
149
|
+
## Do NOT
|
|
150
|
+
|
|
151
|
+
- Do NOT collapse hybrid forecasts into a single number without keeping the divergence visible.
|
|
152
|
+
- Do NOT skip Step 4 — the typed interface is what makes H10 reproducible.
|
|
153
|
+
- Do NOT change the construction shape on a single-window miss; shape changes require a two-window pattern.
|
|
154
|
+
|
|
155
|
+
## Runnable example
|
|
156
|
+
|
|
157
|
+
End of FY: annual plan + Q1 commit both due.
|
|
158
|
+
|
|
159
|
+
- Step 0 — fiscal-period slot says `annual` + `quarterly`. Annual is top-down; Q1 is bottom-up.
|
|
160
|
+
- Step 1 — top-down: TAM $4.2B, penetration band 0.6–0.9 %, motion band SaaS-mid; expected $25–38M ARR. Bottom-up: H10 commit-list sums to $8.1M in Q1, segment close rate 78 %.
|
|
161
|
+
- Step 2 — last 4 quarters deviation: +6 % / –14 %. Confidence band attached.
|
|
162
|
+
- Step 3 — premortem: top-down anchored on penetration upper bound; demoted to 0.6–0.75 %. Bottom-up: two anchor deals tagged single-risk procurement; demoted.
|
|
163
|
+
- Step 4 — emit `forecast-band.json`: `construction_shape=hybrid`, commit $6.3M, best-case $8.1M, band +6/–14 %, retro_signature `quarterly | [+6, –14]`, segment_scope mid-market, fiscal_period `quarterly`.
|
|
164
|
+
- Retro — at quarter-end, actual $6.1M; band held. Annual top-down revisit in two quarters.
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: hiring-loop-design
|
|
3
|
+
description: "Use when shaping an engineering hiring loop — stages, take-home vs live, calibration, bar-raiser, signal-vs-noise audit. Triggers on 'design our interview loop', 'audit our hiring bar'."
|
|
4
|
+
status: active
|
|
5
|
+
tier: senior
|
|
6
|
+
source: package
|
|
7
|
+
domain: process
|
|
8
|
+
context_spine: [org-stage, product, customer-segment]
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# hiring-loop-design
|
|
12
|
+
|
|
13
|
+
## When to use
|
|
14
|
+
|
|
15
|
+
- A first engineering hiring loop is being designed (early-stage co, first dedicated EM, first PM hire) and the question is *what stages, in what order, with what signal each*.
|
|
16
|
+
- An existing loop is producing inconsistent outcomes (high false-positive rate, high false-negative rate, long time-to-hire) and the question is *which stage to fix*.
|
|
17
|
+
- A new role family inside engineering is opening (first staff IC, first SRE, first ML eng) and the question is *what does the loop look like for this archetype*.
|
|
18
|
+
|
|
19
|
+
Do NOT use this for non-engineering hiring as the primary surface (sales / GTM hiring is a different loop shape entirely), as a sourcing / recruiting-pipeline skill (separate surface area), or for applicant-tracking-system configuration.
|
|
20
|
+
|
|
21
|
+
## Cognition cluster
|
|
22
|
+
|
|
23
|
+
- **Mental model 1 — First principles.** Strip hiring to: *what signal does each stage produce that no other stage can produce?* Stages that duplicate signal waste candidate-time and interviewer-time. The strongest loops have one stage per signal, not five stages probing the same thing. See [`mental-models.md`](../../../docs/contracts/mental-models.md) § 1.
|
|
24
|
+
- **Mental model 28 — Inversion.** *"What would make a great hire withdraw from this loop?"* — usually: 7+ stages, take-home > 6 hours, no role-context conversation, long calendar gaps, no senior-IC time, no offer-narrative. Inversion surfaces the canonical withdrawal causes; great candidates have options and use them.
|
|
25
|
+
- **Mental model 21 — Second-order thinking.** A loose bar at L4 produces a chain: weaker L4 → harder L5 calibration → erodes ladder credibility → ICs leave. A single accept-the-no-vote ripples for 2+ years. The cost of a wrong hire dwarfs the cost of a missed hire; bar discipline is a multi-year compounding decision.
|
|
26
|
+
- **Mental model — Base rates.** Most signals in interviews are noise; the most-confident signal-claim is usually the most-overfit to one observation. Calibrate against the base rate: *"out of 10 candidates who passed this stage with this signal, how many succeeded at 12 months?"* If unknown, the stage is unfalsifiable.
|
|
27
|
+
- **Context-spine — org-stage + product + customer-segment.** Read **org-stage** for what's affordable (pre-seed: 3-stage loop, fast; growth: 5-stage with calibration; late: 5–6 with bar-raiser). Read **product** for what behaviors matter (deep-systems = system-design heavier; consumer = velocity + judgment heavier; regulated = ethics + judgment heavier). Read **customer-segment** for stakeholder-management exposure needed.
|
|
28
|
+
|
|
29
|
+
## Cross-wing handoff
|
|
30
|
+
|
|
31
|
+
- Composed downstream of Q1 `org-design` — the role-family shape determines the loop shape; hiring without a clear role definition is broken from stage 1.
|
|
32
|
+
- Composed downstream of Q4 `perf-feedback-craft` — the calibration session is structurally a feedback exchange about a candidate; Q4's SBI + ladder-of-inference apply.
|
|
33
|
+
- Hands off to Q3 `onboarding-program` — the loop's signal evidence becomes the day-1 ramp-evidence base.
|
|
34
|
+
- Hands off to Q2 `comp-banding` for the offer construction step.
|
|
35
|
+
|
|
36
|
+
## Procedure
|
|
37
|
+
|
|
38
|
+
### Step 0: Define the role-shape before designing the loop
|
|
39
|
+
|
|
40
|
+
For the role being hired, name:
|
|
41
|
+
|
|
42
|
+
1. **Level** — L3 / L4 / L5 / L6 / staff / principal. Levels matter because signal evidence changes per level (L4 needs strong execution signal; L6 needs leverage / system-design signal).
|
|
43
|
+
2. **Archetype** — IC-builder / IC-strategist / IC-system-designer / manager / staff-multiplier. Same level, different archetype = different loop shape.
|
|
44
|
+
3. **First-90-day deliverable** — what should this person ship by day 90. Concrete enough to design loop signals against.
|
|
45
|
+
|
|
46
|
+
A loop designed without a role definition produces noise. Force the role definition step.
|
|
47
|
+
|
|
48
|
+
### Step 1: Map signal needs to stages
|
|
49
|
+
|
|
50
|
+
For the role from Step 0, enumerate the signals that need direct evidence:
|
|
51
|
+
|
|
52
|
+
1. **Coding / craft** — for IC roles. Live coding, take-home, or pair-programming.
|
|
53
|
+
2. **System design** — for L5+. Two-hour bounded-scope problem.
|
|
54
|
+
3. **Domain judgment** — for senior roles. Behavioral case with context-specific tradeoffs.
|
|
55
|
+
4. **Communication / stakeholder** — for any role. Cross-functional collaboration exercise.
|
|
56
|
+
5. **Leadership / multiplier** *(L6+)* — narrative of past leverage, mentoring decisions, ladder reasoning.
|
|
57
|
+
6. **Values fit** — explicitly NOT culture fit. Concrete questions about handling pressure / disagreement / failure.
|
|
58
|
+
|
|
59
|
+
One signal per stage. If two stages probe the same signal, kill one.
|
|
60
|
+
|
|
61
|
+
### Step 2: Pick the stage shape per signal
|
|
62
|
+
|
|
63
|
+
For each signal, pick the lightest-touch stage that produces the signal cleanly:
|
|
64
|
+
|
|
65
|
+
1. **Recruiter / role-context call** *(30 min)* — role + company + light values. NOT a screen.
|
|
66
|
+
2. **Hiring-manager screen** *(45 min)* — judgment + role-fit + reverse-context. Required.
|
|
67
|
+
3. **Coding signal** — choose: (a) take-home ≤ 3 hours with explicit time-cap (most candidate-respectful for senior); (b) live coding 60 min (for L3–L4, faster signal); (c) pair-programming 90 min (best signal but heavy on interviewer time).
|
|
68
|
+
4. **System design** *(2 hours, L5+)* — bounded scope; rubric set in advance.
|
|
69
|
+
5. **Behavioral / domain judgment** *(45–60 min)* — structured by signal area; SBI-anchored prompts.
|
|
70
|
+
6. **Leadership / values** *(45–60 min)* — narratives + specific past-decision probes.
|
|
71
|
+
7. **Bar-raiser / cross-team** *(45 min, L5+)* — perspective from outside the hiring team to check ladder consistency.
|
|
72
|
+
|
|
73
|
+
Take-home > 6 hours = candidate-hostile and produces survivorship-biased pools (only those with no other options finish). Keep ≤ 3 hours or skip.
|
|
74
|
+
|
|
75
|
+
### Step 3: Design the rubric per stage
|
|
76
|
+
|
|
77
|
+
Each stage gets a written rubric before the first interview runs:
|
|
78
|
+
|
|
79
|
+
1. **Signal target** — what behavior demonstrates the signal at this level.
|
|
80
|
+
2. **Anti-signal** — what behavior fails the signal (named, not inferred).
|
|
81
|
+
3. **Strong-no-hire / no-hire / hire / strong-hire** — four-band scoring, not 5-band (5-band collapses to "3" for everything).
|
|
82
|
+
4. **Evidence anchor** — what the interviewer writes down to support the rating; rating without evidence = inadmissible.
|
|
83
|
+
|
|
84
|
+
Loops without rubrics produce gut-feel hires and hidden bias. Force rubrics before the loop opens.
|
|
85
|
+
|
|
86
|
+
### Step 4: Calibration session shape
|
|
87
|
+
|
|
88
|
+
For every offer-eligible candidate, run a calibration session before sending offer:
|
|
89
|
+
|
|
90
|
+
1. **All interviewers attend** — synchronous or async-with-deadline.
|
|
91
|
+
2. **Evidence-first reading** — each interviewer reads their rubric + evidence aloud (or shares the doc) before opinions are stated.
|
|
92
|
+
3. **Bar-raiser veto** *(L5+)* — bar-raiser can no-hire even when the team votes yes; reverse is not true (team can no-hire over bar-raiser yes).
|
|
93
|
+
4. **Decision** — strong-hire if all four bands are hire-or-above, no single strong-no; gray-zone = no-hire by default (the cost of a wrong hire dwarfs the cost of a missed hire).
|
|
94
|
+
|
|
95
|
+
A loop without calibration loosens; the bar erodes by 5% per quarter without explicit recalibration cycles.
|
|
96
|
+
|
|
97
|
+
### Step 5: Validate the loop design before opening it
|
|
98
|
+
|
|
99
|
+
Before running the first candidate through, inspect three things:
|
|
100
|
+
|
|
101
|
+
1. **Signal-stage mapping check** — confirm Step 1's signals each map to exactly one stage from Step 2; duplicate-signal stages fail and must be merged or dropped.
|
|
102
|
+
2. **Rubric completeness** — assert every stage in Step 3 has a written rubric with signal + anti-signal + four-band scoring + evidence anchor; missing rubrics fail.
|
|
103
|
+
3. **Candidate-time check** — verify total candidate hours ≤ 8 (5 interview hours + 3 take-home); loops exceeding 8 hours produce survivorship bias and erode top-of-funnel.
|
|
104
|
+
|
|
105
|
+
All three must pass. If any fails, return to the failing step.
|
|
106
|
+
|
|
107
|
+
### Step 6: Emit the hiring-loop design
|
|
108
|
+
|
|
109
|
+
Produce the loop-design artifact for the hiring team. The artifact contains the role-shape, the stage-signal map, the per-stage rubrics, the calibration shape, and the candidate-time budget. The first three candidates after the loop opens trigger a retrospective check (signal-vs-actual review).
|
|
110
|
+
|
|
111
|
+
## Related Skills
|
|
112
|
+
|
|
113
|
+
**WHEN to use this**
|
|
114
|
+
|
|
115
|
+
- New engineering role family being opened.
|
|
116
|
+
- First-pass hiring loop design.
|
|
117
|
+
- Audit of an existing loop with inconsistent outcomes.
|
|
118
|
+
- Calibration / bar-raiser design.
|
|
119
|
+
|
|
120
|
+
**WHEN NOT to use this**
|
|
121
|
+
|
|
122
|
+
- Non-engineering hiring loops (GTM / sales / ops) — different loop shape; out of scope here.
|
|
123
|
+
- Role / level decisions independent of hiring — route to [`comp-banding`](../comp-banding/SKILL.md) (Q2) for ladder design.
|
|
124
|
+
- Feedback shape — route to [`perf-feedback-craft`](../perf-feedback-craft/SKILL.md) (Q4); S2 composes Q4 at the calibration session.
|
|
125
|
+
- Onboarding after hire — route to [`onboarding-program`](../onboarding-program/SKILL.md) (Q3).
|
|
126
|
+
|
|
127
|
+
## When the agent should load this
|
|
128
|
+
|
|
129
|
+
- "Design our interview loop."
|
|
130
|
+
- "Audit our hiring bar."
|
|
131
|
+
- "Should we use a take-home?"
|
|
132
|
+
- "Why are we mis-hiring at L5?"
|
|
133
|
+
- "Wie sieht unser Hiring-Loop für Staff Engineer aus?"
|
|
134
|
+
|
|
135
|
+
## Output
|
|
136
|
+
|
|
137
|
+
1. **`role-shape.md`** — level + archetype + first-90-day deliverable definition.
|
|
138
|
+
2. **`stage-signal-map.md`** — signal-needed × stage × time-budget × interviewer pool.
|
|
139
|
+
3. **`per-stage-rubrics.md`** — signal + anti-signal + four-band scoring + evidence anchor per stage.
|
|
140
|
+
4. **`calibration-shape.md`** — session format + bar-raiser rules + gray-zone default.
|
|
141
|
+
5. **`candidate-time-budget.md`** — total candidate hours + take-home cap + scheduling shape.
|
|
142
|
+
|
|
143
|
+
## Gotcha
|
|
144
|
+
|
|
145
|
+
- "Culture fit" is a known bias-amplifier; use "values fit" with concrete questions about pressure / disagreement / failure.
|
|
146
|
+
- Take-home longer than 3 hours = survivorship bias in your funnel; you get only those with no other options.
|
|
147
|
+
- Loops that go above 5 onsite hours produce candidate withdrawal; great candidates have options.
|
|
148
|
+
- A no-rubric loop produces "felt good in the room" hires that don't replicate.
|
|
149
|
+
- Gray-zone calibration default must be no-hire; cost of false-positive dwarfs cost of false-negative.
|
|
150
|
+
|
|
151
|
+
## Do NOT
|
|
152
|
+
|
|
153
|
+
- Do NOT design a loop without a written role-shape; un-defined roles produce un-falsifiable signals.
|
|
154
|
+
- Do NOT score on 5-band scales; everything collapses to "3" and the rubric becomes decorative.
|
|
155
|
+
- Do NOT skip calibration on a "we all agree" basis; the disagreements are where the signal lives.
|
|
156
|
+
|
|
157
|
+
## Runnable example
|
|
158
|
+
|
|
159
|
+
Series-B SaaS opens its first staff-IC role; current loop is L4-shaped (45-min coding + 60-min behavioral + offer) and last two staff-level offers churned at 9 months.
|
|
160
|
+
|
|
161
|
+
- Step 0 — Role-shape: L6 staff IC, archetype = system-designer with multiplier impact. First-90-day deliverable: scope and own one cross-team platform initiative.
|
|
162
|
+
- Step 1 — Signal needs: system design (L6 anchor), domain judgment, leadership / multiplier, coding sanity-check, values fit. Five signals.
|
|
163
|
+
- Step 2 — Loop: recruiter call (30) + HM screen (45) + system design (120) + domain judgment behavioral (60) + leadership narrative (60) + bar-raiser (45) + light coding sanity-check (60). Total candidate time: 7 hours + 0 take-home = 7 hours. Within 8-hour budget.
|
|
164
|
+
- Step 3 — Rubrics drafted per stage; system-design rubric anchored to "drove three nontrivial architecture decisions with explicit tradeoffs" not "designed a great system".
|
|
165
|
+
- Step 4 — Calibration: all 7 interviewers + bar-raiser; evidence-first; gray-zone defaults to no-hire; bar-raiser can veto.
|
|
166
|
+
- Step 5 — Validate: signal-stage 1:1 mapping (no duplication); rubrics complete; 7 hours fits the 8-hour budget. Pass.
|
|
167
|
+
- Step 6 — Emit loop; first three candidates trigger retrospective; review whether system-design rubric is calibrated to actual L6 staff behavior or diverging toward L5.
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: market-entry-analysis
|
|
3
|
+
description: "Use when sequencing market entry — geo / segment / vertical, beachhead selection, regulatory-delta. Triggers on 'should we enter market X', 'which segment first'."
|
|
4
|
+
status: active
|
|
5
|
+
tier: senior
|
|
6
|
+
source: package
|
|
7
|
+
domain: process
|
|
8
|
+
context_spine: [customer-segment, regulatory-regime, product]
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# market-entry-analysis
|
|
12
|
+
|
|
13
|
+
## When to use
|
|
14
|
+
|
|
15
|
+
- A new market is on the table — geographic (EU, US, APAC), segment (SMB → mid-market → enterprise), or vertical (healthcare, fintech, manufacturing) — and the question is whether to enter, where to start, and in what sequence.
|
|
16
|
+
- A current market is saturating and the question is which adjacent market unlocks the next growth window.
|
|
17
|
+
- A regulatory shift opens or closes a market; the question is whether the new constraint changes the entry case.
|
|
18
|
+
|
|
19
|
+
Do NOT use for build-vs-buy decisions on capability gaps (route to `build-buy-partner` (P1)), positioning narrative (route to `competitive-positioning` (P3); this skill composes P3), or per-customer economics within the entered market (route to `unit-economics-modeling` (O1)).
|
|
20
|
+
|
|
21
|
+
## Cognition cluster
|
|
22
|
+
|
|
23
|
+
- **Mental model 23 — Beachhead.** Pick a single segment / geo / vertical where the constraints favour winning, then expand from a position of strength. Trying to enter "the whole market" with no beachhead is the canonical failure pattern. See [`mental-models.md`](../../../docs/contracts/mental-models.md) § 23.
|
|
24
|
+
- **Mental model 21 — Second-order thinking.** Entry costs (sales motion, regulatory compliance, segment-specific support) compound across markets. Reading entry as *"just open the door"* misses the second-order shape of multi-market operations. See `mental-models.md` § 21.
|
|
25
|
+
- **Mental model 16 — Leading vs lagging.** Revenue from new market is lagging; **segment-specific pipeline coverage** + **win rates against incumbents in target segment** are leading. Reading only lagging signals = entering markets that already won't work. See `mental-models.md` § 16.
|
|
26
|
+
- **Context-spine — customer-segment + regulatory-regime + product.** Read **customer-segment** for which buyer cohort the entry targets; **regulatory-regime** for the compliance delta (often the load-bearing cost in geo expansion); **product** for what's GA-shippable in the target market without re-platforming.
|
|
27
|
+
|
|
28
|
+
## Procedure
|
|
29
|
+
|
|
30
|
+
### Step 0: Frame the entry axis
|
|
31
|
+
|
|
32
|
+
Pick **one** of three axes; do not mix:
|
|
33
|
+
|
|
34
|
+
1. **Geo** — new region (US → EU, EU → APAC). Load-bearing constraint = regulatory-regime delta.
|
|
35
|
+
2. **Segment** — new buyer cohort (SMB → mid-market → enterprise). Load-bearing constraint = sales-motion shift.
|
|
36
|
+
3. **Vertical** — new industry (horizontal → healthcare). Load-bearing constraint = domain knowledge + segment-specific integrations.
|
|
37
|
+
|
|
38
|
+
Mixing axes ("enter European healthcare enterprise") = three entries simultaneously. The correct framing is to pick one axis at a time and sequence the others.
|
|
39
|
+
|
|
40
|
+
### Step 1: Select the beachhead
|
|
41
|
+
|
|
42
|
+
Within the chosen axis, score 3–5 candidate beachheads on:
|
|
43
|
+
|
|
44
|
+
1. **Constraint favourability** — does the segment / geo's constraint shape favour us? (e.g. for a self-serve product, SMB favours; enterprise penalises).
|
|
45
|
+
2. **Reference-customer reachability** — can we land 3–5 named reference customers in the next two windows?
|
|
46
|
+
3. **Regulatory delta** — compliance cost to operate (read `regulatory-regime` slot; e.g. EU + B2C + processing PII = GDPR-floor; EU + B2B + no PII = thin delta).
|
|
47
|
+
4. **Expansion path** — does winning this beachhead unlock the adjacent ones, or is it a dead end?
|
|
48
|
+
|
|
49
|
+
The beachhead is rarely the largest segment; it's the segment where we win cleanly and from which adjacent segments become accessible.
|
|
50
|
+
|
|
51
|
+
### Step 2: Inspect the entry cost
|
|
52
|
+
|
|
53
|
+
Three concrete cost categories — each named, not estimated:
|
|
54
|
+
|
|
55
|
+
1. **Sales motion** — does the existing motion translate? (Self-serve → enterprise requires inside-sales + AE buildout; SMB → mid-market requires AE specialisation.)
|
|
56
|
+
2. **Product delta** — what's missing for the target segment? (Compliance certs, SSO, audit logs, locale support, segment-specific integrations.)
|
|
57
|
+
3. **Operating cost** — entity setup, tax, legal, segment-specific support. Geo entries add a 3–6 month operating-readiness window.
|
|
58
|
+
|
|
59
|
+
Total entry cost = these three. Compare against `runway-frame.md` (O3) for whether the band has headroom.
|
|
60
|
+
|
|
61
|
+
### Step 3: Inversion — name the failure mode
|
|
62
|
+
|
|
63
|
+
For the chosen beachhead, write the 18-month failure mode:
|
|
64
|
+
|
|
65
|
+
1. *"We entered and the incumbent's playbook neutralised us"* — incumbent's segment-specific advantage held.
|
|
66
|
+
2. *"We entered and the sales motion didn't translate"* — assumed motion (self-serve) didn't work in the segment (enterprise).
|
|
67
|
+
3. *"We entered and the regulatory cost ate the unit economics"* — compliance delta was load-bearing and under-estimated.
|
|
68
|
+
|
|
69
|
+
If the failure mode has no mitigation, the entry is not ready. Sit with it.
|
|
70
|
+
|
|
71
|
+
### Step 4: Sequence the expansion
|
|
72
|
+
|
|
73
|
+
Beachhead = first move. Map the next 2–3 expansion moves explicitly:
|
|
74
|
+
|
|
75
|
+
1. *"Win beachhead → unlock adjacent segment X (same motion, larger TAM) → unlock adjacent geo Y (same segment, regulatory delta manageable)."*
|
|
76
|
+
2. *"Win beachhead → unlock co-sell with vendor Z → unlock vertical W."*
|
|
77
|
+
|
|
78
|
+
Un-sequenced beachhead wins are dead-ends. The sequence is the long-game; the beachhead is just the first move.
|
|
79
|
+
|
|
80
|
+
### Step 5: Validate the entry case before emitting
|
|
81
|
+
|
|
82
|
+
Before emitting the entry plan, verify three things:
|
|
83
|
+
|
|
84
|
+
1. **Beachhead defensibility** — confirm the chosen beachhead scores higher than the runner-up on at least two of the four Step-1 dimensions; if it ties or wins on one only, the choice is brittle and must be re-run.
|
|
85
|
+
2. **Entry cost vs runway band** — check that the Step-2 entry cost lands inside the `runway-frame.md` (O3) band; if it doesn't, the entry is not yet financeable and must be deferred or staged.
|
|
86
|
+
3. **Failure-mode mitigation** — assert that the Step-3 failure mode has a named mitigation; an un-mitigated failure mode means the analysis is incomplete.
|
|
87
|
+
|
|
88
|
+
All three must pass. If any fails, the entry plan is not ready to emit; return to the failing step.
|
|
89
|
+
|
|
90
|
+
### Step 6: Emit the entry plan
|
|
91
|
+
|
|
92
|
+
Produce the entry plan artifact. P2 composes P3 (`competitive-positioning`) for the narrative against incumbents in the target segment.
|
|
93
|
+
|
|
94
|
+
## Related Skills
|
|
95
|
+
|
|
96
|
+
**WHEN to use this**
|
|
97
|
+
|
|
98
|
+
- Sequencing market entry across geo / segment / vertical axes.
|
|
99
|
+
- Choosing the beachhead within a chosen entry axis.
|
|
100
|
+
|
|
101
|
+
**WHEN NOT to use this**
|
|
102
|
+
|
|
103
|
+
- Build-vs-buy capability decisions — route to [`build-buy-partner`](../build-buy-partner/SKILL.md) (P1).
|
|
104
|
+
- Positioning narrative against incumbents — route to [`competitive-positioning`](../competitive-positioning/SKILL.md) (P3); this skill composes P3.
|
|
105
|
+
- Per-customer economics in the target market — route to [`unit-economics-modeling`](../unit-economics-modeling/SKILL.md) (O1).
|
|
106
|
+
- Channel / funnel design for the entry — route to Wing-3 [`funnel-analysis`](../funnel-analysis/SKILL.md) and [`content-funnel-design`](../content-funnel-design/SKILL.md).
|
|
107
|
+
|
|
108
|
+
## When the agent should load this
|
|
109
|
+
|
|
110
|
+
- "Should we enter the EU market?"
|
|
111
|
+
- "Which segment do we go to next — mid-market or enterprise?"
|
|
112
|
+
- "Pick the beachhead for our vertical expansion."
|
|
113
|
+
- "Wo greifen wir als erstes an?"
|
|
114
|
+
|
|
115
|
+
## Output
|
|
116
|
+
|
|
117
|
+
1. **`entry-axis-frame.md`** — chosen axis (geo / segment / vertical), why this axis first, what's deferred.
|
|
118
|
+
2. **`beachhead-scorecard.md`** — 3–5 candidate beachheads scored on the four Step-1 dimensions; named winner with reasoning.
|
|
119
|
+
3. **`entry-cost-table.md`** — sales-motion delta, product delta, operating cost; compared against runway band.
|
|
120
|
+
4. **`expansion-sequence.md`** — beachhead + next 2–3 moves, with the unlock-mechanism named per move.
|
|
121
|
+
|
|
122
|
+
## Gotcha
|
|
123
|
+
|
|
124
|
+
- "Enter the European enterprise healthcare market" mixes three axes. Pick one.
|
|
125
|
+
- The largest segment is rarely the right beachhead; the segment where constraints favour us is.
|
|
126
|
+
- Geo regulatory delta is the most under-estimated cost. Budget the high-end of the band for compliance.
|
|
127
|
+
- Beachhead win without sequenced expansion = isolated revenue stream that never compounds.
|
|
128
|
+
|
|
129
|
+
## Do NOT
|
|
130
|
+
|
|
131
|
+
- Do NOT mix entry axes — sequence them.
|
|
132
|
+
- Do NOT pick a beachhead without a named 18-month failure mode + mitigation.
|
|
133
|
+
- Do NOT skip the expansion sequence — the beachhead's value is which next moves it unlocks.
|
|
134
|
+
|
|
135
|
+
## Runnable example
|
|
136
|
+
|
|
137
|
+
Horizontal SaaS, US-only, mid-market, considering EU expansion.
|
|
138
|
+
|
|
139
|
+
- Step 0 — axis = geo (EU). Defer segment (stay mid-market) and vertical (stay horizontal).
|
|
140
|
+
- Step 1 — candidate beachheads: DACH, Nordics, UK, Benelux. Scored: UK wins on constraint-favour (English-language sales motion translates, common-law contract familiarity), reference-reachability (5 mid-market UK customers reachable via existing channels), regulatory delta (UK-GDPR ≈ EU-GDPR floor with thinner data-residency requirement), expansion path (UK → Benelux → DACH).
|
|
141
|
+
- Step 2 — Sales motion: existing AE motion translates to UK. Product delta: data-residency in EU (12 weeks). Operating cost: UK Ltd entity, VAT registration ≈ 3 months.
|
|
142
|
+
- Step 3 — failure mode: "incumbent's UK channel partnerships locked us out of mid-market." Mitigation: direct-AE motion + content-led pipeline.
|
|
143
|
+
- Step 4 — sequence: UK (beachhead) → Benelux (same motion, thin regulatory delta) → DACH (German-speaking sales hire required, larger TAM).
|
|
144
|
+
- Step 5 — emit entry plan + compose P3 for UK-vs-incumbents positioning.
|