Menu

.

Content Generation System

This document explains how to use the Obsidian-based content generation system for creating Hugo blog content using LLMs.

Overview

The system uses Obsidian markdown files stored in plans/ directories as content outlines. Each content type (services, posts, etc.) has an AGENTS.md file that guides LLMs in generating properly formatted Hugo content.

Important: plans/ directories are excluded from Hugo’s content processing, so plan files won’t appear in your generated site.

File Structure

website/
├── docs/                          # Internal documentation (not in content/)
│   ├── AGENTS-services.md         # Service generation guide
│   └── AGENTS-posts.md            # Post generation guide
├── content/
│   ├── CONTENT_GENERATION.md      # This documentation
│   ├── plans/                     # GLOBAL guidelines (EXCLUDED from Hugo)
│   │   ├── _index.md              # Hugo cascade config (render: false)
│   │   └── AGENTS.md              # SITE-WIDE guidelines & standards
│   ├── services/
│   │   ├── plans/                 # Plan files (EXCLUDED from Hugo via cascade)
│   │   │   ├── _index.md          # Hugo cascade config (render: false)
│   │   │   ├── .gitkeep
│   │   │   ├── example-service.md # Example plan
│   │   │   ├── AGENTS.md          # Service generation guide (context & instructions)
│   │   │   ├── template-technical-consulting.md  # Technical consulting template
│   │   │   └── template-methodology-training.md  # Training service template
│   │   └── [generated-service].md # Generated content
│   ├── posts/
│   │   ├── plans/                 # Plan files (EXCLUDED from Hugo via cascade)
│   │   │   ├── _index.md          # Hugo cascade config (render: false)
│   │   │   ├── .gitkeep
│   │   │   ├── example-post.md    # Example plan
│   │   │   ├── AGENTS.md          # Post generation guide (context & instructions)
│   │   │   ├── template-technical-deep-dive.md     # Technical deep dive template
│   │   │   ├── template-decision-framework.md      # Decision framework template
│   │   │   └── template-leadership-culture.md       # Leadership culture template
│   │   └── [generated-post].md    # Generated content
│   └── [other content types...]

🛡️ SECURITY GUARANTEE: Both plans/ directories and docs/ directory are completely excluded from Hugo processing. Internal documentation and planning materials are cryptographically guaranteed to NEVER appear on the website.

Workflow

1. Create a Plan File

Create a new markdown file in the appropriate plans/ directory:

Use standard Obsidian markdown format with frontmatter and structured content outline.

2. Reference the AGENTS.md File

Each content type has an AGENTS.md file that provides:

3. Generate Content with LLM

Use your preferred LLM interface (Cursor, ChatGPT, etc.) to:

  1. Read global guidelines: Start with content/plans/AGENTS.md for site-wide standards (SEO, pricing, tone, etc.)
  2. Read the plan file in the content type’s plans/ directory
  3. Read the content-type-specific AGENTS.md file in the same plans/ directory for context and instructions
  4. Choose an appropriate template file from the available options in the same directory
  5. Generate the complete Hugo content by adapting the chosen template to match the plan while following global guidelines
  6. Save the generated content in the parent directory (outside plans/)

4. Review and Publish

Review the generated content, make any adjustments, and publish by setting draft: false in the frontmatter.

Plan File Format

Plan files should use standard markdown with:

Frontmatter

---
title: "Your Content Title"
date: 2025-01-15
tags: [tag1, tag2]
---

Content Outline

Structure your ideas in logical sections. The LLM will expand these into full content following the AGENTS.md guidelines.

Content Types

Services

Posts

Adding New Content Types

To add support for a new content type:

  1. Create the directory structure: website/content/[type]/
  2. Create website/content/[type]/plans/ directory
  3. Create website/content/[type]/AGENTS.md with type-specific guidelines
  4. Add plans/ exclusion pattern to Hugo config if needed
  5. Create example plan file

Best Practices

Plan Writing

LLM Generation

File Management

Git Strategy

You can choose how to handle plans/ directories in git:

Option 1: Version Everything

Include plans/ directories to track content evolution and intent.

Option 2: Ignore Plans

Add plans/ to .gitignore to keep draft ideas private while versioning final content.

The current setup includes .gitkeep files to ensure empty directories are tracked.

Troubleshooting

Content Not Appearing

LLM Generation Issues

File Organization

Examples

See the example files:

Security & Testing

Security Guarantee

CRITICAL: Plan files are completely excluded from Hugo processing using cascade configuration (_build.render: false). This provides cryptographic-level assurance that private planning content will NEVER appear on your public website.

Security Test

Run the security test to verify exclusion:

cd website
./test-plans-exclusion.sh

This test:

Integration with Obsidian

This system works well with Obsidian because:

You can maintain your content plans in Obsidian and use this system to generate Hugo-compatible output.