Skip to content

First run

The goal of this step is setup, not writing. It’s the spot where /start verifies the environment, captures the blog identity, and finishes the prep for connecting Blogger. /start doesn’t write posts. Writing starts in natural language in the next step.

If you went as far as cd my-blog in clone-and-install, run this in the same spot.

Terminal window
claude

When the Claude Code prompt comes up, it quietly reads CLAUDE.md and the automation rules. You may not see much output on screen, which is normal.

Type this at the prompt.

/start

Or in natural language, 프로젝트 시작. Either way triggers the start router. /start is setup-only, so it captures environment, identity, and connection, and doesn’t move on to writing.

/start first checks the environment read-only. It looks for Python, the publish-script dependencies, the OAuth credential files, and the blog IDs.

ItemIf missing
python3install guidance. The Python item in prerequisites
scripts/credentials.jsonguidance to issue an OAuth client in the Google Cloud console
scripts/token.jsongenerated automatically on first publish, so missing now is normal
BLOG_ID_KO, BLOG_ID_ENguidance for the slot in .env

The verification result is planted in .claude/state/env-check.json. This step proceeds even if the credentials aren’t there yet. The publishing connection can be finished in publish; for now this is the spot where you confirm what’s in place and what’s empty.

4) git history separation, only if you cloned

Section titled “4) git history separation, only if you cloned”

If you got the base with git clone, /start inspects the origin URL and asks once. It’s the spot that asks whether to cut the history before your own work piles on top of the base’s commit history. If you got it by making your own repository via Template, this question is skipped automatically.

If this is your first time, agreeing to the separation is cleaner. The decision is planted in .claude/state/git-separation.json and isn’t asked again.

/start asks about the blog identity. It captures what the topic (niche) is, what language you run it in, what the revenue model is, and what the post persona and tone are. The answers are planted in .claude/product-marketing-context.md.

That document matters because every writing and marketing skill references it. Right after a fork it’s a placeholder, so you have to fill in this spot for the next step’s writing to come out in your blog’s tone.

When this step is done, here’s where you are: the environment state is planted in .claude/state/env-check.json, and the blog identity is filled into .claude/product-marketing-context.md. There’s still not a single post. That’s normal.

/start also guides connecting the Blogger domain and an image-hosting repo. But the base does not create an external GitHub repo automatically. If you need an image-hosting repo, you provide a URL you made yourself, and even then it’s connected only after your approval. There’s no need to finish this before writing your first post, so you can wrap it up at the publish step as publishing gets closer.

Once setup is done, go to write-first-post. Now you write.