@tidyfactor/marketing 1.3.0 → 1.6.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 (40) hide show
  1. package/.tidyfactor +53 -52
  2. package/CHANGELOG.md +47 -0
  3. package/README.ar.md +20 -9
  4. package/README.md +20 -9
  5. package/SKILL.md +46 -30
  6. package/bin/add-skill.js +65 -50
  7. package/brand.json +67 -67
  8. package/brand.yaml +55 -0
  9. package/manifest.json +256 -0
  10. package/package.json +5 -1
  11. package/references/commands/audit.md +34 -0
  12. package/references/commands/brief.md +7 -5
  13. package/references/memory/20-brain-baas-integration.md +89 -0
  14. package/references/memory/ad-copy-templates.md +94 -93
  15. package/references/memory/arabic-writing.md +1 -1
  16. package/references/memory/campaign-mindmap.md +85 -0
  17. package/references/memory/decision-points.md +74 -73
  18. package/references/memory/frameworks.md +87 -86
  19. package/references/memory/lifecycle-flows.md +107 -106
  20. package/references/memory/metrics-benchmarks.md +71 -70
  21. package/references/memory/naming-conventions.md +75 -0
  22. package/references/memory/philosophy.md +2 -0
  23. package/references/memory/platform-specs.md +76 -75
  24. package/references/memory/promotions-math.md +57 -56
  25. package/references/memory/quality-bar.md +56 -55
  26. package/references/workflows/brief.md +74 -35
  27. package/references/workflows/campaign-launch.md +1 -1
  28. package/references/workflows/content-engine.md +1 -1
  29. package/references/workflows/email-lifecycle.md +1 -1
  30. package/references/workflows/paid-acquisition.md +1 -1
  31. package/references/workflows/promo-conversion.md +1 -1
  32. package/references/workflows/social-growth.md +1 -1
  33. package/references/workflows/viral-retention.md +1 -1
  34. package/scripts/audit_copy.py +112 -0
  35. package/scripts/calc_promo_math.py +69 -0
  36. package/scripts/clean_orphaned_assets.py +108 -0
  37. package/tests/scenarios.md +87 -0
  38. package/tools/build-skill.js +4 -0
  39. package/tools/validate_skill.py +265 -112
  40. package/assets/og-default.png +0 -0
package/.tidyfactor CHANGED
@@ -1,52 +1,53 @@
1
- {
2
- "ecosystem": "tidyfactor",
3
- "track": "marketing",
4
- "name": "tidyfactor-marketing",
5
- "version": "1.3.0",
6
- "npmPackage": "@alwkala/tidyfactor-marketing",
7
- "github": "https://github.com/TidyFactor/Marketing",
8
- "skillFile": "../tidyfactor-marketing-v1.1.1.skill",
9
- "category": "marketing-engine",
10
- "type": "direct-response-growth",
11
- "outputs": [
12
- "campaigns/",
13
- "content/",
14
- "ads/",
15
- "funnels/",
16
- "lifecycle/"
17
- ],
18
- "pillars": [
19
- "strategy",
20
- "content",
21
- "social",
22
- "email",
23
- "advertising",
24
- "promotions",
25
- "growth"
26
- ],
27
- "commands": [
28
- "brief",
29
- "strategy",
30
- "content",
31
- "social",
32
- "email",
33
- "advertising",
34
- "promotions",
35
- "growth"
36
- ],
37
- "visionRef": "../TidyFactor-VISION.md",
38
- "sibling": [
39
- "tidyfactor-design",
40
- "tidyfactor-cinematic",
41
- "tidyfactor-html",
42
- "tidyfactor-php",
43
- "tidyfactor-js",
44
- "tidyfactor-htmx",
45
- "tidyfactor-nextjs-saas",
46
- "tidyfactor-styler"
47
- ],
48
- "commercialPartner": "alwkala",
49
- "website": "https://tidyfactor.com",
50
- "docs": "https://tidyfactor.com/documentation",
51
- "license": "Apache-2.0"
52
- }
1
+ {
2
+ "ecosystem": "tidyfactor",
3
+ "track": "marketing",
4
+ "name": "tidyfactor-marketing",
5
+ "version": "1.6.0",
6
+ "npmPackage": "@alwkala/tidyfactor-marketing",
7
+ "github": "https://github.com/TidyFactor/Marketing",
8
+ "skillFile": "../tidyfactor-marketing-v1.6.0.skill",
9
+ "category": "marketing-engine",
10
+ "type": "direct-response-growth",
11
+ "outputs": [
12
+ "campaigns/",
13
+ "content/",
14
+ "ads/",
15
+ "funnels/",
16
+ "lifecycle/"
17
+ ],
18
+ "pillars": [
19
+ "strategy",
20
+ "content",
21
+ "social",
22
+ "email",
23
+ "advertising",
24
+ "promotions",
25
+ "growth"
26
+ ],
27
+ "commands": [
28
+ "brief",
29
+ "strategy",
30
+ "content",
31
+ "social",
32
+ "email",
33
+ "advertising",
34
+ "promotions",
35
+ "growth",
36
+ "audit"
37
+ ],
38
+ "visionRef": "../TidyFactor-VISION.md",
39
+ "sibling": [
40
+ "tidyfactor-design",
41
+ "tidyfactor-cinematic",
42
+ "tidyfactor-html",
43
+ "tidyfactor-php",
44
+ "tidyfactor-js",
45
+ "tidyfactor-htmx",
46
+ "tidyfactor-nextjs-saas",
47
+ "tidyfactor-styler"
48
+ ],
49
+ "commercialPartner": "alwkala",
50
+ "website": "https://tidyfactor.com",
51
+ "docs": "https://tidyfactor.com/documentation",
52
+ "license": "Apache-2.0"
53
+ }
package/CHANGELOG.md CHANGED
@@ -2,6 +2,53 @@
2
2
 
