taketomarket 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (123) hide show
  1. package/.claude-plugin/plugin.json +10 -0
  2. package/LICENSE +21 -0
  3. package/README.md +419 -0
  4. package/agents/ttm-producer.md +53 -0
  5. package/bin/lib/campaign.cjs +553 -0
  6. package/bin/lib/commit.cjs +105 -0
  7. package/bin/lib/core.cjs +172 -0
  8. package/bin/lib/deviation.cjs +149 -0
  9. package/bin/lib/drift-log.cjs +219 -0
  10. package/bin/lib/health.cjs +438 -0
  11. package/bin/lib/slug.cjs +59 -0
  12. package/bin/lib/state.cjs +96 -0
  13. package/bin/ttm-tools.cjs +157 -0
  14. package/gates/base-gates.md +266 -0
  15. package/gates/discipline/.gitkeep +0 -0
  16. package/gates/gate-evaluation.md +341 -0
  17. package/gates/meta-gates.md +19 -0
  18. package/install.js +307 -0
  19. package/package.json +53 -0
  20. package/playbooks/.gitkeep +0 -0
  21. package/playbooks/aeo.md +223 -0
  22. package/playbooks/affiliate.md +272 -0
  23. package/playbooks/base.md +110 -0
  24. package/playbooks/email.md +306 -0
  25. package/playbooks/events.md +320 -0
  26. package/playbooks/linkedin.md +263 -0
  27. package/playbooks/paid-ads.md +318 -0
  28. package/playbooks/pr-media.md +296 -0
  29. package/playbooks/seo.md +284 -0
  30. package/playbooks/social.md +305 -0
  31. package/playbooks/youtube.md +325 -0
  32. package/references/context-loading.md +107 -0
  33. package/references/learnings-extraction.md +94 -0
  34. package/references/measurement-template.md +48 -0
  35. package/references/meta-gate-evaluation.md +169 -0
  36. package/references/positioning-check-report.md +197 -0
  37. package/references/review-checklist.md +78 -0
  38. package/references/ship-checklist-items.md +94 -0
  39. package/settings.json +4 -0
  40. package/skills/ttm-aeo-check/SKILL.md +20 -0
  41. package/skills/ttm-affiliate-kit/SKILL.md +19 -0
  42. package/skills/ttm-archive/SKILL.md +13 -0
  43. package/skills/ttm-brand-refresh/SKILL.md +19 -0
  44. package/skills/ttm-brief/SKILL.md +14 -0
  45. package/skills/ttm-competitor-scan/SKILL.md +19 -0
  46. package/skills/ttm-email-preflight/SKILL.md +19 -0
  47. package/skills/ttm-fix/SKILL.md +13 -0
  48. package/skills/ttm-health/SKILL.md +12 -0
  49. package/skills/ttm-icp-refresh/SKILL.md +19 -0
  50. package/skills/ttm-init/SKILL.md +12 -0
  51. package/skills/ttm-keyword-map/SKILL.md +19 -0
  52. package/skills/ttm-learn/SKILL.md +14 -0
  53. package/skills/ttm-measure/SKILL.md +14 -0
  54. package/skills/ttm-new-campaign/SKILL.md +13 -0
  55. package/skills/ttm-next/SKILL.md +12 -0
  56. package/skills/ttm-positioning-check/SKILL.md +19 -0
  57. package/skills/ttm-positioning-shift/SKILL.md +19 -0
  58. package/skills/ttm-produce/SKILL.md +14 -0
  59. package/skills/ttm-repurpose/SKILL.md +20 -0
  60. package/skills/ttm-research/SKILL.md +13 -0
  61. package/skills/ttm-resume/SKILL.md +13 -0
  62. package/skills/ttm-review/SKILL.md +13 -0
  63. package/skills/ttm-seo-audit/SKILL.md +20 -0
  64. package/skills/ttm-ship/SKILL.md +13 -0
  65. package/skills/ttm-state/SKILL.md +13 -0
  66. package/skills/ttm-verify/SKILL.md +14 -0
  67. package/templates/agents-md.md +65 -0
  68. package/templates/campaign-brief.md +74 -0
  69. package/templates/campaign-research.md +39 -0
  70. package/templates/campaign-state.md +40 -0
  71. package/templates/claude-md.md +65 -0
  72. package/templates/deviation-log.md +12 -0
  73. package/templates/drift-log.md +17 -0
  74. package/templates/fix-brief.md +59 -0
  75. package/templates/fix-log.md +22 -0
  76. package/templates/measurement-report.md +75 -0
  77. package/templates/migration-plan.md +24 -0
  78. package/templates/production-manifest.json +20 -0
  79. package/templates/reference-files/brand.md +45 -0
  80. package/templates/reference-files/calendar.md +30 -0
  81. package/templates/reference-files/channels.md +40 -0
  82. package/templates/reference-files/competitors.md +40 -0
  83. package/templates/reference-files/icp.md +50 -0
  84. package/templates/reference-files/learnings.md +40 -0
  85. package/templates/reference-files/metrics.md +42 -0
  86. package/templates/reference-files/positioning.md +38 -0
  87. package/templates/reference-files/state.md +27 -0
  88. package/templates/verification-report.md +59 -0
  89. package/workflows/discipline/.gitkeep +0 -0
  90. package/workflows/discipline/aeo-check.md +180 -0
  91. package/workflows/discipline/affiliate-kit.md +147 -0
  92. package/workflows/discipline/email-preflight.md +150 -0
  93. package/workflows/discipline/keyword-map.md +125 -0
  94. package/workflows/discipline/repurpose.md +329 -0
  95. package/workflows/discipline/seo-audit.md +169 -0
  96. package/workflows/lifecycle/.gitkeep +0 -0
  97. package/workflows/lifecycle/brief-positioning-check.md +90 -0
  98. package/workflows/lifecycle/brief.md +355 -0
  99. package/workflows/lifecycle/fix.md +495 -0
  100. package/workflows/lifecycle/learn.md +405 -0
  101. package/workflows/lifecycle/measure.md +379 -0
  102. package/workflows/lifecycle/produce.md +383 -0
  103. package/workflows/lifecycle/research.md +264 -0
  104. package/workflows/lifecycle/review.md +432 -0
  105. package/workflows/lifecycle/ship.md +521 -0
  106. package/workflows/lifecycle/verify.md +507 -0
  107. package/workflows/reference-mgmt/.gitkeep +0 -0
  108. package/workflows/reference-mgmt/brand-refresh.md +193 -0
  109. package/workflows/reference-mgmt/competitor-scan.md +228 -0
  110. package/workflows/reference-mgmt/icp-refresh.md +200 -0
  111. package/workflows/reference-mgmt/positioning-check.md +339 -0
  112. package/workflows/reference-mgmt/positioning-shift.md +368 -0
  113. package/workflows/setup/.gitkeep +0 -0
  114. package/workflows/setup/init-questions.md +225 -0
  115. package/workflows/setup/init-validation.md +155 -0
  116. package/workflows/setup/init.md +449 -0
  117. package/workflows/setup/new-campaign.md +134 -0
  118. package/workflows/utility/.gitkeep +0 -0
  119. package/workflows/utility/archive.md +334 -0
  120. package/workflows/utility/health.md +166 -0
  121. package/workflows/utility/next.md +187 -0
  122. package/workflows/utility/resume.md +249 -0
  123. package/workflows/utility/state.md +207 -0
