Agent skill

blog-workflow

Orchestrate the mycelium blog workflow - scan repos, draft posts, review changes, build graph, and publish

Stars 163
Forks 31

Install this agent skill to your Project

npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/development/blog-workflow

SKILL.md

Blog Workflow Skill

Overview

Manages the complete workflow for your file-based digital garden blog with mycelium links. This skill orchestrates repository scanning, AI-powered draft generation, content review, graph building, and publishing.

Core principle: Git-based content workflow. Everything is versioned, reviewable, and transparent.

Your Role

You are the orchestrator of the mycelium blog system. You help the user:

  1. Scan repositories for new content opportunities
  2. Generate AI drafts with proper metadata and privacy filtering
  3. Review and edit content before publishing
  4. Build knowledge graph to detect mycelium connections
  5. Publish changes with descriptive commits

Workflow Phases

Phase 1: Scan & Draft

Command: User runs /blog:scan or asks "scan my repos for blog content"

Your process:

  1. Run the repository scanner:
bash
cd ~/Documents/mycelium-blog
npx tsx scripts/scan-repos.ts
  1. Scanner analyzes repos in ~/Documents/ and generates:

    • Draft markdown files in content/drafts/
    • Metadata extraction (commits, patterns, skills)
    • Privacy classification (public vs internal)
    • AI-suggested titles and tags
  2. Report findings:

    βœ… Scanned 15 repositories
    πŸ“ Generated 3 new draft posts:
       - content/drafts/2025-11-02-temporal-workflows.md (internal)
       - content/drafts/2025-11-02-astro-calculator.md (public)
       - content/drafts/2025-11-02-playwright-automation.md (public)
    
    πŸ€– NEXT: Run /blog:review to see drafts
    

Privacy enforcement:

  • Check git remote for "dragancloudbizz" + path contains "neo" β†’ internal
  • Internal drafts: Technical patterns only, no business context
  • Public drafts: Full transparency with examples

Phase 2: Complete Drafts (NEW)

Command: User runs /blog:complete or asks "complete the draft posts"

Your process:

  1. Find all drafts that need completion:
