# Plan: Fill Blog Posts with Real Content ## TL;DR > Replace placeholder text in 16 bilingual blog posts (8 EN + 8 RU) with real, research-backed, SEO-optimized articles about randomness, security, gaming, design, and decision-making topics. Each article 800–1500 words with h2/h3 structure, practical examples, and natural references to related Randify generators. > > **Deliverables**: 16 updated `.md` files with real content bodies, preserved frontmatter > **Estimated Effort**: Medium > **Parallel Execution**: YES — 4 waves of 4 parallel tasks each > **Critical Path**: EN Wave 1 → EN Wave 2 → RU Wave 1 → RU Wave 2 → Build Verify --- ## Context ### Original Request "Отлично! Теперь наполни блоги реалным содержимым. проведи нужные исследования и сделай качественные блоги на эти тематики" ### Current State - All 16 blog post templates exist with correct frontmatter (title, description, dates, tags, relatedGenerators) - Body contains placeholder text ("This article will explore...", "Stay tuned...") - Files located in `src/content/blog/en/` (8 files) and `src/content/blog/ru/` (8 files) - RU filenames differ slightly from EN slugs: - EN `dice-notation-explained.md` → RU `dice-notation-guide.md` - EN `random-team-picker.md` → RU `random-team-selection.md` - EN `color-theory-palettes.md` → RU `color-theory-guide.md` - Blog is already wired into Astro Content Collections; body text is the only missing piece --- ## Work Objectives ### Core Objective Replace all placeholder body text with real, high-quality articles that provide genuine value to readers and improve SEO for Yandex РСЯ moderation. ### Concrete Deliverables - 8 EN blog posts with real content (800–1500 words each) - 8 RU blog posts with real content (800–1500 words each), adapted (not translated verbatim) for Russian audience - All frontmatter preserved exactly as-is - Build passes (`npm run build`) with 0 errors ### Definition of Done - [ ] All 16 `.md` files contain real content, no placeholder text remains - [ ] `npm run build` produces 92+ pages with 0 errors - [ ] Content is factually accurate, well-structured with h2/h3 headings - [ ] Each article naturally references its related Randify generators ### Must Have - Real, substantive content in every post (no filler, no Lorem ipsum) - SEO-optimized: keywords in h2 headings and first paragraph - Practical examples, checklists, or actionable advice in each article - h2/h3 structure for readability - Natural integration of related generator names ### Must NOT Have (Guardrails) - Do NOT modify frontmatter (preserve exactly) - Do NOT change filenames or slugs - Do NOT add external links (keep readers on site) - Do NOT use AI-sounding filler ("in conclusion", "it's important to note", excessive adverbs) - Do NOT push to main without user approval --- ## Verification Strategy ### Test Decision - **Infrastructure exists**: NO (no test runner configured) - **Automated tests**: None - **Agent-Executed QA**: Build verification + content spot-checks ### QA Policy Every wave includes agent-executed verification: - **Build**: `npm run build` must pass - **Content check**: Read random sample of posts to verify no placeholder text remains --- ## Execution Strategy ### Parallel Execution Waves ``` Wave 1 (Start Immediately — 4 EN posts): ├── Task 1: EN — Cryptographically Secure Randomness ├── Task 2: EN — Strong Passwords ├── Task 3: EN — Dice Notation └── Task 4: EN — Psychology of Randomness Wave 2 (After Wave 1 — 4 EN posts): ├── Task 5: EN — RNG in Gaming ├── Task 6: EN — Random Team Picker ├── Task 7: EN — Color Theory Palettes └── Task 8: EN — UUID vs Sequential IDs Wave 3 (After Wave 2 — 4 RU posts): ├── Task 9: RU — Криптографически стойкая случайность ├── Task 10: RU — Надёжные пароли ├── Task 11: RU — Нотация кубиков └── Task 12: RU — Психология случайности Wave 4 (After Wave 3 — 4 RU posts): ├── Task 13: RU — RNG в играх ├── Task 14: RU — Случайный выбор команд ├── Task 15: RU — Теория цвета └── Task 16: RU — UUID vs последовательные ID Wave FINAL (After ALL tasks): ├── Task F1: Build verification + content spot-check └── Task F2: Git commit (do NOT push) ``` ### Dependency Matrix - **Waves 1 & 2**: Independent (all EN posts can theoretically run in parallel, but 8 parallel tasks is too many) - **Wave 3**: Depends on Wave 2 (RU writers should see EN content for reference, but not strictly blocked) - **Wave 4**: Depends on Wave 3 - **FINAL**: Depends on Wave 4 --- ## TODOs - [x] 1. EN — What is Cryptographically Secure Randomness **What to do**: - Read `src/content/blog/en/what-is-cryptographically-secure-randomness.md` - Replace placeholder body with real article (800–1500 words) - Structure: h2 headings (What Is..., Why Math.random Is Not Enough, Where It Matters, Practical Checklist, Conclusion) - Include practical examples: `crypto.getRandomValues()`, `/dev/urandom`, `secrets` module - Mention related generators naturally: Password Generator, Hash Generator, UUID Generator - SEO keywords: "cryptographically secure randomness", "CSPRNG", "secure random number generator" **Must NOT do**: - Do NOT modify frontmatter - Do NOT change filename **Recommended Agent Profile**: - **Category**: `writing` - **Skills**: [] - Reason: Pure content writing task **Parallelization**: - **Can Run In Parallel**: YES - **Parallel Group**: Wave 1 (Tasks 1–4) - **Blocks**: None - **Blocked By**: None **References**: - `src/content/blog/en/what-is-cryptographically-secure-randomness.md` — target file - `src/content/blog/en/how-to-create-strong-passwords.md` — related post for cross-linking context **Acceptance Criteria**: - [ ] File contains real content with h2/h3 headings - [ ] No placeholder text ("Stay tuned", "This article will explore") remains - [ ] Word count ≥ 800 **QA Scenarios**: ``` Scenario: Content replaced successfully Tool: Bash (grep) Steps: 1. grep -i "stay tuned" src/content/blog/en/what-is-cryptographically-secure-randomness.md Expected Result: No matches (exit code 1) Evidence: terminal output ``` **Commit**: NO (group with final wave) - [x] 2. EN — How to Create Strong Passwords **What to do**: - Read `src/content/blog/en/how-to-create-strong-passwords.md` - Replace placeholder body with real article (800–1500 words) - Structure: h2 headings (Why Length Beats Complexity, Passphrases vs Passwords, Password Managers, Two-Factor Authentication, Practical Checklist) - Include NIST guidelines reference - Mention related generators: Password Generator, Hash Generator - SEO keywords: "strong passwords", "password security", "create strong password" **Must NOT do**: - Do NOT modify frontmatter **Recommended Agent Profile**: - **Category**: `writing` **Parallelization**: - **Can Run In Parallel**: YES - **Parallel Group**: Wave 1 **QA Scenarios**: ``` Scenario: No placeholder text Tool: Bash (grep) Steps: 1. grep -i "stay tuned" src/content/blog/en/how-to-create-strong-passwords.md Expected Result: No matches ``` **Commit**: NO - [x] 3. EN — Dice Notation Explained **What to do**: - Read `src/content/blog/en/dice-notation-explained.md` - Replace placeholder with real article (800–1500 words) - Structure: h2 headings (Basic Notation, Common Dice Types, Modifiers and Advantage, Exploding Dice, Digital Dice Rollers) - Explain d4, d6, d8, d10, d12, d20, percentile dice - Cover advantage/disadvantage (D&D 5e), exploding dice mechanic - Mention related generator: Dice Roller - SEO keywords: "dice notation", "dnd dice", "exploding dice", "rpg dice" **Must NOT do**: - Do NOT modify frontmatter **Recommended Agent Profile**: - **Category**: `writing` **Parallelization**: - **Can Run In Parallel**: YES - **Parallel Group**: Wave 1 **Commit**: NO - [x] 4. EN — Psychology of Randomness **What to do**: - Read `src/content/blog/en/psychology-of-randomness.md` - Replace placeholder with real article (800–1500 words) - Structure: h2 headings (The Pattern-Seeking Brain, The Hot-Hand Fallacy, Gambler's Fallacy, How to Be Truly Random, Tools for Fairness) - Reference real experiments (e.g., Tversky & Kahneman) - Mention related generators: Coin Flip, Yes/No, Random Number - SEO keywords: "psychology of randomness", "human randomness bias", "gambler's fallacy" **Must NOT do**: - Do NOT modify frontmatter **Recommended Agent Profile**: - **Category**: `writing` **Parallelization**: - **Can Run In Parallel**: YES - **Parallel Group**: Wave 1 **Commit**: NO - [x] 5. EN — RNG in Gaming **What to do**: - Read `src/content/blog/en/rng-in-gaming.md` - Replace placeholder with real article (800–1500 words) - Structure: h2 headings (PRNG vs True RNG, Seeds and Determinism, Loot Boxes and Regulation, Fairness Auditing, Player Trust) - Mention related generators: Dice Roller, Lottery, Wheel Spinner - SEO keywords: "RNG in gaming", "random number generator games", "fairness in gaming" **Must NOT do**: - Do NOT modify frontmatter **Recommended Agent Profile**: - **Category**: `writing` **Parallelization**: - **Can Run In Parallel**: YES - **Parallel Group**: Wave 2 **Commit**: NO - [x] 6. EN — Random Team Picker **What to do**: - Read `src/content/blog/en/random-team-picker.md` - Replace placeholder with real article (800–1500 words) - Structure: h2 headings (Eliminating Bias, Random vs Balanced Teams, Sports Leagues, Corporate Workshops, Tools and Tips) - Mention related generators: Team Generator, List Shuffler - SEO keywords: "random team picker", "fair team selection", "team generator" **Must NOT do**: - Do NOT modify frontmatter **Recommended Agent Profile**: - **Category**: `writing` **Parallelization**: - **Can Run In Parallel**: YES - **Parallel Group**: Wave 2 **Commit**: NO - [x] 7. EN — Color Theory Palettes **What to do**: - Read `src/content/blog/en/color-theory-palettes.md` - Replace placeholder with real article (800–1500 words) - Structure: h2 headings (The Color Wheel, Complementary Colors, Analogous and Triadic, Accessibility and Contrast, Using Palette Generators) - Mention related generators: Color Generator, Gradient Generator, Palette Generator - SEO keywords: "color theory palettes", "harmonious color palettes", "color palette generator" **Must NOT do**: - Do NOT modify frontmatter **Recommended Agent Profile**: - **Category**: `writing` **Parallelization**: - **Can Run In Parallel**: YES - **Parallel Group**: Wave 2 **Commit**: NO - [x] 8. EN — UUID vs Sequential IDs **What to do**: - Read `src/content/blog/en/uuid-vs-sequential-ids.md` - Replace placeholder with real article (800–1500 words) - Structure: h2 headings (What Is a UUID?, Storage and Performance, Collision Probability, Distributed Systems, When to Use What) - Mention UUID v4, ULID, Snowflake IDs - Mention related generators: UUID Generator, Hash Generator - SEO keywords: "UUID vs sequential ID", "when to use UUID", "database ID strategy" **Must NOT do**: - Do NOT modify frontmatter **Recommended Agent Profile**: - **Category**: `writing` **Parallelization**: - **Can Run In Parallel**: YES - **Parallel Group**: Wave 2 **Commit**: NO - [x] 9. RU — Криптографически стойкая случайность **What to do**: - Read `src/content/blog/ru/what-is-cryptographically-secure-randomness.md` - Replace placeholder with real article (800–1500 words) in Russian - Adapt content for Russian audience (not verbatim translation of EN) - Structure: same topics as EN but localized - Mention related generators naturally - SEO keywords in Russian: "криптографически стойкая случайность", "CSPRNG", "безопасная генерация случайных чисел" **Must NOT do**: - Do NOT modify frontmatter **Recommended Agent Profile**: - **Category**: `writing` **Parallelization**: - **Can Run In Parallel**: YES - **Parallel Group**: Wave 3 **Commit**: NO - [x] 10. RU — Надёжные пароли **What to do**: - Read `src/content/blog/ru/how-to-create-strong-passwords.md` - Replace placeholder with real article (800–1500 words) in Russian - Adapt for Russian audience - Mention related generators **Must NOT do**: - Do NOT modify frontmatter **Recommended Agent Profile**: - **Category**: `writing` **Parallelization**: - **Can Run In Parallel**: YES - **Parallel Group**: Wave 3 **Commit**: NO - [x] 11. RU — Нотация кубиков **What to do**: - Read `src/content/blog/ru/dice-notation-guide.md` - Replace placeholder with real article (800–1500 words) in Russian - Adapt for Russian RPG community - Mention related generator: Dice Roller **Must NOT do**: - Do NOT modify frontmatter **Recommended Agent Profile**: - **Category**: `writing` **Parallelization**: - **Can Run In Parallel**: YES - **Parallel Group**: Wave 3 **Commit**: NO - [x] 12. RU — Психология случайности **What to do**: - Read `src/content/blog/ru/psychology-of-randomness.md` - Replace placeholder with real article (800–1500 words) in Russian - Adapt for Russian audience - Mention related generators **Must NOT do**: - Do NOT modify frontmatter **Recommended Agent Profile**: - **Category**: `writing` **Parallelization**: - **Can Run In Parallel**: YES - **Parallel Group**: Wave 3 **Commit**: NO - [x] 13. RU — RNG в играх **What to do**: - Read `src/content/blog/ru/rng-in-gaming.md` - Replace placeholder with real article (800–1500 words) in Russian - Adapt for Russian audience - Mention related generators **Must NOT do**: - Do NOT modify frontmatter **Recommended Agent Profile**: - **Category**: `writing` **Parallelization**: - **Can Run In Parallel**: YES - **Parallel Group**: Wave 4 **Commit**: NO - [x] 14. RU — Случайный выбор команд **What to do**: - Read `src/content/blog/ru/random-team-selection.md` - Replace placeholder with real article (800–1500 words) in Russian - Adapt for Russian audience - Mention related generators **Must NOT do**: - Do NOT modify frontmatter **Recommended Agent Profile**: - **Category**: `writing` **Parallelization**: - **Can Run In Parallel**: YES - **Parallel Group**: Wave 4 **Commit**: NO - [x] 15. RU — Теория цвета **What to do**: - Read `src/content/blog/ru/color-theory-guide.md` - Replace placeholder with real article (800–1500 words) in Russian - Adapt for Russian audience - Mention related generators **Must NOT do**: - Do NOT modify frontmatter **Recommended Agent Profile**: - **Category**: `writing` **Parallelization**: - **Can Run In Parallel**: YES - **Parallel Group**: Wave 4 **Commit**: NO - [x] 16. RU — UUID vs последовательные ID **What to do**: - Read `src/content/blog/ru/uuid-vs-sequential-ids.md` - Replace placeholder with real article (800–1500 words) in Russian - Adapt for Russian audience - Mention related generators **Must NOT do**: - Do NOT modify frontmatter **Recommended Agent Profile**: - **Category**: `writing` **Parallelization**: - **Can Run In Parallel**: YES - **Parallel Group**: Wave 4 **Commit**: NO --- ## Final Verification Wave - [x] F1. Build Verification + Content Spot-Check Run `npm run build`. Must produce 92+ pages with 0 errors. Read 4 random posts (2 EN + 2 RU) and verify: - No placeholder text remains - h2 headings present - Word count ≥ 800 per article Output: `Build [PASS/FAIL] | Content [PASS/FAIL]` - [x] F2. Git Commit Stage all modified files. Commit with message: `content(blog): add real articles to all 16 posts` Do NOT push to remote. --- ## Commit Strategy - **F2**: `content(blog): add real articles to all 16 posts` — all modified `.md` files --- ## Success Criteria ### Verification Commands ```bash npm run build # Expected: 92+ pages, 0 errors grep -ri "stay tuned" src/content/blog/ # Expected: 0 matches grep -ri "this article will explore" src/content/blog/ # Expected: 0 matches ``` ### Final Checklist - [ ] All 16 posts contain real content - [ ] No placeholder text anywhere - [ ] Build passes - [ ] Frontmatter untouched - [ ] Changes committed (not pushed)