From d0e8bdd960913c8a234463e699c78590b1e892c7 Mon Sep 17 00:00:00 2001 From: Andre van Zuydam Date: Thu, 22 Oct 2026 08:46:08 +0200 Subject: [PATCH] fix(skills): quote-safe YAML in 4 skill descriptions (fold to block scalar) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The description: values of tina4-a11y, tina4-architect, tina4-design and tina4-seo were plain unquoted scalars containing ": " (from "Triggers:" / "Trigger phrases:"), which strict YAML 1.2 reads as a nested mapping. A strict reader (the `yaml` npm package, YAML 2.6.1) rejects them with "Nested mappings are not allowed in compact mappings"; Claude Code's lenient header reader accepted them, so it never surfaced. Fold each to a `description: >` block scalar — the same form the three already-valid skills (tina4-developer-*, tina4-js, tina4-maintainer) use. Folding needs no escaping, so the inner quotes, the apostrophe in seo's "AI systems can't find us", the colons and the em dashes all survive verbatim. Verified: all seven skill frontmatters now parse under the same `yaml` package, descriptions byte-intact. Reaches installed users at the next skills bundle regen. Co-Authored-By: Tina4 <82961293+tina4stack@users.noreply.github.com> Co-Authored-By: Claude Opus 4.8 Signed-off-by: Andre van Zuydam --- .claude/skills/tina4-a11y/SKILL.md | 3 ++- .claude/skills/tina4-architect/SKILL.md | 3 ++- .claude/skills/tina4-design/SKILL.md | 3 ++- .claude/skills/tina4-seo/SKILL.md | 3 ++- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/.claude/skills/tina4-a11y/SKILL.md b/.claude/skills/tina4-a11y/SKILL.md index 50b5dc30..1a969727 100644 --- a/.claude/skills/tina4-a11y/SKILL.md +++ b/.claude/skills/tina4-a11y/SKILL.md @@ -1,6 +1,7 @@ --- name: tina4-a11y -description: Use when a project needs a WCAG 2.1 Level AA accessibility audit and fix pass — semantic landmarks, keyboard navigation, focus indicators, ARIA states, colour contrast, forms, zoom/reflow, reduced motion, touch targets, and screen reader support. Works on any Tina4 project (PHP, Python, Ruby, Node) or plain HTML. Reads DESIGN.md if present to avoid re-asking for known facts. Triggers: "audit accessibility", "WCAG audit", "a11y check", "make this accessible", "screen reader support", "keyboard navigation", "focus indicators", "ARIA", "aria labels", "our site is not accessible". +description: > + Use when a project needs a WCAG 2.1 Level AA accessibility audit and fix pass — semantic landmarks, keyboard navigation, focus indicators, ARIA states, colour contrast, forms, zoom/reflow, reduced motion, touch targets, and screen reader support. Works on any Tina4 project (PHP, Python, Ruby, Node) or plain HTML. Reads DESIGN.md if present to avoid re-asking for known facts. Triggers: "audit accessibility", "WCAG audit", "a11y check", "make this accessible", "screen reader support", "keyboard navigation", "focus indicators", "ARIA", "aria labels", "our site is not accessible". updated_for_version: 1.0.0 --- diff --git a/.claude/skills/tina4-architect/SKILL.md b/.claude/skills/tina4-architect/SKILL.md index b4263374..e629ae39 100644 --- a/.claude/skills/tina4-architect/SKILL.md +++ b/.claude/skills/tina4-architect/SKILL.md @@ -1,6 +1,7 @@ --- name: tina4-architect -description: Use whenever a user is starting a NEW Tina4 project OR the working directory has no TINA4.md / no plan/ folder yet. Trigger phrases: "I want to build X", "start a new tina4 project", "plan this", "architect this", "which framework should I use", "how should I structure this", "which database", "how do I deploy". Owns the decisions BEFORE any file is scaffolded: backend language, database, session backend, cache, queue, auth, realtime, AI provider, deployment target, project layout. Then maps the user journeys, the system flows, and the completeness net (the states, edges, authz, failure, and concurrency that complex builds miss) so features are derived from real user goals, not invented. Also triggers on "map the user journey", "what's the flow", "what are we missing", "trace the system". Records the choices in TINA4.md and seeds plan/ with goals, journeys, flows, and initial ADRs. Hands off to the matching tina4-developer- skill for implementation. Never runs on an already-scaffolded project with a TINA4.md unless the user explicitly asks to re-architect. +description: > + Use whenever a user is starting a NEW Tina4 project OR the working directory has no TINA4.md / no plan/ folder yet. Trigger phrases: "I want to build X", "start a new tina4 project", "plan this", "architect this", "which framework should I use", "how should I structure this", "which database", "how do I deploy". Owns the decisions BEFORE any file is scaffolded: backend language, database, session backend, cache, queue, auth, realtime, AI provider, deployment target, project layout. Then maps the user journeys, the system flows, and the completeness net (the states, edges, authz, failure, and concurrency that complex builds miss) so features are derived from real user goals, not invented. Also triggers on "map the user journey", "what's the flow", "what are we missing", "trace the system". Records the choices in TINA4.md and seeds plan/ with goals, journeys, flows, and initial ADRs. Hands off to the matching tina4-developer- skill for implementation. Never runs on an already-scaffolded project with a TINA4.md unless the user explicitly asks to re-architect. --- # Tina4 Architect — decisions before code diff --git a/.claude/skills/tina4-design/SKILL.md b/.claude/skills/tina4-design/SKILL.md index bb12847f..35453c68 100644 --- a/.claude/skills/tina4-design/SKILL.md +++ b/.claude/skills/tina4-design/SKILL.md @@ -1,6 +1,7 @@ --- name: tina4-design -description: Use whenever a project needs a visual identity or design system — from scratch or from an existing logo. Triggers: "build me a brand", "create brand guidelines", "we need a UI guide", "design system", "I have a logo", "what should our brand look like", "design our app", "brand this project". Covers the full chain — client intake → market research → design system decisions → brand guidelines document → interactive UI component guide. Produces DESIGN.md (the living design record), brand-guidelines.html, and ui-guide.html, all saved to a top-level design/ folder. Project-agnostic: works for any industry, any Tina4 backend or frontend, or no Tina4 project at all. +description: > + Use whenever a project needs a visual identity or design system — from scratch or from an existing logo. Triggers: "build me a brand", "create brand guidelines", "we need a UI guide", "design system", "I have a logo", "what should our brand look like", "design our app", "brand this project". Covers the full chain — client intake → market research → design system decisions → brand guidelines document → interactive UI component guide. Produces DESIGN.md (the living design record), brand-guidelines.html, and ui-guide.html, all saved to a top-level design/ folder. Project-agnostic: works for any industry, any Tina4 backend or frontend, or no Tina4 project at all. updated_for_version: 1.1.0 --- diff --git a/.claude/skills/tina4-seo/SKILL.md b/.claude/skills/tina4-seo/SKILL.md index 0e0589d8..7e94a2b2 100644 --- a/.claude/skills/tina4-seo/SKILL.md +++ b/.claude/skills/tina4-seo/SKILL.md @@ -1,6 +1,7 @@ --- name: tina4-seo -description: Use when a project needs SEO and AISO (AI Search Optimisation) coverage — structured data, AI discovery files, robots.txt, sitemap, meta tags, semantic HTML audit, E-E-A-T signals, favicon package, and entity consistency. Works on any Tina4 project (PHP, Python, Ruby, Node) or plain HTML. Reads DESIGN.md if present to avoid re-asking for known facts. Triggers: "fix our SEO", "we need structured data", "add schema markup", "AI systems can't find us", "set up llms.txt", "generate a sitemap", "robots.txt audit", "accessibility of SEO". +description: > + Use when a project needs SEO and AISO (AI Search Optimisation) coverage — structured data, AI discovery files, robots.txt, sitemap, meta tags, semantic HTML audit, E-E-A-T signals, favicon package, and entity consistency. Works on any Tina4 project (PHP, Python, Ruby, Node) or plain HTML. Reads DESIGN.md if present to avoid re-asking for known facts. Triggers: "fix our SEO", "we need structured data", "add schema markup", "AI systems can't find us", "set up llms.txt", "generate a sitemap", "robots.txt audit", "accessibility of SEO". updated_for_version: 1.0.0 ---