From 547eae95aa68cd6420b09602e6c2d125c6aaf619 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?je=CC=81ro=CC=82me=20boileux?= Date: Wed, 21 Oct 2026 17:52:33 +0200 Subject: [PATCH] docs: list challenge in the multi-language paradigm The authoring skills and the Notion mapping in new-content never named the enjeu type, so the rename leaves them unchanged. Challenge authoring arrives with #100 to #103. Also replaces the em dashes in CLAUDE.md with hyphens. Closes #110 --- CLAUDE.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index 836d45f..dc0984d 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -1,4 +1,4 @@ -# Ocobo Content Repository — agent instructions +# Ocobo Content Repository - agent instructions This repo holds the markdown content consumed by the Ocobo website. Read `CONTEXT.md` for the domain glossary and `docs/adr/` for past architectural decisions before doing non-trivial work. @@ -20,17 +20,17 @@ Single-context. `CONTEXT.md` + `docs/adr/` at the repo root. See `docs/agents/do Four skills cover the full authoring lifecycle: -- `setup` (`.claude/skills/setup/`) — one-command macOS onboarding for new contributors: installs/checks Homebrew, Node 24, pnpm 8, GitHub CLI auth, clones + installs, leaves the machine ready to run `/new-content`. -- `new-content` (`.claude/skills/new-content/`) — create any of the 5 types (`blog-post | story | team-member | tool | job`). Source-agnostic: interview, local file, or Notion URL. -- `publish-content` — validate and open a PR against `main`. -- `translate-content` — translate an existing file to the other language. +- `setup` (`.claude/skills/setup/`) - one-command macOS onboarding for new contributors: installs/checks Homebrew, Node 24, pnpm 8, GitHub CLI auth, clones + installs, leaves the machine ready to run `/new-content`. +- `new-content` (`.claude/skills/new-content/`) - create any of the 5 types (`blog-post | story | team-member | tool | job`). Source-agnostic: interview, local file, or Notion URL. +- `publish-content` - validate and open a PR against `main`. +- `translate-content` - translate an existing file to the other language. Canonical workflow: `/new-content [--type X] [source]` → review preview → `/publish-content`. Source modes: **interview** (no setup), **local file** (`/new-content draft.md`), **Notion URL** (optional MCP, see `docs/mcp-notion-setup.md`). Traps to respect when editing content directly: -- **`exerpt`** — the blog frontmatter key is intentionally misspelled; perpetuate it, do not "fix" it. -- **Slugs are identity** — kebab-case, and the cross-reference key for authors, tools, hiringContacts. Renaming a slug breaks references. -- **Blob URLs** — image fields (`avatar`, `image`, `iconUrl`) must resolve to Vercel Blob URLs; CI rewrites local paths on PR. `pnpm validate` fails on local paths until then — expected pre-sync. -- **Multi-language paradigm** — blog/story/job live under `//.md` (`fr` default). Team members carry both languages inline (`role.fr/en`, `bio.fr/en`); tools are language-agnostic (`name`, `category`, no translatable copy). Neither has a per-lang directory. -- **Cross-refs are strict** — `author`, `tools`, `featuredTool`, `hiringContact` must point to existing slugs; validation rejects dangling references. +- **`exerpt`** - the blog frontmatter key is intentionally misspelled; perpetuate it, do not "fix" it. +- **Slugs are identity** - kebab-case, and the cross-reference key for authors, tools, hiringContacts. Renaming a slug breaks references. +- **Blob URLs** - image fields (`avatar`, `image`, `iconUrl`) must resolve to Vercel Blob URLs; CI rewrites local paths on PR. `pnpm validate` fails on local paths until then - expected pre-sync. +- **Multi-language paradigm** - blog/story/job/challenge live under `//.md` (`fr` default). Challenge files sit in `challenges//` with the same slug in both languages, and carry frontmatter only: a body fails validation. Team members carry both languages inline (`role.fr/en`, `bio.fr/en`); tools are language-agnostic (`name`, `category`, no translatable copy). Neither has a per-lang directory. +- **Cross-refs are strict** - `author`, `tools`, `featuredTool`, `hiringContact` must point to existing slugs; validation rejects dangling references.