CM Content Factory v2.0 — AI Content Machine Platform Agent Skill
Self-learning SEO content pipeline: dashboard, multi-agent queue, token budgets, research → write → audit → publish.
- Context cost
- 82.2k tokensestimated from the bundle, loaded when it triggers
- Bundle
- 85 of 109 fileshanded out here; the rest is at its source
- Licence
- not declarednone named by its author
- Last change
- —no release on file
- Servers it uses
- Noneruns standalone
What it does
Self-learning SEO content pipeline: dashboard, multi-agent queue, token budgets, research → write → audit → publish. StoryBrand/Cialdini/JTBD-style frameworks; config-driven. Use for content factory, batch articles, or scaled publishing.
Installed, it changes the agent in these ways.
What this skill changes about the agent has not been set out here as a list. Its SKILL.md, shown below, says it in the author’s own words.
And these are the jobs people reach for it for.
The skill itself
A skill is instructions the model reads, so you can see what you are getting: below is the start of its SKILL.md. The front matter loads with every session, the body loads when the skill triggers, and the whole file comes with the install.
Nothing in a skill executes. The client loads the text and the model follows it, so a skill can be audited the way a runbook is — by reading it.
What it costs in context
Skills are not billed by the call. They are paid for in context: every token the instructions occupy is a token your code, your diff and your conversation cannot use. Here is what this one takes and when it takes it.
82.2k tokens, estimated from the bundle at four bytes to the token, held for the rest of the session once it triggers. Heavy. Teams tend to install this one per project rather than globally, and load it only when the job comes up.
A server charges by the month. A skill charges once per session, in context, and then keeps charging it for as long as the session lives.
Before and after
The same question, put to the same model twice: once as it comes, and once with these instructions loaded.
No worked example has been published for this skill yet.
The procedure it runs
The procedure has not been set out here step by step. It is in the body of its SKILL.md: the start of it is shown above, and the whole file comes with the install.
These steps are written for a model to follow, not executed by a runtime. It can still be told to skip one, and it will say so when it does.
Servers it uses
None. This skill calls no MCP servers at all.
Everything it needs is in the instructions, so it works in a project with nothing connected — the model reads the file and changes how it works with what it can already reach.
Its SKILL.md does not declare which tools it asks the agent for, so what it touches is whatever the instructions themselves ask for — read them before you install it.
This SKILL.md carries no allowed-tools line, so neither is declared. A skill grants no permissions of its own — it can only ask for tools your client already has.
What it will not do
Every skill is narrow, and the useful ones say where they stop. These are the jobs this one is the wrong tool for.
What this skill is not for has not been published here. Nothing is implied by that: it is a section the author has not filled in.
What is in the bundle
The download carries 85 of the 109 files in its source folder; the list here names 85 files, 630.5 kB on disk. Mostly text — the instructions the model reads — with 33 scripts in it that your client would run only if the instructions tell it to. The other 24 are not in the download, nor are 63 files of types a skill download does not carry — listed after these, with why.
- SKILL.md15.4 kB
- .content-factory-state.json3.1 kB
- AGENTS.md1.9 kB
- CLAUDE.md1.9 kB
- config.schema.json13.3 kB
- CURSOR.md1.1 kB
- dashboard/app.js20.1 kB
- dashboard/index.html21.9 kB
- dashboard/style.css24.0 kB
- examples/01-real-estate.config.json4.1 kB
- examples/02-personal-finance.config.json4.2 kB
- examples/03-health-wellness.config.json4.3 kB
- examples/04-saas-software.config.json4.1 kB
- examples/05-legal-services.config.json4.3 kB
- examples/06-insurance.config.json4.2 kB
- examples/07-ecommerce-dropship.config.json4.1 kB
- examples/08-online-education.config.json4.2 kB
- examples/09-crypto-defi.config.json4.2 kB
- examples/10-beauty-skincare.config.json4.2 kB
- examples/11-home-services.config.json4.1 kB
- examples/12-dental-clinic.config.json4.2 kB
- examples/13-pet-care.config.json4.2 kB
- examples/14-travel-hospitality.config.json4.2 kB
- examples/15-ai-automation.config.json4.1 kB
- examples/16-wedding-events.config.json4.1 kB
- examples/17-fitness-coaching.config.json4.3 kB
- examples/18-cybersecurity.config.json4.2 kB
- examples/19-food-restaurant.config.json4.2 kB
- examples/20-solar-energy.config.json4.2 kB
- examples/fitness-blog.config.json3.3 kB
- examples/tech-blog.config.json2.9 kB
- extensions/EXTENSION_GUIDE.md1.9 kB
- extensions/hooks.py3.8 kB
- extensions/openclaw_adapter.py4.5 kB
- landing/index.html31.7 kB
- landing/script.js4.1 kB
- landing/style.css23.6 kB
- landing/translations.js45.8 kB
- logs/events.jsonl1.3 kB
- profiles/_template.profile.json7.2 kB
- profiles/finance.profile.json10.3 kB
- profiles/legal.profile.json9.9 kB
- profiles/medical-research.profile.json11.1 kB
- profiles/technology.profile.json9.7 kB
- scripts/agent_dispatcher.py9.1 kB
- scripts/audit.py3.9 kB
- scripts/dashboard_server.py7.5 kB
- scripts/deploy.py5.2 kB
- scripts/extract.py4.4 kB
- scripts/landing_generator.py16.9 kB
- scripts/memory.py20.4 kB
- scripts/monetize.py9.4 kB
- scripts/pipeline.py12.5 kB
- scripts/plan.py5.8 kB
- scripts/publish.py4.9 kB
- scripts/research.py13.1 kB
- scripts/scaffold.py16.8 kB
- scripts/scoreboard.py13.1 kB
- scripts/seo.py3.0 kB
- scripts/state_manager.py12.0 kB
- scripts/token_manager.py9.7 kB
- scripts/validate.py7.5 kB
- scripts/wizard.py13.3 kB
- scripts/write.py3.3 kB
- tests/conftest.py2.5 kB
- tests/test_agent_dispatcher.py4.4 kB
- tests/test_memory.py5.0 kB
- tests/test_pipeline.py4.1 kB
- tests/test_research.py2.2 kB
- tests/test_state_manager.py5.1 kB
- tests/test_token_manager.py4.5 kB
- tests/test_wizard.py4.0 kB
- landing/docs/index.html9.1 kB
- landing/docs/content/changelog.md3.0 kB
- landing/docs/content/deployment.md1.7 kB
- landing/docs/content/execution-flow.md3.3 kB
- landing/docs/content/openspace.md1.8 kB
- landing/docs/content/openviking.md1.8 kB
- landing/docs/content/use-cases.md1.9 kB
- landing/docs/content/v5-intro.md1.8 kB
- sites/docs-site/src/styles/custom.css15.1 kB
- sites/docs-site/src/content/docs/architecture.md3.1 kB
- sites/docs-site/src/content/docs/data-flow.md2.1 kB
- sites/docs-site/src/content/docs/deployment.md0.9 kB
- sites/docs-site/src/content/docs/index.md3.8 kB
Not in the download
Too deep is past six folders and not carried is a type a skill download does not hold. Take them from its source.
- .git 2/logs/refs/heads/mainnot carried
- .git 2/logs/refs/remotes/origin/mainnot carried
- .git 2/objects/02/fb0956734b5f8ba3f918b7defd04a89cfe0076not carried
- .git 2/objects/08/1e129d75dc6feac6c02037272e6bd1a04e3324not carried
- .git 2/objects/0c/5393416f3c5e01c9a655a802bff0dd52f76f0anot carried
- .git 2/objects/2f/a836b7947f2d458e1f639788bf4bb0983a3305not carried
- .git 2/objects/3a/baaaf0a1c0909c0828335791557125fba911e0not carried
- .git 2/objects/5d/82d3b18410cdda3ace3677436f0cb599dbe2d2not carried
- .git 2/objects/6a/8369a99c687b7245c92ffaf0e0f0dab9014504not carried
- .git 2/objects/7e/5ebd79251c2f14e4aceb86c74b6b6daae6b500not carried
- .git 2/objects/9b/d8dd1e49cf274eaf9c555f3ab39dce7af5715enot carried
- .git 2/objects/10/0b9be46978a946a77188f68be725098a122001not carried
- .git 2/objects/10/cf041167fc9843610eb3d90259ef3396315fdcnot carried
- .git 2/objects/12/5e19538dd6e1338ffe74f6c4c165b00435bf48not carried
- .git 2/objects/16/a9b9d0088d5c1347628b45a2620b479d8ad57cnot carried
- .git 2/objects/17/8c2a9ef93c33ae4eec9d58e82321f9229843a1not carried
- .git 2/objects/25/397ae41d09104d763bdcac2695209d85cdea89not carried
- .git 2/objects/42/2924221b81f5ce3c4e4daac9a64a24f9b01f9anot carried
- .git 2/objects/42/ec0ce707447dc11446a34c9995fb8533801731not carried
- .git 2/objects/46/e43ce92866d56ce74b1d750db307cfe6154a15not carried
- .git 2/objects/48/5e41b633c63f55b8277bcc59f44f67681f671anot carried
- .git 2/objects/49/49c596a3a89fa240642acd95dd3258e261eb09not carried
- .git 2/objects/50/9d42d8412ef8eaf7f7e138476bac2e4d10ce60not carried
- .git 2/objects/55/0c8c389d981b463ef849aeb792d8be3ccb6ec8not carried
- .git 2/objects/60/0617c58e871a38b33bf29e282d132bb3c381adnot carried
- .git 2/objects/79/bea435d40ab531c1aaf6be0432c6a5b7aaed21not carried
- .git 2/objects/81/98a822a60178d6d5023ddb3e222cddf048742enot carried
- .git 2/objects/86/0a0e1943dfe53411d2e499a1f16f46a96ef758not carried
- .git 2/objects/86/971fb55fdc081fdbae52376f0f13e57a4e9b04not carried
- .git 2/objects/88/b89dd609a0a03f8d4fe8bfde20d5b8fc1d326dnot carried
- .git 2/objects/90/8737edb6b7809e32cc01590b4e08ba42a9d40dnot carried
- .git 2/objects/93/d5a8a9a7d4fb7f11491cb596a6880528725118not carried
- .git 2/objects/98/46a2ab81d0c3b3eb00ef88fc56989aa7e9f316not carried
- .git 2/objects/a1/13329fb0cec96ae78b222d33a24c3b5bc7fa1fnot carried
- .git 2/objects/a9/e6effe626e8a3aea3a8fc3364b492191c6e7d0not carried
- .git 2/objects/ad/6de7e48d9782cca9353d1ff0aa1aab7fe1df85not carried
- .git 2/objects/af/54ae316f771ff692e299ffcd8bf2f06b413b59not carried
- .git 2/objects/b0/4cb8b0b00dad633e731c1472161419e738d674not carried
- .git 2/objects/b3/094abb0b9ed46419b269e4a4e36a459690e3b0not carried
- .git 2/objects/b9/435c5d4baac2cfc5c83009ddd27b46b60db5f1not carried
- .git 2/objects/ba/5da17dbaec5ec2dcfdfd126aead518d1171d5cnot carried
- .git 2/objects/c0/bf58703aa258ba5dd63083bebaec8f223d844cnot carried
- .git 2/objects/c4/701a34edf1fc1bad58ccc57bd03f9426acb59anot carried
- .git 2/objects/c7/5ccce9a4e5cc74d9b3174550cf6d993ca43638not carried
- .git 2/objects/c7/710d59b5a35b0f1f0a0399386643a0bd94c929not carried
- .git 2/objects/d1/fe58237112e953e5fec52da22cf38e08be3df9not carried
- .git 2/objects/d2/2bbe9fd2f74c95bc5583e803f5e435f1e2cd86not carried
- .git 2/objects/d7/e72852ea2bff74581dbf247d400120086229f4not carried
- .git 2/objects/d8/d4c3b5553e4fd72807e1d4b49ef07d9ef3ac35not carried
- .git 2/objects/dc/75050c2876f6a02ae2a53a3c886f395b622977not carried
- .git 2/objects/ee/e8546f95acec500187c08a28a8b9ee02db0decnot carried
- .git 2/objects/ef/263c059208b416c2146434f10cb2b9fabcba16not carried
- .git 2/objects/f3/ae597e84d9a59b88acd21c99bde2eaf686d785not carried
- .git 2/objects/f3/f6f5673c821d3d8e76fa267a9e882e7a5387eanot carried
- .git 2/objects/f9/6e6d0ad02624dd11d5848594d056caef7a5e8bnot carried
- .git 2/objects/ff/278988fc1edf0db3abcf18de795f4cc0b4f3e1not carried
- .git 2/refs/heads/mainnot carried
- .git 2/refs/remotes/origin/mainnot carried
- .pytest_cache 2/v/cache/nodeidsnot carried
- .pytest_cache 2/v/cache/stepwisenot carried
- cfnot carried
- Content Factory.zipnot carried
- sites/docs-site/src/assets/houston.webpnot carried
- sites/docs-site/src/content/docs/flows/index.mdtoo deep
- sites/docs-site/src/content/docs/flows/lc-content-lifecycle.mdtoo deep
- sites/docs-site/src/content/docs/flows/seq-write-mode.mdtoo deep
- sites/docs-site/src/content/docs/flows/uj-first-batch.mdtoo deep
- sites/docs-site/src/content/docs/flows/wf-content-pipeline.mdtoo deep
- sites/docs-site/src/content/docs/flows/wf-learning-cycle.mdtoo deep
- sites/docs-site/src/content/docs/getting-started/configuration.mdtoo deep
- sites/docs-site/src/content/docs/getting-started/installation.mdtoo deep
- sites/docs-site/src/content/docs/getting-started/intro.mdtoo deep
- sites/docs-site/src/content/docs/jtbd/index.mdtoo deep
- sites/docs-site/src/content/docs/jtbd/optimize-seo.mdtoo deep
- sites/docs-site/src/content/docs/jtbd/scale-content-production.mdtoo deep
- sites/docs-site/src/content/docs/jtbd/standardize-quality.mdtoo deep
- sites/docs-site/src/content/docs/personas/buyer-cmo-huong.mdtoo deep
- sites/docs-site/src/content/docs/personas/buyer-content-lead-khoa.mdtoo deep
- sites/docs-site/src/content/docs/personas/index.mdtoo deep
- sites/docs-site/src/content/docs/personas/user-content-manager-lan.mdtoo deep
- sites/docs-site/src/content/docs/personas/user-seo-minh.mdtoo deep
- sites/docs-site/src/content/docs/personas/user-writer-tu.mdtoo deep
- sites/docs-site/src/content/docs/sop/content-pipeline.mdtoo deep
- sites/docs-site/src/content/docs/sop/index.mdtoo deep
- sites/docs-site/src/content/docs/sop/memory-system.mdtoo deep
- sites/docs-site/src/content/docs/sop/seo-optimization.mdtoo deep
- sites/docs-site/src/content/docs/sop/troubleshooting-guide.mdtoo deep
A skill installs nothing and depends on nothing: it is a folder your client reads. This one carries 33 scripts beside the text, so the download is 85 files — not the whole of its source: 87 files are left out. They are listed under the files, with why.
Install
Installing copies the bundle into your project. Nothing runs at install time — the files sit on disk until the model reads them.
# CM Content Factory v2.0 — AI Content Machine Platform · 82.2k tokens when loaded · macOS, Linux
mkdir -p .claude/skills && t=$(mktemp -d) &&
curl -fsSL -o "$t/bundle.tar.gz" https://mcprush.com/api/skills/cm-content-factory-v2-0-ai-content-machine-platfo/bundle.tar.gz &&
tar -xzf "$t/bundle.tar.gz" -C "$t" && [ -d "$t/cm-content-factory-v2-0-ai-content-machine-platfo" ] &&
{ [ ! -e .claude/skills/cm-content-factory-v2-0-ai-content-machine-platfo ] || { mv .claude/skills/cm-content-factory-v2-0-ai-content-machine-platfo "$t/.previous" && echo "Previous copy moved to $t/.previous"; }; } &&
mv "$t/cm-content-factory-v2-0-ai-content-machine-platfo" .claude/skills/ && echo "Installed .claude/skills/cm-content-factory-v2-0-ai-content-machine-platfo"npx mcprush@latest skill add tody-agent/cm-content-factory-v2-0-ai-content-machine-platfoWindows PowerShell says 'running scripts is disabled on this system'? Run Set-ExecutionPolicy -Scope CurrentUser RemoteSigned once, or type npx.cmd instead of npx (codex.cmd, gemini.cmd, grok.cmd likewise). PowerShell 7 needs neither. Writes to .claude/skills/cm-content-factory-v2-0-ai-content-machine-platfo/ in the current project. For every project instead, run mkdir -p ~/.claude/skills && t=$(mktemp -d) && curl -fsSL -o "$t/bundle.tar.gz" https://mcprush.com/api/skills/cm-content-factory-v2-0-ai-content-machine-platfo/bundle.tar.gz && tar -xzf "$t/bundle.tar.gz" -C "$t" && [ -d "$t/cm-content-factory-v2-0-ai-content-machine-platfo" ] && { [ ! -e ~/.claude/skills/cm-content-factory-v2-0-ai-content-machine-platfo ] || { mv ~/.claude/skills/cm-content-factory-v2-0-ai-content-machine-platfo "$t/.previous" && echo "Previous copy moved to $t/.previous"; }; } && mv "$t/cm-content-factory-v2-0-ai-content-machine-platfo" ~/.claude/skills/ && echo "Installed ~/.claude/skills/cm-content-factory-v2-0-ai-content-machine-platfo" (macOS, Linux) — or add --global to the npx line. The curl line replaces .claude/skills/cm-content-factory-v2-0-ai-content-machine-platfo/ only after the download succeeds, so files left there by another skill of the same name, or by an older release, do not mix in. A copy already there is moved aside, not deleted, and the line prints where. It appears as cm-content-factory in Gemini CLI, Codex, Copilot and Grok (its own name); Claude Code lists it by the folder name, cm-content-factory-v2-0-ai-content-machine-platfo. Not in this download: 87 files of its source (the full list, and why). Take them from its source.
Which clients pick it up on their own
A skill is a folder of text. Most of these read a skills folder and pick it up without being told; the rest take the same folder another way — an upload in the app, a parameter on an API call — and then choose it by its description just the same.
Versions
Its author publishes no version number, so there is nothing here to pin to: what you install is the folder as it stands today. Instructions change more often than APIs do — a skill can be rewritten entirely without anything it depends on moving.
Nothing to pin to: this skill carries no version number of its own. What you install is what the folder holds on the day you install it.
Reviews
Nobody has reviewed this skill yet. The rating is the mean of the reviews written here, so there is none until somebody writes the first.
A review is tied to an account so it can be answered, edited and taken down by the person who wrote it.
Sign inAnybody with an account, one review each. It carries the version that was current when you wrote it, and the publisher may reply once.