project-context
Klassenzeit project structure, conventions, tooling, and workflows for context-aware assistance.
When & Why to Use This Skill
The Klassenzeit Project Context skill is designed to provide AI agents with a comprehensive understanding of a specific monorepo environment. By defining the project structure, technology stack (Spring Boot, React, PostgreSQL), and development workflows, it enables high-precision, context-aware assistance. This skill ensures that Claude can navigate the codebase, follow established coding conventions, and utilize project-specific tooling effectively, significantly reducing onboarding time and errors in AI-generated code.
Use Cases
- AI Agent Onboarding: Quickly initialize Claude's understanding of the Klassenzeit monorepo, including its directory layout, backend/frontend separation, and key configuration files.
- Automated Task Management: Enable the AI to manage the project's Kanban-style workflow by moving task files between todo, doing, and done directories while adhering to specific markdown formats.
- Workflow Execution: Guide the AI to use the centralized Makefile for running tests, formatting code, and managing local development services like Keycloak and PostgreSQL.
- Standardized Code Generation: Ensure all AI-suggested code follows the project's specific tech stack (Java 21, Vite 7, Tailwind CSS) and passes pre-commit hooks like Spotless and Biome.
| name | project-context |
|---|---|
| description | Klassenzeit project structure, conventions, tooling, and workflows for context-aware assistance. |
Project Context
Monorepo Structure
Klassenzeit/
├── backend/ # Spring Boot application (Java 21)
├── frontend/ # React 19 + Vite + TypeScript
├── e2e/ # Playwright E2E tests
├── tasks/ # Task management (kanban-style)
├── .claude/ # Claude Code configuration
├── .github/ # GitHub Actions workflows
├── Makefile # Centralized commands
└── CLAUDE.md # Project guidelines
Technology Stack
| Layer | Technology |
|---|---|
| Backend Framework | Spring Boot 3.x |
| Backend Language | Java 21 |
| Database | PostgreSQL 17 |
| Auth | Keycloak |
| Frontend Framework | React 19 |
| Build Tool | Vite 7 |
| Styling | Tailwind CSS + shadcn/ui |
| Testing | JUnit, Vitest, Playwright |
Pre-commit Hooks
Defined in .pre-commit-config.yaml:
Backend
spotless-check: Code formatting (Google Java Format)checkstyle: Code style rulespmd: Static analysisspotbugs: Bug detection
Frontend
biome-check: Linting + formattingfrontend-typecheck: TypeScript validation
Run manually: uv run pre-commit run --all-files
Task Management Workflow
tasks/
├── todo/ # Not started
│ ├── backend/
│ ├── frontend/
│ └── global/
├── doing/ # In progress
│ ├── backend/
│ ├── frontend/
│ └── global/
└── done/ # Completed
├── backend/
├── frontend/
└── global/
Task File Format
# Task Title
## Description
What needs to be done and why.
## Acceptance Criteria
- [ ] Criterion 1
- [ ] Criterion 2
## Notes
Progress updates, blockers, related commits.
## Completion Notes (add when done)
What was implemented, key decisions, issues encountered.
Workflow
- todo -> doing: Move file when starting work
- doing -> done: Move file when complete, add completion notes
Key Configuration Files
| File | Purpose |
|---|---|
CLAUDE.md |
Project guidelines for Claude Code |
.pre-commit-config.yaml |
Pre-commit hook definitions |
Makefile |
Centralized development commands |
lighthouserc.json |
Lighthouse CI configuration |
.github/workflows/ci.yml |
CI/CD pipeline |
Common Make Commands
make dev # Start services + backend
make frontend # Start frontend dev server
make services-up # Start PostgreSQL + Keycloak
make services-down # Stop services
make test # Run all unit tests
make test-backend # Backend tests only
make test-frontend # Frontend tests only
make test-e2e # E2E tests
make lint # Check all linting
make format # Format all code
make help # Show all commands
Environment Setup
Required .env files:
- Root: Database config for Docker
frontend/.env: API URL configuratione2e/.env: Test configuration
Database Connection (Local Dev)
Host: localhost:5432
Database: klassenzeit
User: klassenzeit
Password: klassenzeit
Project-Specific Rules
- Use
uvfor Python commands (notpythondirectly) - Never run
git add,commit, orpushautomatically - Follow task management workflow in
tasks/directory - Reference CLAUDE.md for project-specific standards