Files
kochwas/docs/superpowers/plans/2026-04-17-kochwas-overview.md
2026-04-17 14:59:49 +02:00

2.4 KiB

Kochwas — Implementation Plan Overview

Goal: Deliver the Kochwas MVP per the design spec in six phases, each ending in runnable, testable software.

Reference: docs/superpowers/specs/2026-04-17-kochwas-design.md


Phase Map

# Name Outcome Plan file
1 Foundations Scaffolded SvelteKit app, SQLite schema with FTS5, Docker dev setup, pure-function modules (ingredient-parser, scaler, json-ld-extractor, iso8601) all unit-tested, /api/health endpoint 2026-04-17-kochwas-phase-1-foundations.md
2 Import Pipeline Working recipe import from URL to DB incl. images, preview endpoint, profile CRUD, integration tests with real HTML fixtures 2026-04-xx-kochwas-phase-2-import.md
3 Core UI & Local Search RecipeView component (mobile-first), Search page with FTS5 results, profile selector, rating/favorite/cooked actions 2026-04-xx-kochwas-phase-3-ui.md
4 Web Search & Admin SearXNG integration, whitelist admin UI, preview-before-save flow, profile admin 2026-04-xx-kochwas-phase-4-web-admin.md
5 Advanced Features Comments, tag editor, cooking-log view, print view, rename/delete, backup/restore ZIP 2026-04-xx-kochwas-phase-5-advanced.md
6 PWA & Polish Service worker + offline, Wake-Lock, install prompt, mobile-UX polish, E2E tests, prod Docker image 2026-04-xx-kochwas-phase-6-pwa.md

Each phase produces working software on its own. A phase is complete when all its tasks are checked off, tests pass, and a manual smoke-test on Docker Desktop succeeds.

Sequencing Rule

Phases are strictly sequential. Do not start Phase N+1 before Phase N is green (tests + smoke test).

Conventions (all phases)

  • Commits: each task ends with a single atomic commit. Commit messages follow conventional-commits (feat:, fix:, chore:, test:, docs:, refactor:).
  • Line endings: LF only (.gitattributes already in place).
  • Tests: Vitest for unit/integration, Playwright for E2E. Every pure function gets a unit test first (TDD).
  • Code style: Prettier + ESLint using SvelteKit defaults. No emojis in code unless requested.
  • Dev env: Local Docker Desktop for the SearXNG container; the SvelteKit app runs via npm run dev for fast iteration. Production Docker image built in Phase 6.
  • TypeScript strict mode on from the start. No any unless justified inline.