bash
cd ~/Documents/mycelium-blog
ls content/drafts/*.md
  1. For each draft, use the blog-post-writer skill to complete the story sections:

    • Read the draft completely (frontmatter + commit history)
    • Analyze commit patterns (features, fixes, refactoring)
    • Write Context, Challenge, Solution, Learned sections
    • Use evidence-based narrative (no unverified assumptions)
    • Apply conversational, pedagogical, or contextual style as appropriate
    • Output must NOT mention "commits", "git history", or similar meta-references
  2. Invoke blog-post-writer:

    For each draft file:
    - Read content/drafts/[filename].md
    - Invoke blog-post-writer skill
    - Skill writes the four sections based on commit evidence
    - Save updated draft
    
  3. Report completion:

    βœ… Completed 3 draft posts:
       - content/drafts/2025-11-02-temporal-workflows.md
       - content/drafts/2025-11-02-astro-calculator.md
       - content/drafts/2025-11-02-playwright-automation.md
    
    πŸ€– NEXT: Run /blog:review to review completed drafts
    

blog-post-writer integration:

  • Uses commit history from the draft's "All Commits" section
  • Stays grounded in evidence (no business assumptions for internal posts)
  • Applies narrative techniques: conversational hooks, self-aware honesty, progressive revelation
  • Uses first-person voice: "I built", "I discovered", "I learned"
  • Outputs natural narratives without mentioning "commits", "git history", or meta-analysis

Phase 3: Review & Curate

Command: User runs /blog:review or asks "show me the draft posts"

Your process:

  1. List all drafts in content/drafts/:
bash
cd ~/Documents/mycelium-blog
ls -la content/drafts/
  1. For each draft, show:

    • Title and metadata (tags, privacy level, repos)
    • AI-generated summary (first paragraph)
    • Suggested action (approve/edit/delete)
  2. User chooses an action per draft:

    • Approve: Move to content/posts/
    • Edit: Open in editor, assist with improvements
    • Delete: Remove from drafts
  3. Example interaction:

    πŸ“„ Draft: "Temporal.io Workflow Patterns with Event Sourcing"
    🏷️  Tags: temporal, event-sourcing, orchestration
    πŸ”’ Privacy: internal (client work)
    πŸ“¦ Repos: neo-provisioning
    
    Summary: Explores saga patterns and compensation logic
    in Temporal workflows for distributed systems...
    
    Options:
    - Approve β†’ Move to posts/
    - Edit β†’ Open for review
    - Skip β†’ Keep in drafts
    

Editing assistance:

  • Suggest improvements to clarity
  • Check technical accuracy
  • Ensure privacy compliance (no business leaks in internal posts)
  • Enhance SEO (title, meta description suggestions)

Phase 4: Graph Building

Command: User runs /blog:graph or asks "rebuild the knowledge graph"

Your process:

  1. Run graph builder:
bash
cd ~/Documents/mycelium-blog
npx tsx scripts/build-graph.ts
  1. Graph builder:

    • Scans all published posts, skills, patterns
    • Detects connections via:
      • Shared tags (overlap strength)
      • Explicit cross-references in content
      • Shared repos
      • Tech stack overlap
      • Temporal proximity
    • Generates public/graph.json
    • Updates relatedTo frontmatter in posts
  2. Report new connections:

    πŸ•ΈοΈ  Graph rebuilt successfully
    
    πŸ“Š Stats:
       - 24 nodes (18 posts, 4 skills, 2 patterns)
       - 47 edges (connections)
    
    πŸ†• New mycelium links:
       - "Temporal Workflows" ←→ "Event Sourcing Patterns" (0.9 strength)
       - "Browser Automation" ←→ "META Script Manager" (1.0 strength)
       - "Astro Calculator" ←→ "Static Site Generation" (0.8 strength)
    
    πŸ€– NEXT: Review updated posts or run /blog:publish
    

Edge strength calculation:

  • 1.0 = Explicit reference in content
  • 0.8-0.9 = High tag overlap (>60%)
  • 0.6-0.7 = Shared repos or tech stack
  • 0.3-0.5 = Moderate tag overlap or temporal proximity

Phase 5: Publish

Command: User runs /blog:publish or asks "publish the blog changes"

Your process:

  1. Show what will be committed:
bash
cd ~/Documents/mycelium-blog
git status
git diff --stat
  1. Review changes summary:

    πŸ“¦ Ready to publish:
    
    New posts:
    - content/posts/2025-11-02-astro-calculator.md
    - content/posts/2025-11-02-playwright-automation.md
    
    Updated:
    - public/graph.json (2 new connections)
    - content/posts/2025-10-28-event-sourcing.md (backlinks updated)
    
    Total: 4 files changed, 312 insertions(+), 8 deletions(-)
    
  2. Generate descriptive commit message:

    feat: add 2 new posts (Astro calculator, Playwright automation)
    
    - Add post on Belgian real estate calculator using Astro + pure functions
    - Add post on browser automation with META pattern and Playwright
    - Update knowledge graph with 2 new mycelium connections
    - Add backlinks to existing event sourcing post
    
    πŸ€– Generated with Claude Code
    
    Co-Authored-By: Claude <noreply@anthropic.com>
    
  3. Commit and push:

bash
cd ~/Documents/mycelium-blog
git add .
git commit -m "[generated message]"
git push origin main
  1. Verify deployment:
    βœ… Changes committed and pushed
    πŸš€ Deployment triggered (GitHub Actions / Netlify)
    🌐 Site will be live in ~2 minutes
    
    πŸ€– NEXT: Verify at [your-blog-url] in a few minutes
    

Commands Reference

Command Alias Description
/blog:scan "scan repos" Analyze git repos and generate drafts
/blog:complete "complete drafts" Use blog-post-writer to complete story sections
/blog:review "review drafts" Show pending drafts with metadata
/blog:graph "rebuild graph" Detect mycelium connections
/blog:publish "publish blog" Commit and deploy changes
/blog:status "blog status" Show overall blog state

File Locations

Scripts:

  • scripts/scan-repos.ts - Repository scanner
  • scripts/build-graph.ts - Knowledge graph builder
  • scripts/privacy-filter.ts - Git config privacy checker

Content:

  • content/drafts/ - AI-generated drafts awaiting review
  • content/posts/ - Published blog posts
  • content/skills/ - Claude skills documentation
  • content/patterns/ - Technical patterns library

Generated:

  • public/graph.json - Knowledge graph data

Privacy Guidelines

Public posts (personal repos):

  • Full project details and business context
  • Real domain names and URLs
  • Client testimonials (with permission)
  • Complete code examples

Internal posts (dragancloudbizz/neo- repos):*

  • Generic titles: "Temporal Workflow Patterns" βœ… not "Neo Provisioning Architecture" ❌
  • Abstract descriptions: "orchestration platform" βœ… not "client X deployment system" ❌
  • Sanitized examples: Remove client names, domains, business logic
  • Focus: Technical patterns, architectural decisions, code quality

Always verify:

typescript
// Check before publishing
if (post.privacy === 'internal') {
  // Ensure no mentions of:
  - Client names or brands
  - Business domain specifics
  - Proprietary logic or data
  - Financial/operational details
}

Integration with Existing Skills

Core skill integration:

  1. blog-post-writer (PRIMARY): Completes story sections with evidence-based narratives
  2. divergent-ideation: Generate diverse post angles from repo analysis
  3. gestalt-information-architecture: Optimize graph visualization layout
  4. ai-slop-detector: Ensure AI drafts are high quality, not verbose

Updated workflow synergy:

blog-workflow:scan (repo analysis + draft generation)
    ↓
blog-post-writer (complete story sections) ← NEW!
    ↓
blog-workflow:review (approve/edit/delete)
    ↓
blog-workflow:graph (build connections)
    ↓
blog-workflow:publish (commit + deploy)

Key improvement: The blog-post-writer skill is now integrated directly into the workflow, transforming commit lists into engaging narratives automatically.

Error Handling

Common issues:

  1. No new content found:

    ℹ️  No new activity since last scan
    
    Last scan: 2025-10-28 (5 days ago)
    Commits since: 0
    
    πŸ€– NEXT: Try again after making some commits, or scan older repos
    
  2. Privacy violation detected:

    ⚠️  Privacy check failed for draft:
    
    File: content/drafts/2025-11-02-client-deployment.md
    Issue: Contains client name "CloudBizz" in title
    
    πŸ€– NEXT: Edit draft to use generic terminology
    
  3. Git conflicts:

    ❌ Cannot publish: Git conflicts detected
    
    Conflicted files:
    - public/graph.json
    
    πŸ€– NEXT: Pull latest changes and rebuild graph
    

Best Practices

  1. Scan weekly - Run /blog:scan every week to capture recent work
  2. Auto-complete drafts - Run /blog:complete after scanning to generate story sections
  3. Batch reviews - Review all completed drafts at once for consistency
  4. Rebuild graph after edits - Connections may change with content updates
  5. Descriptive commits - Use conventional commit format (feat/fix/docs)
  6. Verify privacy - Double-check internal posts before publishing

Recommended workflow cadence:

  • Weekly: scan + complete drafts
  • Weekly: review and approve drafts
  • Before publishing: rebuild graph
  • Regular: publish approved posts

Workflow Synergy

The updated workflow creates a seamless pipeline:

1. /blog:scan
   β†’ Analyzes repos
   β†’ Generates drafts with commit history
   β†’ Creates story prompts

2. /blog:complete (NEW)
   β†’ Invokes blog-post-writer skill
   β†’ Completes Context/Challenge/Solution/Learned sections
   β†’ Uses evidence-based narrative (no commits/git mentioned in output)

3. /blog:review
   β†’ Shows completed drafts
   β†’ Approve/Edit/Delete

4. /blog:graph
   β†’ Detects mycelium connections
   β†’ Updates backlinks

5. /blog:publish
   β†’ Commits and deploys

Key improvement: The blog-post-writer skill transforms basic drafts with commit lists into engaging, story-driven blog posts automatically. No more manual section writing!

Example Session

User: Scan my repos for new blog content

Didn't find tool you were looking for?

Be as detailed as possible for better results