Files
2025-11-25 17:01:37 +01:00

6.4 KiB

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

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