# CLAUDE.md This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. ## Project Overview **Vergabe Teilnahme** is a web-based tender/bid management system (internal collaboration tool) that supports a company through the full lifecycle of public and private procurement bids — from initial research through post-award retrospective. The language of the application and all domain documentation is **German**. This repo is currently **pre-implementation**. The authoritative requirements are in `wiki/ProductRequirementsDocument.md`. ## Planned Tech Stack The .gitignore targets **Python** (Django, Flask, uv, Ruff, pytest). No framework or tooling has been selected yet — check for a `pyproject.toml`, `Pipfile`, or `requirements.txt` before assuming. ## Domain Model — Key Concepts The system manages **Ausschreibungen** (tenders) through 8 phases: | Phase | Name | |-------|------| | 1 | Recherche & Unterlagen bereitstellen | | 2 | Teilnahmeentscheidung treffen | | 3 | Detaillierte Durchsicht & offene Punkte | | 4 | Bieterfragen, Subunternehmer, offene Punkte klären | | 5 | Preismodell dokumentieren | | 6 | Unterlagen finalisieren | | 7 | Abgabe | | 8 | Zuschlag / Nachbetrachtung | Core entities: `Ausschreibung`, `Los` (lot), `Anforderung` (requirement), `Aufgabe` (task), `Bieterfrage` (bidder question), `Dokument`, `Subunternehmer`, `Preispunkt` (price point), `Marktbegleiter` (competitor), `Nachweis` (compliance certificate), `Referenz`, `Freigabe` (approval), `Nachbetrachtung` (retrospective). **Vergleichsgewicht** (comparison weight): price points carry a weight in [0.0, 2.0] (default 1.0). Weighted averages use `Σ(value × weight) / Σ(weight)`; points with weight 0.0 are excluded from averages entirely. ## Custodian State Hub This repo is tracked by the Custodian State Hub. At session start inside this repo, call `get_domain_summary("")` via the `state-hub` MCP tool. End every non-trivial session with `add_progress_event()`.