codymaster 4.6.0 → 5.2.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/CHANGELOG.md +74 -8
- package/README.md +192 -95
- package/dist/advisory-handoff.js +89 -0
- package/dist/advisory-report.js +105 -0
- package/dist/browse-server.js +251 -0
- package/dist/cli/command-registry.js +34 -0
- package/dist/cli/commands/agent.js +120 -0
- package/dist/cli/commands/bench.js +69 -0
- package/dist/cli/commands/brain.js +108 -0
- package/dist/cli/commands/dashboard.js +93 -0
- package/dist/cli/commands/design-studio.js +111 -0
- package/dist/cli/commands/distro.js +25 -0
- package/dist/cli/commands/engineering.js +596 -0
- package/dist/cli/commands/evolve.js +123 -0
- package/dist/cli/commands/mcp-serve.js +104 -0
- package/dist/cli/commands/project.js +324 -0
- package/dist/cli/commands/skill-chain.js +269 -0
- package/dist/cli/commands/system.js +89 -0
- package/dist/cli/commands/task.js +254 -0
- package/dist/cli/update-check.js +83 -0
- package/dist/cm-config.js +92 -0
- package/dist/cm-suggest.js +77 -0
- package/dist/codybench/judges/automated.js +31 -0
- package/dist/codybench/runners/claude-code.js +32 -0
- package/dist/codybench/suites/memory-retention.js +85 -0
- package/dist/codybench/suites/tdd-regression.js +35 -0
- package/dist/codybench/suites/token-efficiency.js +55 -0
- package/dist/codybench/types.js +2 -0
- package/dist/context-db.js +157 -0
- package/dist/continuity.js +2 -6
- package/dist/distro-validate.js +54 -0
- package/dist/execution-analyzer.js +138 -0
- package/dist/guardian-core.js +74 -0
- package/dist/index.js +36 -2759
- package/dist/indexer/skills-lib.js +533 -0
- package/dist/indexer/skills-map.js +1374 -0
- package/dist/indexer/skills.js +16 -0
- package/dist/learning-promoter.js +246 -0
- package/dist/mcp-context-server.js +289 -1
- package/dist/mcp-skills-tools.js +81 -0
- package/dist/retro-summary.js +70 -0
- package/dist/second-opinion-providers.js +79 -0
- package/dist/skill-chain.js +63 -1
- package/dist/skill-evolver.js +456 -0
- package/dist/skill-execution-cache.js +254 -0
- package/dist/smart-brain-router.js +184 -0
- package/dist/sprint-pipeline.js +228 -0
- package/dist/storage-backend.js +14 -67
- package/dist/token-budget.js +88 -0
- package/dist/utils/cli-utils.js +76 -0
- package/dist/utils/skill-utils.js +32 -0
- package/package.json +17 -7
- package/scripts/build-skills.mjs +51 -0
- package/scripts/gate-0-repo-hygiene.js +75 -0
- package/scripts/postinstall.js +34 -28
- package/scripts/security-scan.js +1 -1
- package/scripts/validate-skills.mjs +42 -0
- package/skills/CLAUDE.md +2 -7
- package/skills/_shared/helpers.md +2 -8
- package/skills/cm-ads-tracker/SKILL.md +3 -6
- package/skills/cm-browse/SKILL.md +34 -0
- package/skills/cm-conductor-worktrees/SKILL.md +28 -0
- package/skills/cm-content-factory/SKILL.md +1 -1
- package/skills/cm-content-factory/landing/docs/content/changelog.md +36 -0
- package/skills/cm-content-factory/landing/docs/content/deployment.md +46 -0
- package/skills/cm-content-factory/landing/docs/content/execution-flow.md +67 -0
- package/skills/cm-content-factory/landing/docs/content/memory-system.md +38 -0
- package/skills/cm-content-factory/landing/docs/content/openspace.md +27 -0
- package/skills/cm-content-factory/landing/docs/content/use-cases.md +26 -0
- package/skills/cm-content-factory/landing/docs/content/v5-intro.md +28 -0
- package/skills/cm-content-factory/landing/docs/index.html +240 -0
- package/skills/cm-content-factory/landing/index.html +100 -100
- package/skills/cm-content-factory/landing/script.js +42 -0
- package/skills/cm-content-factory/landing/translations.js +400 -400
- package/skills/cm-continuity/SKILL.md +32 -33
- package/skills/cm-design-studio/SKILL.md +34 -0
- package/skills/cm-ecosystem-roadmap/SKILL.md +15 -0
- package/skills/cm-engineering-meta/SKILL.md +73 -0
- package/skills/cm-growth-hacking/SKILL.md +1 -12
- package/skills/cm-guardian-runtime/SKILL.md +26 -0
- package/skills/cm-mcp-engineering/SKILL.md +22 -0
- package/skills/cm-notebooklm/SKILL.md +1 -17
- package/skills/cm-post-deploy-canary/SKILL.md +22 -0
- package/skills/cm-project-bootstrap/SKILL.md +11 -0
- package/skills/cm-qa-visual-cli/SKILL.md +22 -0
- package/skills/cm-retro-cli/SKILL.md +23 -0
- package/skills/cm-second-opinion-cli/SKILL.md +23 -0
- package/skills/cm-secret-shield/SKILL.md +2 -2
- package/skills/cm-security-gate/SKILL.md +1 -0
- package/skills/cm-skill-chain/SKILL.md +25 -4
- package/skills/cm-skill-evolution/SKILL.md +83 -0
- package/skills/cm-skill-health/SKILL.md +83 -0
- package/skills/cm-skill-index/SKILL.md +11 -3
- package/skills/cm-skill-search/SKILL.md +49 -0
- package/skills/cm-skill-share/SKILL.md +58 -0
- package/skills/cm-sprint-bus/SKILL.md +33 -0
- package/skills/cm-start/SKILL.md +0 -10
- package/skills/cm-tdd/SKILL.md +59 -72
- package/skills/profiles/README.md +21 -0
- package/skills/profiles/core.txt +23 -0
- package/skills/profiles/design.txt +6 -0
- package/skills/profiles/full.txt +62 -0
- package/skills/profiles/growth.txt +10 -0
- package/skills/profiles/knowledge.txt +7 -0
- package/install.sh +0 -901
- package/scripts/test-gemini.js +0 -13
- package/skills/cm-frappe-agent/SKILL.md +0 -134
- package/skills/cm-frappe-agent/agents/doctype-architect.md +0 -596
- package/skills/cm-frappe-agent/agents/erpnext-customizer.md +0 -643
- package/skills/cm-frappe-agent/agents/frappe-backend.md +0 -814
- package/skills/cm-frappe-agent/agents/frappe-custom-frontend.md +0 -557
- package/skills/cm-frappe-agent/agents/frappe-debugger.md +0 -625
- package/skills/cm-frappe-agent/agents/frappe-fixer.md +0 -275
- package/skills/cm-frappe-agent/agents/frappe-frontend.md +0 -660
- package/skills/cm-frappe-agent/agents/frappe-installer.md +0 -158
- package/skills/cm-frappe-agent/agents/frappe-performance.md +0 -307
- package/skills/cm-frappe-agent/agents/frappe-planner.md +0 -419
- package/skills/cm-frappe-agent/agents/frappe-remote-ops.md +0 -153
- package/skills/cm-frappe-agent/agents/github-workflow.md +0 -286
- package/skills/cm-frappe-agent/commands/frappe-app.md +0 -351
- package/skills/cm-frappe-agent/commands/frappe-backend.md +0 -162
- package/skills/cm-frappe-agent/commands/frappe-bench.md +0 -254
- package/skills/cm-frappe-agent/commands/frappe-debug.md +0 -263
- package/skills/cm-frappe-agent/commands/frappe-doctype-create.md +0 -272
- package/skills/cm-frappe-agent/commands/frappe-doctype-field.md +0 -310
- package/skills/cm-frappe-agent/commands/frappe-erpnext.md +0 -210
- package/skills/cm-frappe-agent/commands/frappe-fix.md +0 -59
- package/skills/cm-frappe-agent/commands/frappe-frontend.md +0 -210
- package/skills/cm-frappe-agent/commands/frappe-fullstack.md +0 -243
- package/skills/cm-frappe-agent/commands/frappe-github.md +0 -57
- package/skills/cm-frappe-agent/commands/frappe-install.md +0 -52
- package/skills/cm-frappe-agent/commands/frappe-plan.md +0 -442
- package/skills/cm-frappe-agent/commands/frappe-remote.md +0 -58
- package/skills/cm-frappe-agent/commands/frappe-test.md +0 -356
- package/skills/cm-frappe-agent/docs/README.md +0 -51
- package/skills/cm-frappe-agent/docs/agents-catalog.md +0 -113
- package/skills/cm-frappe-agent/docs/architecture.md +0 -149
- package/skills/cm-frappe-agent/docs/commands-catalog.md +0 -82
- package/skills/cm-frappe-agent/docs/resources-catalog.md +0 -66
- package/skills/cm-frappe-agent/docs/sitemap-urls.txt +0 -52
- package/skills/cm-frappe-agent/docs/sitemap.md +0 -81
- package/skills/cm-frappe-agent/docs/sop/user-guide.md +0 -178
- package/skills/cm-frappe-agent/docs/sop/vibe-coding-guide.md +0 -122
- package/skills/cm-frappe-agent/resources/7-layer-architecture.md +0 -985
- package/skills/cm-frappe-agent/resources/bench_commands.md +0 -73
- package/skills/cm-frappe-agent/resources/code-patterns-guide.md +0 -948
- package/skills/cm-frappe-agent/resources/common_pitfalls.md +0 -266
- package/skills/cm-frappe-agent/resources/doctype-registry.md +0 -158
- package/skills/cm-frappe-agent/resources/installation-guide.md +0 -289
- package/skills/cm-frappe-agent/resources/rest-api-patterns.md +0 -182
- package/skills/cm-frappe-agent/resources/scaffold_checklist.md +0 -82
- package/skills/cm-frappe-agent/resources/upgrade_patterns.md +0 -113
- package/skills/cm-frappe-agent/resources/web-form-patterns.md +0 -252
- package/skills/cm-frappe-agent/skills/bench-commands/SKILL.md +0 -621
- package/skills/cm-frappe-agent/skills/client-scripts/SKILL.md +0 -642
- package/skills/cm-frappe-agent/skills/doctype-patterns/SKILL.md +0 -576
- package/skills/cm-frappe-agent/skills/frappe-api/SKILL.md +0 -740
- package/skills/cm-frappe-agent/skills/remote-operations/SKILL.md +0 -47
- package/skills/cm-frappe-agent/skills/server-scripts/SKILL.md +0 -608
- package/skills/cm-frappe-agent/skills/web-forms/SKILL.md +0 -46
- package/skills/frappe-app-builder.zip +0 -0
|
@@ -4,16 +4,16 @@
|
|
|
4
4
|
<head>
|
|
5
5
|
<meta charset="UTF-8" />
|
|
6
6
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
7
|
-
<title>
|
|
7
|
+
<title>CodyMaster v5 — The Neural Spine for AI-Native Engineering</title>
|
|
8
8
|
<meta name="description"
|
|
9
|
-
content="
|
|
9
|
+
content="The high-performance autonomous backbone for AI agents. Featuring Smart Spine memory, context bus orchestration, and OpenSpace workspace isolation. Build real products with context-aware intelligence." />
|
|
10
10
|
<meta name="keywords"
|
|
11
|
-
content="AI
|
|
11
|
+
content="CodyMaster v5, AI agent backbone, Smart Spine, OpenSpace, semantic memory, context bus, AI-native engineering" />
|
|
12
12
|
|
|
13
13
|
<!-- Open Graph -->
|
|
14
|
-
<meta property="og:title" content="
|
|
14
|
+
<meta property="og:title" content="CodyMaster v5 — The Neural Spine for AI Agents" />
|
|
15
15
|
<meta property="og:description"
|
|
16
|
-
content="
|
|
16
|
+
content="Autonomous backbone for AI-Native Engineering. Unified context, semantic memory, and resource management." />
|
|
17
17
|
<meta property="og:type" content="website" />
|
|
18
18
|
|
|
19
19
|
<!-- Fonts -->
|
|
@@ -40,15 +40,15 @@
|
|
|
40
40
|
<div class="nav-logo-icon">
|
|
41
41
|
<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="white" stroke-width="2.5"
|
|
42
42
|
stroke-linecap="round" stroke-linejoin="round">
|
|
43
|
-
<path d="
|
|
43
|
+
<path d="M12 2L2 7l10 5 10-5-10-5zM2 17l10 5 10-5M2 12l10 5 10-5" />
|
|
44
44
|
</svg>
|
|
45
45
|
</div>
|
|
46
|
-
|
|
46
|
+
CodyMaster v5
|
|
47
47
|
</a>
|
|
48
48
|
|
|
49
49
|
<div class="nav-links" id="nav-links">
|
|
50
50
|
<a href="#features" data-i18n="nav.features">Features</a>
|
|
51
|
-
<a href="
|
|
51
|
+
<a href="docs/" data-i18n="nav.docs">Docs</a>
|
|
52
52
|
<a href="#pricing" data-i18n="nav.pricing">Pricing</a>
|
|
53
53
|
<a href="#faq" data-i18n="nav.faq">FAQ</a>
|
|
54
54
|
<select id="lang-select" class="lang-select" aria-label="Select Language">
|
|
@@ -60,7 +60,7 @@
|
|
|
60
60
|
</div>
|
|
61
61
|
|
|
62
62
|
<div style="display:flex;align-items:center;gap:12px;">
|
|
63
|
-
<a href="https://github.com/
|
|
63
|
+
<a href="https://github.com/tody-agent/codymaster" class="nav-github" target="_blank" rel="noopener">
|
|
64
64
|
<svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor">
|
|
65
65
|
<path
|
|
66
66
|
d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z" />
|
|
@@ -120,20 +120,20 @@
|
|
|
120
120
|
|
|
121
121
|
<div class="hero-stats animate-in delay-4">
|
|
122
122
|
<div class="stat-item">
|
|
123
|
-
<span class="stat-value">
|
|
124
|
-
<span class="stat-label" data-i18n="hero.statTemplates">
|
|
123
|
+
<span class="stat-value">69+</span>
|
|
124
|
+
<span class="stat-label" data-i18n="hero.statTemplates">Agent Skills</span>
|
|
125
125
|
</div>
|
|
126
126
|
<div class="stat-item">
|
|
127
|
-
<span class="stat-value">
|
|
128
|
-
<span class="stat-label" data-i18n="hero.statModes">
|
|
127
|
+
<span class="stat-value">3</span>
|
|
128
|
+
<span class="stat-label" data-i18n="hero.statModes">Memory Tiers</span>
|
|
129
129
|
</div>
|
|
130
130
|
<div class="stat-item">
|
|
131
|
-
<span class="stat-value"
|
|
132
|
-
<span class="stat-label" data-i18n="hero.statCost">
|
|
131
|
+
<span class="stat-value">8+</span>
|
|
132
|
+
<span class="stat-label" data-i18n="hero.statCost">Deployment Gates</span>
|
|
133
133
|
</div>
|
|
134
134
|
<div class="stat-item">
|
|
135
|
-
<span class="stat-value"
|
|
136
|
-
<span class="stat-label" data-i18n="hero.statMemory">
|
|
135
|
+
<span class="stat-value">∞</span>
|
|
136
|
+
<span class="stat-label" data-i18n="hero.statMemory">Context Depth</span>
|
|
137
137
|
</div>
|
|
138
138
|
</div>
|
|
139
139
|
</div>
|
|
@@ -210,11 +210,11 @@
|
|
|
210
210
|
<!-- ===== MODES GRID ===== -->
|
|
211
211
|
<section class="modes section" id="features">
|
|
212
212
|
<div class="container">
|
|
213
|
-
<p class="section-label reveal">8 OPERATING MODES</p>
|
|
214
|
-
<h2 class="section-title reveal">
|
|
213
|
+
<p class="section-label reveal" data-i18n="features.label">8 OPERATING MODES</p>
|
|
214
|
+
<h2 class="section-title reveal" data-i18n="features.title">
|
|
215
215
|
One engine. Every content workflow.
|
|
216
216
|
</h2>
|
|
217
|
-
<p class="section-subtitle reveal">
|
|
217
|
+
<p class="section-subtitle reveal" data-i18n="features.subtitle">
|
|
218
218
|
From research to publish — each mode is a specialist. Run one at a time, or chain them all in Pipeline mode.
|
|
219
219
|
</p>
|
|
220
220
|
|
|
@@ -228,8 +228,8 @@
|
|
|
228
228
|
<line x1="12" y1="15" x2="12" y2="3" />
|
|
229
229
|
</svg>
|
|
230
230
|
</div>
|
|
231
|
-
<h3>Extract</h3>
|
|
232
|
-
<p>Pull structured knowledge from docs, PDFs, URLs into your knowledge base.</p>
|
|
231
|
+
<h3 data-i18n="features.m1Name">Extract</h3>
|
|
232
|
+
<p data-i18n="features.m1Desc">Pull structured knowledge from docs, PDFs, URLs into your knowledge base.</p>
|
|
233
233
|
</div>
|
|
234
234
|
|
|
235
235
|
<div class="mode-card reveal">
|
|
@@ -243,8 +243,8 @@
|
|
|
243
243
|
<line x1="10" y1="9" x2="8" y2="9" />
|
|
244
244
|
</svg>
|
|
245
245
|
</div>
|
|
246
|
-
<h3>Plan</h3>
|
|
247
|
-
<p>Generate topic queues from your knowledge base — prioritized by monetization potential.</p>
|
|
246
|
+
<h3 data-i18n="features.m2Name">Plan</h3>
|
|
247
|
+
<p data-i18n="features.m2Desc">Generate topic queues from your knowledge base — prioritized by monetization potential.</p>
|
|
248
248
|
</div>
|
|
249
249
|
|
|
250
250
|
<div class="mode-card reveal">
|
|
@@ -255,8 +255,8 @@
|
|
|
255
255
|
<path d="M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4L16.5 3.5z" />
|
|
256
256
|
</svg>
|
|
257
257
|
</div>
|
|
258
|
-
<h3>Write</h3>
|
|
259
|
-
<p>AI writes with memory context — learning from past wins and mistakes.</p>
|
|
258
|
+
<h3 data-i18n="features.m3Name">Write</h3>
|
|
259
|
+
<p data-i18n="features.m3Desc">AI writes with memory context — learning from past wins and mistakes.</p>
|
|
260
260
|
</div>
|
|
261
261
|
|
|
262
262
|
<div class="mode-card reveal">
|
|
@@ -267,8 +267,8 @@
|
|
|
267
267
|
<path d="M21 12v7a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1-2 2h11" />
|
|
268
268
|
</svg>
|
|
269
269
|
</div>
|
|
270
|
-
<h3>Audit</h3>
|
|
271
|
-
<p>Auto quality-check every article. Auto-fix issues. Penalty for fails.</p>
|
|
270
|
+
<h3 data-i18n="features.m4Name">Audit</h3>
|
|
271
|
+
<p data-i18n="features.m4Desc">Auto quality-check every article. Auto-fix issues. Penalty for fails.</p>
|
|
272
272
|
</div>
|
|
273
273
|
|
|
274
274
|
<div class="mode-card reveal">
|
|
@@ -279,8 +279,8 @@
|
|
|
279
279
|
<line x1="21" y1="21" x2="16.65" y2="16.65" />
|
|
280
280
|
</svg>
|
|
281
281
|
</div>
|
|
282
|
-
<h3>SEO</h3>
|
|
283
|
-
<p>Extract & apply: title, meta, schema markup, internal links, keyword density.</p>
|
|
282
|
+
<h3 data-i18n="features.m5Name">SEO</h3>
|
|
283
|
+
<p data-i18n="features.m5Desc">Extract & apply: title, meta, schema markup, internal links, keyword density.</p>
|
|
284
284
|
</div>
|
|
285
285
|
|
|
286
286
|
<div class="mode-card reveal">
|
|
@@ -292,8 +292,8 @@
|
|
|
292
292
|
<path d="M20.39 18.39A5 5 0 0 0 18 9h-1.26A8 8 0 1 0 3 16.3" />
|
|
293
293
|
</svg>
|
|
294
294
|
</div>
|
|
295
|
-
<h3>Publish</h3>
|
|
296
|
-
<p>Build and deploy content to production. One command, zero friction.</p>
|
|
295
|
+
<h3 data-i18n="features.m6Name">Publish</h3>
|
|
296
|
+
<p data-i18n="features.m6Desc">Build and deploy content to production. One command, zero friction.</p>
|
|
297
297
|
</div>
|
|
298
298
|
|
|
299
299
|
<div class="mode-card reveal">
|
|
@@ -305,8 +305,8 @@
|
|
|
305
305
|
<line x1="12" y1="8" x2="12.01" y2="8" />
|
|
306
306
|
</svg>
|
|
307
307
|
</div>
|
|
308
|
-
<h3>Research</h3>
|
|
309
|
-
<p>Auto-research any topic: web search, competitor analysis, knowledge synthesis.</p>
|
|
308
|
+
<h3 data-i18n="features.m7Name">Research</h3>
|
|
309
|
+
<p data-i18n="features.m7Desc">Auto-research any topic: web search, competitor analysis, knowledge synthesis.</p>
|
|
310
310
|
</div>
|
|
311
311
|
|
|
312
312
|
<div class="mode-card reveal">
|
|
@@ -317,8 +317,8 @@
|
|
|
317
317
|
<path d="M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z" />
|
|
318
318
|
</svg>
|
|
319
319
|
</div>
|
|
320
|
-
<h3>Learn</h3>
|
|
321
|
-
<p>Detects edits & deletes. Extracts patterns. Gets smarter over time.</p>
|
|
320
|
+
<h3 data-i18n="features.m8Name">Learn</h3>
|
|
321
|
+
<p data-i18n="features.m8Desc">Detects edits & deletes. Extracts patterns. Gets smarter over time.</p>
|
|
322
322
|
</div>
|
|
323
323
|
</div>
|
|
324
324
|
</div>
|
|
@@ -329,30 +329,30 @@
|
|
|
329
329
|
<!-- ===== 3-STEP PROCESS ===== -->
|
|
330
330
|
<section class="process section" id="how-it-works">
|
|
331
331
|
<div class="container">
|
|
332
|
-
<p class="section-label reveal">HOW IT WORKS</p>
|
|
333
|
-
<h2 class="section-title reveal">
|
|
332
|
+
<p class="section-label reveal" data-i18n="process.label">HOW IT WORKS</p>
|
|
333
|
+
<h2 class="section-title reveal" data-i18n="process.title">
|
|
334
334
|
3 steps. That's it.
|
|
335
335
|
</h2>
|
|
336
|
-
<p class="section-subtitle reveal">
|
|
336
|
+
<p class="section-subtitle reveal" data-i18n="process.subtitle">
|
|
337
337
|
No complex setup. No learning curve. One config file drives everything.
|
|
338
338
|
</p>
|
|
339
339
|
|
|
340
340
|
<div class="process-steps">
|
|
341
341
|
<div class="process-step reveal">
|
|
342
342
|
<div class="process-step-number">1</div>
|
|
343
|
-
<h3>Configure</h3>
|
|
344
|
-
<p>Set your niche, brand voice, content types, and SEO rules in one JSON config. 20+ ready-made templates
|
|
343
|
+
<h3 data-i18n="process.s1Name">Configure</h3>
|
|
344
|
+
<p data-i18n="process.s1Desc">Set your niche, brand voice, content types, and SEO rules in one JSON config. 20+ ready-made templates
|
|
345
345
|
included.</p>
|
|
346
346
|
</div>
|
|
347
347
|
<div class="process-step reveal">
|
|
348
348
|
<div class="process-step-number">2</div>
|
|
349
|
-
<h3>Run Pipeline</h3>
|
|
350
|
-
<p>One command fires the full engine: research → plan → write → audit → SEO → publish. Fully automated.</p>
|
|
349
|
+
<h3 data-i18n="process.s2Name">Run Pipeline</h3>
|
|
350
|
+
<p data-i18n="process.s2Desc">One command fires the full engine: research → plan → write → audit → SEO → publish. Fully automated.</p>
|
|
351
351
|
</div>
|
|
352
352
|
<div class="process-step reveal">
|
|
353
353
|
<div class="process-step-number">3</div>
|
|
354
|
-
<h3>Publish & Learn</h3>
|
|
355
|
-
<p>Content deploys instantly. The system learns from your feedback, scoring every article to improve the next
|
|
354
|
+
<h3 data-i18n="process.s3Name">Publish & Learn</h3>
|
|
355
|
+
<p data-i18n="process.s3Desc">Content deploys instantly. The system learns from your feedback, scoring every article to improve the next
|
|
356
356
|
batch.</p>
|
|
357
357
|
</div>
|
|
358
358
|
</div>
|
|
@@ -364,12 +364,12 @@
|
|
|
364
364
|
<!-- ===== INTELLIGENCE ===== -->
|
|
365
365
|
<section class="intelligence section" id="intelligence">
|
|
366
366
|
<div class="container">
|
|
367
|
-
<p class="section-label reveal">SELF-LEARNING INTELLIGENCE</p>
|
|
368
|
-
<h2 class="section-title reveal">
|
|
367
|
+
<p class="section-label reveal" data-i18n="intelligence.label">SELF-LEARNING INTELLIGENCE</p>
|
|
368
|
+
<h2 class="section-title reveal" data-i18n="intelligence.title">
|
|
369
369
|
The more you use it,<br />
|
|
370
370
|
<span class="gradient-text">the smarter it gets.</span>
|
|
371
371
|
</h2>
|
|
372
|
-
<p class="section-subtitle reveal">
|
|
372
|
+
<p class="section-subtitle reveal" data-i18n="intelligence.subtitle">
|
|
373
373
|
3-layer memory architecture + reward/penalty scoreboard. Every edit, every publish, every feedback loop makes
|
|
374
374
|
the engine sharper.
|
|
375
375
|
</p>
|
|
@@ -383,8 +383,8 @@
|
|
|
383
383
|
<path d="M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z" />
|
|
384
384
|
</svg>
|
|
385
385
|
</div>
|
|
386
|
-
<h3>Semantic Memory</h3>
|
|
387
|
-
<p>Long-term patterns: writing style, SEO rules, recurring mistakes to avoid.</p>
|
|
386
|
+
<h3 data-i18n="intelligence.mem1Name">Semantic Memory</h3>
|
|
387
|
+
<p data-i18n="intelligence.mem1Desc">Long-term patterns: writing style, SEO rules, recurring mistakes to avoid.</p>
|
|
388
388
|
</div>
|
|
389
389
|
<div class="memory-card reveal">
|
|
390
390
|
<div class="memory-card-icon episodic">
|
|
@@ -394,8 +394,8 @@
|
|
|
394
394
|
<polyline points="12 6 12 12 16 14" />
|
|
395
395
|
</svg>
|
|
396
396
|
</div>
|
|
397
|
-
<h3>Episodic Memory</h3>
|
|
398
|
-
<p>Per-session experiences with outcomes — what worked, what failed, and why.</p>
|
|
397
|
+
<h3 data-i18n="intelligence.mem2Name">Episodic Memory</h3>
|
|
398
|
+
<p data-i18n="intelligence.mem2Desc">Per-session experiences with outcomes — what worked, what failed, and why.</p>
|
|
399
399
|
</div>
|
|
400
400
|
<div class="memory-card reveal">
|
|
401
401
|
<div class="memory-card-icon working">
|
|
@@ -406,8 +406,8 @@
|
|
|
406
406
|
<line x1="12" y1="17" x2="12" y2="21" />
|
|
407
407
|
</svg>
|
|
408
408
|
</div>
|
|
409
|
-
<h3>Working Memory</h3>
|
|
410
|
-
<p>Current session context — active config, topic queue, and live scoring.</p>
|
|
409
|
+
<h3 data-i18n="intelligence.mem3Name">Working Memory</h3>
|
|
410
|
+
<p data-i18n="intelligence.mem3Desc">Current session context — active config, topic queue, and live scoring.</p>
|
|
411
411
|
</div>
|
|
412
412
|
</div>
|
|
413
413
|
|
|
@@ -446,95 +446,95 @@
|
|
|
446
446
|
<!-- ===== PRICING ===== -->
|
|
447
447
|
<section class="pricing section" id="pricing">
|
|
448
448
|
<div class="container">
|
|
449
|
-
<p class="section-label reveal">PRICING</p>
|
|
450
|
-
<h2 class="section-title reveal">
|
|
449
|
+
<p class="section-label reveal" data-i18n="pricing.label">PRICING</p>
|
|
450
|
+
<h2 class="section-title reveal" data-i18n="pricing.title">
|
|
451
451
|
Start free. Upgrade when you're ready.
|
|
452
452
|
</h2>
|
|
453
|
-
<p class="section-subtitle reveal">
|
|
453
|
+
<p class="section-subtitle reveal" data-i18n="pricing.subtitle">
|
|
454
454
|
No credit card. No lock-in. The engine is yours to run.
|
|
455
455
|
</p>
|
|
456
456
|
|
|
457
457
|
<div class="pricing-grid">
|
|
458
458
|
<div class="pricing-card reveal">
|
|
459
|
-
<div class="pricing-plan-name">Free</div>
|
|
459
|
+
<div class="pricing-plan-name" data-i18n="pricing.freeName">Free</div>
|
|
460
460
|
<div class="pricing-price"><span class="currency">$</span>0</div>
|
|
461
|
-
<div class="pricing-period">Free forever</div>
|
|
461
|
+
<div class="pricing-period" data-i18n="pricing.freePeriod">Free forever</div>
|
|
462
462
|
<ul class="pricing-features">
|
|
463
|
-
<li>
|
|
463
|
+
<li data-i18n="pricing.free1">
|
|
464
464
|
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5">
|
|
465
465
|
<polyline points="20 6 9 17 4 12" />
|
|
466
466
|
</svg>
|
|
467
467
|
Core pipeline (Extract → Write → Publish)
|
|
468
468
|
</li>
|
|
469
|
-
<li>
|
|
469
|
+
<li data-i18n="pricing.free2">
|
|
470
470
|
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5">
|
|
471
471
|
<polyline points="20 6 9 17 4 12" />
|
|
472
472
|
</svg>
|
|
473
473
|
5 niche templates included
|
|
474
474
|
</li>
|
|
475
|
-
<li>
|
|
475
|
+
<li data-i18n="pricing.free3">
|
|
476
476
|
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5">
|
|
477
477
|
<polyline points="20 6 9 17 4 12" />
|
|
478
478
|
</svg>
|
|
479
479
|
Basic audit & SEO
|
|
480
480
|
</li>
|
|
481
|
-
<li>
|
|
481
|
+
<li data-i18n="pricing.free4">
|
|
482
482
|
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5">
|
|
483
483
|
<polyline points="20 6 9 17 4 12" />
|
|
484
484
|
</svg>
|
|
485
485
|
Community support
|
|
486
486
|
</li>
|
|
487
487
|
</ul>
|
|
488
|
-
<a href="#" class="pricing-btn free">Get Started Free</a>
|
|
488
|
+
<a href="#" class="pricing-btn free" data-i18n="pricing.freeBtn">Get Started Free</a>
|
|
489
489
|
</div>
|
|
490
490
|
|
|
491
491
|
<div class="pricing-card pro reveal">
|
|
492
|
-
<div class="pricing-plan-name">Pro</div>
|
|
492
|
+
<div class="pricing-plan-name" data-i18n="pricing.proName">Pro</div>
|
|
493
493
|
<div class="pricing-price"><span class="currency">$</span>29</div>
|
|
494
|
-
<div class="pricing-period">per month</div>
|
|
494
|
+
<div class="pricing-period" data-i18n="pricing.proPeriod">per month</div>
|
|
495
495
|
<ul class="pricing-features">
|
|
496
|
-
<li>
|
|
496
|
+
<li data-i18n="pricing.pro1">
|
|
497
497
|
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5">
|
|
498
498
|
<polyline points="20 6 9 17 4 12" />
|
|
499
499
|
</svg>
|
|
500
500
|
All 8 operating modes
|
|
501
501
|
</li>
|
|
502
|
-
<li>
|
|
502
|
+
<li data-i18n="pricing.pro2">
|
|
503
503
|
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5">
|
|
504
504
|
<polyline points="20 6 9 17 4 12" />
|
|
505
505
|
</svg>
|
|
506
506
|
20+ niche templates
|
|
507
507
|
</li>
|
|
508
|
-
<li>
|
|
508
|
+
<li data-i18n="pricing.pro3">
|
|
509
509
|
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5">
|
|
510
510
|
<polyline points="20 6 9 17 4 12" />
|
|
511
511
|
</svg>
|
|
512
512
|
3-layer memory system
|
|
513
513
|
</li>
|
|
514
|
-
<li>
|
|
514
|
+
<li data-i18n="pricing.pro4">
|
|
515
515
|
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5">
|
|
516
516
|
<polyline points="20 6 9 17 4 12" />
|
|
517
517
|
</svg>
|
|
518
518
|
Auto-research & monetization scoring
|
|
519
519
|
</li>
|
|
520
|
-
<li>
|
|
520
|
+
<li data-i18n="pricing.pro5">
|
|
521
521
|
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5">
|
|
522
522
|
<polyline points="20 6 9 17 4 12" />
|
|
523
523
|
</svg>
|
|
524
524
|
OpenClaw extensions
|
|
525
525
|
</li>
|
|
526
|
-
<li>
|
|
526
|
+
<li data-i18n="pricing.pro6">
|
|
527
527
|
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5">
|
|
528
528
|
<polyline points="20 6 9 17 4 12" />
|
|
529
529
|
</svg>
|
|
530
530
|
Priority support
|
|
531
531
|
</li>
|
|
532
532
|
</ul>
|
|
533
|
-
<a href="#" class="pricing-btn pro-btn">Get Pro Access</a>
|
|
533
|
+
<a href="#" class="pricing-btn pro-btn" data-i18n="pricing.proBtn">Get Pro Access</a>
|
|
534
534
|
</div>
|
|
535
535
|
</div>
|
|
536
536
|
|
|
537
|
-
<div class="pricing-ticker reveal">
|
|
537
|
+
<div class="pricing-ticker reveal" data-i18n="pricing.ticker">
|
|
538
538
|
⚡ Early adopter pricing — price increases after 500 users. Lock in your rate now.
|
|
539
539
|
</div>
|
|
540
540
|
</div>
|
|
@@ -545,16 +545,16 @@
|
|
|
545
545
|
<!-- ===== FAQ ===== -->
|
|
546
546
|
<section class="faq section" id="faq">
|
|
547
547
|
<div class="container">
|
|
548
|
-
<p class="section-label reveal">FAQ</p>
|
|
549
|
-
<h2 class="section-title reveal">Common questions</h2>
|
|
548
|
+
<p class="section-label reveal" data-i18n="faq.label">FAQ</p>
|
|
549
|
+
<h2 class="section-title reveal" data-i18n="faq.title">Common questions</h2>
|
|
550
550
|
|
|
551
551
|
<div class="faq-list">
|
|
552
552
|
<div class="faq-item reveal">
|
|
553
|
-
<button class="faq-question" aria-expanded="false">
|
|
553
|
+
<button class="faq-question" aria-expanded="false" data-i18n="faq.q1Title">
|
|
554
554
|
What AI platforms does Content Factory work with?
|
|
555
555
|
<span class="faq-icon">+</span>
|
|
556
556
|
</button>
|
|
557
|
-
<div class="faq-answer">
|
|
557
|
+
<div class="faq-answer" data-i18n="faq.q1Ans">
|
|
558
558
|
<p>Content Factory is a <strong>skill/agent system</strong> — it works with any AI coding tool: Cursor,
|
|
559
559
|
Claude, Gemini, Amp, Windsurf, and more. It gives your AI the knowledge to produce professional,
|
|
560
560
|
SEO-optimized content.</p>
|
|
@@ -562,11 +562,11 @@
|
|
|
562
562
|
</div>
|
|
563
563
|
|
|
564
564
|
<div class="faq-item reveal">
|
|
565
|
-
<button class="faq-question" aria-expanded="false">
|
|
565
|
+
<button class="faq-question" aria-expanded="false" data-i18n="faq.q2Title">
|
|
566
566
|
How does the self-learning memory work?
|
|
567
567
|
<span class="faq-icon">+</span>
|
|
568
568
|
</button>
|
|
569
|
-
<div class="faq-answer">
|
|
569
|
+
<div class="faq-answer" data-i18n="faq.q2Ans">
|
|
570
570
|
<p>Three layers: <strong>Semantic</strong> (long-term patterns), <strong>Episodic</strong> (per-session
|
|
571
571
|
outcomes), and <strong>Working</strong> (current context). When you edit or delete content, the system
|
|
572
572
|
detects it via git diffs and adjusts its writing patterns. High-scoring content styles get reinforced;
|
|
@@ -575,11 +575,11 @@
|
|
|
575
575
|
</div>
|
|
576
576
|
|
|
577
577
|
<div class="faq-item reveal">
|
|
578
|
-
<button class="faq-question" aria-expanded="false">
|
|
578
|
+
<button class="faq-question" aria-expanded="false" data-i18n="faq.q3Title">
|
|
579
579
|
Can I use it for my specific niche?
|
|
580
580
|
<span class="faq-icon">+</span>
|
|
581
581
|
</button>
|
|
582
|
-
<div class="faq-answer">
|
|
582
|
+
<div class="faq-answer" data-i18n="faq.q3Ans">
|
|
583
583
|
<p>Absolutely. Content Factory is <strong>config-driven and niche-agnostic</strong>. We include 20+
|
|
584
584
|
ready-made templates: real estate, health & wellness, SaaS, dental, fitness, crypto, e-commerce, and more.
|
|
585
585
|
You can also create custom configs for any niche.</p>
|
|
@@ -587,22 +587,22 @@
|
|
|
587
587
|
</div>
|
|
588
588
|
|
|
589
589
|
<div class="faq-item reveal">
|
|
590
|
-
<button class="faq-question" aria-expanded="false">
|
|
590
|
+
<button class="faq-question" aria-expanded="false" data-i18n="faq.q4Title">
|
|
591
591
|
How long does setup take?
|
|
592
592
|
<span class="faq-icon">+</span>
|
|
593
593
|
</button>
|
|
594
|
-
<div class="faq-answer">
|
|
594
|
+
<div class="faq-answer" data-i18n="faq.q4Ans">
|
|
595
595
|
<p>About <strong>60 seconds</strong>. Copy a template config, adjust your niche and brand settings, and run
|
|
596
596
|
the pipeline. No installation, no dependencies beyond Python 3 and your AI tool.</p>
|
|
597
597
|
</div>
|
|
598
598
|
</div>
|
|
599
599
|
|
|
600
600
|
<div class="faq-item reveal">
|
|
601
|
-
<button class="faq-question" aria-expanded="false">
|
|
601
|
+
<button class="faq-question" aria-expanded="false" data-i18n="faq.q5Title">
|
|
602
602
|
Is this just another AI writing tool?
|
|
603
603
|
<span class="faq-icon">+</span>
|
|
604
604
|
</button>
|
|
605
|
-
<div class="faq-answer">
|
|
605
|
+
<div class="faq-answer" data-i18n="faq.q5Ans">
|
|
606
606
|
<p>No. Most AI tools generate generic content from a prompt. Content Factory is a <strong>complete
|
|
607
607
|
production system</strong> — it researches, plans topics by monetization potential, writes with brand
|
|
608
608
|
memory, auto-audits quality, optimizes SEO, and publishes. Then it learns from the results. It's a
|
|
@@ -611,11 +611,11 @@
|
|
|
611
611
|
</div>
|
|
612
612
|
|
|
613
613
|
<div class="faq-item reveal">
|
|
614
|
-
<button class="faq-question" aria-expanded="false">
|
|
614
|
+
<button class="faq-question" aria-expanded="false" data-i18n="faq.q6Title">
|
|
615
615
|
Can I extend it with custom scripts?
|
|
616
616
|
<span class="faq-icon">+</span>
|
|
617
617
|
</button>
|
|
618
|
-
<div class="faq-answer">
|
|
618
|
+
<div class="faq-answer" data-i18n="faq.q6Ans">
|
|
619
619
|
<p>Yes. Content Factory has a built-in <strong>hook system</strong> and <strong>OpenClaw adapter</strong>
|
|
620
620
|
for extensions. You can add custom pre/post hooks at any pipeline phase, integrate external tools, or
|
|
621
621
|
build entirely new modes.</p>
|
|
@@ -630,18 +630,18 @@
|
|
|
630
630
|
|
|
631
631
|
<section class="footer-cta">
|
|
632
632
|
<div class="container">
|
|
633
|
-
<h2 class="reveal">
|
|
633
|
+
<h2 class="reveal" data-i18n="footer.ctaTitle">
|
|
634
634
|
Stop producing noise.<br />
|
|
635
635
|
<span class="gradient-text">Start producing content that converts.</span>
|
|
636
636
|
</h2>
|
|
637
|
-
<p class="reveal">One config. One command. Infinite, self-improving content.</p>
|
|
637
|
+
<p class="reveal" data-i18n="footer.ctaSub">One config. One command. Infinite, self-improving content.</p>
|
|
638
638
|
<div class="reveal">
|
|
639
639
|
<a href="#pricing" class="btn-primary">
|
|
640
640
|
<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
|
641
641
|
<polygon
|
|
642
642
|
points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2" />
|
|
643
643
|
</svg>
|
|
644
|
-
Start Free Now
|
|
644
|
+
<span data-i18n="footer.ctaBtn">Start Free Now</span>
|
|
645
645
|
</a>
|
|
646
646
|
</div>
|
|
647
647
|
</div>
|
|
@@ -655,19 +655,19 @@
|
|
|
655
655
|
<div class="footer-logo-icon">
|
|
656
656
|
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="white" stroke-width="2.5"
|
|
657
657
|
stroke-linecap="round" stroke-linejoin="round">
|
|
658
|
-
<path d="
|
|
658
|
+
<path d="M12 2L2 7l10 5 10-5-10-5zM2 17l10 5 10-5M2 12l10 5 10-5" />
|
|
659
659
|
</svg>
|
|
660
660
|
</div>
|
|
661
|
-
|
|
661
|
+
CodyMaster v5
|
|
662
662
|
</div>
|
|
663
663
|
<div class="footer-links">
|
|
664
|
-
<a href="#features">Features</a>
|
|
665
|
-
<a href="
|
|
666
|
-
<a href="#pricing">Pricing</a>
|
|
667
|
-
<a href="#faq">FAQ</a>
|
|
668
|
-
<a href="https://github.com/
|
|
664
|
+
<a href="#features" data-i18n="nav.features">Features</a>
|
|
665
|
+
<a href="docs/" data-i18n="nav.docs">Docs</a>
|
|
666
|
+
<a href="#pricing" data-i18n="nav.pricing">Pricing</a>
|
|
667
|
+
<a href="#faq" data-i18n="nav.faq">FAQ</a>
|
|
668
|
+
<a href="https://github.com/tody-agent/codymaster" target="_blank" rel="noopener">GitHub</a>
|
|
669
669
|
</div>
|
|
670
|
-
<div class="footer-copy">
|
|
670
|
+
<div class="footer-copy" data-i18n="footer.copy">
|
|
671
671
|
Built by <strong>Tody AI</strong> — Part of the AgentSkills Kit
|
|
672
672
|
</div>
|
|
673
673
|
</div>
|
|
@@ -677,4 +677,4 @@
|
|
|
677
677
|
<script src="script.js"></script>
|
|
678
678
|
</body>
|
|
679
679
|
|
|
680
|
-
</html>
|
|
680
|
+
</html>
|
|
@@ -98,4 +98,46 @@
|
|
|
98
98
|
}
|
|
99
99
|
});
|
|
100
100
|
});
|
|
101
|
+
|
|
102
|
+
/* --- Translation Logic --- */
|
|
103
|
+
const langSelect = document.getElementById('lang-select');
|
|
104
|
+
|
|
105
|
+
function applyTranslations(lang) {
|
|
106
|
+
const langData = window.translations[lang] || window.translations['en'];
|
|
107
|
+
if (!langData) return;
|
|
108
|
+
|
|
109
|
+
document.querySelectorAll('[data-i18n]').forEach(el => {
|
|
110
|
+
const key = el.getAttribute('data-i18n');
|
|
111
|
+
const keys = key.split('.');
|
|
112
|
+
let text = langData;
|
|
113
|
+
|
|
114
|
+
keys.forEach(k => {
|
|
115
|
+
if (text) text = text[k];
|
|
116
|
+
});
|
|
117
|
+
|
|
118
|
+
if (text) {
|
|
119
|
+
if (el.tagName === 'INPUT' || el.tagName === 'TEXTAREA') {
|
|
120
|
+
el.placeholder = text;
|
|
121
|
+
} else {
|
|
122
|
+
el.innerHTML = text;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
});
|
|
126
|
+
|
|
127
|
+
document.documentElement.lang = lang;
|
|
128
|
+
localStorage.setItem('preferred-lang', lang);
|
|
129
|
+
if (langSelect) langSelect.value = lang;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
if (langSelect) {
|
|
133
|
+
langSelect.addEventListener('change', (e) => {
|
|
134
|
+
applyTranslations(e.target.value);
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
// Initialize language
|
|
139
|
+
const savedLang = localStorage.getItem('preferred-lang') ||
|
|
140
|
+
(navigator.language.startsWith('vi') ? 'vi' : 'en');
|
|
141
|
+
applyTranslations(savedLang);
|
|
142
|
+
|
|
101
143
|
})();
|