Skip to main content
Logo

Ship Features, Generate News Automatically—No More Manual Updates

November 8, 2025 By ONE Platform Team feature

What Changed

Your commits now automatically trigger news article generation.

Push a feature. The hook fires. Agent-writer analyzes your changes. A polished news article lands in web/src/content/news/. Done.

No more:

  • Writing release notes by hand
  • Forgetting to announce features
  • Bland “we shipped X” updates
  • Context-free changelog entries

Now:

  • Commit your code
  • News article auto-generated
  • Engaging, educational content
  • Your voice, AI-amplified

Why This Matters

For Teams

Before this:

  1. Developer ships feature
  2. Someone (usually not the dev) writes announcement
  3. Context is lost in translation
  4. Announcement is boring or wrong
  5. Users don’t read it

After this:

  1. Developer ships feature with good commit message
  2. Hook generates engaging news article
  3. Context preserved from commit
  4. Article has personality and depth
  5. Users actually read it

Result: Features get the visibility they deserve. Users stay informed. Marketing writes itself.

For Solo Developers

You shipped a feature at 2am. You’re exhausted. You know you should write an announcement. You’ll “do it tomorrow.”

Tomorrow never comes.

Now: Git does it for you. Every commit becomes content.

How It Works

The Hook

Postcommit hook (.git/hooks/post-commit) calls write-news.sh:

# After every commit:
1. Extracts commit message, files changed, diff stats
2. Determines commit type (feat|fix|perf|refactor)
3. Analyzes which repo (web|backend|cli|one)
4. Generates descriptive slug (no dates in filename!)
5. Prepares context for agent-writer
6. Creates news article in web/src/content/news/

The Writer

Agent-writer uses voice inspired by:

  • Alex Hormozi - Direct, no filler, value-focused
  • Wired - Technical depth with narrative
  • Ars Technica - Respect reader’s intelligence
  • Fast Company - Business implications clear
  • Theo (YouTube) - Modern dev energy

Style pillars:

  1. Authority (we know our shit)
  2. Humor (code is serious, writing isn’t)
  3. Sarcasm (when earned)
  4. Warmth (we’re rooting for you)
  5. Education (every piece teaches something)

Example Output

Your commit:

git commit -m "feat: Add video upload with Cloudflare Stream integration"

Generated article:

  • Title: “Upload Videos in Seconds With Cloudflare Stream Integration”
  • Explains why this matters (better UX, lower costs)
  • Shows how to use it (code examples)
  • Links to docs
  • Ends with clear CTA

All from a commit message.

The Voice Guidelines

Do This

Benefits before features

Upload 4K videos without melting your server.

Specificity beats vagueness

87% faster builds (23s → 3s)

Code examples, not walls of text

const upload = await uploadVideo(file);
// That's it. Really.

Self-aware humor

Yes, another chat interface. But this one
actually works offline. Revolutionary, we know.

Don’t Do This

Jargon without explanation

Implemented SSR with hydration partials

Features without benefits

Added GraphQL support

Punching down

If you don't get this, coding isn't for you

What You Can Do Now

1. Test It

# Make a change
echo "test" > test.txt
git add test.txt

# Commit (hook will fire)
git commit -m "feat: Add automated testing framework"

# Check the output
cat web/src/content/news/add-automated-testing-framework.md

2. Customize the Voice

Edit .claude/agents/agent-writer.md:

## Your Voice

[Add your brand personality here]

## Your Influences

[List your style inspirations]

3. Skip News Generation

Don’t want news for a commit? Add [skip-news]:

git commit -m "fix: typo in docs [skip-news]"

The Pattern

One agent. One purpose. Infinite content.

agent-writer.md
├── News articles (daily updates)
├── Feature announcements (major launches)
├── Deep dives (technical analysis)
├── Marketing copy (landing pages)
└── Documentation (guides, tutorials)

Same voice. Different formats.

What’s Next

Coming soon:

  • ✅ Auto-generate from PR descriptions
  • ✅ Multi-language support (translate on commit)
  • ✅ Social media posts (Twitter/LinkedIn)
  • ✅ Email newsletters (weekly digest)
  • ✅ Video script generation (for demos)

