marketing-ops
CLAUDE.md0 starsChanged 4 months agoMITView on GitHub
Everything committed, pushed, tagged, or published here is world-readable and effectively permanent. Treat every tracked file, commit message, CHANGELOG entry, GitHub release note, PR title/body/comment, issue, and tag as public. Do NOT put any of the following into anything tracked or published (code, tests, fixtures, docs, CHANGELOG, releases, PRs, tags, commit messages): - The repo owner's or any real person's name, handle, or identity. Do not name a specific person or tenant (for example, do not write a real person's…
- Reads credentials
In this repository7 other files it gives its agents.
- carousel-builderSkill
- content-pipelineSkill
- marketing-opsSkill
- marketing-setupSkill
- market-researchSkill
- social-repurposerSkill
- video-script-builderSkill
The file
We split this CLAUDE.md into the rules it gives an agent
9 rules. About 0 are common, 8 are distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈8
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 11
Do NOT put any of the following into anything tracked or published (code, tests, fixtures, docs, CHANGELOG, releases, PRs, tags, commit …
- Distinctive: line 69
Verify first, then write. Any claim about the world (what people do or say, dates, releases, study findings, statistics) needs a verified, …
- Distinctive: line 73
Never invent or embellish.
- Distinctive: line 87
When you generate posts, carousels, campaigns, strategy, example copy, or any content for a tenant, ground every claim in real material.
- Distinctive: line 91
Never invent a first-person claim, experience, story, or insight and attribute it to the person.
- Distinctive: line 93
Do not assert what a person uses, does, or has seen unless it is verified in their real sources.
- Distinctive: line 94
When the point is general advice rather than their verified practice, use educational or decision framing ("how to decide when to X"), not …
- Distinctive: line 102
If you cannot ground a claim, cut it or ask.
- Very specific: line 109
Never delete or move a file without confirming with the human first.
≈ “Common” is an estimate: at least 1 in 5 of the 26,980 CLAUDE.md files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
CLAUDE.md — Marketing-Ops
THIS IS A PUBLIC, OPEN-SOURCE REPOSITORY
Everything committed, pushed, tagged, or published here is world-readable and effectively permanent. Treat every tracked file, commit message, CHANGELOG entry, GitHub release note, PR title/body/comment, issue, and tag as public.
Never publish private or personal information
Do NOT put any of the following into anything tracked or published (code, tests, fixtures, docs, CHANGELOG, releases, PRs, tags, commit messages):
- The repo owner's or any real person's name, handle, or identity. Do not name a specific person or tenant (for example, do not write a real person's name in the CHANGELOG, release notes, code, tests, skills, or example data).
- Real personal or brand content treated as the owner's private data: voice/tone docs, ICPs, real post copy, real company or product names, real domains, real biographical or project details.
- Anything under
data/. It is git-ignored, user-owned, and PRIVATE. Never copy or movedata/content into tracked files, intodata.example/, into code, tests, or docs. - Secrets, tokens, API keys, or
.envvalues.
Use anonymous placeholders in anything tracked
- Public example data lives in
data.example/and MUST be anonymized: use invented tenants likeexample-agency, domains likeexample.com, and invented copy. Never seeddata.example/from a realdata/tenant. - Tests, fixtures, and default UI strings use neutral placeholders (
example-tenant,example.com), never a real person, brand, or domain. - The CHANGELOG and GitHub releases describe features generically. Never name a real tenant or person in them.
Before ANY publish (commit, push, PR, release, tag)
- Scan the diff for real names, real domains, and private content. If anything looks personal, STOP and ask the human before publishing.
Recording analytics
Post analytics arrive two ways and BOTH must land in the structured store
data/<tenant>/analytics/posts.json, which feeds the dashboard's analytics charts:
- Exported files (for example LinkedIn XLSX exports) dropped into
data/<tenant>/analytics/imports/import automatically while the dashboard server runs. - Numbers the user pastes or types into chat: the agent appends them to
posts.jsonas a capture withsource: "manual"on the matching post record (match by urn or postUrl when known, otherwise a stable slug id), never fabricating fields the paste does not contain (absent numbers are null). Link the post to its content item viaitemIdwhen one exists.
The markdown log under data/<tenant>/work/analytics/ stays the narrative layer
(observations, hypotheses, capture schedules); it is not the database. Record numbers in
posts.json first, then update the narrative log.
Surfacing capabilities
When the user asks for a campaign, an SEO or content strategy, keyword research, competitor research, or an analytics review, save the result to data/<tenant>/work/<type>/<slug>.md with title, created, and status frontmatter so the dashboard shows it. The five types are campaigns, strategy, keywords, research, and analytics. When a workspace is ready, proactively tell the user these capabilities exist and how to ask, for example by pointing them at the Ask panel in the dashboard.
Next steps after Init
After Init reaches readyToPost, the prep work is not finished. The agent's next job is to run competitor research, research keywords, draft a first content and SEO strategy, and plan a first campaign, in that order. Analytics comes later, once posts are live. Do not wait for the user to ask. When Init completes, and whenever the user asks what is next, tell them which prep pieces are still outstanding and offer to do them. Ask any questions you need, then save each result to data/<tenant>/work/<type>/ so the dashboard shows it. Treat the four prep pieces (research, keywords, strategy, campaigns) as the agent's outstanding work, not the user's. The user finished Init; surfacing and doing the prep is on the agent.
Base writing rules: always on, everywhere
The full shared rules are skills/marketing-setup/writing-rules.md; a tenant's voice.md layers
persona (person, tone, vocabulary, canonical facts) on top. The core rules below bind ALWAYS: in
drafts, slides, captions, strategy docs, and any line of copy proposed in chat. A hook pitched in
conversation is copy. Run these checks before showing it, not after.
- Verify first, then write. Any claim about the world (what people do or say, dates, releases, study findings, statistics) needs a verified, recent, primary source, named where the claim appears. Check the source page for follow-ups and updates before citing it. If no evidence exists, cut the claim or label it explicitly as an assumption.
- Never invent or embellish. No fabricated behavior ("the reflex is to...", "teams treat..."), no invented recency ("just shipped" without a dated announcement), no story details beyond the source, no "every / most / always" without data.
- A generalizing filler sentence that would need a citation gets deleted, not sourced. The post works without it.
- Complete sentences in the tenant's register. No comma-spliced fragment cadence, no rule-of-three beats, no slogan-shaped or aphoristic punchlines, no negative parallelism, no cleft sentences. Punchiness comes from having something specific to say.
- Plain keyboard punctuation only. No em dashes, anywhere, including chat replies.
- Open with the reader's problem or with what happened, never with "I built". The takeaway follows the events that earn it, and every post gives the reader something they can use.
Generating content: ground it in real material, never fabricate
When you generate posts, carousels, campaigns, strategy, example copy, or any content for a tenant, ground every claim in real material. For a personal authority brand this is the whole game, because a single fabricated claim, once posted, destroys the credibility the brand is built on.
- Never invent a first-person claim, experience, story, or insight and attribute it to the person. If they did not say it or do it, do not write it in their voice.
- Do not assert what a person uses, does, or has seen unless it is verified in their real sources. When the point is general advice rather than their verified practice, use educational or decision framing ("how to decide when to X"), not false first-person ("when I do X").
- Draw content only from the tenant's real sources (their site and blog, their voice and
canonical-facts guide, their shipped work, their approved material under
data/) or from a real, verifiable external source you have actually checked and can cite. - Model formats and angles on real, high-performing examples from the competitor and reference research, not on invented patterns. Label any unconfirmed angle as a suggestion; never present an invention as the person's experience or as something people say.
- If you cannot ground a claim, cut it or ask. Do not fill the gap with a plausible fabrication.
- Cite studies and statistics. Any claim drawn from a study, report, or survey must name its source so
a reader can verify it, and for a carousel the citation belongs in the caption. See
skills/marketing-setup/writing-rules.md.
Deleting or moving files
- Never delete or move a file without confirming with the human first. Private content may need to
be PRESERVED by moving it into git-ignored
data/, not deleted. When something private is found in a tracked location, propose whether to anonymize it in place or move the real version intodata/, and get approval before acting.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

