2.8 KiB
CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Commands
npm run dev # Start dev server at http://localhost:3000
npm run build # Production build
npm run lint # ESLint
No test suite is configured.
Architecture
Personal portfolio website for Janpeter Visser, built with Next.js 15 App Router, TypeScript, and Tailwind CSS. Deployed on Vercel at jp-visser.nl.
Data flow
All CV content lives in a single source of truth: lib/cv-data.ts (CV_DATA const). Components import directly from there — no API calls, no state management.
Page structure
app/page.tsx composes the single-page layout by stacking section components in order: Nav → Hero → ExperienceSection → SkillsSection → AppsSection → ContactSection → Footer.
Adding apps to the portfolio
- Subdomain approach: deploy separately on Vercel and add a subdomain (e.g.
app1.jp-visser.nl) - Route approach: create
app/apps/<name>/page.tsx, then updatecomponents/apps.tsxto link to it
Scrum4Me MCP
This project is tracked in Scrum4Me via the scrum4me-mcp server, which is globally configured in Claude Code (~/.claude/mcp_servers.json). Use it to fetch the next story, update task status, and log implementation/test/commit activity.
Product ID: discover with mcp__scrum4me__list_products (the SCRUM4ME-product is for the Scrum4Me-app itself; create a separate jp-visser product in the UI if it doesn't exist yet, then put its CUID here):
product_id: cmojw8ega000004jpi38x3mit
Bootstrap (first time):
If the product is empty, build the backlog from Claude Code itself:
mcp__scrum4me__create_pbi(product_id, title, priority)— top-level groupingmcp__scrum4me__create_story(pbi_id, title, priority, acceptance_criteria?)— concrete deliverablemcp__scrum4me__create_task(story_id, title, priority, implementation_plan?)— implementation step
Stories land in the product backlog (status=OPEN); move them into a sprint via the Scrum4Me UI when ready.
Workflow per change:
mcp__scrum4me__get_claude_contextwith the product_id → returns next story + tasksmcp__scrum4me__update_task_status(task_id, 'in_progress')before coding,'done'aftermcp__scrum4me__log_implementation/log_test_result/log_committo keep an activity trail per storymcp__scrum4me__create_todofor ad-hoc work that doesn't fit a story- Stuck on an ambiguous choice?
mcp__scrum4me__ask_user_question(story_id, question, wait_seconds?)posts a notification to my Scrum4Me NavBar bell — I can answer in the UI without leaving Claude Code
Full tool catalogue (16 tools): see README.md in the scrum4me-mcp repo.