← ClaudeAtlas

web-pagelisted

Create or restructure a public page/route of the Iterus website in both locales (cs + en) with metadata, hreflang, JSON-LD, navigation, sitemap entry, tests and PR evidence. Use this whenever the user asks for a new page, route, landing page, section, "stránka", "podstránka", "landing", "přidej do menu", or wants to redesign an existing page — even if they only describe the content and never say "page".
TOMK-CMD/ITERUS-WEB · ★ 0 · Web & Frontend · score 60
Install: claude install-skill TOMK-CMD/ITERUS-WEB
# web-page — add or rework a page (cs + en) A page is done only when both locales exist, search engines and LLMs can read it, it is reachable from navigation and sitemap, and CI proves it renders and is accessible. ## Inputs to collect first 1. Purpose in one sentence (what question does the page answer, for whom). 2. Content source: `docs/CONTENT-MAP.md` (keyword/answer plan) if the page is listed there; otherwise ask Tomas for a brief (goal, key facts from `content/facts.json`, CTA). 3. Page type → JSON-LD type (see `docs/CONTENT-GUIDE.md` § Schema map). ## Workflow 1. **Spec**: if the page is not covered by an approved spec, write `specs/NNNN-page-<slug>.md` from `specs/_template.md` and get approval. 2. **Slugs**: cs slug and en slug (e.g. `/sluzby` ↔ `/en/services`). Register the pair in the i18n routing config (pathnames map) so `Link` and hreflang stay consistent. 3. **Content** in `content/cs/<slug>.mdx` and `content/en/<slug>.mdx`, same structure, same frontmatter keys (`title`, `description`, `updated`, `type`). Follow answer-first: the first paragraph answers the page's question. Keep the mandatory footer line out of MDX — the layout renders it. 4. **Route**: `apps/web/src/app/[locale]/(site)/<segment>/page.tsx` with `generateMetadata` (title ≤ 60 chars, description 120–155 chars, `alternates.languages` incl. `x-default` → cs, canonical), OG image via the OG route. 5. **JSON-LD** component for the page type; validate with `pnpm check:sche