Skip to content

[Slice 3] new-team-member end-to-end (multimode) #24

@wab

Description

@wab

Parent

#21

What to build

Add the team-member content type end-to-end, reusing the Notion infra from #23. Introduces the cross-ref-resolver module (queries against the team registry) — used by later slices for author and hiringContact checks.

Concretely:

  • Create scripts/schemas/team-member.schema.js — Zod schema with name, role{fr,en}, track, avatar, bio{fr,en}, linkedin?, displayOrder?, active?, featuredOnAboutUs?, color? (yellow|coral|sky). Both role.fr/en and bio.fr/en are required.
  • Create scripts/cross-ref-resolver.js — loads team/*.md once, exposes isValidTeamSlug(slug), getActiveTeamMembers(). Pure interface.
  • Tests for both modules.
  • Extend scripts/validate-content.js to validate the team/ directory.
  • Create .claude/skills/new-team-member/SKILL.md — multimode (Notion URL or interview). Interview enforces both languages, asks for avatar via path drag&drop, copies to assets/team/<slug>.jpg.
  • Create docs/notion-templates/team-member.md — property mapping + NotionAI prompt for the Team DB.

Acceptance criteria

  • pnpm validate now covers team/ and passes on current data (or surfaces violations with clear messages).
  • Vitest tests for team-member.schema.js and cross-ref-resolver.js pass.
  • /new-team-member <notion-url> imports a team member from Notion with bilingual fields.
  • /new-team-member (no arg) runs the interview and refuses to write a member without both fr and en role and bio.
  • docs/notion-templates/team-member.md contains the NotionAI scaffolding prompt.

Blocked by

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentationenhancementNew feature or requestready-for-agentScoped, dependencies clear, acceptance criteria explicit — grabbable by an AFK agent

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions