feat: add bilingual blog post about dialog-based applications

Add new blog post "Computer, ..." exploring how modern language models
enable Star Trek-like computer interactions. Includes a practical
experiment with dialog-based member management using MCP and GraphQL.

Features:
- German version at /de/blog/dialogbasierte-anwendungen/
- English version at /en/blog/dialog-based-applications/
- Translated URL slugs linked via translationKey
- Content sourced from Notion with natural English translation
- OpenSpec proposal with validation passing

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-11-25 16:53:55 +01:00
co-authored by Claude
parent 285f7a2eed
commit e599e0404c
5 changed files with 330 additions and 0 deletions
@@ -0,0 +1,51 @@
# Proposal: Add Dialogbasierte Anwendungen Blog Post
## Context
Create a new bilingual blog post based on Notion content about dialog-based applications and language model interactions. The post explores how modern language models enable Star Trek-like computer interactions and includes a practical experiment with a member management system.
## Motivation
This blog post:
- Shares a practical exploration of dialog-based interfaces using language models
- Documents a real-world experiment with MCP and GraphQL
- Demonstrates the potential of conversational UI for business applications
- Provides both German and English versions for broader reach
## Scope
### In Scope
- Create new blog post page bundle under `content/blog/dialogbasierte-anwendungen/`
- German version (original from Notion)
- English version (AI-translated)
- Proper frontmatter with title, date, description
- All external links and references preserved
- Validation that post renders correctly in Hugo
### Out of Scope
- No changes to existing blog posts
- No template or layout modifications
- No Hugo configuration changes
- No new images or assets (uses external links)
## Dependencies
None. This is a new content addition that doesn't affect existing functionality.
## Risks
Low risk. Adding new content only, no structural changes.
## Success Criteria
- Blog post exists in both German and English
- Content accurately reflects Notion source
- English translation is natural and maintains meaning
- Hugo builds successfully
- Post displays correctly in both languages
- All links are functional
- OpenSpec validation passes
## Related Changes
None. First implementation of blog post content addition workflow.
@@ -0,0 +1,167 @@
# Spec: Blog Post - Dialogbasierte Anwendungen
## Overview
Specification for the bilingual blog post "Computer, ..." about dialog-based applications using language models. Uses translated URL slugs with separate directories linked via translationKey.
## ADDED Requirements
### Requirement: Blog post directory structure with translated slugs
The blog post MUST exist in separate directories for German and English with appropriate URL slugs.
**Rationale**: Using translated slugs provides better SEO and user experience, with language-appropriate URLs.
#### Scenario: Directories created with translated slugs
**Given** the Hugo content directory structure
**When** creating the new blog post
**Then** a directory `content/blog/dialogbasierte-anwendungen/` must exist for German
**And** a directory `content/blog/dialog-based-applications/` must exist for English
**And** German directory must contain `index.de.md`
**And** English directory must contain `index.en.md`
**And** both files must include `translationKey: "dialogbasierte-anwendungen-post"` in frontmatter
---
### Requirement: German blog post content
The German version MUST accurately represent the Notion source content.
**Rationale**: Preserve the original German text exactly as written by the author.
#### Scenario: German content matches Notion source
**Given** the Notion page content at https://www.notion.so/Computer-2b5c4dc46de08053954ff3a14b171b47
**When** creating the German blog post file
**Then** the content must match the Notion source text
**And** all formatting (headings, lists, emphasis) must be preserved
**And** all external links must be preserved
**And** the TL;DR section must be included
**And** the Codeberg repository link must be included
#### Scenario: German frontmatter is correct
**Given** the blog post requirements
**When** creating the German blog post
**Then** the frontmatter must use YAML format (three dashes)
**And** must include `title: "Computer, …"`
**And** must include `date: 2025-11-25`
**And** must include `translationKey: "dialogbasierte-anwendungen-post"`
**And** must include a `description` field with appropriate summary text
**And** must be valid YAML syntax
---
### Requirement: English blog post translation
The English version MUST be a natural, accurate translation of the German content.
**Rationale**: Make the content accessible to English-speaking readers while maintaining technical accuracy and readability.
#### Scenario: English translation is natural and accurate
**Given** the German blog post content
**When** creating the English translation
**Then** the translation must convey the same meaning as the German original
**And** must use natural English phrasing and idioms
**And** must maintain technical accuracy for all concepts
**And** must preserve the same structure (sections, lists)
**And** Star Trek references must be preserved (universally known)
#### Scenario: English frontmatter is correct
**Given** the blog post requirements
**When** creating the English blog post
**Then** the frontmatter must use YAML format (three dashes)
**And** must include `title` with natural English translation
**And** must include `date: 2025-11-25` (same as German)
**And** must include `translationKey: "dialogbasierte-anwendungen-post"`
**And** must include a `description` field with English summary
**And** must be valid YAML syntax
#### Scenario: External links are adapted appropriately
**Given** external reference links in the German version
**When** creating the English translation
**Then** Wikipedia links should point to English Wikipedia versions where applicable
**And** code repository links (Codeberg) must remain unchanged
**And** all links must be functional
---
### Requirement: Content formatting and structure
Both versions MUST use proper markdown formatting consistent with Hugo blog posts.
**Rationale**: Ensure consistent rendering and readability across the blog.
#### Scenario: Markdown structure is correct
**Given** the blog post content
**When** creating the blog post files
**Then** headings must use proper markdown hierarchy (##, ###)
**And** lists must use proper markdown syntax
**And** links must use markdown link syntax `[text](url)`
**And** emphasis must use proper markdown (*italic*, **bold**)
**And** code references must use inline code backticks where appropriate
#### Scenario: Special characters are handled correctly
**Given** the blog post contains German umlauts and special characters
**When** creating the blog post files
**Then** files must be saved with UTF-8 encoding
**And** all special characters must render correctly (ä, ö, ü, ß, …)
---
### Requirement: Hugo build compatibility
The blog posts MUST build successfully with Hugo and render correctly.
**Rationale**: Ensure the content integrates properly with the existing Hugo site.
#### Scenario: Hugo builds successfully
**Given** the new blog post files
**When** running `hugo build`
**Then** the build must complete without errors
**And** no warnings related to the new blog post must be generated
#### Scenario: Blog posts are accessible at correct translated URLs
**Given** a successful Hugo build
**When** viewing the site
**Then** the German version must be accessible at `/de/blog/dialogbasierte-anwendungen/`
**And** the English version must be accessible at `/en/blog/dialog-based-applications/`
#### Scenario: Blog posts appear in blog listings
**Given** a successful Hugo build
**When** viewing the blog index pages
**Then** the new post must appear in the German blog listing at `/de/blog/`
**And** the new post must appear in the English blog listing at `/en/blog/`
**And** the post must display with correct title and description
#### Scenario: Language switcher works correctly
**Given** both language versions with matching translationKey
**When** viewing either version of the blog post
**Then** the language switcher must link to the corresponding translation
**And** switching from German to English must navigate to `/en/blog/dialog-based-applications/`
**And** switching from English to German must navigate to `/de/blog/dialogbasierte-anwendungen/`
---
### Requirement: Content validation
The implementation MUST pass OpenSpec validation.
**Rationale**: Ensure compliance with project standards and specification requirements.
#### Scenario: OpenSpec validation passes
**Given** the completed implementation
**When** running `openspec validate add-dialogbasierte-anwendungen-post --strict`
**Then** validation must pass with no errors
**And** no warnings should be generated
@@ -0,0 +1,36 @@
# Tasks: Add Dialogbasierte Anwendungen Blog Post
## Implementation Tasks
1. **Create blog post directory structure**
- Create `content/blog/dialogbasierte-anwendungen/` directory
- Set up page bundle for bilingual content
2. **Create German blog post**
- Create `content/blog/dialogbasierte-anwendungen/index.de.md`
- Add YAML frontmatter with title, date, description
- Transfer content from Notion source
- Preserve all formatting, links, and structure
- Verify markdown rendering
3. **Create English blog post**
- Create `content/blog/dialogbasierte-anwendungen/index.en.md`
- Add YAML frontmatter with translated title, date, description
- Create natural English translation maintaining technical accuracy
- Adapt Wikipedia links to English versions where applicable
- Verify markdown rendering
4. **Validate implementation**
- Run `openspec validate add-dialogbasierte-anwendungen-post --strict`
- Resolve any validation issues
5. **Test Hugo build**
- Run `hugo build`
- Verify no build errors
- Check both German and English versions render correctly
- Verify all links are functional
6. **Review and commit**
- Review generated content
- Create git commit with conventional commit message
- Ready for user review before merging to main