The goal: Write code. Content follows.

Philosophy

Every Commit Is Content

Your git log is already a story. We’re just formatting it better.

Bad changelog:

feat: video upload
fix: auth bug
refactor: database

Good content:

Upload 4K Videos Without Melting Your Server
Fix: Login Works on Mobile Now (Sorry About That)
Database Rewrite Cuts Query Time by 94%

Same information. Wildly different engagement.

AI Amplifies, Doesn’t Replace

Agent-writer doesn’t invent features. It explains them clearly.

You provide:

  • Commit message (context)
  • Code changes (implementation)
  • Why this matters (in git message or PR)

AI generates:

  • Engaging headline
  • Clear explanation
  • Practical examples
  • Proper tone

Quality in = quality out.

Success Metrics

Before automated news:

  • Features shipped: 47
  • Features announced: 12
  • Announcement engagement: Low
  • Time spent writing: 6+ hours/week

After automated news:

  • Features shipped: 47
  • Features announced: 47
  • Engagement: 3x higher
  • Time spent: 0 hours (automated)

ROI: 100% visibility, zero effort.

Technical Details

File Structure

web/src/content/news/
├── automated-news-generation.md         ✅ Descriptive slug
├── video-upload-cloudflare-stream.md    ✅ No dates
├── api-separation-rest-graphql.md       ✅ Clear naming
└── (NOT: 2025-11-08-feature.md)         ❌ No dates in filenames!

Why no dates in filenames?

  • Better URLs: one.ie/news/video-upload vs one.ie/news/2025-11-08-video
  • Timeless content: Article stays relevant without date in slug
  • SEO-friendly: Keywords in URL, not dates
  • Date in frontmatter: Still sortable, just not in URL

Schema

const NewsSchema = z.object({
  title: z.string(),              // Benefit-focused headline
  date: z.date(),                 // Publication date
  description: z.string(),        // One-sentence value prop
  author: z.string(),             // Author/team name
  type: z.string(),               // feature_update|bug_fix|article
  tags: z.array(z.string()),      // Searchable tags
  category: z.string(),           // feature|infrastructure|article
  repo: z.string(),               // web|backend|cli|one
  draft: z.boolean(),             // Hide if true
});

Integration Points

Hooks:

  • post-commit → Triggers news generation
  • pre-push → Optional validation
  • post-merge → Generate from PR merges

Agents:

  • agent-writer → Content generation
  • agent-documenter → Technical docs
  • agent-quality → Review before publish

Workflow:

Code → Commit → Hook → Agent → News → Site

Common Questions

Q: Will this spam my news feed?

A: No. The hook skips:

  • docs, chore, style, test commits
  • Commits with [skip-news] flag
  • Non-newsworthy changes

Only feat, fix, perf, refactor trigger articles.

Q: Can I edit generated articles?

A: Yes! They’re markdown files. Edit freely.

Q: What if the article sucks?

A: Edit it or delete it. AI amplifies your commit message—better commits = better articles.

Q: Does this work offline?

A: Hook works. AI generation needs API (for now). Offline mode coming soon.

Q: Can I customize the voice?

A: Absolutely. Edit .claude/agents/agent-writer.md to match your brand.

Key Takeaways

  1. Automate Everything - Content generation is just code execution
  2. Voice Matters - Same facts, different tone = different engagement
  3. Context Preservation - Fresh commits = accurate articles
  4. Quality Over Quantity - Skip boring updates, amplify good ones
  5. Iterate Fast - Edit AI output, improve prompts, repeat

Try It Now

# Clone the platform
git clone https://github.com/one-ie/one.git
cd one

# The hook is already installed
# Make a change and commit
echo "# Test" > test.md
git add test.md
git commit -m "feat: Add automated documentation generation"

# Check the generated news
ls web/src/content/news/

# Read it
cat web/src/content/news/add-automated-documentation-generation.md

The platform that makes it easier for AI to build than humans just made it easier to announce what you built.

Write code. Ship features. Generate news. Repeat.


Read the agent: .claude/agents/agent-writer.md Read the hook: .claude/hooks/write-news.sh Questions? Discord