Files
metabuilder/tools/generation/generate-mega-seed.cjs

65 lines
2.5 KiB
JavaScript

#!/usr/bin/env node
const fs = require('fs')
const path = require('path')
const categories = [
{ id: 'cat_launch', name: 'Launch Radar', description: 'Product drops and milestone updates' },
{ id: 'cat_growth', name: 'Growth Ops', description: 'Retention, onboarding, and community tactics' },
{ id: 'cat_design', name: 'Design Systems', description: 'Tokens, theming, and UI governance' },
{ id: 'cat_ai', name: 'AI Tooling', description: 'Prompt playbooks, evals, and guardrails' },
{ id: 'cat_ops', name: 'Community Ops', description: 'Moderation workflows and engagement rituals' },
{ id: 'cat_hiring', name: 'Hiring & Ops', description: 'Team growth, planning, and operating cadence' },
{ id: 'cat_funding', name: 'Funding Desk', description: 'Rounds, terms, and investor updates' },
{ id: 'cat_culture', name: 'Culture Lab', description: 'Rituals, values, and remote collaboration' },
{ id: 'cat_docs', name: 'Docs Guild', description: 'Documentation standards and knowledge bases' },
{ id: 'cat_security', name: 'Security Flight', description: 'Threat modeling and incident response' },
]
const titles = [
'First 1000 users playbook',
'Launch checklist for indie teams',
'Building a tokenized design system',
'How to measure community health',
'Prompt playbooks for onboarding',
'Moderation handoff checklists',
'Hiring your first community lead',
'Feature flag cadence for launches',
'Post-launch retrospectives that actually work',
'Creator pipelines and content calendars',
'How we scaled support without burnout',
'Founder updates cadence for investors',
'Red teaming your onboarding flow',
'From doc chaos to a unified handbook',
'Battle-tested incident comms templates',
'What to automate in week one',
'Designing for multi-tenant UX',
'What metrics matter in community programs',
'Building an experimentation runway',
'On-call rotations for small teams',
]
const threads = titles.map((title, index) => {
const category = categories[index % categories.length]
return {
id: `thread_${index + 1}`,
title,
categoryId: category.id,
replyCount: 12 + (index * 7) % 120,
likeCount: 20 + (index * 11) % 240,
}
})
const payload = {
generatedAt: new Date().toISOString(),
examples: {
categories,
threads,
},
}
const outputPath = path.join(__dirname, '..', 'packages', 'forum_forge', 'static_content', 'examples.json')
fs.writeFileSync(outputPath, JSON.stringify(payload, null, 2) + '\n')
console.log(`Wrote ${outputPath} with ${categories.length} categories and ${threads.length} threads`)