Beach Innovation Lab

Content Publishing Workflow

Post status lifecycle
planned
researching
drafted
review
published
Pipeline stages
Stage
Trigger / Input
Agent Action
Output / Artefact
Gate
1
Campaign Plan
plan.json
Phases, ordered posts, scheduledDate, dependencies, hook, notes
content-plan/campaigns/[slug]/plan.json
Eligibility check
status == "planned", scheduledDate ≤ today, dependencies met
Selected post
Lowest phase → lowest order → first eligible across all campaigns
2
Research
Daily job trigger
Scheduled task runs content-author skill with hook + notes from plan
automated
Web research
Reads existing research.md, adds targeted supplemental findings
research.md updated
Appended with findings; status → researching
content-plan/campaigns/[slug]/research.md
3
Draft
hook + notes
Primary brief from plan.json — angle, positioning, key points
Content authoring
Reads 3 most recent posts, writes markdown with frontmatter
content-author skill
Draft markdown
800–1500 words, Beach voice and tone, internal links
content-plan/.../drafts/[slug].md
4
Quality Control
Draft promoted
Copied to content/posts/ for schema + build validation
content/posts/[slug].md
hammer check + build
Schema validation, required fields, slug, category, internal links, Build/ output
QC result
Pass: proceed. Fail: self-correct up to 3 attempts, then halt and report
QC gate
0 errors required. Governance checklist must pass. Build/ must reflect changes.
auto self-correct
5
Branch & Stage
Feature branch
Created from main — source + Build/ committed together
content/posts/[slug]
Merge to staging
Feature branch merged into staging, pushed to origin, staging redeploy triggered
Staging live
Post visible at beach-forge-staging.getforge.io — plan.json status → review
6
Human Review
Review handoff
Agent stops. Status is "review". Human inspects staging URL.
requires approval
Editorial pass
Tone, accuracy, SEO, links, images. Edits committed directly to staging branch.
Approval decision
Approve → merge to main. Reject → revise and re-review.
Human gate
No automated path from staging to main. Human merge only.
manual only
7
Production
Merge staging → main
Human merges and pushes. Forge production redeploy triggered.
Post live
Published at beach.io/blog/[slug]/ — plan.json status → published
Downstream unlock
Dependent posts in plan.json become eligible for next run
Components
Static site builder. Validates schema, generates Build/ output from templates + content. CLI reference →
Anthropic skill. Handles research → draft → QC → promote → git → staging pipeline.
Git-driven static host. Serves Build/ directory. Staging and production sites.
Single source of truth for campaign state. Agent updates status fields only.
Campaign planning
Agent / automated
Content authoring
Build & QC
Deploy / git
Human gate
Production
beach.io content workflow — beach-daily-content scheduled task + anthropic-skills:content-author