arkaos 2.49.0 → 2.51.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/VERSION +1 -1
- package/departments/brand/skills/design-system/SKILL.md +178 -6
- package/departments/brand/skills/primal-audit/SKILL.md +78 -5
- package/departments/brand/workflows/audit.yaml +118 -0
- package/departments/brand/workflows/design-system.yaml +122 -0
- package/departments/saas/skills/gtm-strategy/SKILL.md +133 -7
- package/departments/saas/workflows/gtm-strategy.yaml +144 -0
- package/package.json +1 -1
- package/pyproject.toml +1 -1
package/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
2.
|
|
1
|
+
2.51.0
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: brand/design-system
|
|
3
3
|
description: >
|
|
4
|
-
|
|
4
|
+
Production design system specification: tokens, atoms, molecules, organisms,
|
|
5
|
+
templates, and pages — with WCAG AA conformance and Storybook export contract.
|
|
5
6
|
allowed-tools: [Read, Write, Edit, Bash, Grep, Glob, Agent, WebFetch, WebSearch]
|
|
6
7
|
---
|
|
7
8
|
|
|
@@ -21,12 +22,183 @@ does not replace the vault.
|
|
|
21
22
|
|
|
22
23
|
# Design System — `/brand design-system`
|
|
23
24
|
|
|
24
|
-
> **
|
|
25
|
+
> **Lead:** Sofia D. (UX Designer) + Isabel (Visual Designer) | **Framework:** Atomic Design (Brad Frost) + Design Tokens + WCAG 2.2 AA
|
|
25
26
|
|
|
26
|
-
## What
|
|
27
|
+
## What ships
|
|
27
28
|
|
|
28
|
-
|
|
29
|
+
A production design system in 5 deliverables:
|
|
29
30
|
|
|
30
|
-
|
|
31
|
+
1. **`design-tokens.json`** — semantic token layer
|
|
32
|
+
2. **Component catalog** — atoms → molecules → organisms → templates → pages
|
|
33
|
+
3. **WCAG 2.2 AA conformance report** — pass / waiver per component
|
|
34
|
+
4. **Storybook story stubs** — one story per component, ready to drop into Storybook
|
|
35
|
+
5. **Integration guide** — how to wire the system into a Vue/React/Vanilla project
|
|
31
36
|
|
|
32
|
-
|
|
37
|
+
## Token JSON schema
|
|
38
|
+
|
|
39
|
+
The token system has a **two-layer architecture**: raw primitives + semantic aliases. Semantic tokens reference primitives; surfaces reference semantic tokens. Never reference primitives directly in components.
|
|
40
|
+
|
|
41
|
+
```json
|
|
42
|
+
{
|
|
43
|
+
"$schema": "https://design-tokens.github.io/community-group/format/",
|
|
44
|
+
"primitive": {
|
|
45
|
+
"color": {
|
|
46
|
+
"neutral": {
|
|
47
|
+
"0": { "$value": "#FFFFFF", "$type": "color" },
|
|
48
|
+
"50": { "$value": "#FAFAFA", "$type": "color" },
|
|
49
|
+
"100": { "$value": "#F4F4F5", "$type": "color" },
|
|
50
|
+
"900": { "$value": "#18181B", "$type": "color" },
|
|
51
|
+
"1000":{ "$value": "#0A0A0A", "$type": "color" }
|
|
52
|
+
},
|
|
53
|
+
"accent": {
|
|
54
|
+
"500": { "$value": "#00FF88", "$type": "color" }
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
"size": {
|
|
58
|
+
"0": { "$value": "0", "$type": "dimension" },
|
|
59
|
+
"1": { "$value": "4px", "$type": "dimension" },
|
|
60
|
+
"2": { "$value": "8px", "$type": "dimension" },
|
|
61
|
+
"4": { "$value": "16px", "$type": "dimension" }
|
|
62
|
+
}
|
|
63
|
+
},
|
|
64
|
+
"semantic": {
|
|
65
|
+
"color": {
|
|
66
|
+
"background": { "$value": "{primitive.color.neutral.1000}", "$type": "color" },
|
|
67
|
+
"surface": { "$value": "{primitive.color.neutral.900}", "$type": "color" },
|
|
68
|
+
"text": { "$value": "{primitive.color.neutral.50}", "$type": "color" },
|
|
69
|
+
"accent": { "$value": "{primitive.color.accent.500}", "$type": "color" }
|
|
70
|
+
},
|
|
71
|
+
"space": {
|
|
72
|
+
"compact": { "$value": "{primitive.size.2}", "$type": "dimension" },
|
|
73
|
+
"default": { "$value": "{primitive.size.4}", "$type": "dimension" },
|
|
74
|
+
"generous": { "$value": "{primitive.size.6}", "$type": "dimension" }
|
|
75
|
+
},
|
|
76
|
+
"radius": { "$value": "{primitive.size.2}", "$type": "dimension" },
|
|
77
|
+
"motion": {
|
|
78
|
+
"duration": {
|
|
79
|
+
"fast": { "$value": "150ms", "$type": "duration" },
|
|
80
|
+
"base": { "$value": "250ms", "$type": "duration" },
|
|
81
|
+
"slow": { "$value": "400ms", "$type": "duration" }
|
|
82
|
+
},
|
|
83
|
+
"easing": {
|
|
84
|
+
"standard": { "$value": "cubic-bezier(0.4, 0, 0.2, 1)", "$type": "cubicBezier" }
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
Required token groups: `color`, `space`, `typography`, `radius`, `elevation`, `motion`, `border`. Each group must have at minimum 3 semantic tokens. Primitives are reusable; semantics are intentional.
|
|
92
|
+
|
|
93
|
+
## Atomic Design 5-Level Component Manifest
|
|
94
|
+
|
|
95
|
+
Each component is documented with: name, level, props, slots, accessibility notes, Storybook story stub.
|
|
96
|
+
|
|
97
|
+
### Level 1 — Atoms (10-15 required)
|
|
98
|
+
Indivisible UI primitives. Examples:
|
|
99
|
+
|
|
100
|
+
| Component | Props | A11y notes |
|
|
101
|
+
|---|---|---|
|
|
102
|
+
| Button | `variant` (primary/secondary/ghost), `size`, `disabled`, `loading` | role=button, aria-busy on loading, keyboard-actionable |
|
|
103
|
+
| Input | `type`, `value`, `placeholder`, `disabled`, `invalid` | aria-invalid on invalid, aria-describedby for error |
|
|
104
|
+
| Label | `htmlFor`, `required` | explicit for association required |
|
|
105
|
+
| Icon | `name`, `size`, `decorative` | role=img + aria-label OR aria-hidden when decorative |
|
|
106
|
+
| Avatar | `src`, `alt`, `fallback`, `size` | alt required unless decorative |
|
|
107
|
+
| Badge | `variant`, `count` | aria-live polite when count changes |
|
|
108
|
+
| Spinner | `size`, `label` | role=status + aria-label |
|
|
109
|
+
| Switch | `checked`, `disabled` | role=switch + aria-checked |
|
|
110
|
+
| Checkbox | `checked`, `indeterminate`, `disabled` | aria-checked tri-state support |
|
|
111
|
+
| Link | `href`, `external`, `variant` | rel=noopener for external |
|
|
112
|
+
|
|
113
|
+
### Level 2 — Molecules (8-12 required)
|
|
114
|
+
Composed pairs of atoms with one task focus. Examples:
|
|
115
|
+
|
|
116
|
+
| Component | Composes | A11y notes |
|
|
117
|
+
|---|---|---|
|
|
118
|
+
| FormField | Label + Input + ErrorMessage | aria-describedby chain |
|
|
119
|
+
| SearchBar | Input + Button + Icon | role=search, aria-label on form |
|
|
120
|
+
| Card | Heading + Body + optional Footer | semantic landmark when standalone |
|
|
121
|
+
| NavItem | Icon + Label + (Badge) | aria-current when active |
|
|
122
|
+
| Tab | Label + (Icon) + (Badge) | role=tab, aria-selected |
|
|
123
|
+
| Toast | Icon + Body + DismissButton | role=status or alert, dismissible |
|
|
124
|
+
| Tooltip | Anchor + Content | aria-describedby on anchor |
|
|
125
|
+
| Breadcrumb | Link[] + separator | nav landmark, aria-current on last |
|
|
126
|
+
|
|
127
|
+
### Level 3 — Organisms (6-10 required)
|
|
128
|
+
Complete sections of UI. Examples:
|
|
129
|
+
|
|
130
|
+
| Component | Composes | A11y notes |
|
|
131
|
+
|---|---|---|
|
|
132
|
+
| NavBar | Logo + NavItem[] + Avatar | nav landmark, skip-link target |
|
|
133
|
+
| HeroSection | Heading + Body + CTA + (Media) | one h1 per page rule |
|
|
134
|
+
| CardGrid | Card[] with layout | role=list when semantic, gap-aware |
|
|
135
|
+
| Dialog | Header + Body + Footer + FocusTrap | role=dialog, aria-labelledby, focus trap |
|
|
136
|
+
| DataTable | Header + Row[] with sort/filter | proper th scope, aria-sort |
|
|
137
|
+
| Sidebar | NavItem[] + collapse | nav landmark, persisted state |
|
|
138
|
+
| EmptyState | Icon + Heading + Body + (CTA) | role=region |
|
|
139
|
+
|
|
140
|
+
### Level 4 — Templates (3-5 required)
|
|
141
|
+
Page-level layouts with content slots. Examples: DashboardTemplate, ContentTemplate, MarketingTemplate, AuthTemplate, SettingsTemplate.
|
|
142
|
+
|
|
143
|
+
### Level 5 — Pages (2-3 required, production examples)
|
|
144
|
+
Production-ready pages with real content. Examples: LandingPage, DashboardHome, SettingsAccount.
|
|
145
|
+
|
|
146
|
+
## WCAG 2.2 AA Gates
|
|
147
|
+
|
|
148
|
+
Every component must pass:
|
|
149
|
+
|
|
150
|
+
| Criterion | Check | Tool |
|
|
151
|
+
|---|---|---|
|
|
152
|
+
| 1.4.3 Contrast (Minimum) | Body text ≥ 4.5:1 against background; large text ≥ 3:1 | manual + axe |
|
|
153
|
+
| 1.4.11 Non-text Contrast | UI components and graphical objects ≥ 3:1 against adjacent colors | manual + axe |
|
|
154
|
+
| 2.1.1 Keyboard | All functionality available via keyboard | manual |
|
|
155
|
+
| 2.4.7 Focus Visible | Visible focus indicator on all interactive elements | manual |
|
|
156
|
+
| 2.5.8 Target Size (Minimum) | Pointer targets ≥ 24×24 CSS pixels | manual |
|
|
157
|
+
| 4.1.2 Name, Role, Value | All UI components expose accessible name and role to AT | axe + screen reader |
|
|
158
|
+
| 4.1.3 Status Messages | Status updates announced without focus change | screen reader |
|
|
159
|
+
|
|
160
|
+
Components failing any criterion either remediate or document a **permanent waiver** with concrete user-impact rationale. Waivers require Quality Gate approval.
|
|
161
|
+
|
|
162
|
+
## Storybook Export Contract
|
|
163
|
+
|
|
164
|
+
Each component must ship one `.stories.{ts,mdx}` file with:
|
|
165
|
+
|
|
166
|
+
- **Default** story — props at defaults, single state visible
|
|
167
|
+
- **AllVariants** story — every variant prop combination
|
|
168
|
+
- **Interactive** story — controls (Storybook args) exposed for every prop
|
|
169
|
+
- **A11y** story — screen-reader narration sample + keyboard nav sequence
|
|
170
|
+
|
|
171
|
+
Story stubs use the CSF3 format:
|
|
172
|
+
|
|
173
|
+
```typescript
|
|
174
|
+
import type { Meta, StoryObj } from '@storybook/react';
|
|
175
|
+
import { Button } from './Button';
|
|
176
|
+
|
|
177
|
+
const meta: Meta<typeof Button> = {
|
|
178
|
+
component: Button,
|
|
179
|
+
parameters: { a11y: { test: 'error' } },
|
|
180
|
+
argTypes: {
|
|
181
|
+
variant: { control: 'select', options: ['primary', 'secondary', 'ghost'] },
|
|
182
|
+
size: { control: 'select', options: ['sm', 'md', 'lg'] },
|
|
183
|
+
disabled: { control: 'boolean' },
|
|
184
|
+
},
|
|
185
|
+
};
|
|
186
|
+
export default meta;
|
|
187
|
+
|
|
188
|
+
type Story = StoryObj<typeof Button>;
|
|
189
|
+
export const Default: Story = { args: { variant: 'primary', size: 'md' } };
|
|
190
|
+
export const AllVariants: Story = { /* render all variants in a grid */ };
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
## Integration Guide (delivery artifact)
|
|
194
|
+
|
|
195
|
+
A standalone markdown explaining:
|
|
196
|
+
- How to install token files (CSS variables / JSON / Tailwind config)
|
|
197
|
+
- How to import components in Vue / React / Vanilla
|
|
198
|
+
- How to extend the system (adding tokens, adding components, namespacing)
|
|
199
|
+
- How to run the WCAG audit locally (`npx axe-core --tags wcag2aa`)
|
|
200
|
+
- How to update Storybook stories when components change
|
|
201
|
+
|
|
202
|
+
## Output → Obsidian: `WizardingCode/Brand/DesignSystems/<project>-<date>/`
|
|
203
|
+
|
|
204
|
+
Delivers: `design-tokens.json` + component catalog (markdown with screenshots / mermaid hierarchy) + WCAG report + Storybook stubs + integration guide.
|
|
@@ -40,12 +40,51 @@ does not replace the vault.
|
|
|
40
40
|
|
|
41
41
|
1. **Gather** — Collect all brand assets: website, social, packaging, internal docs
|
|
42
42
|
2. **Map** — Fill each of the 7 elements with what currently exists
|
|
43
|
-
3. **Score** —
|
|
44
|
-
4. **Gaps** — Identify
|
|
45
|
-
5. **Recommend** — Specific
|
|
46
|
-
6. **Benchmark** — Compare against competitors' Primal Codes
|
|
43
|
+
3. **Score** — Apply the per-element rubric below (3 points each across 7 elements = 21 total)
|
|
44
|
+
4. **Gaps** — Identify weak elements and the specific sub-criterion that failed
|
|
45
|
+
5. **Recommend** — Specific remediation per gap, ranked by leverage
|
|
46
|
+
6. **Benchmark** — Compare against 3-5 competitors' Primal Codes
|
|
47
47
|
|
|
48
|
-
## Scoring
|
|
48
|
+
## Per-Element Scoring Rubric (3 sub-criteria each)
|
|
49
|
+
|
|
50
|
+
Each element is scored 0-3. Mark each sub-criterion present (1) or absent (0); sum to the element score.
|
|
51
|
+
|
|
52
|
+
### 1. Creation Story (max 3)
|
|
53
|
+
- [ ] **Origin moment is named** — a specific event, year, person, or pain point that triggered the brand
|
|
54
|
+
- [ ] **Consistency across surfaces** — the same story appears on About page, founder bio, key talks
|
|
55
|
+
- [ ] **Emotional anchor present** — a stakes-laden tension the founder needed to resolve
|
|
56
|
+
|
|
57
|
+
### 2. Creed (max 3)
|
|
58
|
+
- [ ] **Belief is stated, not implied** — explicit "we believe…" or "we exist because…" sentence
|
|
59
|
+
- [ ] **Belief has a counter-position** — the creed names what it rejects, not just what it affirms
|
|
60
|
+
- [ ] **Belief shapes product decisions** — at least one shipped feature can be traced to the creed
|
|
61
|
+
|
|
62
|
+
### 3. Icons (max 3)
|
|
63
|
+
- [ ] **Symbol is consistent** — same logo / mark across all primary surfaces
|
|
64
|
+
- [ ] **Symbol carries meaning** — the mark is decoded by users (Apple = bite, Nike = motion)
|
|
65
|
+
- [ ] **Sub-icons reinforce** — secondary visual language (palette, type, photography style) supports the primary symbol
|
|
66
|
+
|
|
67
|
+
### 4. Rituals (max 3)
|
|
68
|
+
- [ ] **Repeated user action defines the brand** — unboxing, onboarding, daily check-in, signature gesture
|
|
69
|
+
- [ ] **The ritual is named or recognizable** — users can describe the ritual back without prompting
|
|
70
|
+
- [ ] **The ritual is protected** — the brand resists altering it; the ritual has loadbearing weight
|
|
71
|
+
|
|
72
|
+
### 5. Non-Adherents (max 3)
|
|
73
|
+
- [ ] **Opposition is named** — competitors, mindsets, or status-quo positions explicitly called out
|
|
74
|
+
- [ ] **Identity is sharpened by contrast** — what the brand REFUSES is as clear as what it offers
|
|
75
|
+
- [ ] **Tribal lines are visible to outsiders** — adopting the brand signals belonging in a recognizable in-group
|
|
76
|
+
|
|
77
|
+
### 6. Sacred Lexicon (max 3)
|
|
78
|
+
- [ ] **3+ proprietary terms in active use** — words coined or claimed by the brand that customers repeat
|
|
79
|
+
- [ ] **Vocabulary is taught** — onboarding, docs, or messaging explicitly introduce the lexicon
|
|
80
|
+
- [ ] **Outsiders cannot fake fluency** — using the lexicon correctly signals real adherence
|
|
81
|
+
|
|
82
|
+
### 7. Leader (max 3)
|
|
83
|
+
- [ ] **A named human embodies the brand** — founder, CEO, public face with personal voice
|
|
84
|
+
- [ ] **Leader carries the creed** — public statements consistently align with the brand's belief
|
|
85
|
+
- [ ] **Leader is accessible** — direct contact channel exists (writing, podcast, social presence, AMAs)
|
|
86
|
+
|
|
87
|
+
## 21-Point Index
|
|
49
88
|
|
|
50
89
|
| Score | Rating | Meaning |
|
|
51
90
|
|-------|--------|---------|
|
|
@@ -54,4 +93,38 @@ does not replace the vault.
|
|
|
54
93
|
| 10-13 | Developing | Foundation exists, significant gaps |
|
|
55
94
|
| 0-9 | Underdeveloped | Major brand building needed |
|
|
56
95
|
|
|
96
|
+
## Evidence Citation Contract
|
|
97
|
+
|
|
98
|
+
Every per-criterion score MUST cite specific asset evidence. Format:
|
|
99
|
+
|
|
100
|
+
```
|
|
101
|
+
Creation Story (2/3)
|
|
102
|
+
✓ Origin moment named — "Founded 2018 in a coffee shop after the third
|
|
103
|
+
failed deploy" (About page, 2nd paragraph)
|
|
104
|
+
✓ Consistency across surfaces — same story on About + founder LinkedIn
|
|
105
|
+
+ S2 podcast appearance
|
|
106
|
+
✗ Emotional anchor present — origin reads as biography, no stakes-laden
|
|
107
|
+
tension. Suggested remediation: rewrite to surface the cost of the
|
|
108
|
+
problem (what was at risk if this didn't exist).
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
A score without evidence is a score without weight. Self-critique phase rejects any unjustified marks.
|
|
112
|
+
|
|
113
|
+
## Competitor Benchmark Template
|
|
114
|
+
|
|
115
|
+
For each of 3-5 competitors, complete the same 21-point rubric and compute relative position:
|
|
116
|
+
|
|
117
|
+
```
|
|
118
|
+
| Brand | Creation | Creed | Icons | Rituals | Non-Adherents | Lexicon | Leader | Total |
|
|
119
|
+
|-------|----------|-------|-------|---------|---------------|---------|--------|-------|
|
|
120
|
+
| Ours | 2 | 3 | 2 | 1 | 0 | 2 | 3 | 13/21 |
|
|
121
|
+
| CompA | 3 | 3 | 3 | 3 | 2 | 3 | 2 | 19/21 |
|
|
122
|
+
| CompB | 1 | 2 | 2 | 1 | 1 | 1 | 1 | 9/21 |
|
|
123
|
+
| CompC | 2 | 2 | 3 | 2 | 2 | 2 | 1 | 14/21 |
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
Output **strategic gaps** (where we trail the leader) vs **deliberate non-positions** (where we choose not to compete). Mark each gap with leverage rating: high / medium / low — to be ranked into the remediation plan.
|
|
127
|
+
|
|
57
128
|
## Output → Obsidian: `WizardingCode/Brand/Audits/PRIMAL-AUDIT-<brand>-<date>.md`
|
|
129
|
+
|
|
130
|
+
Includes: per-element scoring with citations, 21-point index, competitor benchmark, ranked remediation plan with leverage ratings, and concrete next-7-days actions for the top 3 gaps.
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
id: brand-audit
|
|
2
|
+
name: Brand Audit
|
|
3
|
+
description: Diagnose an existing brand against the 7 Primal Code elements with competitor benchmark
|
|
4
|
+
department: brand
|
|
5
|
+
tier: enterprise
|
|
6
|
+
command: "/brand audit"
|
|
7
|
+
requires_branch: false
|
|
8
|
+
requires_spec: false
|
|
9
|
+
quality_gate_required: true
|
|
10
|
+
|
|
11
|
+
phases:
|
|
12
|
+
- id: brief
|
|
13
|
+
name: Audit Brief
|
|
14
|
+
description: Define brand under audit, audience, competitors to benchmark against
|
|
15
|
+
agents:
|
|
16
|
+
- agent_id: brand-director-valentina
|
|
17
|
+
role: Frame audit scope, identify the 3-5 competitor brands for benchmark
|
|
18
|
+
gate:
|
|
19
|
+
type: user_approval
|
|
20
|
+
description: User confirms brand-under-audit and competitor set
|
|
21
|
+
|
|
22
|
+
- id: asset-gather
|
|
23
|
+
name: Asset Gathering
|
|
24
|
+
description: Collect all live brand assets (logo, palette, type, voice samples, taglines, web/social proof points)
|
|
25
|
+
agents:
|
|
26
|
+
- agent_id: brand-director-valentina
|
|
27
|
+
role: Catalog the brand surface area, flag missing assets
|
|
28
|
+
- agent_id: visual-designer-isabel
|
|
29
|
+
role: Extract visual tokens from existing materials
|
|
30
|
+
parallel: true
|
|
31
|
+
gate:
|
|
32
|
+
type: auto
|
|
33
|
+
outputs:
|
|
34
|
+
- type: document
|
|
35
|
+
format: markdown
|
|
36
|
+
obsidian_path: "WizardingCode/Brand/Audits/Assets/"
|
|
37
|
+
description: Asset inventory with file references
|
|
38
|
+
|
|
39
|
+
- id: seven-element-mapping
|
|
40
|
+
name: Primal 7-Element Mapping
|
|
41
|
+
description: Score each Primal element (Creation Story, Creed, Icons, Rituals, Sacred Words, Non-Believers, Leader) against evidence
|
|
42
|
+
agents:
|
|
43
|
+
- agent_id: brand-strategist-mateus
|
|
44
|
+
role: Score Creation Story, Creed, Sacred Words, Non-Believers, Leader against asset evidence
|
|
45
|
+
parallel: true
|
|
46
|
+
- agent_id: ux-designer-sofia-d
|
|
47
|
+
role: Score Icons and Rituals against UI/interaction evidence
|
|
48
|
+
parallel: true
|
|
49
|
+
gate:
|
|
50
|
+
type: auto
|
|
51
|
+
|
|
52
|
+
- id: scoring
|
|
53
|
+
name: 21-Point Scoring
|
|
54
|
+
description: Aggregate per-element scores into a 21-point Primal Code Index (3 points per element across 7 elements)
|
|
55
|
+
agents:
|
|
56
|
+
- agent_id: brand-strategist-mateus
|
|
57
|
+
role: Compute the 21-point Primal Code Index, identify gaps
|
|
58
|
+
gate:
|
|
59
|
+
type: user_approval
|
|
60
|
+
description: User reviews the 21-point scoring before benchmark phase
|
|
61
|
+
outputs:
|
|
62
|
+
- type: document
|
|
63
|
+
format: markdown
|
|
64
|
+
obsidian_path: "WizardingCode/Brand/Audits/Scoring/"
|
|
65
|
+
description: 21-point Primal Code Index with per-element evidence
|
|
66
|
+
|
|
67
|
+
- id: competitor-benchmark
|
|
68
|
+
name: Competitor Benchmark
|
|
69
|
+
description: Run the same 21-point scoring on 3-5 competitor brands; compute relative position
|
|
70
|
+
agents:
|
|
71
|
+
- agent_id: brand-strategist-mateus
|
|
72
|
+
role: Benchmark competitor scores, compute relative position
|
|
73
|
+
- agent_id: strategy-director-tomas
|
|
74
|
+
role: Strategic context — which gaps are wins to close, which are deliberate non-positions
|
|
75
|
+
parallel: true
|
|
76
|
+
gate:
|
|
77
|
+
type: user_approval
|
|
78
|
+
description: User approves the benchmark results before remediation ranking
|
|
79
|
+
|
|
80
|
+
- id: self-critique
|
|
81
|
+
name: Self-Critique
|
|
82
|
+
description: Stress-test the audit — are scores defensible by evidence? Are gaps actionable?
|
|
83
|
+
agents:
|
|
84
|
+
- agent_id: brand-director-valentina
|
|
85
|
+
role: Verify each score has a concrete asset citation, each gap has a measurable target
|
|
86
|
+
gate:
|
|
87
|
+
type: auto
|
|
88
|
+
|
|
89
|
+
- id: quality-gate
|
|
90
|
+
name: Quality Gate
|
|
91
|
+
model_override: opus
|
|
92
|
+
description: Mandatory quality review
|
|
93
|
+
agents:
|
|
94
|
+
- agent_id: cqo-marta
|
|
95
|
+
role: Orchestrate quality review
|
|
96
|
+
- agent_id: copy-director-eduardo
|
|
97
|
+
role: Audit prose quality, no clichés, defensible scoring language
|
|
98
|
+
parallel: true
|
|
99
|
+
- agent_id: tech-director-francisca
|
|
100
|
+
role: Visual evidence completeness, accessibility findings, file format integrity
|
|
101
|
+
parallel: true
|
|
102
|
+
gate:
|
|
103
|
+
type: quality_gate
|
|
104
|
+
required_verdict: APPROVED
|
|
105
|
+
|
|
106
|
+
- id: delivery
|
|
107
|
+
name: Audit Report & Recommendations
|
|
108
|
+
description: Compile audit report with ranked remediation recommendations
|
|
109
|
+
agents:
|
|
110
|
+
- agent_id: brand-director-valentina
|
|
111
|
+
role: Compile audit report — 21-point index, gap analysis, ranked remediation plan
|
|
112
|
+
gate:
|
|
113
|
+
type: auto
|
|
114
|
+
outputs:
|
|
115
|
+
- type: document
|
|
116
|
+
format: markdown
|
|
117
|
+
obsidian_path: "WizardingCode/Brand/Audits/"
|
|
118
|
+
description: Complete brand audit with 21-point index + competitor benchmark + ranked recommendations
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
id: brand-design-system
|
|
2
|
+
name: Design System Specification
|
|
3
|
+
description: Production design system from tokens to Storybook components (Atomic Design + WCAG AA)
|
|
4
|
+
department: brand
|
|
5
|
+
tier: enterprise
|
|
6
|
+
command: "/brand design-system"
|
|
7
|
+
requires_branch: false
|
|
8
|
+
requires_spec: false
|
|
9
|
+
quality_gate_required: true
|
|
10
|
+
|
|
11
|
+
phases:
|
|
12
|
+
- id: brief
|
|
13
|
+
name: Design System Brief
|
|
14
|
+
description: Define product surface, platforms, accessibility floor, integration target
|
|
15
|
+
agents:
|
|
16
|
+
- agent_id: brand-director-valentina
|
|
17
|
+
role: Frame system scope (web / mobile / multi-product), confirm accessibility floor (WCAG AA minimum)
|
|
18
|
+
gate:
|
|
19
|
+
type: user_approval
|
|
20
|
+
description: User confirms scope, platforms, and accessibility floor
|
|
21
|
+
|
|
22
|
+
- id: token-design
|
|
23
|
+
name: Token Design
|
|
24
|
+
description: Define design tokens (color, typography, spacing, radius, elevation, motion) as JSON
|
|
25
|
+
agents:
|
|
26
|
+
- agent_id: visual-designer-isabel
|
|
27
|
+
role: Color palette with semantic tokens, typography scale, spacing rhythm, radius/elevation/motion tokens
|
|
28
|
+
gate:
|
|
29
|
+
type: user_approval
|
|
30
|
+
description: User approves the token system before component build
|
|
31
|
+
outputs:
|
|
32
|
+
- type: document
|
|
33
|
+
format: json
|
|
34
|
+
obsidian_path: "WizardingCode/Brand/DesignSystems/Tokens/"
|
|
35
|
+
description: design-tokens.json with full semantic layer
|
|
36
|
+
|
|
37
|
+
- id: atom-molecule-organism
|
|
38
|
+
name: Atom, Molecule, Organism
|
|
39
|
+
description: Build the lower three Atomic Design levels — primitives, composed pairs, complete sections
|
|
40
|
+
agents:
|
|
41
|
+
- agent_id: ux-designer-sofia-d
|
|
42
|
+
role: Atoms (button, input, label, icon), molecules (form field, card header, nav item)
|
|
43
|
+
parallel: true
|
|
44
|
+
- agent_id: visual-designer-isabel
|
|
45
|
+
role: Organisms (nav bar, hero, card grid, dialog) with token application
|
|
46
|
+
parallel: true
|
|
47
|
+
gate:
|
|
48
|
+
type: auto
|
|
49
|
+
|
|
50
|
+
- id: template-page
|
|
51
|
+
name: Templates & Pages
|
|
52
|
+
description: Complete Atomic Design — page templates with content placeholders, plus 2-3 production page examples
|
|
53
|
+
agents:
|
|
54
|
+
- agent_id: ux-designer-sofia-d
|
|
55
|
+
role: Page templates (landing, dashboard, settings, empty state)
|
|
56
|
+
- agent_id: visual-designer-isabel
|
|
57
|
+
role: Production page examples with real content
|
|
58
|
+
parallel: true
|
|
59
|
+
gate:
|
|
60
|
+
type: user_approval
|
|
61
|
+
description: User approves the template set before accessibility audit
|
|
62
|
+
|
|
63
|
+
- id: accessibility-audit
|
|
64
|
+
name: WCAG AA Audit
|
|
65
|
+
description: Full WCAG 2.2 AA audit on every component — contrast, focus, semantics, ARIA, keyboard
|
|
66
|
+
agents:
|
|
67
|
+
- agent_id: wcag-auditor
|
|
68
|
+
role: WCAG 2.2 AA conformance audit on every atom/molecule/organism/template
|
|
69
|
+
- agent_id: ux-designer-sofia-d
|
|
70
|
+
role: Remediate failures, document permanent waivers with rationale
|
|
71
|
+
parallel: true
|
|
72
|
+
gate:
|
|
73
|
+
type: user_approval
|
|
74
|
+
description: User approves the conformance report (zero AA failures required)
|
|
75
|
+
outputs:
|
|
76
|
+
- type: document
|
|
77
|
+
format: markdown
|
|
78
|
+
obsidian_path: "WizardingCode/Brand/DesignSystems/Accessibility/"
|
|
79
|
+
description: WCAG AA conformance report — every component pass/waiver
|
|
80
|
+
|
|
81
|
+
- id: self-critique
|
|
82
|
+
name: Self-Critique
|
|
83
|
+
description: Stress-test the system — naming consistency, token coverage, scale integrity, edge-case components
|
|
84
|
+
agents:
|
|
85
|
+
- agent_id: brand-director-valentina
|
|
86
|
+
role: Verify naming consistency, token coverage, scale integrity, edge-case components
|
|
87
|
+
gate:
|
|
88
|
+
type: auto
|
|
89
|
+
|
|
90
|
+
- id: quality-gate
|
|
91
|
+
name: Quality Gate
|
|
92
|
+
model_override: opus
|
|
93
|
+
description: Mandatory quality review
|
|
94
|
+
agents:
|
|
95
|
+
- agent_id: cqo-marta
|
|
96
|
+
role: Orchestrate quality review
|
|
97
|
+
- agent_id: copy-director-eduardo
|
|
98
|
+
role: Component naming, prop names, docstring clarity, no AI clichés in copy
|
|
99
|
+
parallel: true
|
|
100
|
+
- agent_id: tech-director-francisca
|
|
101
|
+
role: Token schema integrity, accessibility compliance, Storybook contract correctness
|
|
102
|
+
parallel: true
|
|
103
|
+
gate:
|
|
104
|
+
type: quality_gate
|
|
105
|
+
required_verdict: APPROVED
|
|
106
|
+
|
|
107
|
+
- id: delivery
|
|
108
|
+
name: Design System Delivery
|
|
109
|
+
description: Compile the design system — tokens JSON + component catalog + WCAG report + Storybook story stubs
|
|
110
|
+
agents:
|
|
111
|
+
- agent_id: brand-director-valentina
|
|
112
|
+
role: Compile the design system package and write the integration guide
|
|
113
|
+
- agent_id: shadcn-padronizer
|
|
114
|
+
role: Optional shadcn/ui alignment for code-side parity
|
|
115
|
+
optional: true
|
|
116
|
+
gate:
|
|
117
|
+
type: auto
|
|
118
|
+
outputs:
|
|
119
|
+
- type: document
|
|
120
|
+
format: markdown
|
|
121
|
+
obsidian_path: "WizardingCode/Brand/DesignSystems/"
|
|
122
|
+
description: Complete design system — design-tokens.json + component catalog + accessibility report + Storybook stubs + integration guide
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: saas/gtm-strategy
|
|
3
3
|
description: >
|
|
4
|
-
|
|
4
|
+
Cross-departmental go-to-market strategy: ICP, positioning, motion selection,
|
|
5
|
+
channel mix, 90-day execution plan. Orchestrates SaaS + Strategy + Marketing
|
|
6
|
+
+ Sales + Landing.
|
|
5
7
|
allowed-tools: [Read, Write, Edit, Bash, Grep, Glob, Agent, WebFetch, WebSearch]
|
|
6
8
|
---
|
|
7
9
|
|
|
@@ -19,14 +21,138 @@ treat them as your default source. External research supplements, it
|
|
|
19
21
|
does not replace the vault.
|
|
20
22
|
<!-- arka:kb-first-prefix end -->
|
|
21
23
|
|
|
22
|
-
#
|
|
24
|
+
# GTM Strategy — `/saas gtm <product>`
|
|
23
25
|
|
|
24
|
-
> **
|
|
26
|
+
> **Lead:** Tiago (SaaS Strategist) | **Cross-dept:** Tomas (Strategy) + Mateus (Brand) + Luna (Marketing) + Miguel (Sales) + Ines (Landing) | **Framework:** MOVE (Sangram Vajre) + Onlyness + AARRR
|
|
25
27
|
|
|
26
|
-
## What
|
|
28
|
+
## What ships
|
|
27
29
|
|
|
28
|
-
|
|
30
|
+
A production GTM package in 6 deliverables, each with a named owner and a measurable target:
|
|
29
31
|
|
|
30
|
-
|
|
32
|
+
1. **ICP profile** — firmographics + persona + pain triggers + buying signal
|
|
33
|
+
2. **Positioning statement** — Onlyness frame + competitive contrast table
|
|
34
|
+
3. **Motion selection** — primary + assist motion with feasibility math
|
|
35
|
+
4. **Channel mix** — budget allocation across channels with AARRR baseline
|
|
36
|
+
5. **90-day execution plan** — week-by-week with owners + checkpoints
|
|
37
|
+
6. **Executive summary** — 1-page printable to align stakeholders
|
|
31
38
|
|
|
32
|
-
|
|
39
|
+
## ICP Template (firmographic + persona + pain + signal)
|
|
40
|
+
|
|
41
|
+
Every ICP profile must carry these four blocks. Vagueness in any block invalidates the rest of the GTM stack.
|
|
42
|
+
|
|
43
|
+
### Firmographics (the company shape)
|
|
44
|
+
- Company size (employees, ARR range)
|
|
45
|
+
- Industry vertical (with NAICS / SIC code if relevant)
|
|
46
|
+
- Geo (countries, regulatory regions)
|
|
47
|
+
- Tech stack signal (what they already pay for that signals readiness)
|
|
48
|
+
- Funding stage (bootstrapped / seed / Series A+ / public)
|
|
49
|
+
|
|
50
|
+
### Persona (the human inside the company)
|
|
51
|
+
- Title and seniority
|
|
52
|
+
- Primary KPI they own
|
|
53
|
+
- Tools they use daily
|
|
54
|
+
- Information diet (newsletters, podcasts, communities)
|
|
55
|
+
- Decision authority (sole / committee / approval)
|
|
56
|
+
|
|
57
|
+
### Pain Triggers (the moment they realise they need this)
|
|
58
|
+
- The specific event that surfaces the pain (new hire, missed quarter, audit, regulation change)
|
|
59
|
+
- The cost of not solving it (revenue at risk, hours wasted, compliance exposure)
|
|
60
|
+
- The status quo workaround (Excel, agencies, internal builds)
|
|
61
|
+
|
|
62
|
+
### Buying Signal (how you find them in the wild)
|
|
63
|
+
- Observable behavior in the open web (job postings with specific keywords, tool reviews, talks at specific conferences)
|
|
64
|
+
- Account-level data signal (vendor footprint, hiring pattern, public infrastructure)
|
|
65
|
+
- Conversational signal (specific Slack/Discord communities, specific subreddits)
|
|
66
|
+
|
|
67
|
+
## Onlyness Statement (positioning frame)
|
|
68
|
+
|
|
69
|
+
The Onlyness frame forces a single defensible sentence:
|
|
70
|
+
|
|
71
|
+
> **We are the only [category] that [unique mechanism] for [ICP] who want [outcome].**
|
|
72
|
+
|
|
73
|
+
Worked example:
|
|
74
|
+
> "We are the only AI agent orchestration system that ships behavioral compliance telemetry baked into the runtime for technical founders who want measurable governance instead of vibes-based discipline."
|
|
75
|
+
|
|
76
|
+
The statement must pass three tests:
|
|
77
|
+
1. **Substitution test** — replace your name with a competitor's. Does the sentence still hold? If yes, the positioning isn't defensible.
|
|
78
|
+
2. **Customer-articulation test** — would a current customer say this sentence back unprompted in roughly these words?
|
|
79
|
+
3. **Mechanism test** — is "unique mechanism" a verifiable specific (a feature, a method, a metric) or marketing prose (an adjective, a vibe)?
|
|
80
|
+
|
|
81
|
+
## 6 GTM Motions (pick primary + assist)
|
|
82
|
+
|
|
83
|
+
Each motion has a default ICP shape and a default channel mix. Mixing motions without understanding the constraints below produces zero-momentum GTM.
|
|
84
|
+
|
|
85
|
+
| Motion | Default ICP | Default Channels | Velocity | Typical CAC payback |
|
|
86
|
+
|---|---|---|---|---|
|
|
87
|
+
| **Product-Led (PLG)** | High-volume, low-ticket, self-serve adoption pattern | SEO + integrations + viral loops + product itself | Fast (weeks to first value) | 6-12 months |
|
|
88
|
+
| **Sales-Led (SLG)** | Enterprise, committee buying, regulated industries | Outbound + content + events + partner channel | Slow (months to close) | 12-18 months |
|
|
89
|
+
| **Community-Led** | High-affinity practitioners, identity-driven adoption | Owned community + open source + advocate program | Medium (compounds quarterly) | Variable (community creates own loop) |
|
|
90
|
+
| **Partner-Led** | Vertical specialists, complex installs, system integrator channel | Channel partnerships + reseller program + co-marketing | Slow start, faster scale | 9-18 months |
|
|
91
|
+
| **Inbound** | Information-seeking buyers researching solutions | SEO + content marketing + comparison content + reviews | Medium (3-6 month ramp) | 6-12 months |
|
|
92
|
+
| **Outbound** | Identified buyer set, account-based targeting | Cold email + cold call + LinkedIn + ABM | Fast pipeline, slow trust | 12-24 months |
|
|
93
|
+
|
|
94
|
+
The MOVE framework (Sangram Vajre): **M**arkets (who you're selling into), **O**perations (your repeatable engine), **V**elocity (deal cycle + expansion math), **E**xpansion (NRR > 110% target).
|
|
95
|
+
|
|
96
|
+
## Channel-Motion Matrix
|
|
97
|
+
|
|
98
|
+
```
|
|
99
|
+
Content/SEO Paid Community Partner Event Outbound
|
|
100
|
+
Product-Led ✓✓✓ ✓✓ ✓✓✓ ✓ ✓ —
|
|
101
|
+
Sales-Led ✓✓ ✓✓ ✓ ✓✓✓ ✓✓✓ ✓✓✓
|
|
102
|
+
Community-Led ✓✓✓ — ✓✓✓✓ ✓✓ ✓✓ —
|
|
103
|
+
Partner-Led ✓ ✓ ✓ ✓✓✓✓ ✓✓✓ ✓✓
|
|
104
|
+
Inbound ✓✓✓✓ ✓✓✓ ✓✓ ✓ ✓✓ —
|
|
105
|
+
Outbound ✓✓ ✓ ✓ ✓✓ ✓✓ ✓✓✓✓
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
Pick exactly ONE primary channel that gets 50%+ of budget. Add at most TWO assist channels. More channels = no channel.
|
|
109
|
+
|
|
110
|
+
## 90-Day Execution Plan Template
|
|
111
|
+
|
|
112
|
+
Plan structure (every plan must follow this shape):
|
|
113
|
+
|
|
114
|
+
```
|
|
115
|
+
Week 1-2: Foundation
|
|
116
|
+
- [Owner] ICP doc validated with 5 customer conversations
|
|
117
|
+
- [Owner] Positioning statement live on homepage
|
|
118
|
+
- [Owner] Tracking baseline measured (current AARRR rates)
|
|
119
|
+
|
|
120
|
+
Week 3-4: Channel Activation (primary)
|
|
121
|
+
- [Owner] First 4 [channel-native content units] published
|
|
122
|
+
- [Owner] Conversion tracking live, first signals captured
|
|
123
|
+
- [Owner] Sales playbook v1 written for inbound responses
|
|
124
|
+
|
|
125
|
+
Week 5-8: Iteration
|
|
126
|
+
- [Owner] Top-funnel CAC measured, channel ROI computed
|
|
127
|
+
- [Owner] Pricing test A/B started
|
|
128
|
+
- [Owner] First 10 customer interviews completed and tagged
|
|
129
|
+
- [Owner] Assist channels activated based on primary signal
|
|
130
|
+
|
|
131
|
+
Week 9-12: Scale Decision
|
|
132
|
+
- [Owner] Channel-mix review — double down or pivot
|
|
133
|
+
- [Owner] First retention cohort analysis (D7, D30)
|
|
134
|
+
- [Owner] Next-90-day plan written based on real data
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
Every line must have: owner name, measurable output, due date.
|
|
138
|
+
|
|
139
|
+
## Executive Summary (1-page, mandatory output)
|
|
140
|
+
|
|
141
|
+
The full GTM package is dense. The 1-page exec summary captures:
|
|
142
|
+
|
|
143
|
+
```
|
|
144
|
+
Product: [name]
|
|
145
|
+
ICP: [one sentence: who, where, what pain]
|
|
146
|
+
Positioning: [Onlyness sentence]
|
|
147
|
+
Primary Motion: [name + why this one]
|
|
148
|
+
Primary Channel: [name + 90-day budget]
|
|
149
|
+
North Star Metric: [the one number that, if it moves, the strategy works]
|
|
150
|
+
Day-90 Target: [specific number tied to North Star Metric]
|
|
151
|
+
Top Risk: [what would invalidate this strategy + mitigation]
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
If the executive summary doesn't fit on one printable page, the strategy is overcomplicated.
|
|
155
|
+
|
|
156
|
+
## Output → Obsidian: `WizardingCode/GTM/<product>-<date>/`
|
|
157
|
+
|
|
158
|
+
Delivers: ICP profile + positioning statement + motion selection + channel mix + 90-day plan + executive summary. Plus the cross-departmental review trail (Strategy + Brand + Marketing + Sales + Landing signatures from each phase gate).
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
id: saas-gtm-strategy
|
|
2
|
+
name: GTM Strategy (Cross-Departmental)
|
|
3
|
+
description: Full go-to-market strategy from ICP to 90-day execution plan, orchestrating SaaS + Strategy + Marketing + Sales + Landing
|
|
4
|
+
department: saas
|
|
5
|
+
tier: enterprise
|
|
6
|
+
command: "/saas gtm"
|
|
7
|
+
requires_branch: false
|
|
8
|
+
requires_spec: false
|
|
9
|
+
quality_gate_required: true
|
|
10
|
+
|
|
11
|
+
phases:
|
|
12
|
+
- id: brief
|
|
13
|
+
name: GTM Brief
|
|
14
|
+
description: Define product, current stage, available budget/runway, and success metric
|
|
15
|
+
agents:
|
|
16
|
+
- agent_id: saas-strategist-tiago
|
|
17
|
+
role: Frame product context, current ARR/MRR, runway, win condition for the launch
|
|
18
|
+
gate:
|
|
19
|
+
type: user_approval
|
|
20
|
+
description: User confirms product context, budget, and success metric
|
|
21
|
+
|
|
22
|
+
- id: icp-discovery
|
|
23
|
+
name: ICP Discovery
|
|
24
|
+
description: Define Ideal Customer Profile from existing user data and competitor analysis
|
|
25
|
+
agents:
|
|
26
|
+
- agent_id: strategy-director-tomas
|
|
27
|
+
role: ICP framework — firmographics, technographics, pain triggers, buying committee
|
|
28
|
+
parallel: true
|
|
29
|
+
- agent_id: saas-strategist-tiago
|
|
30
|
+
role: Current-user pattern extraction, look-alike modeling, willingness-to-pay signals
|
|
31
|
+
parallel: true
|
|
32
|
+
gate:
|
|
33
|
+
type: user_approval
|
|
34
|
+
description: User approves the ICP (firmographics + persona + pain triggers + buying signal)
|
|
35
|
+
outputs:
|
|
36
|
+
- type: document
|
|
37
|
+
format: markdown
|
|
38
|
+
obsidian_path: "WizardingCode/GTM/ICP/"
|
|
39
|
+
description: ICP profile with persona card, pain triggers, buying signals
|
|
40
|
+
|
|
41
|
+
- id: positioning
|
|
42
|
+
name: Positioning Statement
|
|
43
|
+
description: Position the product in the ICP's mental category using Ries/Trout template + Onlyness frame
|
|
44
|
+
agents:
|
|
45
|
+
- agent_id: brand-strategist-mateus
|
|
46
|
+
role: Onlyness statement (only X that Y for Z), category creation vs category capture analysis
|
|
47
|
+
- agent_id: strategy-director-tomas
|
|
48
|
+
role: Competitive contrast — 3-5 direct competitors with relative positioning
|
|
49
|
+
parallel: true
|
|
50
|
+
gate:
|
|
51
|
+
type: user_approval
|
|
52
|
+
description: User approves positioning (one-sentence + competitive contrast)
|
|
53
|
+
outputs:
|
|
54
|
+
- type: document
|
|
55
|
+
format: markdown
|
|
56
|
+
obsidian_path: "WizardingCode/GTM/Positioning/"
|
|
57
|
+
description: Positioning statement + competitive contrast table
|
|
58
|
+
|
|
59
|
+
- id: motion-selection
|
|
60
|
+
name: GTM Motion Selection
|
|
61
|
+
description: Pick the primary motion (PLG / SLG / community / partner / inbound / outbound) and the assist motion
|
|
62
|
+
agents:
|
|
63
|
+
- agent_id: saas-strategist-tiago
|
|
64
|
+
role: Apply Sangram Vajre's MOVE framework — Markets, Operations, Velocity, Expansion
|
|
65
|
+
- agent_id: sales-director-miguel
|
|
66
|
+
role: Sales motion feasibility — pipeline math, CAC payback, win-rate baseline
|
|
67
|
+
parallel: true
|
|
68
|
+
gate:
|
|
69
|
+
type: user_approval
|
|
70
|
+
description: User approves primary motion + assist motion + 90-day target velocity
|
|
71
|
+
|
|
72
|
+
- id: channel-mix
|
|
73
|
+
name: Channel Mix
|
|
74
|
+
description: Map motion to channels — content / paid / community / partnerships / events / outbound — with budget allocation
|
|
75
|
+
agents:
|
|
76
|
+
- agent_id: marketing-director-luna
|
|
77
|
+
role: Channel mix design with AARRR baseline, growth loop selection
|
|
78
|
+
- agent_id: conversion-strategist-ines
|
|
79
|
+
role: Landing surface design per channel (one URL per channel intent)
|
|
80
|
+
parallel: true
|
|
81
|
+
gate:
|
|
82
|
+
type: user_approval
|
|
83
|
+
description: User approves channel allocation and budget split
|
|
84
|
+
outputs:
|
|
85
|
+
- type: document
|
|
86
|
+
format: markdown
|
|
87
|
+
obsidian_path: "WizardingCode/GTM/Channels/"
|
|
88
|
+
description: Channel mix with budget allocation and AARRR baseline
|
|
89
|
+
|
|
90
|
+
- id: ninety-day-plan
|
|
91
|
+
name: 90-Day Execution Plan
|
|
92
|
+
description: Concrete week-by-week deliverables, owners, success metrics — first 90 days
|
|
93
|
+
agents:
|
|
94
|
+
- agent_id: saas-strategist-tiago
|
|
95
|
+
role: Week-by-week deliverable plan with named owners and weekly checkpoints
|
|
96
|
+
- agent_id: marketing-director-luna
|
|
97
|
+
role: Marketing-side deliverables (content cadence, paid ramp, community)
|
|
98
|
+
parallel: true
|
|
99
|
+
- agent_id: sales-director-miguel
|
|
100
|
+
role: Sales-side deliverables (outbound cadence, demo book rate target)
|
|
101
|
+
parallel: true
|
|
102
|
+
gate:
|
|
103
|
+
type: user_approval
|
|
104
|
+
description: User approves the 90-day plan before Quality Gate
|
|
105
|
+
|
|
106
|
+
- id: self-critique
|
|
107
|
+
name: Self-Critique
|
|
108
|
+
description: Stress-test the plan — is the motion-channel-budget triple internally consistent? Are weekly checkpoints measurable?
|
|
109
|
+
agents:
|
|
110
|
+
- agent_id: strategy-director-tomas
|
|
111
|
+
role: Strategic coherence check — motion ↔ ICP ↔ positioning ↔ channels alignment
|
|
112
|
+
gate:
|
|
113
|
+
type: auto
|
|
114
|
+
|
|
115
|
+
- id: quality-gate
|
|
116
|
+
name: Quality Gate
|
|
117
|
+
model_override: opus
|
|
118
|
+
description: Mandatory quality review
|
|
119
|
+
agents:
|
|
120
|
+
- agent_id: cqo-marta
|
|
121
|
+
role: Orchestrate quality review
|
|
122
|
+
- agent_id: copy-director-eduardo
|
|
123
|
+
role: ICP language, positioning prose, plan readability — no clichés
|
|
124
|
+
parallel: true
|
|
125
|
+
- agent_id: tech-director-francisca
|
|
126
|
+
role: Plan executability — every action has an owner, a date, a metric
|
|
127
|
+
parallel: true
|
|
128
|
+
gate:
|
|
129
|
+
type: quality_gate
|
|
130
|
+
required_verdict: APPROVED
|
|
131
|
+
|
|
132
|
+
- id: delivery
|
|
133
|
+
name: GTM Package Delivery
|
|
134
|
+
description: Compile the full GTM package and produce the 1-page executive summary
|
|
135
|
+
agents:
|
|
136
|
+
- agent_id: saas-strategist-tiago
|
|
137
|
+
role: Full GTM package compilation + 1-page executive summary
|
|
138
|
+
gate:
|
|
139
|
+
type: auto
|
|
140
|
+
outputs:
|
|
141
|
+
- type: document
|
|
142
|
+
format: markdown
|
|
143
|
+
obsidian_path: "WizardingCode/GTM/"
|
|
144
|
+
description: Complete GTM package — ICP + positioning + motion + channel mix + 90-day plan + executive summary
|
package/package.json
CHANGED