fix(lint): remove unused Props and eslint-disable directive
This commit is contained in:
@@ -0,0 +1,122 @@
|
||||
# Plan: Add Typography Styles to Blog Posts
|
||||
|
||||
## TL;DR
|
||||
|
||||
> The `@tailwindcss/typography` plugin is installed but not registered in the CSS. Add `@plugin "@tailwindcss/typography";` to `BaseLayout.astro`, rebuild, verify that blog posts render with proper typography, and commit.
|
||||
>
|
||||
> **Deliverables**: 1 modified file (`BaseLayout.astro`), build passes, prettier blog rendering
|
||||
> **Estimated Effort**: Quick
|
||||
> **Parallel Execution**: NO — single task
|
||||
|
||||
---
|
||||
|
||||
## Context
|
||||
|
||||
### Problem Discovered
|
||||
After filling all 16 blog posts with real content, the user noticed that posts render as plain text without formatting. Investigation revealed:
|
||||
|
||||
- `BlogLayout.astro` already applies `prose prose-invert prose-zinc` to the content container
|
||||
- The `@tailwindcss/typography` plugin was **not installed** (hence `prose` did nothing)
|
||||
- Plugin was installed via `npm install -D @tailwindcss/typography` during diagnosis
|
||||
- The plugin still needs to be **registered in the CSS** with `@plugin "@tailwindcss/typography";`
|
||||
|
||||
### Root Cause
|
||||
In Tailwind CSS v4, plugins must be explicitly loaded in the CSS file. The `@import "tailwindcss";` in `BaseLayout.astro` is not enough — the typography plugin requires `@plugin "@tailwindcss/typography";`.
|
||||
|
||||
---
|
||||
|
||||
## Work Objectives
|
||||
|
||||
### Core Objective
|
||||
Register the typography plugin so that the `prose` class in `BlogLayout.astro` actually styles rendered Markdown.
|
||||
|
||||
### Concrete Deliverables
|
||||
- `src/layouts/BaseLayout.astro` — add `@plugin "@tailwindcss/typography";`
|
||||
- Build passes with 0 errors
|
||||
- Blog posts display styled headings, lists, code blocks, and other Markdown elements
|
||||
|
||||
### Definition of Done
|
||||
- [ ] `npm run build` produces 92+ pages with 0 errors
|
||||
- [ ] A rendered blog post shows styled `h2`, `ul`, `code`, and `strong` elements (not plain browser defaults)
|
||||
|
||||
### Must Have
|
||||
- Plugin registered correctly for Tailwind v4 syntax (`@plugin`)
|
||||
- No visual regressions on non-blog pages
|
||||
|
||||
### Must NOT Have
|
||||
- Do NOT install additional unrelated packages
|
||||
- Do NOT change existing prose classes in `BlogLayout.astro`
|
||||
|
||||
---
|
||||
|
||||
## Execution Strategy
|
||||
|
||||
### Task 1: Register Typography Plugin
|
||||
|
||||
- [x] 1. Register `@tailwindcss/typography` plugin
|
||||
|
||||
**What to do**:
|
||||
- Edit `src/layouts/BaseLayout.astro`
|
||||
- Find the `<style is:global>` block with `@import "tailwindcss";`
|
||||
- Add `@plugin "@tailwindcss/typography";` immediately after the `@import` line
|
||||
- The result should look like:
|
||||
```css
|
||||
@import "tailwindcss";
|
||||
@plugin "@tailwindcss/typography";
|
||||
```
|
||||
|
||||
**Recommended Agent Profile**:
|
||||
- **Category**: `quick`
|
||||
- **Skills**: []
|
||||
|
||||
**Parallelization**:
|
||||
- **Can Run In Parallel**: NO
|
||||
- **Blocked By**: None
|
||||
|
||||
**Acceptance Criteria**:
|
||||
- [ ] `BaseLayout.astro` contains `@plugin "@tailwindcss/typography";`
|
||||
|
||||
**QA Scenarios**:
|
||||
```
|
||||
Scenario: Plugin registered
|
||||
Tool: Bash (grep)
|
||||
Steps:
|
||||
1. grep '@plugin "@tailwindcss/typography"' src/layouts/BaseLayout.astro
|
||||
Expected Result: Match found
|
||||
```
|
||||
|
||||
**Commit**: NO (group with verification)
|
||||
|
||||
---
|
||||
|
||||
## Final Verification Wave
|
||||
|
||||
- [x] F1. Build + Visual Check
|
||||
Run `npm run build`. Must pass with 0 errors and 92+ pages. Then verify a sample blog post renders with styled typography (headings are larger/bolder, lists have bullets, inline code is monospaced).
|
||||
Output: `Build [PASS/FAIL] | Visual [PASS/FAIL]`
|
||||
|
||||
- [x] F2. Git Commit
|
||||
Stage `src/layouts/BaseLayout.astro` and `package.json`/`package-lock.json`. Commit with message: `fix(blog): register @tailwindcss/typography for prose styling`
|
||||
Do NOT push to remote.
|
||||
|
||||
---
|
||||
|
||||
## Commit Strategy
|
||||
|
||||
- **F2**: `fix(blog): register @tailwindcss/typography for prose styling`
|
||||
|
||||
---
|
||||
|
||||
## Success Criteria
|
||||
|
||||
### Verification Commands
|
||||
```bash
|
||||
npm run build # Expected: 92+ pages, 0 errors
|
||||
grep '@plugin "@tailwindcss/typography"' src/layouts/BaseLayout.astro # Expected: match
|
||||
```
|
||||
|
||||
### Final Checklist
|
||||
- [ ] Plugin registered in CSS
|
||||
- [ ] Build passes
|
||||
- [ ] Blog posts render with styled typography
|
||||
- [ ] Changes committed (not pushed)
|
||||
@@ -0,0 +1,528 @@
|
||||
# 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)
|
||||
Reference in New Issue
Block a user