3
3
  All notable changes to the **[@tidyfactor/marketing](https://www.npmjs.com/package/@tidyfactor/marketing)** package will be documented in this file.
4
4
 
5
+ ## [1.6.0] - 2026-09-09
6
+
7
+ ### 🏛️ Added — 6-Axis Periodic Review Protocol, YAML Primacy & Asset Hygiene
8
+ - **Command & CDL v2.0 Upgrades (`Axis 1`)**:
9
+ - Registered `references/commands/audit.md` for direct-response copy auditing and AI cliché detection.
10
+ - Enhanced `references/commands/brief.md` and `references/workflows/brief.md` with CDL v2.0 Native Modal Wizard (`ask_question`) and `/debate` trigger for relentless marketing stress-testing.
11
+ - **Single Outcome & Workflow Checklists (`Axis 2`)**:
12
+ - Enforced mandatory `## Validation checklist` across all 8 workflow files with binary pass/fail criteria.
13
+ - **Rule 15 YAML Primacy & Operational Memory (`Axis 3`)**:
14
+ - Introduced `brand.yaml` for ~40% token efficiency over JSON; updated manifest discovery to prioritize YAML.
15
+ - Added `references/memory/naming-conventions.md` establishing universal 5-token campaign taxonomy and lowercase UTM rules.
16
+ - Added `references/memory/campaign-mindmap.md` containing Mermaid architectures for the 7 marketing pillars and lead flow.
17
+ - Refreshed freshness stamp on `references/memory/philosophy.md`.
18
+ - **Deterministic Tooling & Asset Hygiene Engine (`Axis 4`)**:
19
+ - Added `scripts/clean_orphaned_assets.py` detecting SHA-256 binary duplicate assets and unreferenced orphan files.
20
+ - Upgraded `tools/validate_skill.py` to 13-point comprehensive release validator.
21
+ - **Governance & Evaluation Scenarios (`Axis 5`)**:
22
+ - Added `tests/scenarios.md` with 4 production evaluation scenarios (GCC flash sale, B2B SaaS launch, Egypt abandoned cart, copy linter).
23
+ - Synchronized SemVer `1.6.0` atomically across all metadata.
24
+ - **Asset Bloat Elimination (`Axis 6`)**:
25
+ - Deleted duplicate `assets/og-default.png` (245.5 KB) and root orphan `image.jpg` (64.9 KB), reclaiming ~310 KB in package archive.
26
+
27
+ ---
28
+
29
+ ## [1.5.0] - 2026-09-02
30
+
31
+ ### 🧠 Added — Contextual Decision Layer (CDL v1.1.0) & Declarative Decision Gates
32
+ - **Declarative Decision Gates (`manifest.json`)**: Added formal `decision_gates[]` declaration for the `brief` command conforming to manifest schema v1.1.0, defining `target_market`, `brand_voice`, `funnel_stage`, and `core_offer` with `track_staleness: true`.
33
+ - **Context Delta Resolution Engine (`references/workflows/brief.md`)**: Upgraded brief workflow to evaluate the mechanical Delta formula:
34
+ $$\text{Unknowns} = \text{Required Decisions} - (\text{Discovered Facts} \cup \text{Brain KIs})$$
35
+ - **Interactive Disclosure & User Agency First**: Surfacing all genuine Unknowns interactively with structured A/B/C/D choices and recommended defaults, prioritizing rich user engagement.
36
+ - **Anti-Dual-Write Architecture**: Enforcing local `.tidyfactor/marketing-brief.md` as sole SSOT, with one-way outbound cloud sync via `--sync-brain`.
37
+
38
+ ---
39
+
40
+ ## [1.4.0] - 2026-09-02
41
+
42
+ ### 🧠 Added — Sovereign Brain MCP Integration, Copy Auditor & Fail-Open Protocol
43
+ - **Brain Integration Contract (`references/memory/20-brain-baas-integration.md`)**: Operational specification defining sovereign self-hosted architecture, isolated client SQLite database scoping, and Marketing Strategy Knowledge Item (KI) payload schemas.
44
+ - **Fail-Open Resolution Protocol (`references/workflows/brief.md`)**: Embedded deterministic context discovery: (1) Local workspace auto-sensing first, (2) Optional Brain MCP context acceleration (`search_knowledge_base`) when active, (3) Instant 0ms silent fallback to 3-question structured interview with zero robotic preamble.
45
+ - **Runtime Tooling Manifest & Quality Engine (`manifest.json`)**: Declared portable `audit_copy` and `calc_promo_math` tools with schema validation for direct CLI and MCP `run_skill_tool` execution.
46
+ - **Automated Copy Quality Auditor (`scripts/audit_copy.py`)**: Standalone and MCP-compatible CLI engine scanning copy for AI cliches, banned fluff, and 7-axis pre-emit critique stamps.
47
+ - **Unit Economics & Margin Calculator (`scripts/calc_promo_math.py`)**: Deterministic calculations for gross margin safety, break-even ROAS targets, and discount compression.
48
+ - **Anti-Triggers & Tooling Scope**: Enriched `SKILL.md` with explicit Rule 10 Tooling Scope and anti-triggers.
49
+
50
+ ---
51
+
5
52
  ## [1.3.0] - 2026-08-29
6
53
 
7
54
  ### Added - Arabic Direct-Response & MENA Intelligence Engine
package/README.ar.md CHANGED
@@ -1,6 +1,6 @@
1
1
  <div align="center" dir="rtl">
2
2
 
3
- # 🚀 محرك تايدي فاكتور للتسويق المباشر والنمو `TidyFactor Marketing v1.3.0`
3
+ # 🚀 محرك تايدي فاكتور للتسويق المباشر والنمو `TidyFactor Marketing v1.6.0`
4
4
  ### هندسة التسويق المباشر، طبقة القرارات السياقية (CDL)، ونظام كتابة المحتوى عالي التحويل
5
5
 
6
6
  **الأساس التسويقي الرسمي لمنظومة تايدي فاكتور (TidyFactor Ecosystem) والشريك الاستراتيجي وكالة الوكالة (Alwkala).**
@@ -190,19 +190,30 @@ tidyfactor-marketing/
190
190
 
191
191
  ---
192
192
 
193
- ## 🚀 البدء السريع ومعالج سطر الأوامر
193
+ ## 🚀 التثبيت والبدء السريع
194
194
 
195
- ### الخيار 1: المعالج التفاعلي عبر سطر الأوامر
196
- شغّل المعالج التفاعلي خطوة بخطوة في الطرفية (Terminal):
195
+ اختر طريقة التثبيت المناسبة لمشروعك:
196
+
197
+ ### الخيار (أ): عبر TidyFactor CLI الرسمي (الموصى به)
198
+ التثبيت الفوري دون الحاجة لتثبيت الأداة عالمياً في بيئة عملك النشطة:
199
+ ```bash
200
+ npx @tidyfactor/cli add marketing
201
+ ```
202
+ *أو في حال كانت الأداة مثبتة لديك عالمياً (`npm i -g @tidyfactor/cli`):*
203
+ ```bash
204
+ tidyfactor add marketing
205
+ ```
206
+
207
+ ### الخيار (ب): عبر معيار مهارات الوكلاء المفتوح (skills.sh)
208
+ التثبيت العالمي المتوافق مع كافة بيئات الوكلاء ومحررات الذكاء الاصطناعي (Antigravity, Cursor, Claude Code, Windsurf, Codex):
197
209
  ```bash
198
- npx @tidyfactor/cli-marketing
210
+ npx skills add tidyfactor/marketing
199
211
  ```
200
- *يطلب منك تحديد مجال المشروع، والسوق المستهدف (عالمي أو عربي)، والتركيز الأساسي (B2B أو متاجر إلكترونية أو المنظومة الشاملة).*
201
212
 
202
- ### الخيار 2: الحقن المباشر في أي مشروع
203
- احقن كامل ملفات المهارة في مسار `.agents/skills/tidyfactor-marketing/` بنقرة واحدة:
213
+ ### الخيار (ج): التثبيت المباشر الفردي عبر NPM
214
+ تشغيل مثبت المهارة المستقل مباشرة مع تجاوز الذاكرة المخبأة وضمان أحدث إصدار:
204
215
  ```bash
205
- npx @tidyfactor/cli-marketing add-skill
216
+ npx @tidyfactor/marketing@latest
206
217
  ```
207
218
 
208
219
  ### الخيار 3: أوامر Slash للوكلاء الأذكياء (Claude, Antigravity, Cursor)
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  <div align="center">
2
2
 
3
- # 🚀 TidyFactor Marketing `v1.3.0`
3
+ # 🚀 TidyFactor Marketing `v1.6.0`
4
4
  ### AI Direct-Response Marketing, Contextual Decision Layer & Anti-Slop Content Suite
5
5
 
6
6
  **The official marketing & customer acquisition foundation for the TidyFactor Ecosystem.**
@@ -198,19 +198,30 @@ Every sentence generated by **TidyFactor Marketing** must pass the **Mechanism R
198
198
 
199
199
  ---
200
200
 
201
- ## 🚀 Quick Start & CLI Wizard
201
+ ## 🚀 Installation & Quick Start
202
202
 
203
- ### Option 1: Interactive Terminal Setup Wizard
204
- Launch the step-by-step interactive CLI in your terminal:
203
+ Choose your preferred installation method:
204
+
205
+ ### Option A: Via TidyFactor CLI (Recommended)
206
+ Install directly using the official ecosystem package runner into your active workspace:
207
+ ```bash
208
+ npx @tidyfactor/cli add marketing
209
+ ```
210
+ *Or if you have the CLI installed globally (`npm i -g @tidyfactor/cli`):*
211
+ ```bash
212
+ tidyfactor add marketing
213
+ ```
214
+
215
+ ### Option B: Via Open Agent Skills Ecosystem (skills.sh / Vercel Labs)
216
+ Install using the universal multi-agent standard across all supported IDEs (Cursor, Antigravity, Claude Code, Windsurf, Trae, Codex):
205
217
  ```bash
206
- npx @tidyfactor/cli-marketing
218
+ npx skills add tidyfactor/marketing
207
219
  ```
208
- *Prompts you for project niche, primary target market (Global vs MENA), and growth focus (B2B, E-Commerce, or 360° Suite).*
209
220
 
210
- ### Option 2: Skill Injection into Any Project
211
- Instantly inject the full `.agents/skills/tidyfactor-marketing/` tree into your current workspace:
221
+ ### Option C: Standalone Zero-Dependency Runner (NPM Direct)
222
+ Run the dedicated skill installer directly with automatic cache invalidation:
212
223
  ```bash
213
- npx @tidyfactor/cli-marketing add-skill
224
+ npx @tidyfactor/marketing@latest
214
225
  ```
215
226
 
216
227
  ### Option 3: AI Agent Slash Commands (Claude, Antigravity, Cursor)
package/SKILL.md CHANGED
@@ -1,30 +1,46 @@
1
- ---
2
- name: tidyfactor-marketing
3
- description: "Production-grade AI marketing and growth engine with Contextual Decision Layer (CDL) & MENA Intelligence. Handles 7 pillars and 28 capabilities: brand voice, campaign strategy, product launches, SEO pillar-clusters, social media, email lifecycles, and paid ads. Trigger on commands 'brief', 'strategy', 'content', 'social', 'email', 'advertising', 'promotions', 'growth', or requests for marketing plans, ad copy, and launch campaigns."
4
- ---
5
- # TidyFactor Marketing Engine
6
-
7
- A command dispatcher. This file routes marketing and growth intents to the corresponding command, workflow, and memory modules. It holds zero procedural copy or execution logic.
8
-
9
- ## Commands
10
-
11
- | User Intent / Capability | Command | What It Loads |
12
- |---|---|---|
13
- | **Discovery**: Pre-flight marketing brief, strategic alignment, market baseline caching | `references/commands/brief.md` | `references/workflows/brief.md` + `references/memory/decision-points.md` + `references/memory/quality-bar.md` |
14
- | **Strategy**: Brand voice & positioning statement, Competitive differentiation, Campaign strategy, Product launch plan | `references/commands/strategy.md` | `references/workflows/campaign-launch.md` + `references/memory/decision-points.md` + `references/memory/quality-bar.md` + `references/memory/frameworks.md` + `references/memory/arabic-writing.md` |
15
- | **Content**: Social media posts, SEO strategy (Pillar + Cluster), Content calendar, Newsletter strategy | `references/commands/content.md` | `references/workflows/content-engine.md` + `references/memory/decision-points.md` + `references/memory/quality-bar.md` + `references/memory/frameworks.md` + `references/memory/arabic-writing.md` |
16
- | **Social Media**: LinkedIn B2B & Founder personal branding, Instagram strategy, TikTok strategy, Social media audit | `references/commands/social.md` | `references/workflows/social-growth.md` + `references/memory/decision-points.md` + `references/memory/quality-bar.md` + `references/memory/platform-specs.md` |
17
- | **Email**: Grow email list, Welcome email sequence, Abandoned cart emails, Win-back flows | `references/commands/email.md` | `references/workflows/email-lifecycle.md` + `references/memory/decision-points.md` + `references/memory/quality-bar.md` + `references/memory/lifecycle-flows.md` + `references/memory/arabic-writing.md` |
18
- | **Advertising**: Write ad copy, Landing page strategy, Facebook/Meta ads plan, Google Ads plan, First ad campaign | `references/commands/advertising.md` | `references/workflows/paid-acquisition.md` + `references/memory/decision-points.md` + `references/memory/quality-bar.md` + `references/memory/ad-copy-templates.md` + `references/memory/arabic-writing.md` |
19
- | **Promotions**: Plan a sale / Flash sales, Giveaway or contest, Margin-safe coupon strategy, Decoy pricing | `references/commands/promotions.md` | `references/workflows/promo-conversion.md` + `references/memory/decision-points.md` + `references/memory/quality-bar.md` + `references/memory/promotions-math.md` |
20
- | **Growth**: Customer retention & churn reduction, Loyalty program design, Referral program, Influencer outreach | `references/commands/growth.md` | `references/workflows/viral-retention.md` + `references/memory/decision-points.md` + `references/memory/quality-bar.md` + `references/memory/frameworks.md` |
21
-
22
- ## Non-Negotiable Quality Constraints
23
-
24
- 1. **Contextual Decision Layer (CDL)**: Resolve regional, voice, and offer baseline via `.tidyfactor/marketing-brief.md` or thin protocol in `references/memory/decision-points.md` before generating campaigns.
25
- 2. **7-Axis Pre-Emit Self-Critique (`P/H/E/S/R/V/D`)**: All output must self-audit against Pain Specificity, Hook Power, Execution, Stage Fit, Restraint, Voice, and Decision Alignment (`quality-bar.md`).
26
- 3. **Multi-Angle Requirement**: All ad copy generation must produce at least 3 distinct psychological angles (Pain/Loss Aversion, Logic/ROI/Efficiency, and Aspiration/Social Proof).
27
- 4. **Margin Protection Rule**: Any discounting or promotional strategy must verify unit gross margins and prioritize threshold-based AOV expansion over arbitrary price slashing.
28
- 5. **Bilingual Direct Response & Native Arabic**: Compose Arabic copy natively per `arabic-writing.md` using Modern Standard Arabic (فصحى معاصرة رنانة) or calibrated regional dialects without mechanical translation artifacts.
29
- 6. **MENA Platform & Trust Calibration**: Adhere to country-specific platform rankings, trust signals, and payment methods (`platform-specs.md`).
30
-
1
+ ---
2
+ name: tidyfactor-marketing
3
+ description: "Production-grade AI marketing and growth engine with Contextual Decision Layer (CDL) & MENA Intelligence. Handles 7 pillars and 28 capabilities: brand voice, campaign strategy, product launches, SEO pillar-clusters, social media, email lifecycles, paid ads, and copy auditing. Trigger on commands 'brief', 'strategy', 'content', 'social', 'email', 'advertising', 'promotions', 'growth', 'audit', or requests for marketing plans, ad copy, and launch campaigns."
4
+ ---
5
+ # TidyFactor Marketing Engine
6
+
7
+ A command dispatcher. This file routes marketing and growth intents to corresponding command, workflow, and memory modules with zero procedural execution logic.
8
+
9
+ ## Commands
10
+
11
+ | User Intent | Command | What It Loads |
12
+ |---|---|---|
13
+ | **Discovery**: Strategic brief & baseline caching | `references/commands/brief.md` | `references/workflows/brief.md` + `references/memory/decision-points.md` |
14
+ | **Strategy**: Brand voice, positioning & launch | `references/commands/strategy.md` | `references/workflows/campaign-launch.md` + `references/memory/frameworks.md` |
15
+ | **Content**: SEO pillar-clusters & publishing | `references/commands/content.md` | `references/workflows/content-engine.md` + `references/memory/arabic-writing.md` |
16
+ | **Social**: Founder branding & platform playbooks | `references/commands/social.md` | `references/workflows/social-growth.md` + `references/memory/platform-specs.md` |
17
+ | **Email**: Welcome, cart recovery & win-back | `references/commands/email.md` | `references/workflows/email-lifecycle.md` + `references/memory/lifecycle-flows.md` |
18
+ | **Advertising**: 3-angle copy & CRO wireframes | `references/commands/advertising.md` | `references/workflows/paid-acquisition.md` + `references/memory/ad-copy-templates.md` |
19
+ | **Promotions**: Flash sales, decoy pricing & math | `references/commands/promotions.md` | `references/workflows/promo-conversion.md` + `references/memory/promotions-math.md` |
20
+ | **Growth**: Referral loops, viral growth & retention | `references/commands/growth.md` | `references/workflows/viral-retention.md` + `references/memory/20-brain-baas-integration.md` |
21
+ | **Audit**: Copy quality audit & cliché detection | `references/commands/audit.md` | `scripts/audit_copy.py` + `references/memory/quality-bar.md` |
22
+
23
+ ## Non-Negotiable Quality Constraints
24
+
25
+ 1. **CDL v2.0 & Debate Mode**: Auto-sense parameters before prompting; present genuine Unknowns via `ask_question`.
26
+ 2. **Zero Robotic Preamble**: Never output conversational monologue dumps, textbook essays, or greetings.
27
+ 3. **7-Axis Pre-Emit Critique**: All copy must self-audit against P5 H5 E5 S5 R5 V5 D5 (`references/memory/quality-bar.md`).
28
+ 4. **Multi-Angle Requirement**: Ad generation must produce 3 psychological angles (Pain, ROI, Proof).
29
+ 5. **Margin Protection Rule**: Promos must verify gross margins with `calc_promo_math.py`.
30
+ 6. **Bilingual MENA Direct Response**: Compose Arabic copy natively per `references/memory/arabic-writing.md`.
31
+
32
+ ## Anti-Triggers
33
+
34
+ - Do NOT use for generic text formatting or non-commercial writing.
35
+ - Do NOT use for backend database operations or platform infrastructure.
36
+
37
+ ## Tooling Scope (Rule 10)
38
+
39
+ - `audit_copy` (`scripts/audit_copy.py`): Sub-second AST & cliché linter.
40
+ - `calc_promo_math` (`scripts/calc_promo_math.py`): Break-even ROAS & margin math.
41
+ - `clean_orphaned_assets` (`scripts/clean_orphaned_assets.py`): SHA-256 duplicate & orphan cleaner.
42
+
43
+ ## Skill vs MCP Boundary (Rule 12)
44
+
45
+ - **Inside Skill**: Static marketing frameworks, copy matrices, Arabic tone rubrics, and local auditing tools.
46
+ - **MCP Layer**: Sovereign Brain persistence (`search_knowledge_base`, `extract_knowledge_item`) operating under Fail-Open protocol.
package/bin/add-skill.js CHANGED
@@ -1,50 +1,65 @@
1
- #!/usr/bin/env node
2
-
3
- const fs = require('fs');
4
- const path = require('path');
5
-
6
- /* Lightweight Zero-Dependency ANSI formatting */
7
- const chalk = {
8
- cyan: (str) => `\x1b[36m${str}\x1b[0m`,
9
- green: (str) => `\x1b[32m${str}\x1b[0m`,
10
- yellow: (str) => `\x1b[33m${str}\x1b[0m`,
11
- red: (str) => `\x1b[31m${str}\x1b[0m`,
12
- bold: (str) => `\x1b[1m${str}\x1b[0m`,
13
- dim: (str) => `\x1b[2m${str}\x1b[0m`,
14
- };
15
-
16
- const PACKAGE_ROOT = path.resolve(__dirname, '..');
17
- const targetDir = process.cwd();
18
- const skillDestDir = path.join(targetDir, '.agents', 'skills', 'tidyfactor-marketing');
19
-
20
- console.log(chalk.cyan(`\nInjecting TidyFactor Marketing Skill into: ${targetDir}...`));
21
-
22
- fs.mkdirSync(skillDestDir, { recursive: true });
23
-
24
- const copyDir = (src, dest) => {
25
- fs.mkdirSync(dest, { recursive: true });
26
- for (const item of fs.readdirSync(src)) {
27
- const srcItem = path.join(src, item);
28
- const destItem = path.join(dest, item);
29
- if (fs.statSync(srcItem).isDirectory()) {
30
- copyDir(srcItem, destItem);
31
- } else {
32
- fs.copyFileSync(srcItem, destItem);
33
- }
34
- }
35
- };
36
-
37
- // Copy references and root files
38
- const filesToCopy = ['SKILL.md', 'package.json', 'README.md', 'README.ar.md', 'LICENSE', 'brand.json', '.tidyfactor'];
39
- for (const f of filesToCopy) {
40
- const srcFile = path.join(PACKAGE_ROOT, f);
41
- if (fs.existsSync(srcFile)) {
42
- fs.copyFileSync(srcFile, path.join(skillDestDir, f));
43
- }
44
- }
45
-
46
- if (fs.existsSync(path.join(PACKAGE_ROOT, 'references'))) {
47
- copyDir(path.join(PACKAGE_ROOT, 'references'), path.join(skillDestDir, 'references'));
48
- }
49
-
50
- console.log(chalk.bold(chalk.green(`✅ TidyFactor Marketing Skill injected successfully into .agents/skills/tidyfactor-marketing!\n`)));
1
+ #!/usr/bin/env node
2
+ /**
3
+ * bin/add-skill.js — Multi-Agent Skill Installer Wrapper for tidyfactor-marketing
4
+ * Supports Trae, Cursor, Windsurf, Antigravity, GitHub Copilot, RooCode, OpenCode, KiloCode, Warp, and Universal.
5
+ *
6
+ * @license Apache-2.0
7
+ */
8
+
9
+ const fs = require('fs');
10
+ const path = require('path');
11
+ const os = require('os');
12
+
13
+ const targetDir = process.cwd();
14
+ const skillSource = path.resolve(__dirname, '..');
15
+ const skillName = 'tidyfactor-marketing';
16
+
17
+ const AGENT_MAP = [
18
+ { name: 'Trae AI IDE', dir: path.join(targetDir, '.trae', 'skills', skillName), test: path.join(targetDir, '.trae') },
19
+ { name: 'Cursor IDE', dir: path.join(targetDir, '.cursor', 'skills', skillName), test: path.join(targetDir, '.cursor') },
20
+ { name: 'Windsurf Cascade', dir: path.join(targetDir, '.windsurf', 'skills', skillName), test: path.join(targetDir, '.windsurf') },
21
+ { name: 'GitHub Copilot', dir: path.join(targetDir, '.github', 'prompts', skillName), test: path.join(targetDir, '.github') },
22
+ { name: 'RooCode', dir: path.join(targetDir, '.roo', 'skills', skillName), test: path.join(targetDir, '.roo') },
23
+ { name: 'OpenCode / Zen', dir: path.join(targetDir, '.opencode', 'skills', skillName), test: path.join(targetDir, '.opencode') },
24
+ { name: 'KiloCode', dir: path.join(targetDir, '.kilocode', 'skills', skillName), test: path.join(targetDir, '.kilocode') },
25
+ { name: 'Warp Terminal', dir: path.join(targetDir, '.warp', 'skills', skillName), test: path.join(targetDir, '.warp') },
26
+ { name: 'Kiro Spec IDE', dir: path.join(targetDir, '.kiro', 'skills', skillName), test: path.join(targetDir, '.kiro') },
27
+ { name: 'Claude Code', dir: path.join(targetDir, '.claude', 'skills', skillName), test: path.join(targetDir, '.claude') },
28
+ { name: 'Zed AI Agent', dir: path.join(targetDir, '.zed', 'skills', skillName), test: path.join(targetDir, '.zed') },
29
+ { name: 'Google Antigravity/Gemini', dir: path.join(targetDir, '.agents', 'skills', skillName), test: path.join(targetDir, '.agents') },
30
+ ];
31
+
32
+ function copyRecursive(src, dest) {
33
+ fs.mkdirSync(dest, { recursive: true });
34
+ const entries = fs.readdirSync(src, { withFileTypes: true });
35
+ for (const entry of entries) {
36
+ const srcPath = path.join(src, entry.name);
37
+ const destPath = path.join(dest, entry.name);
38
+ if (['.git', 'node_modules', 'dist'].includes(entry.name)) continue;
39
+ if (entry.isDirectory()) {
40
+ copyRecursive(srcPath, destPath);
41
+ } else {
42
+ fs.copyFileSync(srcPath, destPath);
43
+ }
44
+ }
45
+ }
46
+
47
+ // Determine installation targets
48
+ let mountedTargets = [];
49
+
50
+ for (const agent of AGENT_MAP) {
51
+ if (fs.existsSync(agent.test)) {
52
+ copyRecursive(skillSource, agent.dir);
53
+ mountedTargets.push(agent.name + ' (' + path.relative(targetDir, agent.dir) + ')');
54
+ }
55
+ }
56
+
57
+ // Always ensure universal fallback in .agents/skills/
58
+ const defaultDir = path.join(targetDir, '.agents', 'skills', skillName);
59
+ copyRecursive(skillSource, defaultDir);
60
+ if (!mountedTargets.some(t => t.includes('.agents'))) {
61
+ mountedTargets.push('Universal Default (.agents/skills/' + skillName + ')');
62
+ }
63
+
64
+ console.log('✨ Successfully injected ' + skillName + ' into:');
65
+ mountedTargets.forEach(t => console.log(' • ' + t));
package/brand.json CHANGED
@@ -1,67 +1,67 @@
1
- {
2
- "name": "TidyFactor Marketing",
3
- "version": "1.3.0",
4
- "schemaVersion": "brand-core-v2",
5
- "meta": {
6
- "product": "TidyFactor Marketing Engine",
7
- "tagline": "AI Direct Response & 360° Growth Marketing Engine",
8
- "description": "A production-grade, AI-native marketing and growth engine following TidyFactor Skill architecture. Handles 7 pillars and 28 capabilities with zero fluff, data-backed metrics, quantitative benchmarks, and platform-native direct-response conversion frameworks.",
9
- "version": "1.1.1",
10
- "lastUpdated": "2026-08-25"
11
- },
12
- "identity": {
13
- "logo": {
14
- "full": "assets/logo.svg",
15
- "fullDark": "assets/logo-dark.svg",
16
- "mark": "assets/logo-mark.svg",
17
- "favicon": "assets/favicon.svg",
18
- "minClearSpace": "1x logo-mark height on all sides",
19
- "minSizePx": 24
20
- },
21
- "socialPreview": {
22
- "ogImage": "assets/og-default.png",
23
- "ogDimensions": "1200x630"
24
- }
25
- },
26
- "voice": {
27
- "tone": "direct, evidence-first, quantitative, authentic, teacher-practitioner",
28
- "vocabulary": {
29
- "preferred": [
30
- "direct response",
31
- "conversion rate",
32
- "margin protection",
33
- "CAC payback",
34
- "LTV:CAC",
35
- "ROAS",
36
- "anti-cliché",
37
- "pillar-cluster",
38
- "search intent",
39
- "retention loop"
40
- ],
41
- "banned": [
42
- "cutting-edge",
43
- "seamless experience",
44
- "innovative solutions",
45
- "take your business to the next level",
46
- "one-stop shop",
47
- "نسعى دائماً لتقديم الأفضل",
48
- "فريق من الخبراء",
49
- "حلول متكاملة ومبتكرة"
50
- ]
51
- },
52
- "principles": [
53
- "Every sentence must carry a mechanism, a concrete number, or a verifiable proof point.",
54
- "Never price cut without calculating unit gross margin impact.",
55
- "Respect audience attention with high-signal, zero-throat-clearing direct copy."
56
- ]
57
- },
58
- "pillars": {
59
- "1_strategy": "Brand Voice, Positioning Statement, Competitive Differentiation, Phased Launch (T-30 to T+14)",
60
- "2_content": "Pillar + Cluster SEO, Multi-Platform Posts, Publishing Grids, Newsletters",
61
- "3_social": "LinkedIn B2B & Founder Personal Branding, Instagram/TikTok 0-3s Hooks, 0-1k Roadmap",
62
- "4_email": "Lead Magnet Mechanics, 5-Email Welcome Flow, 3-Stage Cart Recovery, Win-Back Sequences",
63
- "5_advertising": "3-Angle Ad Copy Matrices, 7-Dimension CRO Landing Page Wireframes, Meta & Google Ads",
64
- "6_promotions": "72-Hour Flash Sales, Decoy Pricing Architecture, Viral Contests, Margin-Safe Coupons",
65
- "7_growth": "2-Sided Viral Referral Loops, Influencer Vetting & Cold Outreach, Retention & Churn Diagnosis"
66
- }
67
- }
1
+ {
2
+ "name": "TidyFactor Marketing",
3
+ "version": "1.6.0",
4
+ "schemaVersion": "brand-core-v2",
5
+ "meta": {
6
+ "product": "TidyFactor Marketing Engine",
7
+ "tagline": "AI Direct Response & 360° Growth Marketing Engine",
8
+ "description": "A production-grade, AI-native marketing and growth engine following TidyFactor Skill architecture. Handles 7 pillars and 28 capabilities with zero fluff, data-backed metrics, quantitative benchmarks, and platform-native direct-response conversion frameworks.",
9
+ "version": "1.6.0",
10
+ "lastUpdated": "2026-09-09"
11
+ },
12
+ "identity": {
13
+ "logo": {
14
+ "full": "assets/logo.svg",
15
+ "fullDark": "assets/logo-dark.svg",
16
+ "mark": "assets/logo-mark.svg",
17
+ "favicon": "assets/favicon.svg",
18
+ "minClearSpace": "1x logo-mark height on all sides",
19
+ "minSizePx": 24
20
+ },
21
+ "socialPreview": {
22
+ "ogImage": "assets/hero-banner.png",
23
+ "ogDimensions": "1200x630"
24
+ }
25
+ },
26
+ "voice": {
27
+ "tone": "direct, evidence-first, quantitative, authentic, teacher-practitioner",
28
+ "vocabulary": {
29
+ "preferred": [
30
+ "direct response",
31
+ "conversion rate",
32
+ "margin protection",
33
+ "CAC payback",
34
+ "LTV:CAC",
35
+ "ROAS",
36
+ "anti-cliché",
37
+ "pillar-cluster",
38
+ "search intent",
39
+ "retention loop"
40
+ ],
41
+ "banned": [
42
+ "cutting-edge",
43
+ "seamless experience",
44
+ "innovative solutions",
45
+ "take your business to the next level",
46
+ "one-stop shop",
47
+ "نسعى دائماً لتقديم الأفضل",
48
+ "فريق من الخبراء",
49
+ "حلول متكاملة ومبتكرة"
50
+ ]
51
+ },
52
+ "principles": [
53
+ "Every sentence must carry a mechanism, a concrete number, or a verifiable proof point.",
54
+ "Never price cut without calculating unit gross margin impact.",
55
+ "Respect audience attention with high-signal, zero-throat-clearing direct copy."
56
+ ]
57
+ },
58
+ "pillars": {
59
+ "1_strategy": "Brand Voice, Positioning Statement, Competitive Differentiation, Phased Launch (T-30 to T+14)",
60
+ "2_content": "Pillar + Cluster SEO, Multi-Platform Posts, Publishing Grids, Newsletters",
61
+ "3_social": "LinkedIn B2B & Founder Personal Branding, Instagram/TikTok 0-3s Hooks, 0-1k Roadmap",
62
+ "4_email": "Lead Magnet Mechanics, 5-Email Welcome Flow, 3-Stage Cart Recovery, Win-Back Sequences",
63
+ "5_advertising": "3-Angle Ad Copy Matrices, 7-Dimension CRO Landing Page Wireframes, Meta & Google Ads",
64
+ "6_promotions": "72-Hour Flash Sales, Decoy Pricing Architecture, Viral Contests, Margin-Safe Coupons",
65
+ "7_growth": "2-Sided Viral Referral Loops, Influencer Vetting & Cold Outreach, Retention & Churn Diagnosis"
66
+ }
67
+ }