Files
fete/specs/001-monorepo-setup/spec.md
nitrix 6aeb4b8bca Migrate project artifacts to spec-kit format
- Move cross-cutting docs (personas, design system, implementation phases,
  Ideen.md) to .specify/memory/
- Move cross-cutting research and plans to .specify/memory/research/ and
  .specify/memory/plans/
- Extract 5 setup tasks from spec/setup-tasks.md into individual
  specs/001-005/spec.md files with spec-kit template format
- Extract 20 user stories from spec/userstories.md into individual
  specs/006-026/spec.md files with spec-kit template format
- Relocate feature-specific research and plan docs into specs/[feature]/
- Add spec-kit constitution, templates, scripts, and slash commands
- Slim down CLAUDE.md to Claude-Code-specific config, delegate principles
  to .specify/memory/constitution.md
- Update ralph.sh with stream-json output and per-iteration logging
- Delete old spec/ and docs/agents/ directories
- Gitignore Ralph iteration JSONL logs

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 20:19:41 +01:00

3.5 KiB

Feature Specification: Initialize Monorepo Structure

Feature: 001-monorepo-setup Created: 2026-03-06 Status: Implemented Source: Migrated from spec/setup-tasks.md

Note

: This is a setup task (infrastructure), not a user-facing feature. It establishes the repository structure as a prerequisite for all subsequent development work.

User Scenarios & Testing

User Story 1 - Developer can scaffold and build the monorepo (Priority: P1)

A developer cloning the repository for the first time can build both the backend and frontend from a clean checkout with no source code beyond the scaffold.

Why this priority: Without a working monorepo structure, no further development or CI work is possible.

Independent Test: Clone the repository, run ./mvnw verify in backend/ and npm run build in frontend/ — both must succeed against the empty scaffold.

Acceptance Scenarios:

  1. Given a fresh clone of the repository, When the developer inspects the root, Then separate backend/ and frontend/ directories exist alongside shared top-level files (README, Dockerfile, CLAUDE.md, LICENSE, .gitignore).
  2. Given the backend/ directory, When the developer runs ./mvnw verify, Then the build succeeds with no source code beyond the hexagonal/onion architecture scaffold using Java (latest LTS), Spring Boot, and Maven.
  3. Given the frontend/ directory, When the developer runs npm run build, Then the build succeeds with the Vue 3 + Vite + TypeScript + Vue Router scaffold.
  4. Given the repository root, When the developer inspects .gitignore, Then build artifacts, IDE files, and dependency directories for both Java/Maven and Node/Vue are covered.

Edge Cases

  • What happens when a developer uses an older Java version? [NEEDS EXPANSION]
  • How does the scaffold behave with no .env or environment variables set? [NEEDS EXPANSION]

Requirements

Functional Requirements

  • FR-001: Repository MUST have a backend/ directory containing a Java Spring Boot Maven project with hexagonal/onion architecture scaffold.
  • FR-002: Repository MUST have a frontend/ directory containing a Vue 3 project with Vite, TypeScript, and Vue Router.
  • FR-003: Repository MUST include shared top-level files: README, Dockerfile, CLAUDE.md, LICENSE (GPL), and .gitignore.
  • FR-004: Both projects MUST build successfully from an empty scaffold (no application source code required).
  • FR-005: .gitignore MUST cover build artifacts, IDE files, and dependency directories for both Java/Maven and Node/Vue.

Key Entities

  • Monorepo: Single git repository containing both backend/ and frontend/ as separate projects sharing a root.

Success Criteria

Measurable Outcomes

  • SC-001: cd backend && ./mvnw verify exits 0 on a clean checkout.
  • SC-002: cd frontend && npm run build exits 0 on a clean checkout.
  • SC-003: All six acceptance criteria are checked off (all complete — status: Implemented).

Acceptance Criteria (original)

  • Single repository with backend/ and frontend/ directories
  • Backend: Java (latest LTS), Spring Boot, Maven, hexagonal/onion architecture scaffold
  • Frontend: Vue 3 with Vite as bundler, TypeScript, Vue Router
  • Shared top-level files: README, Dockerfile, CLAUDE.md, LICENSE (GPL), .gitignore
  • Both projects build successfully with no source code (empty scaffold)
  • .gitignore covers build artifacts, IDE files, and dependency directories for both Java/Maven and Node/Vue