diff --git a/app/page.tsx b/app/page.tsx index 78d65d5..9a118e3 100644 --- a/app/page.tsx +++ b/app/page.tsx @@ -82,12 +82,13 @@ export default async function LandingPage() {

- Plannen in de cloud. Uitvoeren op je eigen machine. + Van idee tot pull request — op je eigen hardware.

- De UI draait op Vercel, je code draait op jou. Een gedeelde job-queue laat lokale - Claude Code agents (laptop, NAS of VM) stories autonoom oppakken — zonder dat je - broncode ooit de cloud hoeft te raken. + Leg een idee vast, laat Claude het kritisch bevragen, accepteer het plan en zet het + door een lokale agent uit. Code, executie en agents draaien op je eigen machine; + alleen metadata loopt via Vercel + Neon. Idee na idee, automatisch omgezet in + commits en pull requests.

+ {/* ── Van idee tot PR ────────────────────────────────────────── */} +
+
+

Van idee tot pull request

+

+ Vier stappen, één queue. Een idee groeit uit tot gemergde code zonder dat jij ertussen + hoeft. +

+ +
+ {[ + { + step: '1', + title: 'Idee', + chip: 'DRAFT', + chipClass: 'bg-tertiary-container text-tertiary-container-foreground', + desc: 'Leg een idee vast in twee zinnen. Status: DRAFT.', + }, + { + step: '2', + title: 'Grill', + chip: 'GRILLING', + chipClass: 'bg-warning-container text-warning-container-foreground', + desc: 'Claude stelt kritische vragen via het belicoon; je antwoorden vormen de grill_md.', + }, + { + step: '3', + title: 'Plan', + chip: 'PLAN_READY', + chipClass: 'bg-success-container text-success-container-foreground', + desc: 'Claude schrijft een YAML-plan. Materialiseer en je hebt PBI + stories + tasks.', + }, + { + step: '4', + title: 'Execute', + chip: 'DONE → PR', + chipClass: 'bg-primary-container text-primary-container-foreground', + desc: 'Lokale agent claimt de jobs, commit, pusht en opent automatisch een PR.', + }, + ].flatMap((s, i, arr) => { + const card = ( +
+
+
+ {s.step} +
+
{s.title}
+ + {s.chip} + +
+

{s.desc}

+
+ ) + if (i === arr.length - 1) return [card] + return [ + card, +
+ → +
, + ] + })} +
+ +

+ State-machine: DRAFT → GRILLING → GRILLED → PLANNING → PLAN_READY → PLANNED. + Bij materialiseren ontstaat in één atomaire transactie precies één PBI met N stories en M taken + uit het YAML-plan. Op de laatste taak van de laatste story pusht de worker automatisch een + branch en opent of mergt een pull request — geen handwerk meer tussen plan en deploy. +

+
+
+ {/* ── Architectuur ───────────────────────────────────────────── */}
@@ -161,7 +241,7 @@ export default async function LandingPage() { }, { title: 'Lokale worker', - desc: 'Jouw machine — laptop, NAS of VM. Claude Code via stdio-MCP, claimt jobs atomisch (FOR UPDATE SKIP LOCKED), executeert lokaal, commit lokaal, push lokaal. Meerdere workers parallel veilig.', + desc: 'Jouw machine — laptop, NAS of VM. Claude Code via stdio-MCP, claimt jobs atomisch (FOR UPDATE SKIP LOCKED), executeert lokaal, commit lokaal, push lokaal. Doet drie soorten jobs: bevragen van een idee (GRILL), plan-generatie (PLAN), taak-implementatie (IMPL) — allemaal op dezelfde machine. Meerdere workers parallel veilig.', }, { title: 'GitHub', @@ -182,33 +262,55 @@ export default async function LandingPage() {

Bekijk Scrum4Me in actie

- Drie schermen die de kern van Scrum4Me afdekken — van Product Backlog tot persoonlijk - Kanban-bord. Elke weergave is desktop-first en gebouwd op MD3-tokens en shadcn-componenten. + Zes weergaven van Scrum4Me — van inkomende ideeën tot persoonlijk Kanban-bord en + voortgangs-inzichten. Elke weergave is desktop-first en gebouwd op MD3-tokens en + shadcn-componenten.

{[ { - src: '/screenshots/sprint-board.jpg', - alt: 'Sprint Board met drie panelen: Product Backlog, Sprint Backlog en Taken', - title: 'Sprint Board', + src: '/screenshots/ideas-table.png', + alt: 'Ideas-dashboard met idee-kaarten in DRAFT/GRILLED/PLAN_READY-statussen', + title: 'Ideas-dashboard', caption: - 'Drie panelen op één scherm: Product Backlog links, Sprint Backlog in het midden, taken van de geselecteerde story rechts. Stories slepen tussen panelen werkt via dnd-kit.', + 'Persoonlijk overzicht van je ideeën met status (DRAFT → GRILLED → PLAN_READY → PLANNED). Klik "Grill me" of "Make plan" om een lokale agent te starten; bij materialiseren ontstaat exact één PBI met stories en taken.', }, { - src: '/screenshots/product-backlog.jpg', + src: '/screenshots/producten.png', + alt: 'Producten-dashboard met overzicht van actieve projecten', + title: 'Producten', + caption: + 'Eén overzicht van alle producten waar je toegang toe hebt — eigen producten plus die waar je als developer bent toegevoegd. Vanaf hier spring je naar Backlog, Sprint of Solo.', + }, + { + src: '/screenshots/product-backlog.png', alt: 'Product Backlog met PBIs gegroepeerd op prioriteit en stories per PBI', title: 'Product Backlog', caption: 'PBIs gegroepeerd op prioriteit (Kritiek → Laag) in het linkerpaneel. Klik op een PBI om de stories rechts te zien, gerangschikt per urgentie en versleepbaar.', }, { - src: '/screenshots/solo-paneel.jpg', + src: '/screenshots/sprint.png', + alt: 'Sprint Board met drie panelen: Product Backlog, Sprint Backlog en Taken', + title: 'Sprint Board', + caption: + 'Drie panelen op één scherm: Product Backlog links, Sprint Backlog in het midden, taken van de geselecteerde story rechts. Stories slepen tussen panelen werkt via dnd-kit.', + }, + { + src: '/screenshots/solo.png', alt: 'Solo Paneel — persoonlijk Kanban-bord met drie statuskolommen', title: 'Solo Paneel', caption: 'Persoonlijk Kanban-bord per product. Toont alleen taken van stories die jij hebt geclaimd, in drie kolommen (To Do, Bezig, Klaar). Drag-and-drop tussen kolommen verandert de status.', }, + { + src: '/screenshots/insights.png', + alt: 'Insights-dashboard met voortgangsmetrics en agent-throughput', + title: 'Insights', + caption: + 'Voortgang per product: doorlooptijden, agent-throughput en sprintresultaten in één blik. Helpt patronen herkennen — welke stories liepen vast, welke gingen vlot.', + }, ].map((s) => (
{[ { - title: 'Hiërarchisch plannen', - desc: 'Organiseer werk in producten, Product Backlog Items, stories en taken — gegroepeerd op prioriteit en herrangschikbaar via drag-and-drop.', + title: 'Ideas — Grill & Plan', + desc: 'Leg een idee vast in twee zinnen. Claude grilt het met kritische vragen, schrijft een YAML-plan en zet ’t om in PBI + stories + tasks. Alles via een job-queue, asynchroon.', }, { title: 'Sprint Board + Solo Paneel', @@ -254,15 +356,15 @@ export default async function LandingPage() { }, { title: 'Lokale Claude-agents', - desc: 'Een job-queue met "Voer uit"-knop. Lokale Claude Code agents claimen werk atomisch, draaien het op jouw hardware en rapporteren status terug. Meerdere workers (laptop + NAS) parallel veilig.', + desc: 'Een job-queue met "Voer uit"-knop. Lokale Claude Code agents claimen werk atomisch, draaien het op jouw hardware en rapporteren status terug. Na de laatste task pusht de worker automatisch en opent een pull request via SQUASH-merge. Meerdere workers (laptop + NAS) parallel veilig.', }, { title: 'Realtime updates', - desc: 'SSE bovenop Postgres LISTEN/NOTIFY. Wijzigingen vanuit andere tabs of een lokale agent verschijnen binnen 1–2 seconden in je Solo Paneel — geen refresh.', + desc: 'SSE bovenop Postgres LISTEN/NOTIFY. Wijzigingen vanuit andere tabs of een lokale agent verschijnen binnen 1–2 seconden in je Solo Paneel — geen refresh. De Sync-tab toont per idee de live status van story → push → PR-merge.', }, { title: 'Async vraagkanaal', - desc: 'Loopt een agent vast op een keuze? Hij plaatst een vraag via het bel-icoon. Jij beantwoordt hem wanneer het uitkomt; de agent pakt automatisch de draad weer op.', + desc: 'Loopt een agent vast op een keuze? Hij plaatst een vraag via het bel-icoon. Jij beantwoordt hem wanneer het uitkomt; de agent pakt automatisch de draad weer op. Tijdens een Grill stelt Claude vragen via hetzelfde kanaal — antwoorden komen direct terug in de Idea-timeline.', }, { title: "Todo's", @@ -295,6 +397,11 @@ cd scrum4me-mcp && npm install # 3. Start Claude Code en vraag: # "pak de volgende job uit de Scrum4Me-queue"`} +

+ Liever in de UI beginnen? Open /ideas, + druk op "Nieuw idee" en klik "Grill me" — de eerste vraag verschijnt + binnen seconden in je belicoon. +

Liever zonder MCP? Gebruik de{' '} REST API met een Bearer-token @@ -315,6 +422,21 @@ cd scrum4me-mcp && npm install {/* Hiërarchie */}

Hiërarchie

+ + {/* Idee-laag */} +
+
+
Idea
+
+ DRAFT → GRILLED → PLAN_READY +
+
+
+ ↓ materialiseert naar +
+
+ + {/* Scrum-laag */}
{[ { label: 'Product', sub: 'Een softwareproject of codebase' }, @@ -340,6 +462,8 @@ cd scrum4me-mcp && npm install

Terminologie

{[ + { term: 'Idea', def: 'Een voorstel of richting voordat ’t een PBI is. Heeft een grill-fase (Claude bevraagt ’t kritisch) en een plan-fase (Claude schrijft een YAML-plan met stories en tasks). Na materialiseren ontstaat exact één PBI.' }, + { term: 'Grill / Plan', def: 'Twee asynchrone Claude-jobsoorten op een idea. Grill produceert grill_md (Q&A-transcript). Plan produceert plan_md (YAML met PBI/stories/tasks-templates) dat strikt geparseerd wordt.' }, { term: 'Product Backlog', def: 'Geordende lijst van alle PBI\'s per product, gesorteerd op prioriteit (kritiek → laag) en positie.' }, { term: 'Sprint', def: 'Actief tijdblok met een Sprint Goal. Per product is er maximaal één actieve Sprint tegelijk.' }, { term: 'Sprint Backlog', def: 'De stories die voor deze Sprint zijn geselecteerd. Stories worden vanuit de Product Backlog gesleept.' }, @@ -395,59 +519,97 @@ cd scrum4me-mcp && npm install step: '1', title: 'Account aanmaken', desc: 'Ga naar Registreren en kies een gebruikersnaam en wachtwoord. Na registratie word je direct doorgestuurd naar het dashboard. Liever passwordless? Paar je telefoon één keer en log voortaan in via QR. Of test eerst met de demo-account (alleen leesrechten).', + ideaRoute: false, }, { step: '2', title: 'Product aanmaken', desc: 'Klik op "Nieuw product" op het dashboard. Vul naam, optionele beschrijving, repo-URL en je Definition of Done in. Het product wordt zichtbaar op het dashboard.', + ideaRoute: false, }, { step: '3', - title: 'Product Backlog opbouwen', - desc: 'Open het product en voeg PBI\'s toe via het linkerpaneel. Geef elk PBI een prioriteit (Kritiek / Hoog / Gemiddeld / Laag). Klik op een PBI om in het rechterpaneel stories toe te voegen. Versleep PBI\'s en stories om de volgorde aan te passen.', + title: 'Een idee vastleggen', + desc: 'Open /ideas, klik "Nieuw idee", vul titel + één-alinea beschrijving in. Status: DRAFT.', + ideaRoute: true, }, { step: '4', - title: 'Sprint starten', - desc: 'Klik op "Sprint starten" op de productpagina en voer een Sprint Goal in. Per product is er maximaal één actieve Sprint tegelijk. Het Sprint-scherm wordt zichtbaar via de navigatie.', + title: 'Laat Claude grillen', + desc: 'Klik "Grill me". Een lokale agent stelt kritische vragen via het belicoon. Beantwoord ze; Claude schrijft een gestructureerde grill_md. Status: GRILLED.', + ideaRoute: true, }, { step: '5', - title: 'Sprint Board — stories slepen en taken aanmaken', - desc: 'Open het Sprint-scherm. Drie panelen verschijnen op één view: Product Backlog links, Sprint Backlog in het midden, taken rechts. Sleep stories vanuit links naar het midden om ze in de Sprint te plaatsen. Selecteer een story in het middenpaneel om de taken rechts te tonen en aan te maken.', + title: 'Maak het plan + materialiseer', + desc: 'Klik "Make plan". Claude genereert een YAML-plan (PBI + stories + tasks). Klik "Materialiseer" om ’t atomair om te zetten naar je product-backlog. Status: PLANNED.', + ideaRoute: true, }, { step: '6', - title: 'Solo Paneel — claim stories en werk persoonlijk', - desc: 'Open Solo via de navigatie. Claim openstaande stories uit de actieve Sprint (knop "Toon openstaande stories") en werk je taken af in drie statuskolommen via drag-and-drop. Klik op een taak voor het detail-dialoog met implementatieplan.', + title: 'Product Backlog finetunen', + desc: 'Optioneel: herorden PBI\'s en stories handmatig via drag-and-drop. Het meeste werk heeft materialise al gedaan — dit is alleen voor bijsturen of toevoegen van werk dat niet uit een idee komt.', + ideaRoute: false, }, { step: '7', - title: 'API-token aanmaken', - desc: 'Ga naar Instellingen → Tokens. Maak een nieuw token aan en kopieer de waarde direct — die is daarna niet meer zichtbaar. Hetzelfde token werkt voor de MCP-server én voor de REST API.', + title: 'Sprint starten', + desc: 'Klik op "Sprint starten" op de productpagina en voer een Sprint Goal in. Per product is er maximaal één actieve Sprint tegelijk. Het Sprint-scherm wordt zichtbaar via de navigatie.', + ideaRoute: false, }, { step: '8', - title: 'Claude Code koppelen', - desc: 'Aanbevolen: installeer de scrum4me-mcp-server (zie Quickstart hierboven) zodat Claude Code de Scrum4Me-tools native ziet. Alternatief: gebruik de REST API direct vanuit Codex, eigen scripts of CI-pipelines met je Bearer-token.', + title: 'Sprint Board — stories slepen en taken aanmaken', + desc: 'Open het Sprint-scherm. Drie panelen verschijnen op één view: Product Backlog links, Sprint Backlog in het midden, taken rechts. Sleep stories vanuit links naar het midden om ze in de Sprint te plaatsen. Selecteer een story in het middenpaneel om de taken rechts te tonen en aan te maken.', + ideaRoute: false, }, { step: '9', - title: 'Story laten uitvoeren — "Voer uit"-knop', - desc: 'Klik op "Voer uit" bij een story in het Solo Paneel. De story komt in de job-queue. Een lokale Claude-agent op je machine pakt \'m op via wait_for_job, werkt het implementatieplan af, commit naar je repo en zet de status op done. De NavBar toont live hoeveel workers actief zijn.', + title: 'Solo Paneel — claim stories en werk persoonlijk', + desc: 'Open Solo via de navigatie. Claim openstaande stories uit de actieve Sprint (knop "Toon openstaande stories") en werk je taken af in drie statuskolommen via drag-and-drop. Klik op een taak voor het detail-dialoog met implementatieplan.', + ideaRoute: false, }, { step: '10', + title: 'Claude Code koppelen', + desc: 'Maak een API-token aan in Instellingen → Tokens — hetzelfde token werkt voor MCP en REST. Aanbevolen: installeer de scrum4me-mcp-server (zie Quickstart hierboven) zodat Claude Code de tools native ziet. Alternatief: gebruik de REST API direct vanuit Codex, eigen scripts of CI-pipelines.', + ideaRoute: false, + }, + { + step: '11', + title: 'Voer uit + Sync-tab volgen', + desc: 'Klik op "Voer uit" bij een story in het Solo Paneel. De story komt in de job-queue. Een lokale agent claimt de jobs, werkt taken af, commit en — na de laatste task — pusht en mergt automatisch een PR via SQUASH. Volg de voortgang in de Sync-tab op het idea-detail.', + ideaRoute: false, + }, + { + step: '12', title: 'Sprint afronden', desc: 'Klik op "Sprint afronden" op het Sprint Board. Voor elke story kies je: markeer als Done of zet terug naar de Product Backlog. Daarna is een nieuwe Sprint aanmaakbaar.', + ideaRoute: false, }, - ].map(({ step, title, desc }) => ( -
-
+ ].map(({ step, title, desc, ideaRoute }) => ( +
+
{step}
-
{title}
+
+ {title} + {ideaRoute && ( + + Idea-route + + )} +
{desc}
diff --git a/docs/INDEX.md b/docs/INDEX.md index d156bcd..edf6c85 100644 --- a/docs/INDEX.md +++ b/docs/INDEX.md @@ -43,6 +43,7 @@ Auto-generated on 2026-05-06 from front-matter and headings. | [Docs-restructuur — geoptimaliseerd voor AI-lookup](./plans/docs-restructure-ai-lookup.md) | proposal | 2026-05-02 | | [PBI Bulk-Create Spec — Docs-Restructure for AI-Optimized Lookup](./plans/docs-restructure-pbi-spec.md) | done | 2026-05-03 | | [Landing v2 — lokaal & veilig + architectuurdiagram](./plans/landing-local-first.md) | active | 2026-05-03 | +| [Landing v3 — van idee tot pull request](./plans/landing-v3-idea-flow.md) | active | 2026-05-04 | | [M10 — Password-loze inlog via QR-pairing](./plans/M10-qr-pairing-login.md) | active | 2026-05-03 | | [M11 — Claude vraagt, gebruiker antwoordt](./plans/M11-claude-questions.md) | active | 2026-05-03 | | [M12 — Idea entity + Grill/Plan Claude jobs](./plans/M12-ideas.md) | planned | — | diff --git a/docs/diagrams/architecture.mmd b/docs/diagrams/architecture.mmd index 31ed0f8..aa08a0b 100644 --- a/docs/diagrams/architecture.mmd +++ b/docs/diagrams/architecture.mmd @@ -13,7 +13,7 @@ flowchart LR subgraph Yours["Jouw kant (lokaal)"] direction TB - Worker["Lokale worker
laptop / NAS / VM
Claude Code + MCP"] + Worker["Lokale worker
laptop / NAS / VM
Claude Code + MCP
jobs: GRILL · PLAN · IMPL"] GitHub[("GitHub
jouw repo")] Worker -->|git push| GitHub end diff --git a/docs/plans/landing-v3-idea-flow.md b/docs/plans/landing-v3-idea-flow.md new file mode 100644 index 0000000..6c0dd56 --- /dev/null +++ b/docs/plans/landing-v3-idea-flow.md @@ -0,0 +1,161 @@ +--- +title: "Landing v3 — van idee tot pull request" +status: active +audience: [maintainer, contributor] +language: nl +last_updated: 2026-05-04 +applies_to: [SCRUM4ME] +story_id: cmot8226500017h174z5qpphx +story_code: ST-1224 +pbi_id: cmoq2q50s0000qa174rmrjove +--- + +# Landing v3 — van idee tot pull request + +**Story:** [ST-1224](../../docs/INDEX.md). Vervolg op Landing v2 (lokaal-first, PR #72). + +**Branch:** `feat/landing-new-screenshots` — gestart als screenshot-update, uitgebreid met de volledige v3-rewrite. + +## Context + +Sinds Landing v2 (2026-05-03, commit `4ff50cb`, op main via merge `b47f629`) is M12 — *Ideas* — geland en is het **kernconcept** van het product geworden: + +- Nieuw `/ideas`-dashboard per user. Idea staat **boven** Product/PBI in de hiërarchie en is de manier waarop nieuw werk binnenkomt. +- State-machine: `DRAFT → GRILLING → GRILLED → PLANNING → PLAN_READY → PLANNED` (+ `GRILL_FAILED`, `PLAN_FAILED` recovery-paden). +- Twee nieuwe `ClaudeJobKind`'s: `IDEA_GRILL` (Claude stelt kritische vragen via `ask_user_question`-loop) en `IDEA_MAKE_PLAN` (Claude genereert YAML-plan, geen vragen). Naast bestaande `TASK_IMPLEMENTATION`. +- `materializeIdeaPlanAction` is een atomaire transformatie: `plan_md` (YAML) → 1 PBI + N stories + M tasks. +- Job-flow voor IDEA_GRILL gebruikt het bestaande **async vraagkanaal**. + +Daarnaast (kleiner maar zichtbaar): +- **Auto-PR + auto-merge (SQUASH)**: na `update_job_status('done')` op de laatste task pusht de worker automatisch en opent/mergt een PR. +- **Sync-tab**: realtime overzicht van Story-status / `ClaudeJob.pushed_at` / `Pbi.pr_url` / `pr_merged_at` per Idea. +- **Deploy-controle**: labels `skip-deploy` / `force-deploy` overrulen path-filter. + +User's eigen formulering (relevant voor toon): *"het nadenken over een idee, plannen en dan laten uitvoeren. idee na idee kan omgezet worden in acties met resultaten"*. + +## Doelgroep + +Ongewijzigd t.o.v. v2 (mix met zwaartepunt op privacy-bewuste indie devs en homelab-teams). De Idea-laag versterkt vooral de aantrekkingskracht voor solo-devs die *"niet aan een ticket-fabriek willen"*. + +## Doel + +1. **Hero verbreden** van "executie lokaal" naar volledige cyclus: idee → grill → plan → execute → PR. +2. **Nieuwe sectie #3 "Van idee tot PR"** vóór de architectuur-sectie — toont de procesflow (4 stappen). +3. **Architectuur-diagram lichtjes uitbreiden** met de Idea-job-kinds in de Worker-box. +4. **Feature-grid herschikken**: vervang "Hiërarchisch plannen" door "Ideas — Grill & Plan"; werk auto-PR in als bullet onder "Lokale Claude-agents". +5. **Handleiding uitbreiden** van 10 → 12 stappen met de Idea-route ervoor. +6. **Quickstart** ongewijzigd; één regel toevoegen over UI-route (`/ideas`). +7. **Tour** al gedaan (commit 6ce12df) — 6 echte screenshots in plaats van 3. + +## Sectievolgorde + +| # | Sectie | Wijziging | +|---|---|---| +| 1 | Header | ongewijzigd | +| 2 | Hero | rewrite — H1 + subhead verbreden | +| 3 | **Van idee tot PR** | nieuw — 4-stappen procesflow | +| 4 | Architectuur | diagram regenereren; callout-card "Lokale worker" tekst aanvullen | +| 5 | Tour (screenshots) | **klaar** (commit 6ce12df) — 6 figures | +| 6 | Wat is Scrum4Me? | feature-grid herschikt (set D) | +| 7 | Quickstart | + één regel UI-route | +| 8 | Scrum in Scrum4Me | + 2 termen (Idea, Grill/Plan) + twee-rij-hiërarchie | +| 9 | Gebruikershandleiding | 10 → 12 stappen (Idea-route ervoor) | +| 10 | REST API | ongewijzigd | +| 11 | Footer | ongewijzigd | + +## Sectie-detail + +### §2 Hero — rewrite + +- **H1**: *"Van idee tot pull request — op je eigen hardware."* +- **Subhead** (~45 woorden): *"Leg een idee vast, laat Claude het kritisch bevragen, accepteer het plan en zet het door een lokale agent uit. Code, executie en agents draaien op je eigen machine; alleen metadata loopt via Vercel + Neon. Idee na idee, automatisch omgezet in commits en pull requests."* +- **CTA's** ongewijzigd: *"Account aanmaken"* + *"Hoe het werkt"* (anchor `#architectuur`). + +### §3 Van idee tot PR (nieuw) + +Tussen Hero en Architectuur. Procesflow als 4 horizontaal geschakelde kaarten: + +``` +[1. Idee] → [2. Grill] → [3. Plan] → [4. Execute] +DRAFT GRILLING PLAN_READY DONE → PR +``` + +Implementatie: `grid grid-cols-1 md:grid-cols-4 gap-4` met tussen kaarten een `→` op `hidden md:flex`. MD3-tokens. Status-chips matchen de PATCH/POST-badges in de API-sectie. + +Onder de 4 kaarten één paragraaf van ~3 zinnen die de state-machine, `materializeIdeaPlanAction` en auto-PR samenvat. + +### §4 Architectuur — diagram regenereren + +`docs/diagrams/architecture.mmd` Worker-label uitbreiden: + +``` +Worker["Lokale worker +laptop / NAS / VM +Claude Code + MCP +jobs: GRILL · PLAN · IMPL"] +``` + +Daarna `npm run diagrams` om beide SVG's te regenereren. + +Callout-card "Lokale worker" in `app/page.tsx` krijgt aanvullende zin: *"Doet drie soorten jobs: bevragen van een idee (GRILL), plan-generatie (PLAN), taak-implementatie (IMPL). Allemaal op dezelfde machine."* + +### §6 Feature-grid — set D (6 kaarten) + +Vervang **"Hiërarchisch plannen"** door **"Ideas — Grill & Plan"** (nieuwe entry-point): + +1. **Ideas — Grill & Plan** *(nieuw)* +2. Sprint Board + Solo Paneel +3. **Lokale Claude-agents** *(uitbreiden — auto-PR)* +4. **Realtime updates** *(uitbreiden — Sync-tab)* +5. Async vraagkanaal *(uitbreiden — Grill-vragen)* +6. Todo's + +### §7 Quickstart — kleine aanvulling + +Onder de bestaande code-block één regel: *"Liever in de UI beginnen? Open `/ideas`, druk op 'Nieuw idee' en klik 'Grill me' — de eerste vraag verschijnt binnen seconden in je belicoon."* + +### §8 Scrum in Scrum4Me — terminologie + hiërarchie + +Twee tegels toevoegen aan terminologie-grid: **Idea** en **Grill / Plan**. + +Hiërarchie-rij wordt twee-rij-systeem: +- Bovenste rij: één tegel "Idea (DRAFT → GRILLED → PLAN_READY)" met "materialiseert ↓" pijl +- Onderste rij: bestaande Product → PBI → Story → Taak + +### §9 Handleiding — 10 → 12 stappen + +1. Account aanmaken (+ QR-bijzin) +2. Product aanmaken +3. **Een idee vastleggen** *(nieuw)* +4. **Laat Claude grillen** *(nieuw)* +5. **Maak het plan + materialiseer** *(nieuw)* +6. Product Backlog finetunen *(was: opbouwen)* +7. Sprint starten +8. Sprint Board +9. Solo Paneel +10. Claude Code koppelen *(token + MCP gecombineerd)* +11. **Voer uit + Sync-tab volgen** +12. Sprint afronden + +Stappen 3-5 markeren met visueel accent (`border-l-4 border-primary` of chip "Idea-route"). + +## Bestanden + +**Wijzigen:** +- `app/page.tsx` — Hero, nieuwe §3, callout in §4, feature-grid (§6), Quickstart-regel (§7), terminologie + hiërarchie (§8), handleiding (§9) +- `docs/diagrams/architecture.mmd` — Worker-label uitbreiden +- `public/diagrams/architecture-light.svg` + `architecture-dark.svg` — regenereren + +**Klaar (commit 6ce12df):** +- `public/screenshots/*` — 6 nieuwe screenshots vervangen oude 3 +- Tour-array in `app/page.tsx` + +## Verificatie + +```bash +npm run diagrams # regenereer SVG's +npm run dev # http://localhost:3000 op 1024px+ +npm run lint && npm test && npm run build +``` + +Niet pushen zonder bevestiging (CLAUDE.md hardstop). diff --git a/public/diagrams/architecture-dark.svg b/public/diagrams/architecture-dark.svg index ca9fada..4fd8a08 100644 --- a/public/diagrams/architecture-dark.svg +++ b/public/diagrams/architecture-dark.svg @@ -1 +1 @@ -

Jouw kant (lokaal)

Scrum4Me-stack (managed)

Prisma + SSE

git push

HTTPS

job claim + LISTEN/NOTIFY

Jij in je browser

Vercel
UI · Server Actions · cron

Neon Postgres
metadata · jobs · logs

Lokale worker
laptop / NAS / VM
Claude Code + MCP

GitHub
jouw repo

Scrum4Me — architectuur (lokaal & veilig)
\ No newline at end of file +

Jouw kant (lokaal)

Scrum4Me-stack (managed)

Prisma + SSE

git push

HTTPS

job claim + LISTEN/NOTIFY

Jij in je browser

Vercel
UI · Server Actions · cron

Neon Postgres
metadata · jobs · logs

Lokale worker
laptop / NAS / VM
Claude Code + MCP
jobs: GRILL · PLAN · IMPL

GitHub
jouw repo

Scrum4Me — architectuur (lokaal & veilig)
\ No newline at end of file diff --git a/public/diagrams/architecture-light.svg b/public/diagrams/architecture-light.svg index 02691d1..4675a40 100644 --- a/public/diagrams/architecture-light.svg +++ b/public/diagrams/architecture-light.svg @@ -1 +1 @@ -

Jouw kant (lokaal)

Scrum4Me-stack (managed)

Prisma + SSE

git push

HTTPS

job claim + LISTEN/NOTIFY

Jij in je browser

Vercel
UI · Server Actions · cron

Neon Postgres
metadata · jobs · logs

Lokale worker
laptop / NAS / VM
Claude Code + MCP

GitHub
jouw repo

Scrum4Me — architectuur (lokaal & veilig)
\ No newline at end of file +

Jouw kant (lokaal)

Scrum4Me-stack (managed)

Prisma + SSE

git push

HTTPS

job claim + LISTEN/NOTIFY

Jij in je browser

Vercel
UI · Server Actions · cron

Neon Postgres
metadata · jobs · logs

Lokale worker
laptop / NAS / VM
Claude Code + MCP
jobs: GRILL · PLAN · IMPL

GitHub
jouw repo

Scrum4Me — architectuur (lokaal & veilig)
\ No newline at end of file diff --git a/public/screenshots/ideas-detail.png b/public/screenshots/ideas-detail.png new file mode 100644 index 0000000..c4c5a4d Binary files /dev/null and b/public/screenshots/ideas-detail.png differ diff --git a/public/screenshots/ideas-table.png b/public/screenshots/ideas-table.png new file mode 100644 index 0000000..8c900c6 Binary files /dev/null and b/public/screenshots/ideas-table.png differ diff --git a/public/screenshots/insights.png b/public/screenshots/insights.png new file mode 100644 index 0000000..ed7b812 Binary files /dev/null and b/public/screenshots/insights.png differ diff --git a/public/screenshots/product-backlog.jpg b/public/screenshots/product-backlog.jpg deleted file mode 100644 index 1b54f19..0000000 Binary files a/public/screenshots/product-backlog.jpg and /dev/null differ diff --git a/public/screenshots/product-backlog.png b/public/screenshots/product-backlog.png new file mode 100644 index 0000000..ea9f95e Binary files /dev/null and b/public/screenshots/product-backlog.png differ diff --git a/public/screenshots/producten.png b/public/screenshots/producten.png new file mode 100644 index 0000000..2370a30 Binary files /dev/null and b/public/screenshots/producten.png differ diff --git a/public/screenshots/solo-paneel.jpg b/public/screenshots/solo-paneel.jpg deleted file mode 100644 index b003cdf..0000000 Binary files a/public/screenshots/solo-paneel.jpg and /dev/null differ diff --git a/public/screenshots/solo.png b/public/screenshots/solo.png new file mode 100644 index 0000000..a93744b Binary files /dev/null and b/public/screenshots/solo.png differ diff --git a/public/screenshots/sprint-board.jpg b/public/screenshots/sprint-board.jpg deleted file mode 100644 index df98494..0000000 Binary files a/public/screenshots/sprint-board.jpg and /dev/null differ diff --git a/public/screenshots/sprint.png b/public/screenshots/sprint.png new file mode 100644 index 0000000..ea9cdb8 Binary files /dev/null and b/public/screenshots/sprint.png differ