What it is and why it matters
Doing marketing on your own means, every day: looking at yesterday's numbers, finding an idea, checking the facts, writing, making the images, scheduling. That's hours. And on the day the app needs fixing, all of it gets skipped.
For us, three Claude Code scheduled tasks do it, at night. At one, the analysis of yesterday's numbers and comments. At two, the search for ideas, with an agent that checks every fact against the source. At four, production: the ideas compete, a critic scores them out of 25 and only those reaching 20 go through. Then Claude schedules the posts from the browser, and in the morning I find a report.
It's not a tool you buy: it's text files in a folder. A guy on our team built it, for the TikTok carousels of STRIKT, our app, and one of the posts made this way went past 155,000 views. That's a real result, not a promise.
1. One folder, every rule in one place
Everything lives in one folder opened in Claude Code:
- CLAUDE.md: what you post, the rules that are not up for debate, which document to read and when.
- routines/: one file per run (analysis.md, research.md, production.md), with the steps in order.
- docs/: QUALITY.md (the required bar), IDEAS.md (the verified ideas), LOG.md (every post's numbers and the lessons).
- .claude/agents/: one file per agent.
- report/: one file per day, where each run writes its part.
The most important rule: every rule lives in one place only. The scheduled task's prompt adds none, it just says to run the routine. And when you change your mind, you rewrite the right line instead of adding a note underneath: otherwise, after two weeks you have rules that contradict each other and Claude follows one at random. The task's prompt is all here:
Read CLAUDE.md and run routines/production.md for today. The rules are there and in the documents it cites: this prompt adds none. Work on your own, don't ask questions.
2. The three routines
- 01:00, analysis. It opens the stats and reloads the page (never old numbers), reads every comment without replying, updates the log and the lessons.
- 02:00, research. The researcher finds facts and ideas, the fact-checker checks them against the primary source, the critic scores them. Only what passes goes into IDEAS.md.
- 04:00, production. It finds the empty slots, puts 6-8 ideas into competition, has the winners produced and schedules them on the platform from the browser.
Every routine has the same shape. Here's production, to adapt to your product:
# Production (every night at 04:00) 1. Read CLAUDE.md, docs/QUALITY.md, docs/IDEAS.md and the analysis in today's report. 2. On the platform, find the first day with empty slots, at most [5] days ahead. 3. Tournament: 6-8 ideas from IDEAS.md, the critic scores them. Only those with at least 20/25 go through. 4. For each winner: text → fact-checker → stranger test → images → critic on the finished post. After 3 rounds with the critic without a PUBLISH, the idea goes back to IDEAS.md with the fixes written down. 5. Schedule the posts from the browser and check date and time in the list. 6. Update LOG.md and IDEAS.md, commit only the files from this run. 7. Write the “Production” section in today's report (report/YYYY-MM-DD.md). Rules: - Subagents always in the foreground: wait for their result, never end your turn to wait for a notification. - An empty slot is better than a post under 20. - Don't reply to comments, don't delete posts. - If a site doesn't respond or the login has expired, write it at the top of the report and carry on.
3. The agents: who searches, who checks, who says no
The agents are Claude Code subagents: assistants with their own instructions, which work in a separate context and only hand back the result. Each one is a file in .claude/agents/:
- researcher: facts and ideas, each with its primary source and its risks;
- fact-checker: for every sentence it checks that the source says exactly that, and ends with “OK to publish” or not;
- critic: scores the ideas and the finished post, and only has reading tools;
- stranger: reads only the text and says what it understood.
The critic is the one who raises the bar. Here's its file, with the rubric:
--- name: critic description: Harsh judge. Scores the ideas in the tournament and the finished post before it goes out. tools: Read, Grep, Glob --- Your job is to say no. Read docs/QUALITY.md first. Score from 1 to 5: - Hook: does the first line stop a stranger's thumb? - Story: is there a concrete scene, or just a list? - Truth: does every fact have a verified primary source? - Novelty: has the niche already seen it a hundred times? - Product: does someone who doesn't download still learn something? Does the product come in as a natural tool or as an ad? Clarity, separately: did the stranger test pass? Answer with the total out of 25, the 3 most serious problems and exactly what to change. Verdict: PUBLISH (at least 20, no score under 3, Clarity at least 4) or REDO. No compliments.
The stranger test
It's the smartest part. Before the final critic, a brand-new agent, on the smallest model, reads only the post's text:
Read only the text below. You know nothing about who wrote it. 1. What happened? (Or: what does this product do?) 2. Why should I care? 3. What should I do now? Then list the words and passages you didn't understand. If an answer isn't in the text, write “I don't know”. TEXT: [paste here]
A wrong answer, or one it had to work out, means rewriting and redoing the test with a new agent. I explain how to make it a permanent agent at strikt.fit/test-sconosciuto.
4. Scheduling them on your computer
Claude Code has cloud scheduled tasks, which run even with the computer off but can't see your browser, and local ones, in the Claude desktop app, which run on your computer with your files and Chrome. To schedule posts from the browser, you need the local ones.
- In the desktop app, Code tab: Scheduled in the sidebar, then New task.
- Name and the prompt from section 1. In Advanced settings, turn on Only on this computer and pick the folder.
- Trigger Daily at the time you want, then permission mode and model, and Create. Each task starts a few minutes after the time: it's a deliberate delay.
- Run now: watch the first run and choose “always allow” at the permission requests. In Manual mode, a permission you haven't given stops the run until you answer.
For the browser you need the Claude in Chrome extension: it uses the logins you already have, but if it hits a login page or a CAPTCHA it stops and asks you. Local tasks only start while the app is open and the computer is awake (how to keep it awake: strikt.fit/notte). If the computer slept, when it wakes the app does a single catch-up run, even mid-morning: that's why production has a cutoff, like “a post that isn't ready by 10:00 doesn't go out”.
5. The rule that saves the night: subagents in the foreground
In desktop app sessions, subagents start in the background by default: the result arrives later, as a notification. At night that's a problem. One evening one of our runs launched its subagents, ended its turn to wait for them and stopped right there, halfway. Nobody woke it up. You need two things. The first: turn off fork mode in the project's .claude/settings.json file, so Claude can wait for them.
{
"env": {
"CLAUDE_CODE_FORK_SUBAGENT": "0"
}
}The second: write the rule into CLAUDE.md and every routine, like in the template above. Then open a new session and check with a Run now that the run gets all the way to the report.
6. The morning report
Every run writes its part in the day's report. In the morning I read a single file, in five minutes:
- the problems at the top: expired logins, runs stuck halfway, factual errors pointed out in the comments;
- yesterday's numbers and the most important lesson;
- the ideas let in and thrown out, with the reason;
- what got scheduled, with the critic's scores and the stranger's record.
If I don't like something, I don't fix the post by hand: I rewrite the rule in the right document. The next night's run already reads it.
Common mistakes
- Putting the rules in the scheduled task's prompt: after a month you no longer know which one applies.
- Adding notes instead of rewriting the rule: two lines in contradiction, and Claude follows one at random.
- Leaving subagents in the background at night: the run stops halfway and nobody wakes it up.
- Scheduling the tasks back to back: if the first one is still running, the second can get skipped.
- Having the routine reply to comments: it reads them to learn, you're the one who replies.
Checklist
- CLAUDE.md with the rules that are not up for debate
- Three routines, each ending by writing in the report
- Four agents in .claude/agents/, the critic with its rubric
- Three local tasks, with room between them
- First run launched with Run now and permissions approved
- Fork mode off and the foreground subagents rule written down
- Platform login active in Chrome, computer awake at night
Frequently asked questions
Does it really publish without my approval?
For us, yes: the fact-checker, the critic and the stranger keep the bar up, and an empty slot is better than a mediocre post. If you want to start slowly, remove the scheduling step: the routine prepares the posts and you schedule them in the morning.
How much usage does it take?
Scheduled tasks draw on your subscription like normal sessions, and a night with images and three posts isn't light. Have the analysis write down how long the runs took and how much usage they used: that way you see it in the report every morning.