@event4u/agent-config 2.7.0 → 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.
- package/.agent-src/personas/cmo.md +122 -0
- package/.agent-src/personas/customer-success-lead.md +126 -0
- package/.agent-src/personas/growth-pm.md +134 -0
- package/.agent-src/personas/revops.md +125 -0
- package/.agent-src/skills/activation-design/SKILL.md +160 -0
- package/.agent-src/skills/churn-prevention/SKILL.md +156 -0
- package/.agent-src/skills/content-funnel-design/SKILL.md +170 -0
- package/.agent-src/skills/deal-qualification-meddic/SKILL.md +165 -0
- package/.agent-src/skills/editorial-calendar/SKILL.md +161 -0
- package/.agent-src/skills/expansion-playbook/SKILL.md +171 -0
- package/.agent-src/skills/forecast-accuracy/SKILL.md +157 -0
- package/.agent-src/skills/fundraising-narrative/SKILL.md +189 -0
- package/.agent-src/skills/funnel-analysis/SKILL.md +26 -2
- package/.agent-src/skills/gtm-launch/SKILL.md +165 -0
- package/.agent-src/skills/messaging-architecture/SKILL.md +184 -0
- package/.agent-src/skills/onboarding-design/SKILL.md +158 -0
- package/.agent-src/skills/pipeline-strategy/SKILL.md +159 -0
- package/.agent-src/skills/positioning-strategy/SKILL.md +177 -0
- package/.agent-src/skills/retention-loops/SKILL.md +161 -0
- package/.agent-src/skills/subagent-orchestration/SKILL.md +1 -1
- package/.agent-src/skills/voice-and-tone-design/SKILL.md +163 -0
- package/.agent-src/templates/agents/agent-project-settings.example.yml +1 -1
- package/.claude-plugin/marketplace.json +17 -2
- package/CHANGELOG.md +45 -169
- package/README.md +2 -2
- package/docs/architecture.md +2 -2
- package/docs/archive/CHANGELOG-pre-2.7.0.md +185 -0
- package/docs/catalog.md +19 -3
- package/docs/contracts/adr-gtm-context-spine.md +115 -0
- package/docs/contracts/command-surface-tiers.md +5 -0
- package/docs/contracts/context-spine.md +50 -12
- package/docs/contracts/cross-wing-handoff.md +3 -3
- package/docs/contracts/persona-schema.md +20 -3
- package/docs/guidelines/gtm-handoff.md +114 -0
- package/package.json +1 -1
- package/scripts/lint_context_spine_usage.py +4 -1
- package/scripts/schemas/persona.schema.json +5 -0
- package/scripts/schemas/skill.schema.json +2 -2
- package/scripts/skill_linter.py +177 -3
package/docs/catalog.md
CHANGED
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
# agent-config — Public Catalog
|
|
2
2
|
|
|
3
|
-
Consumer-facing catalog of all **
|
|
3
|
+
Consumer-facing catalog of all **424 public artefacts** shipped by
|
|
4
4
|
this package. Internal package-maintenance rules and deprecation shims
|
|
5
5
|
are excluded.
|
|
6
6
|
|
|
7
7
|
> **Regenerate:** `python3 scripts/generate_index.py`
|
|
8
8
|
> Auto-generated — do not edit manually.
|
|
9
9
|
|
|
10
|
-
## Skills (
|
|
10
|
+
## Skills (189)
|
|
11
11
|
|
|
12
12
|
| kind | name | extra | description |
|
|
13
13
|
|---|---|---|---|
|
|
14
14
|
| skill | [`accessibility-auditor`](../.agent-src/skills/accessibility-auditor/SKILL.md) | | Use when reviewing UI for accessibility — WCAG 2.2 AA, keyboard nav, focus, ARIA, contrast, screen-reader semantics — even on 'is this a11y-OK?' or 'mach das barrierefrei'. |
|
|
15
|
+
| skill | [`activation-design`](../.agent-src/skills/activation-design/SKILL.md) | | Use when defining or auditing the activation event — aha-moment selection, retention correlation, falsifiable definition. Triggers on 'what is our aha moment', 'redefine activation'. |
|
|
15
16
|
| skill | [`adr-create`](../.agent-src/skills/adr-create/SKILL.md) | | Use when capturing an architectural decision — naming the file, picking the next ADR number, filling Status / Context / Decision / Consequences, and regenerating the index — even without saying 'ADR'. |
|
|
16
17
|
| skill | [`adversarial-review`](../.agent-src/skills/adversarial-review/SKILL.md) | | ONLY when user explicitly requests adversarial review, devil's advocate analysis, stress-testing a plan, or 'poke holes in this' — NOT for regular code review or design feedback. |
|
|
17
18
|
| skill | [`agent-docs-writing`](../.agent-src/skills/agent-docs-writing/SKILL.md) | | Use when reading, creating, or updating agent documentation, module docs, roadmaps, or AGENTS.md. Understands the full .augment/, agents/, and copilot-instructions structure. |
|
|
@@ -31,12 +32,14 @@ are excluded.
|
|
|
31
32
|
| skill | [`blast-radius-analyzer`](../.agent-src/skills/blast-radius-analyzer/SKILL.md) | | Use BEFORE editing shared code — enumerates every call site, event consumer, queue worker, API client, migration, and test that a planned change will touch, with a file:line citation per dependency. |
|
|
32
33
|
| skill | [`bug-analyzer`](../.agent-src/skills/bug-analyzer/SKILL.md) | | Use when the user shares a Sentry error, Jira bug ticket, or error description and wants root cause analysis. Also for proactive bug hunting and code audits for hidden bugs. |
|
|
33
34
|
| skill | [`check-refs`](../.agent-src/skills/check-refs/SKILL.md) | | Use when verifying cross-references between skills, rules, commands, guidelines, and context documents are not broken after edits, renames, or deletions. |
|
|
35
|
+
| skill | [`churn-prevention`](../.agent-src/skills/churn-prevention/SKILL.md) | | Use when designing churn defence — health-score signals, churn-cause split (involuntary / value / relationship / fit), early-warning loop. Triggers on 'why are accounts leaving'. |
|
|
34
36
|
| skill | [`code-refactoring`](../.agent-src/skills/code-refactoring/SKILL.md) | | Use when the user says "refactor this", "rename class", or "move method". Safely refactors PHP code — finds all callers, updates downstream dependencies, and verifies with quality tools. |
|
|
35
37
|
| skill | [`code-review`](../.agent-src/skills/code-review/SKILL.md) | | Use when the user says "review this", "check my code", or wants feedback on changes. Reviews for correctness, quality, security, and coding standards. |
|
|
36
38
|
| skill | [`command-routing`](../.agent-src/skills/command-routing/SKILL.md) | | Use when the user invokes a slash command like /create-pr, /commit, /fix-ci, or pastes command file content — routes to the right command with context inference and GitHub API patterns. |
|
|
37
39
|
| skill | [`command-writing`](../.agent-src/skills/command-writing/SKILL.md) | | Use when creating or editing a slash command in .agent-src.uncompressed/commands/ — frontmatter, numbered steps, safety gates — even when the user just says 'add a /command for X'. |
|
|
38
40
|
| skill | [`competitive-positioning`](../.agent-src/skills/competitive-positioning/SKILL.md) | | Use when comparing this package to a peer / competitor — ours-vs-theirs verdict table, axis selection, adoption queue. Triggers on 'how do we compare to X', 'should we adopt their pattern'. |
|
|
39
41
|
| skill | [`composer-packages`](../.agent-src/skills/composer-packages/SKILL.md) | | Use when building or maintaining a Composer library — versioning, Laravel integration, autoloading, publishing to private registries — even when the user says 'release a new version'. |
|
|
42
|
+
| skill | [`content-funnel-design`](../.agent-src/skills/content-funnel-design/SKILL.md) | | Use when mapping funnel-stage to content shape — conversion-pathway, content-as-system, leverage-point selection. Triggers on 'design our content funnel', 'why does mid-funnel leak'. |
|
|
40
43
|
| skill | [`context-authoring`](../.agent-src/skills/context-authoring/SKILL.md) | | Use when filling in knowledge-layer context files — auth-model, tenant-boundaries, data-sensitivity, deployment-order, observability — interactive walkthrough that turns templates into reviewer fuel. |
|
|
41
44
|
| skill | [`context-document`](../.agent-src/skills/context-document/SKILL.md) | | Use when the user says "create context", "document this area", or wants a structured snapshot of a codebase area for agent orientation. |
|
|
42
45
|
| skill | [`conventional-commits-writing`](../.agent-src/skills/conventional-commits-writing/SKILL.md) | | Use when writing commit messages or squash-merge titles — `feat:`, `fix:`, `chore:`, scopes, breaking changes — even when the user just says 'commit this' without naming Conventional Commits. |
|
|
@@ -47,6 +50,7 @@ are excluded.
|
|
|
47
50
|
| skill | [`data-flow-mapper`](../.agent-src/skills/data-flow-mapper/SKILL.md) | | Use BEFORE editing code that touches user data — traces the value from entry → validation → transformation → storage → egress, every hop cited with file:line. |
|
|
48
51
|
| skill | [`database`](../.agent-src/skills/database/SKILL.md) | | Use when working with database architecture, MariaDB/MySQL tuning, indexing strategies, slow queries, or multi-connection patterns — even when the user just says 'this query is slow'. |
|
|
49
52
|
| skill | [`dcf-modeling`](../.agent-src/skills/dcf-modeling/SKILL.md) | | Wing-4 valuation cognition for a CFO / finance-partner. Use when a deal, internal investment, or board ask names DCF, intrinsic value, WACC, terminal value, or 'what's it worth on a 5-year hold'. |
|
|
53
|
+
| skill | [`deal-qualification-meddic`](../.agent-src/skills/deal-qualification-meddic/SKILL.md) | | Use when qualifying or disqualifying a single deal — MEDDIC slots with evidence, inversion test, disqualification heuristic. Triggers on 'is this deal real', 'should we walk away'. |
|
|
50
54
|
| skill | [`decision-record`](../.agent-src/skills/decision-record/SKILL.md) | | Use when locking a trade-off, structuring an ADR draft, or wiring supersession chains — frames options · trade-offs · consequences before the file is written by `adr-create`. |
|
|
51
55
|
| skill | [`deep-reading-analyst`](../.agent-src/skills/deep-reading-analyst/SKILL.md) | | Deep analysis of articles/long-form via thinking frameworks (SCQA, mental models, inversion) — 'analyze article', 'deep dive', 'extract insights', URL/text wanting depth not summary. |
|
|
52
56
|
| skill | [`defense-in-depth`](../.agent-src/skills/defense-in-depth/SKILL.md) | | Use when validation needs entry, business-logic, environment, and instrumentation guards so a bad value cannot reach the failure point — turns a local bug fix into a structural one. |
|
|
@@ -58,20 +62,25 @@ are excluded.
|
|
|
58
62
|
| skill | [`discovery-interview`](../.agent-src/skills/discovery-interview/SKILL.md) | | Use when running discovery interviews — question-bank build, bias audit, insight extraction. Triggers on 'audit my guide', 'extract insights from transcript', 'is my hypothesis falsifiable'. |
|
|
59
63
|
| skill | [`docker`](../.agent-src/skills/docker/SKILL.md) | | Use when working with Docker — Dockerfile edits, docker-compose services, containers, or the dual-container (fast + Xdebug) setup — even when the user just says 'my container won't start'. |
|
|
60
64
|
| skill | [`dto-creator`](../.agent-src/skills/dto-creator/SKILL.md) | | Use when the user says "create a DTO", "new data transfer object", or needs to convert request/response data into a typed PHP class. Creates DTOs with SimpleDto base class and attribute mapping. |
|
|
65
|
+
| skill | [`editorial-calendar`](../.agent-src/skills/editorial-calendar/SKILL.md) | | Use when shaping cadence — evergreen / campaign / reactive split, beat-mapping across channel stages, content-debt management. Triggers on 'plan our content cadence', 'what should we publish'. |
|
|
61
66
|
| skill | [`eloquent`](../.agent-src/skills/eloquent/SKILL.md) | | Use when writing Eloquent models, relationships, scopes, or queries via Model:: — 'fetch users with their orders'. NOT for PHPStan output, non-Eloquent services, or raw SQL questions. |
|
|
62
67
|
| skill | [`error-handling-patterns`](../.agent-src/skills/error-handling-patterns/SKILL.md) | | Use when picking a failure-reporting strategy — exceptions vs Result types, recoverable vs not, retry / circuit-breaker / graceful degradation — decision framework only, catalogues externalized. |
|
|
63
68
|
| skill | [`estimate-ticket`](../.agent-src/skills/estimate-ticket/SKILL.md) | | Estimate a Jira/Linear ticket — 'estimate PROJ-123', 'wie groß ist das?', 'should we split this?' — size + risk + split + uncertainty, sibling of /refine-ticket, close-prompt. |
|
|
64
69
|
| skill | [`existing-ui-audit`](../.agent-src/skills/existing-ui-audit/SKILL.md) | | Use BEFORE writing or editing any non-trivial UI — inventories components, design tokens, shadcn primitives, and reusable patterns into state.ui_audit. Hard gate for the ui directive set. |
|
|
70
|
+
| skill | [`expansion-playbook`](../.agent-src/skills/expansion-playbook/SKILL.md) | | Use when designing account-expansion mechanics — upsell vs cross-sell, expansion-trigger signals, NRR cognition. Triggers on 'lift NRR', 'when do we upsell vs cross-sell'. |
|
|
65
71
|
| skill | [`fe-design`](../.agent-src/skills/fe-design/SKILL.md) | | Reference for frontend-design heuristics — component architecture, layout patterns, form/table design, responsive strategy, a11y, UX principles. Stack-agnostic; cited by directives/ui/design.py. |
|
|
66
72
|
| skill | [`feature-planning`](../.agent-src/skills/feature-planning/SKILL.md) | | Use when the user says "plan a feature", "brainstorm", "explore this idea", or wants to go from idea to structured plan and roadmap. |
|
|
67
73
|
| skill | [`file-editor`](../.agent-src/skills/file-editor/SKILL.md) | | Use when opening edited files in the user's IDE. Reads settings from .agent-settings.yml to determine IDE and whether auto-open is enabled. |
|
|
68
74
|
| skill | [`finishing-a-development-branch`](../.agent-src/skills/finishing-a-development-branch/SKILL.md) | | Use when the feature is implementation-complete and the next step is 'ship it' — verifies, cleans up, and routes to merge/PR/park/discard — even when the user just says 'I'm done, what now?'. |
|
|
69
75
|
| skill | [`flux`](../.agent-src/skills/flux/SKILL.md) | | Use when the project uses `livewire/flux` — dispatched by `directives/ui/{apply,review,polish}.py`. Covers Flux components, slots, variants, and form primitives. |
|
|
76
|
+
| skill | [`forecast-accuracy`](../.agent-src/skills/forecast-accuracy/SKILL.md) | | Use when constructing the forecast call — commit / best-case / pipeline categorisation, deal-level evidence test, accuracy retro-loop. Triggers on 'build the forecast', 'why does our commit miss'. |
|
|
70
77
|
| skill | [`form-handler`](../.agent-src/skills/form-handler/SKILL.md) | | Use when designing or reviewing a form — validation timing, error display, submission lifecycle, optimistic UI, dirty/pristine state, idempotency — even on 'why does submit double-fire?'. |
|
|
78
|
+
| skill | [`fundraising-narrative`](../.agent-src/skills/fundraising-narrative/SKILL.md) | | Use when shaping a capital-raise pitch — why-now / why-us / why-this framing, market-size reasoning, traction-story construction. Triggers on 'tighten the pitch', 'why-now is weak'. |
|
|
71
79
|
| skill | [`funnel-analysis`](../.agent-src/skills/funnel-analysis/SKILL.md) | | Use when diagnosing where a SaaS or product funnel leaks — visitor → signup → activation → paid → retained — channel-agnostic, conversion-rate-driven. |
|
|
72
80
|
| skill | [`git-workflow`](../.agent-src/skills/git-workflow/SKILL.md) | | Use when working with Git — branch naming, commit messages, PR creation, rebasing, or the code review process — even when the user says 'push this' or 'merge the branch' without naming Git. |
|
|
73
81
|
| skill | [`github-ci`](../.agent-src/skills/github-ci/SKILL.md) | | Use when working with GitHub Actions — workflow YAML, quality gates, test matrices, deployment triggers, reusable workflows — even when the user just says 'my CI is failing' or 'add a check'. |
|
|
74
82
|
| skill | [`grafana`](../.agent-src/skills/grafana/SKILL.md) | | Use when working with Grafana — dashboards, Loki LogQL queries, alerting rules, monitoring panels — even when the user just says 'build me a dashboard' or 'query the logs' without naming Grafana. |
|
|
83
|
+
| skill | [`gtm-launch`](../.agent-src/skills/gtm-launch/SKILL.md) | | Use when sequencing a launch — alpha / beta / GA waves, audience-by-wave logic, narrative beats per wave, engineering-readiness gates. Triggers on 'plan the launch', 'sequence GA'. |
|
|
75
84
|
| skill | [`guideline-writing`](../.agent-src/skills/guideline-writing/SKILL.md) | | Use when creating or editing a guideline in docs/guidelines/ — reference material cited by skills, no auto-triggers — even when the user just says 'write up our naming conventions'. |
|
|
76
85
|
| skill | [`incident-commander`](../.agent-src/skills/incident-commander/SKILL.md) | | Use during or right after an incident — frames severity, sets comms cadence, drafts the post-mortem skeleton — even when the user just says 'production is down' or 'wir haben einen Vorfall'. |
|
|
77
86
|
| skill | [`jira-integration`](../.agent-src/skills/jira-integration/SKILL.md) | | Use when the user says "check Jira", "create ticket", "update issue", or needs JQL queries, ticket transitions, or branch-to-ticket linking. |
|
|
@@ -102,12 +111,14 @@ are excluded.
|
|
|
102
111
|
| skill | [`md-language-check`](../.agent-src/skills/md-language-check/SKILL.md) | | Use BEFORE saving any .md under .augment/, .agent-src*/, or agents/ — scans umlauts, German function words, and quoted German phrases outside DE:/EN: anchor blocks. Hard gate per language-and-tone. |
|
|
103
112
|
| skill | [`memory-consolidation`](../.agent-src/skills/memory-consolidation/SKILL.md) | | Use when consolidating session signals into curated memory — four-phase loop ORIENT → GATHER → CONSOLIDATE → PRUNE. Triggers on 'mine my sessions', 'consolidate memory', 'review intake signals'. |
|
|
104
113
|
| skill | [`merge-conflicts`](../.agent-src/skills/merge-conflicts/SKILL.md) | | Use when the user has merge conflicts or says "resolve conflicts". Understands conflict markers, resolution strategies, and verification workflow. |
|
|
114
|
+
| skill | [`messaging-architecture`](../.agent-src/skills/messaging-architecture/SKILL.md) | | Use when shaping the primary message, supporting proofs, and audience-by-message matrix from a locked positioning frame — before any copy or launch beat. Triggers on 'tighten the message stack'. |
|
|
105
115
|
| skill | [`migration-architect`](../.agent-src/skills/migration-architect/SKILL.md) | | Use when shaping a non-trivial migration — rollout phases, dual-write windows, cutover sequencing, deprecation cycles — hands off to `migration-creator` for DDL once locked. |
|
|
106
116
|
| skill | [`migration-creator`](../.agent-src/skills/migration-creator/SKILL.md) | | Use when the user says "create migration", "add column", or "new table". Creates migrations with correct table prefixes, column naming, and multi-tenant awareness. |
|
|
107
117
|
| skill | [`mobile-e2e-strategy`](../.agent-src/skills/mobile-e2e-strategy/SKILL.md) | | Use when picking a mobile E2E framework — Detox / Appium / Maestro / XCUITest / Espresso — or planning iOS Simulator / Android Emulator coverage in CI for RN, Expo, or native apps. |
|
|
108
118
|
| skill | [`module-management`](../.agent-src/skills/module-management/SKILL.md) | | Use when the user says "create module", "explore module", or works within app/Modules/. Understands module structure, auto-loading, route registration, and namespace conventions. |
|
|
109
119
|
| skill | [`multi-tenancy`](../.agent-src/skills/multi-tenancy/SKILL.md) | | Use when working with the multi-tenant architecture — customer DB switching, FQDN routing, tenant isolation, or cross-tenant operations. |
|
|
110
120
|
| skill | [`okr-tree-modeling`](../.agent-src/skills/okr-tree-modeling/SKILL.md) | | Use when decomposing a company objective into team OKRs, auditing a draft OKR tree, or stress-testing an existing one for measurability and laddering. |
|
|
121
|
+
| skill | [`onboarding-design`](../.agent-src/skills/onboarding-design/SKILL.md) | | 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'. |
|
|
111
122
|
| skill | [`openapi`](../.agent-src/skills/openapi/SKILL.md) | | Use when documenting APIs — OpenAPI/Swagger, PHP attributes, Redocly validation, versioned specs — even when the user just says 'document this endpoint' without naming OpenAPI. |
|
|
112
123
|
| skill | [`override-management`](../.agent-src/skills/override-management/SKILL.md) | | Creates and manages project-level overrides for shared skills, rules, and commands — extending or replacing originals from .augment/ with project-specific behavior in agents/overrides/. |
|
|
113
124
|
| skill | [`performance`](../.agent-src/skills/performance/SKILL.md) | | Use when optimizing application performance — caching strategies, eager loading, query optimization, Redis patterns, or background job design. |
|
|
@@ -117,9 +128,11 @@ are excluded.
|
|
|
117
128
|
| skill | [`php-coder`](../.agent-src/skills/php-coder/SKILL.md) | | Writes or edits PHP code — controllers, classes, type hints, SOLID refactors, modern idioms — even without naming PHP. NOT for writing tests (use pest-testing) or explaining PHP concepts. |
|
|
118
129
|
| skill | [`php-debugging`](../.agent-src/skills/php-debugging/SKILL.md) | | Use when debugging PHP with Xdebug — breakpoints, step-through, dual-container setup, IDE configuration, header-based routing — even when the user just says 'why does this blow up on request X'. |
|
|
119
130
|
| skill | [`php-service`](../.agent-src/skills/php-service/SKILL.md) | | Use when the user says 'create service', 'new service class', or needs a PHP service following SOLID principles with proper DI and repository usage. |
|
|
131
|
+
| skill | [`pipeline-strategy`](../.agent-src/skills/pipeline-strategy/SKILL.md) | | 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'. |
|
|
120
132
|
| skill | [`playwright-architect`](../.agent-src/skills/playwright-architect/SKILL.md) | | Use when shaping a Playwright suite — locator strategy, Page Object boundaries, fixture composition, flake-prevention architecture, CI-vs-local split — even on 'design our E2E tests'. |
|
|
121
133
|
| skill | [`playwright-testing`](../.agent-src/skills/playwright-testing/SKILL.md) | | Use when writing Playwright E2E tests — browser automation, visual regression testing, Page Objects, fixtures, and reliable test patterns. |
|
|
122
134
|
| skill | [`po-discovery`](../.agent-src/skills/po-discovery/SKILL.md) | | Use when shaping a fuzzy product ask into a refined backlog item — problem framing, user-story rewrite, AC tightening — even if the user just says 'help me write this ticket'. |
|
|
135
|
+
| skill | [`positioning-strategy`](../.agent-src/skills/positioning-strategy/SKILL.md) | | 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'. |
|
|
123
136
|
| skill | [`project-analysis-core`](../.agent-src/skills/project-analysis-core/SKILL.md) | | Use for the universal deep-analysis workflow: project discovery, version resolution, docs loading, architecture mapping, execution flow, and package research. |
|
|
124
137
|
| skill | [`project-analysis-hypothesis-driven`](../.agent-src/skills/project-analysis-hypothesis-driven/SKILL.md) | | Use when a bug has multiple plausible causes across layers — competing hypotheses, validation loops, evidence-based conclusions — even when the user just says 'why is this happening?'. |
|
|
125
138
|
| skill | [`project-analysis-laravel`](../.agent-src/skills/project-analysis-laravel/SKILL.md) | | Use for deep Laravel project analysis: boot flow, request lifecycle, container usage, Eloquent/data flow, async systems, and Laravel-specific failure patterns. |
|
|
@@ -144,6 +157,7 @@ are excluded.
|
|
|
144
157
|
| skill | [`release-comms`](../.agent-src/skills/release-comms/SKILL.md) | | Use when turning a shipped changelog into a release narrative — value-not-feature framing, audience-segmented surfaces, one source of truth. Triggers on 'announce the release', 'write changelog post'. |
|
|
145
158
|
| skill | [`repomix-packer`](../.agent-src/skills/repomix-packer/SKILL.md) | | Use when packaging a codebase to a single AI-friendly file for LLM analysis — local or remote, XML/Markdown/JSON, token counting, gitignore filtering, peer-side `repomix` CLI. |
|
|
146
159
|
| skill | [`requesting-code-review`](../.agent-src/skills/requesting-code-review/SKILL.md) | | Use when asking for a review or creating a PR — self-review first, frame the right context, test plan included — even when the user just says 'open a PR' or 'ready to merge'. |
|
|
160
|
+
| skill | [`retention-loops`](../.agent-src/skills/retention-loops/SKILL.md) | | 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'. |
|
|
147
161
|
| skill | [`review-routing`](../.agent-src/skills/review-routing/SKILL.md) | | Use when preparing a PR description, suggesting reviewers, or flagging risk — produces owner-mapped roles plus historical bug-pattern matches from project-local YAML. |
|
|
148
162
|
| skill | [`rice-prioritization`](../.agent-src/skills/rice-prioritization/SKILL.md) | | Use when ranking competing initiatives for a roadmap, breaking a tie between two features, or auditing a backlog for hidden low-value work via Reach × Impact × Confidence ÷ Effort. |
|
|
149
163
|
| skill | [`risk-officer`](../.agent-src/skills/risk-officer/SKILL.md) | | Use when surfacing and prioritising risk before commit — blast-radius framing, mitigations, residual-risk verdict — even if the user just says 'what could go wrong here?'. |
|
|
@@ -184,6 +198,7 @@ are excluded.
|
|
|
184
198
|
| skill | [`validate-feature-fit`](../.agent-src/skills/validate-feature-fit/SKILL.md) | | Validate whether a feature request fits the existing codebase — check for duplicates, contradictions, scope creep, and architectural misfit |
|
|
185
199
|
| skill | [`verify-completion-evidence`](../.agent-src/skills/verify-completion-evidence/SKILL.md) | | Use when claiming 'done', suggesting a commit, push, or PR — runs the evidence gate so completion claims come from fresh output in this message, not memory or earlier runs. |
|
|
186
200
|
| skill | [`voc-extract`](../.agent-src/skills/voc-extract/SKILL.md) | | Use when extracting Voice-of-Customer themes from existing artefacts — GH issues, PR threads, Sentry patterns. Triggers on 'what are users saying', 'recurring complaints', 'top themes'. |
|
|
201
|
+
| skill | [`voice-and-tone-design`](../.agent-src/skills/voice-and-tone-design/SKILL.md) | | Use when shaping brand voice — voice attributes, tone-by-context matrix, consistency review. Triggers on 'define our voice', 'why does our copy sound different on every surface'. |
|
|
187
202
|
| skill | [`websocket`](../.agent-src/skills/websocket/SKILL.md) | | Use when building real-time features — WebSocket broadcasting, live updates, presence channels, connection state — even when the user just says 'push this to the client live'. |
|
|
188
203
|
|
|
189
204
|
## Rules (58)
|
|
@@ -360,7 +375,7 @@ are excluded.
|
|
|
360
375
|
| command | [`upstream-contribute`](../.agent-src/commands/upstream-contribute.md) | | Contribute a learning, skill, rule, or fix from a consumer project back to the shared agent-config package |
|
|
361
376
|
| command | [`work`](../.agent-src/commands/work.md) | | Drive a free-form prompt end-to-end through refine → score → plan → implement → test → verify → report — Option-A loop over the `work_engine` Python engine, confidence-band gated, no auto-git. |
|
|
362
377
|
|
|
363
|
-
## Guidelines (
|
|
378
|
+
## Guidelines (71)
|
|
364
379
|
|
|
365
380
|
| kind | name | category | description |
|
|
366
381
|
|---|---|---|---|
|
|
@@ -404,6 +419,7 @@ are excluded.
|
|
|
404
419
|
| guideline | [`cross-role-handoff`](../docs/guidelines/cross-role-handoff.md) | (root) | |
|
|
405
420
|
| guideline | [`readme-size-and-splitting`](../docs/guidelines/docs/readme-size-and-splitting.md) | docs | |
|
|
406
421
|
| guideline | [`playwright`](../docs/guidelines/e2e/playwright.md) | e2e | |
|
|
422
|
+
| guideline | [`gtm-handoff`](../docs/guidelines/gtm-handoff.md) | (root) | |
|
|
407
423
|
| guideline | [`api-design`](../docs/guidelines/php/api-design.md) | php | |
|
|
408
424
|
| guideline | [`artisan-commands`](../docs/guidelines/php/artisan-commands.md) | php | |
|
|
409
425
|
| guideline | [`blade-ui`](../docs/guidelines/php/blade-ui.md) | php | |
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
---
|
|
2
|
+
stability: beta
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# ADR — GTM context-spine: Wing-3 slot extension
|
|
6
|
+
|
|
7
|
+
> **Status:** Decided · 2026-05-13
|
|
8
|
+
> **Roadmap origin:** `agents/roadmaps/` (Block G — G1, archived after merge)
|
|
9
|
+
> **Builds on:** [`context-spine.md`](context-spine.md) — tri-slot
|
|
10
|
+
> contract (`product`, `team`, `repo`) locked at 3 by council Q1
|
|
11
|
+
> (2026-05-05 KEEP-3, unified-senior-roles iter 1).
|
|
12
|
+
> **Defers to:** [`cross-wing-handoff.md`](cross-wing-handoff.md) — typed
|
|
13
|
+
> handoff contract; orthogonal to slot membership.
|
|
14
|
+
|
|
15
|
+
## Decision
|
|
16
|
+
|
|
17
|
+
The context-spine adds **three Wing-3-specific slots** under
|
|
18
|
+
`agents/context-spine/`: `channel-stage`, `funnel-stage`,
|
|
19
|
+
`customer-segment`. The schema enum in
|
|
20
|
+
[`scripts/schemas/skill.schema.json`](../../scripts/schemas/skill.schema.json)
|
|
21
|
+
extends from `{product, team, repo}` to
|
|
22
|
+
`{product, team, repo, channel-stage, funnel-stage, customer-segment}`.
|
|
23
|
+
|
|
24
|
+
The KEEP-3 lock from council Q1 applies to **cross-wing slots** —
|
|
25
|
+
slabs every senior wing might read. The Wing-3 slots are
|
|
26
|
+
**wing-scoped**: they exist for the GTM cluster (Block H, 16 skills)
|
|
27
|
+
and the GTM personas (Block I, 7 personas). Engineering, Foundation,
|
|
28
|
+
and Money / Strategy / Ops wings do not opt into them.
|
|
29
|
+
|
|
30
|
+
| Slot | Path | Typical content |
|
|
31
|
+
|---|---|---|
|
|
32
|
+
| `channel-stage` | `agents/context-spine/channel-stage.md` | Which channels the GTM motion uses (awareness · consideration · decision · retention · expansion), per-channel maturity, channel-cost band. Read by H1 (`positioning-strategy`), H2 (`messaging-architecture`), H3 (`gtm-launch`), H6 (`editorial-calendar`). |
|
|
33
|
+
| `funnel-stage` | `agents/context-spine/funnel-stage.md` | Funnel topology (top / mid / bottom / activation / retention), per-stage definition, exit-criteria for each. Read by H8 (`pipeline-strategy`), R1 (`funnel-analysis`), R2 (`activation-design`), R3 (`onboarding-design`). |
|
|
34
|
+
| `customer-segment` | `agents/context-spine/customer-segment.md` | ICP, persona-by-segment, ARR-band-by-segment. Read by H7 (`ICP`), H8 (`pipeline-strategy`), H9 (`MEDDIC`), R4 (`retention-loops`). |
|
|
35
|
+
|
|
36
|
+
## Why this was a real question
|
|
37
|
+
|
|
38
|
+
Three options were on the table:
|
|
39
|
+
|
|
40
|
+
1. **Force-fit into existing slots.** Stuff GTM context into the
|
|
41
|
+
`product` slab. Rejected: `product` is owned by the discovery wing
|
|
42
|
+
and a Wing-3 reader gets fuzzy semantics (channel maturity is not
|
|
43
|
+
product scope), Council Q1 explicitly fences `product` against
|
|
44
|
+
sprawl.
|
|
45
|
+
2. **Wing-3-only frontmatter key.** Add `gtm_spine: [...]` as a
|
|
46
|
+
parallel field. Rejected: duplicates the read-discipline
|
|
47
|
+
mechanism, the lint gate, and the skill-author cognitive load.
|
|
48
|
+
Two spines is the slot-sprawl failure mode at a different layer.
|
|
49
|
+
3. **Extend the spine, scope the slots.** Accepted: same mechanism,
|
|
50
|
+
same lint gate, same opt-in discipline; slot names carry the wing
|
|
51
|
+
scope (`channel-stage`, `funnel-stage`, `customer-segment` are
|
|
52
|
+
visibly GTM-shaped).
|
|
53
|
+
|
|
54
|
+
## Citation-evidence gating — prospective
|
|
55
|
+
|
|
56
|
+
The existing § 5 policy requires ≥ 2 shipped skills citing the new
|
|
57
|
+
slot **before** the slot is added. For Wing-3 the citation chain is
|
|
58
|
+
**prospective**: the roadmap (G1 → H → I) ships citing skills in the
|
|
59
|
+
same iteration, ordered so G1 lands first to unblock H authoring.
|
|
60
|
+
|
|
61
|
+
The ADR is the gating artefact (not the citations). The Block-H
|
|
62
|
+
authoring procedure MUST cite ≥ 1 of the three new slots per skill
|
|
63
|
+
or carry a one-line ADR-opt-out comment in the skill body. The G2
|
|
64
|
+
linter (council Q7 boundary tests) enforces channel-agnosticism,
|
|
65
|
+
which is orthogonal — a skill can cite `channel-stage` for context
|
|
66
|
+
without prescribing channel-specific tactics.
|
|
67
|
+
|
|
68
|
+
This relaxation is **wing-bounded**: future wings adding their own
|
|
69
|
+
slots must either accumulate ≥ 2 citations from already-shipped
|
|
70
|
+
skills, **or** write a per-wing ADR that names the citing-skill
|
|
71
|
+
chain in the same iteration (the pattern this ADR establishes).
|
|
72
|
+
|
|
73
|
+
## Migration plan for the existing senior catalog
|
|
74
|
+
|
|
75
|
+
- **No retrofitting required.** Existing senior skills
|
|
76
|
+
(`customer-research`, `funnel-analysis`, `po-discovery`,
|
|
77
|
+
`refine-ticket`, `rice-prioritization`, etc.) keep their current
|
|
78
|
+
`context_spine` declarations. They MAY add a Wing-3 slot if their
|
|
79
|
+
cognition genuinely reads it; they MUST NOT be retrofitted
|
|
80
|
+
mechanically.
|
|
81
|
+
- **Opt-out for off-wing skills.** Engineering / Foundation / Ops
|
|
82
|
+
senior skills do not need to mention the Wing-3 slots in any way.
|
|
83
|
+
The schema accepts subsets — declaring only `[product, team]`
|
|
84
|
+
remains valid.
|
|
85
|
+
- **Slot-file authoring is consumer-side.** The package ships the
|
|
86
|
+
contract; consumer projects fill `agents/context-spine/channel-stage.md`
|
|
87
|
+
etc. when adopting Wing-3 skills. Missing slot file is graceful
|
|
88
|
+
per § 4 of the contract.
|
|
89
|
+
|
|
90
|
+
## Counter-evidence the agent should listen for
|
|
91
|
+
|
|
92
|
+
Three signals that this decision is wrong and the ADR needs revisiting:
|
|
93
|
+
|
|
94
|
+
1. **Off-wing skills start declaring Wing-3 slots.** If an
|
|
95
|
+
Engineering skill cites `channel-stage`, the slot is misnamed or
|
|
96
|
+
the wing boundary is leaking. Re-scope the slot or rename it.
|
|
97
|
+
2. **Wing-3 skills consistently ignore the slot they declared.** If
|
|
98
|
+
Block H skills declare `funnel-stage` but never quote it in their
|
|
99
|
+
procedure, the slot is decorative and should be deleted.
|
|
100
|
+
3. **A fourth Wing-3 slot is proposed within the same iteration.**
|
|
101
|
+
That is slot-sprawl on the same wing — Block G2 boundary tests
|
|
102
|
+
should reject the addition until a follow-up ADR documents why
|
|
103
|
+
three slots are insufficient.
|
|
104
|
+
|
|
105
|
+
## See also
|
|
106
|
+
|
|
107
|
+
- [`context-spine.md`](context-spine.md) § 2 (slot table — extended),
|
|
108
|
+
§ 5 (slot-add policy — wing-bounded extension clause).
|
|
109
|
+
- [`scripts/schemas/skill.schema.json`](../../scripts/schemas/skill.schema.json)
|
|
110
|
+
— `context_spine.items.enum` extended in this ADR.
|
|
111
|
+
- `agents/roadmaps/` § Block G — the authorising roadmap (archived
|
|
112
|
+
after merge; this ADR is the durable record).
|
|
113
|
+
- [`.agent-src.uncompressed/rules/skill-quality.md`](../../.agent-src.uncompressed/rules/skill-quality.md)
|
|
114
|
+
§ Senior-Tier Required Structure — the four blocks every senior
|
|
115
|
+
skill ships independently of spine opt-in.
|
|
@@ -32,8 +32,11 @@ Three failure modes the spine prevents:
|
|
|
32
32
|
|
|
33
33
|
## § 2 — Slot definitions
|
|
34
34
|
|
|
35
|
-
The spine has **
|
|
36
|
-
|
|
35
|
+
The spine has **three cross-wing slots** plus **per-wing extension
|
|
36
|
+
slots** authorized via ADR. Council Q1 verdict (2026-05-05, KEEP-3)
|
|
37
|
+
locks the cross-wing slot count at 3. Per-wing extensions follow § 5.
|
|
38
|
+
|
|
39
|
+
### Cross-wing slots (locked at 3)
|
|
37
40
|
|
|
38
41
|
| Slot | Path under `agents/context-spine/` | Owner | Typical content |
|
|
39
42
|
|---|---|---|---|
|
|
@@ -41,6 +44,14 @@ KEEP-3): slot count is locked; extensions require an ADR (§ 5).
|
|
|
41
44
|
| `team` | `team.md` | RevOps / maintainer wing | Who **maintains** this codebase, how decisions are made, review-routing conventions, cadence (release rhythm, planning ritual). Read by review-routing, finishing-a-development-branch, persona overrides. |
|
|
42
45
|
| `repo` | `repo.md` | Engineering wing | What the codebase **is** at the file-tree level: stack one-liner, primary languages, top-level module map, deploy target. Read by analysis skills, blast-radius-analyzer, project-analysis-* skills. |
|
|
43
46
|
|
|
47
|
+
### Wing-3 slots (GTM and Growth — added 2026-05-13 per [`adr-gtm-context-spine.md`](adr-gtm-context-spine.md))
|
|
48
|
+
|
|
49
|
+
| Slot | Path under `agents/context-spine/` | Owner | Typical content |
|
|
50
|
+
|---|---|---|---|
|
|
51
|
+
| `channel-stage` | `channel-stage.md` | GTM / Marketing wing | Which channels the GTM motion uses (awareness · consideration · decision · retention · expansion), per-channel maturity, channel-cost band. Read by `positioning-strategy`, `messaging-architecture`, `gtm-launch`, `editorial-calendar`. |
|
|
52
|
+
| `funnel-stage` | `funnel-stage.md` | Growth / RevOps wing | Funnel topology (top / mid / bottom / activation / retention), per-stage definition, exit-criteria for each. Read by `pipeline-strategy`, `funnel-analysis`, `activation-design`, `onboarding-design`. |
|
|
53
|
+
| `customer-segment` | `customer-segment.md` | Sales / CS wing | ICP, persona-by-segment, ARR-band-by-segment. Read by `ICP`, `pipeline-strategy`, `MEDDIC`, `retention-loops`. |
|
|
54
|
+
|
|
44
55
|
Slots are markdown files. Each is **≤ 200 lines**; longer means the
|
|
45
56
|
slot is doing two jobs and the author should split or trim. Empty /
|
|
46
57
|
missing slot is allowed — the citing skill MUST handle absence
|
|
@@ -64,9 +75,10 @@ Rules:
|
|
|
64
75
|
|
|
65
76
|
- The key is **optional**. Senior skills MAY ship without it; the
|
|
66
77
|
default (`[]`) means the skill does not read the spine.
|
|
67
|
-
- Values are restricted to the
|
|
68
|
-
`
|
|
69
|
-
`
|
|
78
|
+
- Values are restricted to the slot names in § 2: cross-wing
|
|
79
|
+
(`product`, `team`, `repo`) plus wing-scoped extensions
|
|
80
|
+
(`channel-stage`, `funnel-stage`, `customer-segment`). Unknown
|
|
81
|
+
values fail `task lint-skills` with `unknown_context_spine_slot`.
|
|
70
82
|
- Reads MUST be opt-in and explicit. A skill body that says *"reads
|
|
71
83
|
`agents/context-spine/product.md` if present"* without declaring
|
|
72
84
|
the slot in frontmatter is **incorrect** — it bypasses the lint
|
|
@@ -91,8 +103,13 @@ file does not break the skill).
|
|
|
91
103
|
|
|
92
104
|
## § 5 — Slot-add policy
|
|
93
105
|
|
|
94
|
-
|
|
95
|
-
|
|
106
|
+
Two tracks: **cross-wing** (locked at 3, citations-first) and
|
|
107
|
+
**wing-scoped** (per-wing ADR, citations prospective).
|
|
108
|
+
|
|
109
|
+
### Cross-wing track — citations-first
|
|
110
|
+
|
|
111
|
+
Adding a fourth **cross-wing** slot (one every wing might read) is
|
|
112
|
+
**structurally allowed but procedurally expensive**. Two preconditions:
|
|
96
113
|
|
|
97
114
|
1. **Citation evidence.** ≥ 2 shipped senior skills declare the new
|
|
98
115
|
slot in their frontmatter and cite it in the body, with PRs
|
|
@@ -103,21 +120,42 @@ expensive**. Two preconditions:
|
|
|
103
120
|
the migration plan for the existing senior catalog (do they
|
|
104
121
|
declare the new slot, do they ignore it, do they get retrofitted).
|
|
105
122
|
|
|
123
|
+
### Wing-scoped track — per-wing ADR, prospective citations
|
|
124
|
+
|
|
125
|
+
A wing may add **its own slots** for cognition specific to that wing
|
|
126
|
+
(e.g. Wing-3 `channel-stage`, `funnel-stage`, `customer-segment`).
|
|
127
|
+
Preconditions:
|
|
128
|
+
|
|
129
|
+
1. **Per-wing ADR.** One ADR under `docs/contracts/` named
|
|
130
|
+
`adr-<wing>-context-spine.md` names the slots, the cognition gap,
|
|
131
|
+
the citing-skill chain in the same iteration, and the off-wing
|
|
132
|
+
migration plan (off-wing skills do **not** retrofit).
|
|
133
|
+
2. **Prospective citations.** The ADR-naming iteration must ship
|
|
134
|
+
≥ 2 skills citing each new slot before the iteration closes.
|
|
135
|
+
Drafts and roadmap items inside the same iteration **do** count
|
|
136
|
+
for prospective gating; cross-iteration citations do not.
|
|
137
|
+
|
|
138
|
+
Existing wing-3 reference: [`adr-gtm-context-spine.md`](adr-gtm-context-spine.md).
|
|
139
|
+
|
|
140
|
+
### Schema and changelog rules — both tracks
|
|
141
|
+
|
|
106
142
|
The ADR ships with the schema bump (`scripts/schemas/skill.schema.json`
|
|
107
143
|
extends the `context_spine` enum) and a CHANGELOG entry under
|
|
108
144
|
`### Breaking` if the new enum value tightens an existing skill's
|
|
109
145
|
declaration.
|
|
110
146
|
|
|
111
|
-
This policy mitigates the slot-sprawl failure mode: "
|
|
112
|
-
at 3 +
|
|
113
|
-
lever; no consumer-side override exists.
|
|
147
|
+
This policy mitigates the slot-sprawl failure mode: "cross-wing
|
|
148
|
+
locked at 3 + wing-scoped via per-wing ADR" is the brake. ADRs are
|
|
149
|
+
the single growth lever; no consumer-side override exists.
|
|
114
150
|
|
|
115
151
|
## § 6 — Author checklist
|
|
116
152
|
|
|
117
153
|
Before shipping a senior skill that opts into the spine:
|
|
118
154
|
|
|
119
|
-
- [ ] Frontmatter declares `context_spine:` with values from
|
|
120
|
-
`
|
|
155
|
+
- [ ] Frontmatter declares `context_spine:` with values from the
|
|
156
|
+
cross-wing slots (`product`, `team`, `repo`) and/or wing-scoped
|
|
157
|
+
slots authorized via per-wing ADR (e.g. Wing-3:
|
|
158
|
+
`channel-stage`, `funnel-stage`, `customer-segment`).
|
|
121
159
|
- [ ] Skill body cites `agents/context-spine/<slot>.md` near the top
|
|
122
160
|
(one link per declared slot).
|
|
123
161
|
- [ ] Procedure handles missing-slot gracefully — falls back to the
|
|
@@ -101,10 +101,10 @@ mirrors `lint_skills` (`file:line:reason`).
|
|
|
101
101
|
|
|
102
102
|
Three shipped chains across the suite illustrate the contract:
|
|
103
103
|
|
|
104
|
-
### W3 launch chain — `positioning` → `messaging-architecture` → `gtm-launch`
|
|
104
|
+
### W3 launch chain — `positioning-strategy` → `messaging-architecture` → `gtm-launch`
|
|
105
105
|
|
|
106
|
-
- `positioning` (H1) owns category framing.
|
|
107
|
-
- `messaging-architecture` (H2) **composes** `positioning` — primary
|
|
106
|
+
- `positioning-strategy` (H1) owns category framing.
|
|
107
|
+
- `messaging-architecture` (H2) **composes** `positioning-strategy` — primary
|
|
108
108
|
message + supporting proofs derive from H1's point-of-view output.
|
|
109
109
|
- `gtm-launch` (H3) **composes** `messaging-architecture` plus
|
|
110
110
|
`release-comms` (unified-senior-roles Block L) — launch sequencing
|
|
@@ -22,6 +22,7 @@ tiers, a 5-section spine for Core, and a 7-section spine for Specialist
|
|
|
22
22
|
| `role` | string | yes | human-readable role name |
|
|
23
23
|
| `description` | string | yes | one sentence, ≤ 160 chars |
|
|
24
24
|
| `tier` | enum | yes | `core` \| `specialist` |
|
|
25
|
+
| `wing` | int | optional | `1`\|`2`\|`3`\|`4` — cognition cluster per [`package-self-orientation § The four wings`](package-self-orientation.md#the-four-wings); raises the specialist size cap for denser wings |
|
|
25
26
|
| `mode` | string | optional | advisory link to a role-contract workflow mode |
|
|
26
27
|
| `version` | string | yes | semver; bump on breaking changes |
|
|
27
28
|
| `source` | enum | yes | `package` \| `project` |
|
|
@@ -77,13 +78,28 @@ beyond the global line cap).
|
|
|
77
78
|
|
|
78
79
|
## § 4 — Size budgets
|
|
79
80
|
|
|
81
|
+
Base caps by tier:
|
|
82
|
+
|
|
80
83
|
| Tier | Section count | Line cap | Rationale |
|
|
81
84
|
|---|---|---|---|
|
|
82
85
|
| `core` | 5 | ≤ 120 | always-loaded, stay lean |
|
|
83
86
|
| `specialist` | 7 | ≤ 100 | opt-in, denser per section |
|
|
84
87
|
|
|
85
|
-
|
|
86
|
-
|
|
88
|
+
Wing-scoped overrides for the `specialist` tier (Wings 3 and 4 carry
|
|
89
|
+
denser cognition than Wings 1 and 2 — funnel × channel × lifecycle for
|
|
90
|
+
GTM, finance × org × strategy for Money/Ops — so the seven-section
|
|
91
|
+
spine needs more room to land without amputating Workflows):
|
|
92
|
+
|
|
93
|
+
| Tier | Wing | Line cap |
|
|
94
|
+
|---|---|---|
|
|
95
|
+
| `specialist` | 1 (Engineering) | ≤ 100 |
|
|
96
|
+
| `specialist` | 2 (Product + Foundation) | ≤ 100 |
|
|
97
|
+
| `specialist` | 3 (GTM + Growth) | ≤ 140 |
|
|
98
|
+
| `specialist` | 4 (Money + Strategy + Ops) | ≤ 140 |
|
|
99
|
+
|
|
100
|
+
Personas without a `wing:` field fall back to the tier baseline. The
|
|
101
|
+
line cap is enforced by `lint-skills` against the full file including
|
|
102
|
+
frontmatter and trailing blank line.
|
|
87
103
|
|
|
88
104
|
## § 5 — Schema enforcement
|
|
89
105
|
|
|
@@ -91,8 +107,9 @@ The linter (A2 work) enforces:
|
|
|
91
107
|
|
|
92
108
|
- frontmatter shape (table in § 1)
|
|
93
109
|
- tier enum
|
|
110
|
+
- wing enum (when present)
|
|
94
111
|
- required sections per tier (§ 3)
|
|
95
|
-
- size budget per tier (§ 4)
|
|
112
|
+
- size budget per tier — wing override applied when `wing:` is set (§ 4)
|
|
96
113
|
- ≥ 3 bullets in `Unique Questions`
|
|
97
114
|
- `id` matches filename stem
|
|
98
115
|
- description ≤ 160 chars
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
# GTM Handoff
|
|
2
|
+
|
|
3
|
+
Wing-3-specific prose for the three load-bearing senior-skill chains
|
|
4
|
+
in the GTM + Growth cluster. The mechanical contract — initiator →
|
|
5
|
+
delegated(input) → output-artifact, lint rules, worktree boundary —
|
|
6
|
+
lives in [`docs/contracts/cross-wing-handoff.md`](../contracts/cross-wing-handoff.md).
|
|
7
|
+
The cross-wing routing prose (when to hand off at all, L4 / C8
|
|
8
|
+
boundary, decision tree) lives in
|
|
9
|
+
[`docs/guidelines/cross-role-handoff.md`](cross-role-handoff.md).
|
|
10
|
+
This guideline covers **what crosses each Wing-3 boundary**, **what
|
|
11
|
+
the typed artifact looks like**, and **who owns the failure mode
|
|
12
|
+
when the chain breaks**.
|
|
13
|
+
|
|
14
|
+
Cycle / dangling / tier-mismatch enforcement is not duplicated here —
|
|
15
|
+
`task lint-handoffs` (per cross-wing-handoff § 4) is the mechanical
|
|
16
|
+
gate.
|
|
17
|
+
|
|
18
|
+
## Chain 1 — brand → channel
|
|
19
|
+
|
|
20
|
+
Five-step chain that turns a category point-of-view into a shipped
|
|
21
|
+
funnel of channel artifacts. CMO cluster owns every step.
|
|
22
|
+
|
|
23
|
+
```
|
|
24
|
+
positioning-strategy (H1)
|
|
25
|
+
→ messaging-architecture (H2)
|
|
26
|
+
→ gtm-launch (H3)
|
|
27
|
+
→ editorial-calendar (H4)
|
|
28
|
+
→ content-funnel-design (H5)
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
| Step | Hands off when | Typed artifact crossing the boundary | Failure-mode owner |
|
|
32
|
+
|---|---|---|---|
|
|
33
|
+
| H1 → H2 | Category framing + opposable-positioning audit locked. | `positioning-statement.md` — "we are X for Y, not Z" + point-of-view paragraph + opposable-positioning matrix. | H1 owns drift: if H2 cannot derive proofs from the statement, H1's POV is too soft. |
|
|
34
|
+
| H2 → H3 | Primary message + supporting proofs + audience-by-message matrix locked. | `messaging-stack.md` — primary message, three supporting proofs, audience-message matrix, narrative beats. | H2 owns drift: if H3's wave-by-wave narrative drifts, the proofs were the wrong shape. |
|
|
35
|
+
| H3 → H4 | Launch sequencing (alpha → beta → GA) + audience-wave logic locked; engineering-readiness signals attached. | `launch-plan.md` — wave list, narrative beats per wave, dependency map, go / no-go signals. | H3 owns drift: missing engineering-readiness signal = H3 shipped a plan that cannot land. |
|
|
36
|
+
| H4 → H5 | Cadence cognition (evergreen vs campaign vs reactive) + beat-mapping locked. | `editorial-calendar.md` — cadence per audience, beat-to-asset map, content-debt ledger. | H4 owns drift: a calendar that does not map beats to funnel stages cannot be designed against. |
|
|
37
|
+
| H5 self-closes | Funnel-stage-to-content-shape mapping + conversion-pathway design locked. | `content-funnel.md` — per-stage asset shapes, conversion pathways, leading indicators. | H5 owns drift: any stage without a content shape is a broken funnel hand-back to H4. |
|
|
38
|
+
|
|
39
|
+
H5 also **composes** `funnel-analysis` (H14, Chain 3) — the funnel
|
|
40
|
+
diagnostic feeds the conversion-pathway design without H5 absorbing
|
|
41
|
+
funnel-diagnostic cognition.
|
|
42
|
+
|
|
43
|
+
## Chain 2 — discovery → pipeline
|
|
44
|
+
|
|
45
|
+
Five-step chain that turns customer research into a forecast-able
|
|
46
|
+
pipeline. Spans the Discovery → RevOps boundary inside Wing 3 and
|
|
47
|
+
hands the forecast call back to the Wing-4 finance-partner.
|
|
48
|
+
|
|
49
|
+
```
|
|
50
|
+
customer-research (L1, shipped)
|
|
51
|
+
→ ideal-customer-profile artifact
|
|
52
|
+
→ pipeline-strategy (H8)
|
|
53
|
+
→ deal-qualification-meddic (H9)
|
|
54
|
+
→ forecast-accuracy (H10) → forecasting (Wing-4 O2)
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
| Step | Hands off when | Typed artifact crossing the boundary | Failure-mode owner |
|
|
58
|
+
|---|---|---|---|
|
|
59
|
+
| `customer-research` → H8 | Switch-event interviews + JTBD framing complete; ICP synthesized from verbatims. | `icp.md` — segment definition, switch events, JTBD frame, anti-ICP. | `customer-research` owns drift: an ICP without anti-ICP boundaries leaks into H8 stage definitions. |
|
|
60
|
+
| H8 → H9 | Stage definitions + conversion-rate targets + coverage reasoning locked. | `pipeline-shape.md` — stage list, per-stage conversion target, coverage ratio, leak map. | H8 owns drift: stages H9 cannot disqualify against = H8 stage definitions were not orthogonal. |
|
|
61
|
+
| H9 → H10 | MEDDIC qualification rubric + disqualification heuristics locked. | `qualification-rubric.md` — MEDDIC fields per stage, disqualification triggers, champion-test. | H9 owns drift: forecasts that ignore disqualification heuristics inflate; H9 owns the rubric. |
|
|
62
|
+
| H10 → Wing-4 O2 | Forecast call constructed (commit / best-case / pipeline) against the `forecast-construction-shape` ADR. | `forecast-band.json` — commit value, best-case value, pipeline value, confidence band, retro signature. | **Interface contract owned by O2** (per cross-wing-handoff § 5 / W4 chain): if the ADR drifts, O2 breaks the contract, not H10. |
|
|
63
|
+
|
|
64
|
+
H10's parallel-development rule (starts after O2-interface ≥ 100 %,
|
|
65
|
+
runs in parallel with O2 implementation) is recorded in the roadmap
|
|
66
|
+
H10 entry and the contract — not duplicated here.
|
|
67
|
+
|
|
68
|
+
## Chain 3 — funnel → retention
|
|
69
|
+
|
|
70
|
+
Six-step chain that turns funnel diagnostics into a retention and
|
|
71
|
+
expansion system. Growth PM cluster owns the first three steps,
|
|
72
|
+
Customer Success cluster owns the last three; the H15 → H12 boundary
|
|
73
|
+
crosses the cluster line inside Wing 3.
|
|
74
|
+
|
|
75
|
+
```
|
|
76
|
+
funnel-analysis (H14)
|
|
77
|
+
→ activation-design (H16)
|
|
78
|
+
→ onboarding-design (H11)
|
|
79
|
+
→ retention-loops (H15)
|
|
80
|
+
→ churn-prevention (H12)
|
|
81
|
+
→ expansion-playbook (H13)
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
| Step | Hands off when | Typed artifact crossing the boundary | Failure-mode owner |
|
|
85
|
+
|---|---|---|---|
|
|
86
|
+
| H14 → H16 | Funnel-stage diagnostics + leaky-bucket-vs-growth-loop classification + leading-indicator selection locked. | `funnel-diagnostic.md` — per-stage drop-off, loop classification, leading indicators, cohort behavior. | H14 owns drift: an unselected leading indicator leaves H16 without an aha-moment signal. |
|
|
87
|
+
| H16 → H11 | Aha-moment definition + activation-event selection + activation-funnel construction locked. | `activation-spec.md` — aha-moment, activation event, activation-funnel stages, leading-vs-lagging indicators. | H16 owns drift: an activation event H11 cannot instrument is the wrong event. |
|
|
88
|
+
| H11 → H15 | Time-to-first-value reasoning + milestone design + friction audit locked. | `onboarding-flow.md` — milestone list, time-to-value target, friction-audit findings, drop-off diagnosis. | H11 owns drift: milestones without retention hooks force H15 to re-derive habit cognition. |
|
|
89
|
+
| H15 → H12 | Habit-formation reasoning + trigger-action-reward design + loop classification locked. | `retention-loop.md` — trigger / action / reward triple, loop classification, network-vs-single-user signal. | H15 owns drift: a loop that does not surface a health signal leaves H12 without an early warning. |
|
|
90
|
+
| H12 → H13 | Health-score signal design + churn-cause classification + early-warning loop locked. | `churn-signals.md` — health-score schema, churn-cause buckets, early-warning thresholds. | H12 owns drift: a health signal H13 cannot read against expansion triggers blocks NRR cognition. Also feeds **back to Wing-4 forecasting** per the cross-skill map. |
|
|
91
|
+
| H13 self-closes | Account-expansion patterns + upsell-vs-cross-sell reasoning + NRR cognition locked. | `expansion-playbook.md` — expansion patterns, trigger signals, NRR levers. | H13 owns drift: expansion triggers that ignore churn signals double-count growth. |
|
|
92
|
+
|
|
93
|
+
## Reading the failure-mode column
|
|
94
|
+
|
|
95
|
+
The column answers one question: **when a downstream skill cannot
|
|
96
|
+
do its job, which upstream skill rewrites its artifact?** The owner
|
|
97
|
+
is the **upstream** skill, not the consumer — drift is always a
|
|
98
|
+
producer-side fix. This mirrors the W4 / W3 forecasting chain in
|
|
99
|
+
the contract (O2 owns the interface; H10 only consumes it).
|
|
100
|
+
|
|
101
|
+
## See also
|
|
102
|
+
|
|
103
|
+
- [`docs/contracts/cross-wing-handoff.md`](../contracts/cross-wing-handoff.md)
|
|
104
|
+
— typed-handoff mechanical contract; `task lint-handoffs` enforces
|
|
105
|
+
cycles, dangling references, and tier mismatches over the graph.
|
|
106
|
+
- [`docs/guidelines/cross-role-handoff.md`](cross-role-handoff.md)
|
|
107
|
+
— when to hand off at all, how to phrase the routing, L4 / C8
|
|
108
|
+
boundary.
|
|
109
|
+
- [`docs/contracts/context-spine.md`](../contracts/context-spine.md)
|
|
110
|
+
§ Wing-3 slots — `channel-stage`, `funnel-stage`,
|
|
111
|
+
`customer-segment`; every chain step opts into ≥ 1 slot.
|
|
112
|
+
- `agents/roadmaps/` § Block H (archived after merge) — the
|
|
113
|
+
sixteen H-skills this guideline maps; pending skills appear here
|
|
114
|
+
as backtick slugs until shipped.
|
package/package.json
CHANGED
|
@@ -31,7 +31,10 @@ SKILL_GLOBS = (
|
|
|
31
31
|
".agent-src.uncompressed/skills/**/SKILL.md",
|
|
32
32
|
".agent-src/skills/**/SKILL.md",
|
|
33
33
|
)
|
|
34
|
-
VALID_SLOTS = (
|
|
34
|
+
VALID_SLOTS = (
|
|
35
|
+
"product", "team", "repo",
|
|
36
|
+
"channel-stage", "funnel-stage", "customer-segment",
|
|
37
|
+
)
|
|
35
38
|
|
|
36
39
|
CONTEXT_SPINE_PAT = re.compile(
|
|
37
40
|
r"^context_spine:\s*\[([^\]]*)\]\s*$", re.MULTILINE
|
|
@@ -26,6 +26,11 @@
|
|
|
26
26
|
"type": "string",
|
|
27
27
|
"enum": ["core", "specialist"]
|
|
28
28
|
},
|
|
29
|
+
"wing": {
|
|
30
|
+
"type": "integer",
|
|
31
|
+
"enum": [1, 2, 3, 4],
|
|
32
|
+
"description": "Cognition wing per docs/contracts/package-self-orientation.md § The four wings. Optional. Raises the specialist size cap (persona-schema § 4)."
|
|
33
|
+
},
|
|
29
34
|
"mode": {
|
|
30
35
|
"type": "string",
|
|
31
36
|
"enum": ["developer", "reviewer", "tester", "product-owner", "incident", "planner"]
|
|
@@ -72,9 +72,9 @@
|
|
|
72
72
|
"uniqueItems": true,
|
|
73
73
|
"items": {
|
|
74
74
|
"type": "string",
|
|
75
|
-
"enum": ["product", "team", "repo"]
|
|
75
|
+
"enum": ["product", "team", "repo", "channel-stage", "funnel-stage", "customer-segment"]
|
|
76
76
|
},
|
|
77
|
-
"description": "Senior-skill opt-in for the
|
|
77
|
+
"description": "Senior-skill opt-in for the context spine. Declares which slots under agents/context-spine/ the skill expects to read. Cross-wing slots (product, team, repo) are locked at 3 by council Q1 (KEEP-3); wing-scoped slots (channel-stage, funnel-stage, customer-segment — Wing-3 GTM) follow the per-wing ADR track in docs/contracts/context-spine.md § 5. Wing-3 slots authorized by docs/contracts/adr-gtm-context-spine.md."
|
|
78
78
|
},
|
|
79
79
|
"execution": {
|
|
80
80
|
"type": "object",
|