From 4ab4bda0e7b1bc8a6f9003edf54a1b48776d9f6c Mon Sep 17 00:00:00 2001 From: Axel Meyer Date: Sat, 16 May 2026 13:37:35 +0200 Subject: [PATCH] feat: add validate_readme_structure (S2 Phase 1) Validates MUST-Sections for tier=core (H1, Badges-Table, Topology-Block, API, References) + section-order (API before References). Tier=community returns empty (recommendation-only per spec section 3.1). Co-Authored-By: Claude Opus 4.7 (1M context) --- init.lua | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/init.lua b/init.lua index 4c80372..13914a4 100644 --- a/init.lua +++ b/init.lua @@ -98,4 +98,35 @@ function M.generate_topology_block(manifest, engine_calls) return table.concat(lines, "\n") end +-- Validates README structure against MUST-sections for the given tier. +-- Tier "core" enforces: H1, Abstract, Badges-Table, Topology-Block, API, References. +-- Tier "community" enforces nothing (returns empty result). +-- Returns: { missing_sections = [...], section_order_ok = bool } +function M.validate_readme_structure(markdown_string, tier) + if tier ~= "core" then + return { missing_sections = {}, section_order_ok = true } + end + + local missing = {} + local checks = { + { name = "H1", pattern = "^#%s+%S" }, + { name = "Badges-Table", pattern = "\n|%s*Field%s*|" }, + { name = "Topology-Block", pattern = "