Files
Randify.pro/.sisyphus/plans/fill-blog-content.md
T

529 lines
17 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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)