Adds an automatic update-check hook. takeToMarket now nudges you to run /ttm-update when your installed version falls behind the npm registry — wired automatically by both install paths, no manual setup.
bin/check-update.cjs—SessionStarthook script. Reads the installed version, checks the npm registry (throttled to once per 24h via~/.taketomarket/.update-check.json), and injects aSessionStartadditionalContextblock instructing Claude to surface the update and offer/ttm-updatewhen a newer version exists. Fail-silent (never blocks session start; always exits 0). Opt-out viaTTM_NO_UPDATE_CHECK=1.hooks/hooks.json— plugin-install path. Auto-discovered by Claude Code on/plugin install; runs the check via${CLAUDE_PLUGIN_ROOT}/bin/check-update.cjs.install.jsinjectSessionStartHook()— npm/git-clone install path. Registers the sameSessionStarthook into~/.claude/settings.json(idempotent, atomic tmp→rename, preserves existing hooks/settings, recovers a corrupt file to.bak). Claude Code targets only.
package.jsonfiles[]andinstall.jscopy lists (DIRS_TO_COPY,PACKAGE_BASE_DIRS) — publish and install the newhooks/directory.install.jscustom-path targets now expand a leading~and deriveparentDir, so a custom install under~/.claudealso gets the update-check hook (and a literal~/...path no longer creates a stray~directory).
- Version comparison follows full semver precedence including prerelease ordering, so an installed release candidate is correctly nudged toward its stable release of the same core.
- A dual install (plugin + npm) would otherwise fire the hook twice per session; the script suppresses the duplicate nudge via a 30s per-session cooldown.
- The renamed-skill deprecation stubs (
/ttm-research,/ttm-email-preflight,/ttm-aeo-check,/ttm-keyword-map,/ttm-seo-audit) are retained. v2.3.0 scheduled their removal for v2.4.0, but that window (~2 weeks) is too short to drop live commands; removal is moved to v3.0.0 (next major), where breaking changes belong. Stub text updated accordingly.
Docs-only patch release. Republishing to keep the npm-cached README in sync with GitHub. No skill, agent, workflow, or bin/ changes.
README.md— audited against the official Claude Code plugins docs and corrected 7 issues:- Option 2 (community marketplace) install command was pointing at
@claude-plugins-official(curated, no submission path); corrected to@claude-communitywith the required/plugin marketplace add anthropics/claude-plugins-communitystep. - Option 3 (direct from GitHub) was missing the
@taketomarketmarketplace suffix on/plugin install. - Option 4 (manual)
cdpath corrected (takeToMarket→taketomarket). - Stale "pending marketplace approval" note removed; plugin is Published in the community catalog as of 2026-05-14.
- Quick Start + Runtime Notes now call out plugin-install namespace explicitly (
/taketomarket:ttm-initvs bare/ttm-init). - Campaign Lifecycle split into Setup (Init + New Campaign) and the actual 9-Phase Lifecycle (Discover through Learn); previously listed 11 numbered items while the intro claimed 9-phase.
- Brand casing swept from
takeToMarket→taketomarketin all body copy for consistency with the H1, npm package name, GitHub repo slug, andplugin.jsondisplayName.
- Option 2 (community marketplace) install command was pointing at
CONTRIBUTING.md— added a "Submitting plugin manifest changes" section requiringclaude plugin validate .and a 3-manifest version-lockstep grep before opening manifest-touching PRs. Would have caught the 2.3.1 marketplace.json schema break.
Patch release. Marketplace schema fix + plugin manifest polish. No skill, workflow, or bin/ changes.
.claude-plugin/marketplace.json— restructured to match Claude Code marketplace schema (ownerobject +plugins[]array). Previous form was missing required fields and failed/plugin marketplace addwithInvalidSchema. Plugin metadata (description, version, license, keywords) is now nested insideplugins[0]where the schema expects it.
.claude-plugin/plugin.json— addeddisplayName,homepage,repository. Author field now resolves to "Rishikesh Ranjan" + GitHub URL (was previously the brand string, which conflicts with the marketplaceownerconvention).
AGENTS.md— Codex-compatible instruction file alongsideCLAUDE.mdfor dual-runtime support.
Patch release. Docs + manifest hygiene only — no skill, agent, workflow, or bin/ changes. Plugin install + npm install paths both compatible.
references/landing-page-headline-examples.md— 20 category-tagged clear-vs-clever H1 pairs (SaaS buzzword / FinTech sophistication / DevTools jargon / UX engineering-speak), each annotated with the DISC gates demonstrated (LANDING-PAGES-01..04 + POSITIONING-04). Loaded byttm-producerat production time and byttm-verifyat gate-evaluation time via @-link fromplaybooks/landing-pages.mdandreferences/landing-page-anatomy.md.
.claude-plugin/marketplace.json— bumped to current version and dropped deprecated fields per obra convention.
The "developerneur-ready" release. Reframes takeToMarket as the marketing OS for engineers + solopreneurs with zero marketing experience.
- State folder renamed
.marketing/→.taketomarket/. Auto-migrated by/ttm-updateand/ttm-health. - GitHub repo renamed lowercase:
ranjanrishikesh/taketomarket. Old URL redirects. - Skill renames (deprecation stubs remain until v2.4.0):
/ttm-research→/ttm-discover/ttm-email-preflight→/ttm-email-check/ttm-aeo-check+/ttm-keyword-map+/ttm-seo-auditmerged into/ttm-seowith subcommands.
/ttm-humanize— mandatory final-step humanizer on every audience-facing asset./ttm-landing— Next.js 15 marketing site scaffold + design + copy./ttm-pseo— programmatic SEO route generator (blog/use-case/comparison/alternative)./ttm-deploy— Vercel deploy with 3-path detection./ttm-linkedin-post— manual LinkedIn post generator with author-mimic + history + news./ttm-playwright-setup— Playwright MCP install walkthrough./ttm-101— marketing fundamentals for engineers./ttm-request-skill+/ttm-improve-skill— file GitHub issues for new + improved skills.
/ttm-initextended: generates.taketomarket/PRODUCT-DNA.md(code-scan WHAT + manifesto WHY).- Brand color flow with WCAG accessibility checks →
.taketomarket/BRAND.md## Colors+colors.json. - Logo flow with SVG-first generation + vision self-review loop (up to 3 rounds) → full asset set under
.taketomarket/brand/. - YOLO mode — non-critical questions skipped with defaults; critical questions always asked.
- Audience-explicit identity ("Marketing OS for developerneurs and solopreneurs — engineers with zero marketing experience") across README hero, package.json, plugin manifests, CLAUDE.md, GEMINI.md, templates.
- "Who this is for" + "Who this is NOT for" sections in README.
- Every playbook rewritten under THE industry leader's framework for that topic. 11 existing + 3 new (
landing-pages,pseo,manifesto). Seereferences/playbook-leaders.mdfor the leader mapping. Hybrid template: base.md 7-section contract preserved, leader-voiced content fills the sections.
- 15+ new research-backed reference files: obra/superpowers conventions, brand-color-theory, logo-design-principles, codex-image-gen-research, landing-page-anatomy, pSEO page anatomy + 4 per-template anatomies + 4 per-template content playbooks, linkedin-post-patterns, playwright-mcp-setup, playbook-leaders, inline-education-blurbs, humanizer-patterns.
legacy-folder.cjs(P1) — migration helper.codebase-scan.cjs(P3) — tech-stack + feature-area detection.config.cjs(P3) —.taketomarket/CONFIG.mdreader/writer + first-run-seen tracker.svg-render.cjs(P3) — SVG→PNG conversion via best available tool.site-location.cjs(P4) — landing path auto-detection.deploy.cjs(P4) — Vercel deploy path detection.playwright-check.cjs(P5) — Playwright MCP detection.install-detect.cjs(P6) — install-method detection (clone vs npm).
- All ttm-* skills get standardized next-step footer routing to
/ttm-next. - All non-meta ttm-* skills get first-run inline education (one-time per skill, controllable via
inline_education: falsein CONFIG.md). /ttm-produce,/ttm-repurpose,/ttm-affiliate-kit,/ttm-landing,/ttm-pseo,/ttm-linkedin-postnow mandate/ttm-humanizeas final step./ttm-review+/ttm-verifygain landing-specific quality gates (positioning integrity, schema, performance budget via Playwright, mobile responsiveness via Playwright, internal linking, llms.txt)./ttm-shipcalls/ttm-deployfor landing/pSEO assets./ttm-updatedetects install method, syncs stale skill files, runs folder migration check./ttm-healthruns legacy-folder check.
docs/reviewer-outreach-list.md— tracking for launch outreach to Maja Voje, Akash Gupta, and the playbook leaders.
Run /ttm-update. It will:
- Detect legacy
.marketing/folder + prompt to migrate. - Sync stale skill files.
- Print summary of changes.
If you call /ttm-research, /ttm-email-preflight, /ttm-aeo-check, /ttm-keyword-map, or /ttm-seo-audit: deprecation stubs auto-route to the new skills. Stubs removed in v2.4.0.
/ttm-playwright-setup— install walkthrough for Playwright MCP server + Chrome extension bridge. Detects target runtime (Claude Code / Codex / Cursor), prints runtime-specific install steps, smoke-tests the connection (bounded to 2 retries), marks.taketomarket/CONFIG.mdon success./ttm-linkedin-post— manual LinkedIn post generator. First-run interviews 2-5 author URLs and scrapes them via Playwright MCP to build.taketomarket/PLAYBOOKS/linkedin-base.md. Subsequent runs load base + post-history + 7-day news WebSearch, generate 2-3 candidates with varied hooks, then route through/ttm-humanizebefore saving. Tracks history in.taketomarket/CAMPAIGNS/linkedin/post-history.md. Flags:--rebuild-base,--no-news,--topic <text>.references/playwright-mcp-setup.md— install reference (Microsoft@playwright/mcp@0.0.75+ "Playwright Extension" Chrome bridge + Claude Code / Codex TOML / Cursor configs + 8-mode troubleshooting).references/linkedin-post-patterns.md— pattern catalog (7 hook patterns, 5 templates incl. PAIPS, 2025-2026 length norms with citations, banned moves with humanizer cross-refs).templates/linkedin-base-template.md— per-user LinkedIn style-guide skeleton filled on first run.bin/lib/playwright-check.cjs+ tests — detectsmcpServers.playwrightin Claude Code settings JSON.node bin/ttm-tools.cjs playwright-checksubcommand..taketomarket/CAMPAIGNS/linkedin/workspace scaffold (drafts/, scrapes/, README).
workflows/site/quality-gates.mdGates 3 (performance) + 4 (mobile responsiveness) upgraded from soft documentation to Playwright-driven enforcement. Both skip with WARN when Playwright MCP isn't installed.
- Stantly (named in plan as a LinkedIn pattern source) is unfindable as of 2026-05-18 —
references/linkedin-post-patterns.mddocuments the audit and substitutes verifiable public creator playbooks (Welsh, Bloom, Schafer, AuthoredUp data).
/ttm-landing— Next.js 15 + Tailwind v4 + React 19 marketing site scaffold with brand-token integration, 13-section home page anatomy, optional/product,/pricing,/aboutgeneration./ttm-pseo— programmatic SEO route generator for blog, use-case, comparison, alternative templates. JSON CMS input. AEO + SEO optimized./ttm-deploy— Vercel deploy with auto-detected best path (git-push, Vercel CLI, API token).references/landing-page-anatomy.md+references/pseo-page-anatomy.md+ 8 per-template anatomy/playbook files underreferences/pseo-templates/.templates/pseo/*.json— JSON Schema CMS for each pSEO template.templates/site-scaffold/— full Next.js 15 starter project template (app/, components/, lib/, public/, content/).bin/lib/site-location.cjs+bin/lib/deploy.cjs(with tests for both).node bin/ttm-tools.cjs site-location|deploy detectsubcommands.- Landing-specific quality gates (positioning integrity, schema, performance budget, mobile, internal linking, llms.txt) at
workflows/site/quality-gates.md.
workflows/lifecycle/review.mdandworkflows/lifecycle/verify.mdgain conditional landing/pSEO gate steps.workflows/lifecycle/ship.mdcalls/ttm-deploywhen landing/pSEO assets are in the campaign.
shadcn/uiis referenced in the P4 plan goals but intentionally NOT bundled in the scaffold. Addingshadcn/uirequires a separate init step (npx shadcn@latest init) that overlays files into the user's project. Users who want it can run that after/ttm-landingscaffolds the site. Re-evaluate bundling in P5.
/ttm-initnow generates.taketomarket/PRODUCT-DNA.md(code-scan + manifesto interview).- Brand color flow with WCAG accessibility checks. Output:
.taketomarket/BRAND.md## Colorssection +.taketomarket/brand/colors.json. - Logo flow with SVG-first generation + vision self-review loop (up to 3 rounds). Output: full asset set in
.taketomarket/brand/. - YOLO mode (
.taketomarket/CONFIG.mdyolo: true) - non-critical onboarding questions skipped with defaults; critical questions always asked. references/brand-color-theory.md,references/logo-design-principles.md,references/codex-image-gen-research.md.bin/lib/codebase-scan.cjs,bin/lib/config.cjs,bin/lib/svg-render.cjs+ tests.node bin/ttm-tools.cjs scan-codebase|config|svg-rendersubcommands.
templates/reference-files/brand.mdextended with## Colors+## Logosections.workflows/setup/init-questions.md- every question taggedpriority: critical | non-criticalfor YOLO.workflows/setup/init.md- inserts PRODUCT-DNA + brand-colors + logo sub-workflows after Section 3 (ICP).workflows/setup/init-validation.md- adds PRODUCT-DNA, brand-colors, and logo validation rules.
/ttm-humanizeskill (adapted from blader/humanizer MIT-licensed source). Mandatory final step on every audience-facing asset./ttm-discoverskill (renamed from/ttm-research)./ttm-email-checkskill (renamed from/ttm-email-preflight)./ttm-seoskill with subcommandsaudit,keyword-map,aeo(merged from/ttm-aeo-check,/ttm-keyword-map,/ttm-seo-audit).templates/next-step-footer.mdreferenced by every/ttm-*skill.references/humanizer-patterns.md— pattern catalog for AI-tell rewriting.
/ttm-research→ use/ttm-discover./ttm-email-preflight→ use/ttm-email-check./ttm-aeo-check→ use/ttm-seo aeo./ttm-keyword-map→ use/ttm-seo keyword-map./ttm-seo-audit→ use/ttm-seo audit.
/ttm-produce,/ttm-repurpose,/ttm-affiliate-kitnow mandate a final/ttm-humanizepass on every outgoing asset.
- State folder renamed
.marketing/→.taketomarket/. After upgrading, run/ttm-update(or/ttm-health) — the auto-migration prompt will rename the directory and verify the move. State-reading commands (/ttm-state,/ttm-campaign,/ttm-produce, etc.) now refuse to run while a legacy.marketing/exists and print the exact migration command. Commit or back up the directory before accepting the prompt; the rename is fast but the workflow does not snapshot. - GitHub repo renamed
ranjanrishikesh/takeToMarket→ranjanrishikesh/taketomarket(lowercase). Old URLs redirect on GitHub. No action required for clones. If you scripted anything against the previous URL form, update to lowercase to avoid the redirect hop. If your local remote uses SSH form, update withgit remote set-url origin git@github.com:ranjanrishikesh/taketomarket.git. ttm-tools health --rawJSON field renamedmarketing_dir→taketomarket_dir. If any external script parses the--rawoutput, rename the field key.
- Audience-explicit identity across README,
package.json, plugin manifests,CLAUDE.md,GEMINI.md, templates. Built for developerneurs + solopreneurs with zero marketing experience. references/obra-superpowers-conventions.md— research output for obra/superpowers + gsd-build alignment.bin/lib/legacy-folder.cjs— migration helper module with tests.node bin/ttm-tools.cjs legacy-folder check|migratesubcommands.
- Repo-wide path references updated
.marketing/→.taketomarket/.
- Slash command format:
/ttm-*(flat install, no namespace) — was incorrectly shown as/taketomarket:ttm-*in README and post-install summary parseRuntimeChoices('1,7')no longer returnsundefinedentries — comma-separated inputs that include7now correctly return all named runtimes
~/.agents/skills/universal cross-runtime install target (option 6 in interactive prompt) — single copy serves Codex, Cursor, Windsurf, and Gemini CLIGEMINI.md— setup and invocation guide for Gemini CLI users.claude-plugin/marketplace.json— enables GitHub direct install via/plugin marketplace add ranjanrishikesh/taketomarketSECURITY.md— combined security policy and privacy policy (no data collection, no telemetry)CODE_OF_CONDUCT.md— Contributor Covenant v2.1- README Runtime Notes table — invocation syntax per runtime (
/ttm-*for Claude Code & Cursor,$ttm-*for Codex,@ttm-*for Windsurf, model-driven for Gemini)
- Filled in research doc R-02 through R-07 with verified findings on Codex, Cursor, Windsurf, Gemini CLI skill paths, marketplace submission, and GitHub direct install
- CLAUDE.md updated to reflect flat install architecture
- README Option 3 now shows working two-step GitHub install syntax
- Install skills to correct runtime-specific directories (flat skills, not plugin dir)
- Claude Code:
~/.claude/skills/— gives working/ttm-*commands immediately - Codex:
~/.codex/skills/ - Cursor:
~/.cursor/skills/ - Windsurf:
~/.codeium/windsurf/skills/ - Gemini CLI:
~/.gemini/skills/ - Replace
${CLAUDE_PLUGIN_ROOT}in SKILL.md files with absolute~/.taketomarket/path
ttm-updateskill: check npm for updates and auto-install latest version~/.taketomarket/as shared package base for all runtimes
- IMP-02: Register in installed_plugins.json — skills now appear as slash commands in Claude Code
- IMP-15: Fix wrong GitHub URL (taketomarket/taketomarket → ranjanrishikesh/taketomarket)
- IMP-16: Gitignore settings.local.json — stops leaking local filesystem paths
- IMP-01: Interactive multi-runtime selection prompt (7 options: Claude Code, Codex, Cursor, Windsurf, Gemini CLI, All, Custom path)
- IMP-03: Confirmation prompt before install;
--yes/-yflag to skip for CI - IMP-04:
--checkflag to inspect install state without installing - IMP-05: Post-install summary listing available slash commands with descriptions
- IMP-09: Cursor adapter — pending Wave 0 research (placeholder paths in place)
- IMP-10: Windsurf adapter — pending Wave 0 research (placeholder paths in place)
- IMP-11: Gemini CLI — pending Wave 0 research validation
- IMP-12: Codex registration — pending Wave 0 research (Branch A/B/C from R-02)
- IMP-20: CONTRIBUTING.md
- IMP-13/14: Full README rewrite — all install methods, quick start, command reference
- IMP-17: .planning/ gitignored
- IMP-18: idea.md removed, positioning extracted to README
- IMP-06: Marketplace submission prep (pending public repo + Anthropic approval)
- IMP-07: GitHub direct install syntax — pending Wave 0 R-07 research
- Fix GitHub username in repository.url, homepage, bugs fields
- Update manifest guard to match corrected GitHub URLs