@@ -0,0 +1,10 @@
1
+ {
2
+ "name": "taketomarket",
3
+ "version": "0.1.0",
4
+ "description": "Marketing operating system for Claude Code. Spec-driven campaigns with positioning-as-invariant enforcement, quality gate walls, and compound learnings.",
5
+ "author": {
6
+ "name": "takeToMarket"
7
+ },
8
+ "license": "MIT",
9
+ "keywords": ["marketing", "campaigns", "positioning", "quality-gates", "agent-skills"]
10
+ }
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 takeToMarket Contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,419 @@
1
+ # takeToMarket
2
+
3
+ A marketing operating system for Claude Code and Codex. Spec-driven campaigns with positioning-as-invariant enforcement, quality gate walls, and compound learnings.
4
+
5
+ takeToMarket is not a content generator -- it is a marketing operating system that treats every campaign, asset, and channel as a spec-driven unit with a verifiable outcome, a positioning invariant, and a quality gate wall. Install it into your Claude Code or Codex environment and run marketing campaigns through a 9-phase lifecycle with persistent state, compound learnings, and automated verification.
6
+
7
+ **Core invariant:** Every marketing asset ships with a verifiable outcome metric and passes through a positioning-invariant quality gate wall -- no asset ships without both, ever.
8
+
9
+ ## Installation
10
+
11
+ ### Via npm (recommended)
12
+
13
+ ```bash
14
+ npx taketomarket
15
+ ```
16
+
17
+ The installer detects your runtime automatically (Claude Code or Codex) by checking for `~/.claude/` or `~/.codex/` directories.
18
+
19
+ Override detection with an explicit flag:
20
+
21
+ ```bash
22
+ npx taketomarket --runtime codex
23
+ ```
24
+
25
+ Validate the package without writing files:
26
+
27
+ ```bash
28
+ npx taketomarket --dry-run
29
+ ```
30
+
31
+ After installation, the installer runs structural validation and prints a pass/fail report for each component (directories, plugin.json, SKILL.md files). If all checks pass, you are ready to go.
32
+
33
+ ### Via git clone
34
+
35
+ ```bash
36
+ git clone https://github.com/taketomarket/taketomarket.git
37
+ cd taketomarket
38
+ ```
39
+
40
+ Then copy each component into the Claude Code plugin directory:
41
+
42
+ ```bash
43
+ mkdir -p ~/.claude/plugins/taketomarket
44
+ cp -r .claude-plugin ~/.claude/plugins/taketomarket/.claude-plugin
45
+ cp -r skills ~/.claude/plugins/taketomarket/skills
46
+ cp -r workflows ~/.claude/plugins/taketomarket/workflows
47
+ cp -r templates ~/.claude/plugins/taketomarket/templates
48
+ cp -r references ~/.claude/plugins/taketomarket/references
49
+ cp -r playbooks ~/.claude/plugins/taketomarket/playbooks
50
+ cp -r gates ~/.claude/plugins/taketomarket/gates
51
+ cp -r bin ~/.claude/plugins/taketomarket/bin
52
+ cp settings.json ~/.claude/plugins/taketomarket/
53
+ ```
54
+
55
+ For Codex, replace `~/.claude/` with `~/.codex/` in the paths above.
56
+
57
+ ### Verify Installation
58
+
59
+ Run `/ttm-health` inside Claude Code to confirm the setup. It validates directory integrity, reference file presence, and state consistency.
60
+
61
+ ## Quick Start
62
+
63
+ Once installed, run these commands inside Claude Code (or Codex) to execute your first campaign:
64
+
65
+ 1. **Initialize your workspace:** `/ttm-init`
66
+ Guided interview about your product, brand, audience, channels, competitors, and metrics. Generates all reference files in `.marketing/`.
67
+
68
+ 2. **Create a campaign:** `/ttm-new-campaign spring-launch`
69
+ Creates `.marketing/CAMPAIGNS/spring-launch/` with initialized state and reference file links.
70
+
71
+ 3. **Research the market:** `/ttm-research spring-launch`
72
+ Market/audience research with SERP analysis, competitor content mapping, and ambient narrative capture. Supports web search MCP tools or manual paste.
73
+
74
+ 4. **Write the brief:** `/ttm-brief spring-launch`
75
+ Generates a campaign brief with mandatory outcome metrics, positioning anchor, hook, proof points, channel mix, and asset list. Refuses to proceed without both output and outcome metrics.
76
+
77
+ 5. **Produce content:** `/ttm-produce spring-launch`
78
+ Generates each asset in a fresh isolated context loaded with brief + positioning + brand + ICP + playbook. Hero asset first, then derivatives in wave-parallel.
79
+
80
+ 6. **Verify quality:** `/ttm-verify spring-launch`
81
+ Runs every asset through the 10-gate quality wall in a separate context from production (preventing self-evaluation bias). Outputs pass/fail per gate with line-level feedback.
82
+
83
+ 7. **Human review:** `/ttm-review spring-launch`
84
+ Presents assets with a structured checklist covering positioning reinforcement, outcome realism, claim substantiation, and competitor differentiation.
85
+
86
+ 8. **Fix failures:** `/ttm-fix spring-launch`
87
+ Root cause analysis, fix brief with preservation constraints, re-production in isolated context, re-verification. Capped at 3 attempts per asset before escalating to human review.
88
+
89
+ 9. **Ship it:** `/ttm-ship spring-launch`
90
+ Launch checklist with tracking confirmed, UTMs verified, funnel tested, assets finalized. Items tagged [AI] auto-check; items tagged [HUMAN] require confirmation.
91
+
92
+ 10. **Measure outcomes:** `/ttm-measure spring-launch`
93
+ Paste analytics data (or use MCP tools). Analysis against outcome metrics using last-touch, linear, and time-decay attribution models. Outcome reported first.
94
+
95
+ 11. **Extract learnings:** `/ttm-learn spring-launch`
96
+ Lessons extracted with proposed reference file edits (each requiring human approval). Root-cause taxonomy entries and winning patterns logged to LEARNINGS.md for future campaigns.
97
+
98
+ ## How It Works
99
+
100
+ takeToMarket implements a 9-phase campaign lifecycle. Each phase has a dedicated command, persistent state tracking, and explicit entry/exit criteria.
101
+
102
+ ```
103
+ /ttm-init (one-time workspace setup)
104
+ |
105
+ v
106
+ /ttm-new-campaign <slug>
107
+ |
108
+ v
109
+ [1. DISCOVER] -----> /ttm-research <slug>
110
+ | Market research, SERP analysis,
111
+ | competitor content, ambient narrative
112
+ v
113
+ [2. BRIEF] --------> /ttm-brief <slug>
114
+ | Outcome metrics, positioning anchor,
115
+ | hook, proof points, channel mix
116
+ v
117
+ [3. PRODUCE] ------> /ttm-produce <slug>
118
+ | Fresh context per asset, hero-first,
119
+ | wave-parallel execution, playbook-loaded
120
+ v
121
+ [4. VERIFY] -------> /ttm-verify <slug>
122
+ | 10-gate quality wall, separate context,
123
+ | line-level feedback, deviation options
124
+ v
125
+ [5. REVIEW] -------> /ttm-review <slug>
126
+ | Structured human checklist, per-asset
127
+ | approve/reject/revise decisions
128
+ v
129
+ [6. FIX] ----------> /ttm-fix <slug> (if needed)
130
+ | Root-cause analysis, 3-attempt cap,
131
+ | preservation constraints, auto-escalate
132
+ v
133
+ [7. SHIP] ---------> /ttm-ship <slug>
134
+ | Launch checklist, tracking confirmed,
135
+ | UTMs verified, funnel tested
136
+ v
137
+ [8. MEASURE] ------> /ttm-measure <slug>
138
+ | Paste analytics, 3 attribution models,
139
+ | outcome-first reporting
140
+ v
141
+ [9. LEARN] --------> /ttm-learn <slug>
142
+ Lessons extracted, reference files
143
+ updated, patterns logged to LEARNINGS.md
144
+ ```
145
+
146
+ ### Five Principles
147
+
148
+ 1. **Positioning is the invariant.** POSITIONING.md loads into every phase context. It is read-only during campaigns. Drift is detected and flagged. Changing positioning requires an explicit shift workflow with migration planning and human approval.
149
+
150
+ 2. **Outcome over output.** Every campaign brief requires both an output metric (what gets published) and an outcome metric (what business result is expected). Measure phase reports outcome first.
151
+
152
+ 3. **Quality gate wall.** No asset ships without passing all applicable gates. Tier 1 gates (positioning drift, claim accuracy, outcome alignment) are blocking. Tier 2 gates are advisory.
153
+
154
+ 4. **Fix is not retry.** When assets fail review, the system performs root cause analysis and generates a specific fix brief with preservation constraints. It does not simply re-run production.
155
+
156
+ 5. **Compound learnings.** Every campaign feeds back into reference files. LEARNINGS.md accumulates root-cause taxonomy entries and winning patterns that load into the Brief phase of future campaigns.
157
+
158
+ ## Command Reference
159
+
160
+ ### Setup
161
+
162
+ | Command | Description |
163
+ |---------|-------------|
164
+ | `/ttm-init` | Interview-driven onboarding that generates all `.marketing/` reference files from structured questioning with specificity validation |
165
+ | `/ttm-new-campaign <slug>` | Create a campaign directory with initialized state and reference file links |
166
+
167
+ ### Campaign Lifecycle
168
+
169
+ | Command | Description |
170
+ |---------|-------------|
171
+ | `/ttm-research <slug>` | Discover phase: market/audience research, SERP analysis, competitor content mapping, ambient narrative capture |
172
+ | `/ttm-brief <slug>` | Generate campaign brief with outcome metric enforcement, positioning anchor, channel mix, and asset list |
173
+ | `/ttm-produce <slug>` | Produce content assets in fresh isolated contexts loaded with brief, positioning, brand, ICP, and playbook |
174
+ | `/ttm-verify <slug>` | Run all applicable quality gates on every asset with pass/fail report and line-level feedback |
175
+ | `/ttm-review <slug>` | Present assets with structured review checklist for human evaluation and per-asset decisions |
176
+ | `/ttm-fix <slug>` | Root cause analysis, fix brief, re-produce in isolated context, re-verify (3-attempt cap per asset) |
177
+ | `/ttm-ship <slug>` | Launch checklist with tracking, UTM, and funnel verification; items tagged [AI]/[HUMAN] |
178
+ | `/ttm-measure <slug>` | Analyze pasted analytics against outcome metrics using last-touch, linear, and time-decay attribution |
179
+ | `/ttm-learn <slug>` | Extract lessons, propose reference file edits with human approval, log root-cause taxonomy entries |
180
+
181
+ ### State Management
182
+
183
+ | Command | Description |
184
+ |---------|-------------|
185
+ | `/ttm-state` | Dashboard showing campaign states, decisions in flight, blockers, and experiments |
186
+ | `/ttm-resume <slug>` | Resume a paused campaign at its last completed phase |
187
+ | `/ttm-archive <slug>` | Finalize a completed campaign, move to archive, update LEARNINGS.md |
188
+ | `/ttm-health` | Validate `.marketing/` directory integrity, reference file completeness, and state consistency |
189
+ | `/ttm-next` | Guidance on the right next command based on current campaign state |
190
+
191
+ ### Positioning
192
+
193
+ | Command | Description |
194
+ |---------|-------------|
195
+ | `/ttm-positioning-check` | Drift audit across recent assets with drift percentage, type categorization, and bleeding analysis |
196
+ | `/ttm-positioning-shift` | Controlled repositioning with migration plan, deprecation schedule, and human approval gate |
197
+
198
+ ### Reference Management
199
+
200
+ | Command | Description |
201
+ |---------|-------------|
202
+ | `/ttm-brand-refresh` | Update BRAND.md proof points and voice guidelines; validates against positioning invariant |
203
+ | `/ttm-icp-refresh` | Update ICP.md from new customer data with positioning invariant validation |
204
+ | `/ttm-competitor-scan` | On-demand competitor analysis with web search or manual paste |
205
+
206
+ ### Discipline Utilities
207
+
208
+ | Command | Description |
209
+ |---------|-------------|
210
+ | `/ttm-seo-audit [url]` | Technical and content SEO audit with actionable report and priority ranking |
211
+ | `/ttm-aeo-check [query]` | AI engine citation status check across major AI answer platforms |
212
+ | `/ttm-keyword-map` | Keyword cluster map with intent tags (informational, commercial, transactional, navigational) |
213
+ | `/ttm-email-preflight` | Deliverability, spam-trigger, and dark-mode rendering scan |
214
+ | `/ttm-affiliate-kit` | Generate creative kit for affiliate partners with approved messaging and assets |
215
+ | `/ttm-repurpose <asset>` | Fan out a long-form asset into derivatives across channels with full brief-produce-verify per derivative |
216
+
217
+ **Total: 27 commands** across 6 categories.
218
+
219
+ ## Quality Gate Wall
220
+
221
+ Every asset passes through 10 base quality gates before shipping. Discipline playbooks add channel-specific gates on top.
222
+
223
+ ### Base Gates
224
+
225
+ | # | Gate | Tier | Behavior |
226
+ |---|------|------|----------|
227
+ | 1 | **Positioning Drift** | Tier 1 | Blocking -- asset must align with POSITIONING.md invariant |
228
+ | 2 | **Claim Accuracy** | Tier 1 | Blocking -- every claim must have a source or proof point |
229
+ | 3 | **Voice Drift** | Tier 2 | Advisory -- flags voice/tone inconsistency with BRAND.md |
230
+ | 4 | **Outcome Alignment** | Tier 1 | Blocking -- asset must serve the campaign outcome metric |
231
+ | 5 | **Funnel Integrity** | Tier 2 | Advisory -- CTA and funnel step match the campaign stage |
232
+ | 6 | **UTM Hygiene** | Tier 2 | Advisory -- all links have valid, consistent UTM parameters |
233
+ | 7 | **Compliance** | Tier 2 | Advisory -- legal disclaimers, required disclosures present |
234
+ | 8 | **Competitor Collision** | Tier 2 | Advisory -- avoids using competitor claims or positioning |
235
+ | 9 | **ICP Fit** | Tier 2 | Advisory -- content addresses the right audience segment |
236
+ | 10 | **Format Correctness** | Tier 2 | Advisory -- meets channel-specific format requirements |
237
+
238
+ ### Tier Behavior
239
+
240
+ - **Tier 1 (blocking):** Asset cannot ship until the gate passes. Failing a Tier 1 gate triggers the fix loop.
241
+ - **Tier 2 (advisory):** Flagged for review but does not block shipping. Each failure offers three options: Correct, Accept+log, or Escalate to positioning shift.
242
+
243
+ ### Meta-Gates
244
+
245
+ Multi-campaign portfolio checks run after per-asset gates:
246
+
247
+ - **Portfolio Balance** -- channel mix across active campaigns
248
+ - **Calendar Collision** -- overlapping launch dates or audience saturation
249
+ - **Theme Consistency** -- messaging coherence across concurrent campaigns
250
+ - **Learning Plan** -- measurement infrastructure coverage
251
+
252
+ ## Playbooks
253
+
254
+ 10 discipline playbooks extend the base quality gate wall with channel-specific knowledge, format rules, and additional gates:
255
+
256
+ | Playbook | Focus Areas |
257
+ |----------|-------------|
258
+ | **SEO** | Title/H1 alignment, search-intent match, schema markup, internal-link density, thin-content detection |
259
+ | **AEO** | Quote-worthy sentences, FAQ/HowTo schema, cross-domain fact consistency, AI citation optimization |
260
+ | **Email** | Subject/preview spam-trigger scan, dark-mode rendering, unsubscribe presence, deliverability checks |
261
+ | **LinkedIn** | Professional tone, opener hooks, native vs link format, engagement optimization |
262
+ | **Social** | Platform-specific rules, visual ratios, hashtag strategy, engagement hooks |
263
+ | **YouTube** | Thumbnail optimization, retention hooks, chapter markers, description SEO |
264
+ | **Paid Ads** | Headline character limits, ad relevance scoring, landing page alignment |
265
+ | **Affiliate** | Partner-safe messaging, commission disclosure, creative kit completeness |
266
+ | **PR/Media** | News angle clarity, quote-readiness, fact-checking rigor, embargo handling |
267
+ | **Events** | Session flow, attendee journey mapping, follow-up sequence planning |
268
+
269
+ All playbooks inherit from `playbooks/base.md` and extend it with additive gates. The base contract ensures consistent evaluation across disciplines.
270
+
271
+ ## Architecture
272
+
273
+ ```
274
+ takeToMarket/
275
+ .claude-plugin/
276
+ plugin.json Plugin manifest (name, version, description, keywords)
277
+
278
+ skills/ 27 SKILL.md command stubs (routing only, <30 lines each)
279
+ ttm-init/SKILL.md
280
+ ttm-new-campaign/SKILL.md
281
+ ttm-research/SKILL.md
282
+ ttm-brief/SKILL.md
283
+ ttm-produce/SKILL.md
284
+ ttm-verify/SKILL.md
285
+ ttm-review/SKILL.md
286
+ ttm-fix/SKILL.md
287
+ ttm-ship/SKILL.md
288
+ ttm-measure/SKILL.md
289
+ ttm-learn/SKILL.md
290
+ ttm-state/SKILL.md
291
+ ttm-resume/SKILL.md
292
+ ttm-archive/SKILL.md
293
+ ttm-health/SKILL.md
294
+ ttm-next/SKILL.md
295
+ ttm-positioning-check/SKILL.md
296
+ ttm-positioning-shift/SKILL.md
297
+ ttm-brand-refresh/SKILL.md
298
+ ttm-icp-refresh/SKILL.md
299
+ ttm-competitor-scan/SKILL.md
300
+ ttm-seo-audit/SKILL.md
301
+ ttm-aeo-check/SKILL.md
302
+ ttm-keyword-map/SKILL.md
303
+ ttm-email-preflight/SKILL.md
304
+ ttm-affiliate-kit/SKILL.md
305
+ ttm-repurpose/SKILL.md
306
+
307
+ workflows/
308
+ setup/ /ttm-init interview workflow
309
+ lifecycle/ Campaign phase workflows (research, brief, produce,
310
+ verify, review, fix, ship, measure, learn)
311
+ reference-mgmt/ Reference file management (positioning-check,
312
+ positioning-shift, brand-refresh, icp-refresh,
313
+ competitor-scan)
314
+ discipline/ Discipline utility workflows (seo-audit, aeo-check,
315
+ keyword-map, email-preflight, affiliate-kit, repurpose)
316
+ utility/ State management workflows (state, resume, archive,
317
+ health, next)
318
+
319
+ templates/ Markdown templates for generated files
320
+ reference-files/ Reference file templates (brand, icp, competitors, etc.)
321
+ campaign-brief.md Brief template with outcome/output metrics
322
+ production-manifest.json Asset manifest schema
323
+
324
+ references/ Domain knowledge and context loading rules
325
+ context-loading.md Two-tier context loading strategy
326
+
327
+ playbooks/ Discipline playbook files
328
+ base.md Base inheritance contract
329
+ seo.md SEO discipline playbook
330
+ aeo.md AEO discipline playbook
331
+ email.md Email discipline playbook
332
+ linkedin.md LinkedIn discipline playbook
333
+ social.md Social discipline playbook
334
+ youtube.md YouTube discipline playbook
335
+ paid-ads.md Paid Ads discipline playbook
336
+ affiliate.md Affiliate discipline playbook
337
+ pr-media.md PR/Media discipline playbook
338
+ events.md Events discipline playbook
339
+
340
+ gates/ Gate evaluation logic and base gate definitions
341
+
342
+ agents/ Subagent prompt templates (producer, verifier)
343
+
344
+ bin/
345
+ ttm-tools.cjs CLI entry point (single file, subcommand pattern)
346
+ lib/
347
+ campaign.cjs Campaign state operations, MANIFEST.json management
348
+ health.cjs Health validation checks
349
+ core.cjs Core utility functions
350
+ slug.cjs Slug generation and validation
351
+ state.cjs State file operations
352
+ drift-log.cjs Positioning drift logging
353
+ deviation.cjs Deviation tracking
354
+ commit.cjs Commit message helpers
355
+
356
+ settings.json Default plugin settings
357
+ install.js npm installer entry point
358
+ package.json npm package config (bin: taketomarket -> install.js)
359
+ ```
360
+
361
+ ### Key Patterns
362
+
363
+ **Thin SKILL.md routing.** Each skill file is under 30 lines. It contains YAML frontmatter (name, description, allowed-tools, context mode) and a single instruction to read the corresponding workflow file. This keeps skills lightweight and maintainable.
364
+
365
+ **500-line file limit.** No single file exceeds 500 lines. Large content is extracted to `@`-referenced files. For example, the review workflow references `review-checklist.md` instead of embedding 400 lines of checklist questions inline.
366
+
367
+ **Two-tier context loading.** Compact summaries of reference files load into every phase context (positioning summary, brand overview, ICP highlights). Full documents load only during produce and verify phases where deep knowledge matters. This preserves context window budget.
368
+
369
+ **Positioning-as-invariant.** POSITIONING.md is architecturally read-only during campaigns. The system detects and blocks direct edits. Changing positioning requires the explicit `/ttm-positioning-shift` workflow with migration planning, human approval, and a deprecation schedule.
370
+
371
+ **Fresh context isolation.** Produce and verify run in forked contexts (`context: fork` in SKILL.md frontmatter). This prevents the producer from evaluating its own output and keeps each asset's context window loaded with only the relevant brief, positioning, brand, ICP, and playbook.
372
+
373
+ **Zero runtime dependencies.** The skill itself has no npm dependencies. All code in `bin/` uses only Node.js built-in modules (`fs`, `path`, `crypto`, `os`). Node.js 18+ is the only requirement, and it is already required by Claude Code.
374
+
375
+ ### How to Add a Playbook
376
+
377
+ 1. Create a new file in `playbooks/` (e.g., `playbooks/webinar.md`)
378
+ 2. Follow the structure in `playbooks/base.md` -- extend with additive gates
379
+ 3. Add a SKILL.md stub in `skills/ttm-webinar-audit/` pointing to a new workflow
380
+ 4. Add the workflow in `workflows/discipline/webinar-audit.md`
381
+ 5. Register the channel in the channels template at `templates/reference-files/`
382
+
383
+ ### User's Project Structure (created by /ttm-init)
384
+
385
+ When a user runs `/ttm-init` in their project, it creates:
386
+
387
+ ```
388
+ .marketing/
389
+ POSITIONING.md Positioning invariant (read-only during campaigns)
390
+ BRAND.md Voice, tone, proof points
391
+ ICP.md Ideal customer profiles
392
+ CHANNELS.md Channel strategy and constraints
393
+ COMPETITORS.md Competitor landscape
394
+ METRICS.md KPI definitions and baselines
395
+ CALENDAR.md Marketing calendar
396
+ STATE.md Global state tracking
397
+ LEARNINGS.md Accumulated campaign learnings
398
+ DRIFT-LOG.md Positioning drift event log
399
+ CAMPAIGNS/
400
+ <slug>/ Per-campaign directory
401
+ STATE.md Campaign state
402
+ RESEARCH.md Market research findings
403
+ BRIEF.md Campaign brief
404
+ MANIFEST.json Asset manifest and tracking
405
+ assets/ Produced content assets
406
+ ```
407
+
408
+ ## Dual-Runtime Support
409
+
410
+ takeToMarket works with both Claude Code and Codex:
411
+
412
+ - **Claude Code:** Skills install as a plugin at `~/.claude/plugins/taketomarket/`. Commands appear as `/ttm-*` in the Claude Code interface. Uses `AskUserQuestion` for interactive prompts with text-mode fallback.
413
+ - **Codex:** Skills install at `~/.codex/plugins/taketomarket/`. An AGENTS.md file provides Codex-compatible instructions alongside CLAUDE.md. Interactive prompts fall back to numbered list format when `AskUserQuestion` is unavailable.
414
+
415
+ The installer auto-detects the runtime. Both runtimes read the same SKILL.md files and execute the same workflows.
416
+
417
+ ## License
418
+
419
+ MIT
@@ -0,0 +1,53 @@
1
+ # Production Subagent: ttm-producer
2
+
3
+ You are a marketing content producer for takeToMarket. Your job is to generate a single content asset that serves a campaign's outcome metric while maintaining strict positioning alignment.
4
+
5
+ ## Context Loading
6
+
7
+ Read the following files before producing any content:
8
+
9
+ 1. **Brief:** `[BRIEF_PATH]` -- contains the campaign objective, outcome metric, target audience summary, key messages, and asset list. This is your primary instruction document.
10
+ 2. **Positioning:** `[POSITIONING_PATH]` -- contains the positioning anchor, primary differentiator, proof points, and must-not-say terms. Every claim in your output must trace back to an approved proof point.
11
+ 3. **Brand:** `[BRAND_PATH]` -- contains the voice archetype, tone guidelines, banned words, and style rules. Your output must match the defined voice.
12
+ 4. **ICP:** `[ICP_PATH]` -- contains the ideal customer profile, their pains, language patterns, objections, and decision triggers. Write in their language, not yours.
13
+ 5. **Playbook:** `[PLAYBOOK_PATH]` -- contains discipline-specific format rules, structure requirements, and channel constraints for this asset type.
14
+
15
+ If `[PLAYBOOK_PATH]` does not exist, proceed without discipline-specific rules -- use the brief and reference files only. Log a note at the top of your output: `<!-- No playbook loaded for this asset type -->`.
16
+
17
+ ## Asset Details
18
+
19
+ - **Asset type:** [ASSET_TYPE]
20
+ - **Channel:** [CHANNEL]
21
+ - **Output file:** [OUTPUT_PATH]
22
+
23
+ ## Production Rules
24
+
25
+ Follow these 5 rules for every asset you produce. Violations will be caught by the verify workflow.
26
+
27
+ 1. **Serve the outcome metric.** The brief defines a measurable outcome (e.g., "50 qualified demo requests in 30 days"). Every section of your content must contribute to driving that outcome. Do not produce content that is informative but disconnected from the metric.
28
+
29
+ 2. **Use the positioning anchor as the foundation.** The positioning document defines who you are, what you do differently, and why it matters. Open with or build around the primary differentiator. Do not invent new positioning claims.
30
+
31
+ 3. **Match the brand voice archetype.** The brand document defines the voice (e.g., "Confident Expert" or "Friendly Guide"). Write in that voice consistently. Check the banned words list and never use terms on it.
32
+
33
+ 4. **Address the ICP's pains in their language.** The ICP document contains the exact phrases, objections, and pain points your audience uses. Mirror their language. Do not use internal jargon or marketing-speak that the ICP would not recognize.
34
+
35
+ 5. **Follow playbook format requirements.** If a playbook is loaded, follow its structure requirements exactly (e.g., H1 structure for SEO, character limits for social, section order for email). If no playbook is loaded, use the brief's format guidance.
36
+
37
+ ## Hero Asset Reference
38
+
39
+ If this is a derivative asset, the hero/anchor asset has already been produced:
40
+ - **Hero asset:** [HERO_PATH]
41
+
42
+ Read the hero asset for tone consistency, key message alignment, and claim reuse. Derivatives should reinforce the hero's messaging, not contradict it.
43
+
44
+ If `[HERO_PATH]` is `none`, this IS the hero asset -- produce it from the brief and reference files alone.
45
+
46
+ ## Output Instructions
47
+
48
+ Write the complete asset content to `[OUTPUT_PATH]`. Structure the output as a Markdown file with:
49
+
50
+ 1. YAML frontmatter containing: asset_type, channel, campaign, produced_at (ISO timestamp)
51
+ 2. The full asset content following the brief's specifications and playbook format (if loaded)
52
+
53
+ Do not ask questions -- produce the content using the loaded context. If any reference file is missing or unclear, make your best judgment based on the available context and note the gap in a `<!-- NOTE: ... -->` comment.