Files
crm-system/specs/current/tasks.md
T

10 KiB

leocrm — Task-Graph (v0.1)

Phasen & Reihenfolge

B0 Setup          B1 Requirements       B2 Architecture       B3 Scaffold        B4 Auth         B5 Companies
─────────         ─────────────         ──────────────        ──────────         ──────          ──────────
repo+git          requirements.md       architecture.md       pyproject+req.txt  user-model      company-model
.env.example      design.md             (parallel)            app/main.py        auth_service    company_service
.gitignore        tasks.md                                    Dockerfile         /api/auth/*     /api/companies/*
README                                                    docker-compose       login-form      companies-list
init-commit      plan-approval                              commit+pushed       logout          form+detail
                                                       →  B4                                                ↓
                                                                                                       B6 Contacts
                                                                                                       ───────────
                                                                                                       contact-model
                                                                                                       contact_service
                                                                                                       /api/contacts/*
                                                                                                       contacts-form+detail
                                                                                                                  ↓
                                                                                                          B7 Test+Runtime
                                                                                                          ───────────────
                                                                                                          15+ pytest tests
                                                                                                          server-start
                                                                                                          /api/health = 200
                                                                                                          test_report.md
                                                                                                          runtime_report.md
                                                                                                                            ↓
                                                                                                                   B8 Deploy-Prep
                                                                                                                   ──────────────
                                                                                                                   coolify project
                                                                                                                   compose verified
                                                                                                                   env.md, runbook.md
                                                                                                                   rollback.md
                                                                                                                   quality-reviewer
                                                                                                                                 ↓
                                                                                                                            B9 Deploy
                                                                                                                            ────────
                                                                                                                            coolify service
                                                                                                                            deploy trigger
                                                                                                                            running:healthy
                                                                                                                            release_auditor
                                                                                                                            user-report

Tasks (atomar, klein, testbar)

ID Block Task Abhängigkeit Geschätzter Aufwand
T-01 B3 pyproject.toml + requirements.txt mit allen Pinned-Deps 5 min
T-02 B3 app/main.py Skeleton (FastAPI-App, leere Router, Health-Endpoint) T-01 5 min
T-03 B3 Dockerfile + docker-compose.yml + .dockerignore + .env.example T-01 5 min
T-04 B3 README.md + .gitignore + LICENSE 3 min
T-05 B3 Init-Commit + Push zu Forgejo (branch=main) T-01..T-04 2 min
T-06 B4 app/db/models.py (User, Company, Contact) T-02 8 min
T-07 B4 app/db/session.py + app/db/init_db.py (mit seed) T-06 5 min
T-08 B4 app/schemas/auth.py (LoginIn) + app/services/auth_service.py T-06 5 min
T-09 B4 app/routes/api_routes.py: /api/health + /api/auth/login + /api/auth/logout T-08 8 min
T-10 B4 app/routes/html_routes.py: /login + /logout + base.html + login.html T-09 8 min
T-11 B4 Auth-Middleware + current_user-Dependency T-09, T-10 5 min
T-12 B4 Commit B4 + Push + lokaler Server-Test T-11 5 min
T-13 B5 app/schemas/company.py (CompanyIn, CompanyOut) T-06 3 min
T-14 B5 app/services/company_service.py (list, get, create, update, delete, count) T-13 8 min
T-15 B5 app/routes/api_routes.py: /api/companies/* (alle 5 Endpoints) T-14 8 min
T-16 B5 app/routes/html_routes.py: /companies + /companies/new + /companies/{id} + /companies/{id}/edit + /companies/{id}/delete T-15 12 min
T-17 B5 app/templates/companies/*.html + dashboard.html mit Companies-Count T-16 10 min
T-18 B5 Commit B5 + Push T-17 2 min
T-19 B6 app/schemas/contact.py T-06 3 min
T-20 B6 app/services/contact_service.py T-19 8 min
T-21 B6 app/routes/api_routes.py: /api/contacts/* T-20 8 min
T-22 B6 app/routes/html_routes.py: /contacts/* + Cascade-Delete-View T-21 10 min
T-23 B6 app/templates/contacts/*.html + dashboard.html mit Contacts-Count T-22 8 min
T-24 B6 Commit B6 + Push T-23 2 min
T-25 B7 tests/conftest.py (TestClient + in-memory-DB) T-24 5 min
T-26 B7 tests/test_health.py (2 Tests) T-25 3 min
T-27 B7 tests/test_auth.py (3 Tests: happy, wrong-pw, no-creds) T-25 5 min
T-28 B7 tests/test_companies_api.py (5 Tests) T-25 8 min
T-29 B7 tests/test_contacts_api.py (5 Tests + 1 Cascade-Test) T-25 10 min
T-30 B7 tests/test_html_smoke.py (3 Tests: redirect-when-anon, login-form, dashboard-renders) T-25 5 min
T-31 B7 pytest ausführen, alle 18 Tests grün, test_report.md schreiben T-26..T-30 5 min
T-32 B7 uvicorn app.main:app starten, /api/health=200, /api/auth/login, 5 Endpoints testen, runtime_report.md schreiben T-31 5 min
T-33 B7 Commit B7 + Push T-32 2 min
T-34 B8 deploy/env.md (Variablen-Doku) 3 min
T-35 B8 deploy/healthcheck.md (Coolify-Config) 3 min
T-36 B8 deploy/runbook.md (Start/Stop/Logs/Restart/Update) 5 min
T-37 B8 deploy/rollback.md (Schritte + Coolify-Rollback) 5 min
T-38 B8 docker build lokal: Image < 300 MB, Container startet T-03 5 min
T-39 B8 quality_reviewer über alle Artefakte, findings.md T-33..T-38 10 min
T-40 B8 Coolify: Projekt anlegen via coolify_action=projects_create 3 min
T-41 B8 Coolify: Service/Compose-Ressource erstellen via coolify_action=resources_create T-40 5 min
T-42 B8 Commit B8 + Push T-41 2 min
T-43 B9 Coolify: ENV LEOCRM_SECRET_KEY setzen via coolify_action=security_envs_update T-41 2 min
T-44 B9 Coolify: Domain setzen (PATCH application) T-41 2 min
T-45 B9 Coolify: Deploy auslösen POST /api/v1/deploy T-44 3 min
T-46 B9 Polling: Service running:healthy T-45 3 min
T-47 B9 Public-Smoke: GET https://leocrm.media-on.de/api/health → 200 T-46 2 min
T-48 B9 release_auditor: final audit, next-steps.md T-47 5 min
T-49 B9 Final-Commit + User-Report T-48 3 min

Quality-Gates (zwischen Blocks)

Gate Trigger Aktion
G1 B0 → B1 project_registry.register, orchestrator_state.phase=intake
G2 B1 → B2 quality_reviewer über requirements.md, design.md, tasks.md
G3 B2 → B3 plan_mode_guard set mode=implementation_allowed (nach User-Approval)
G4 B3 → B4 docker build OK, app startet, /api/health=200
G5 B4 → B5 3 Auth-Tests grün, Login-HTML rendert
G6 B5 → B6 5 Company-API-Tests grün, List/Detail-HTML rendert
G7 B6 → B7 5 Contact-API-Tests grün, Cascade-Delete-Test grün
G8 B7 → B8 18 Tests grün, Runtime-Report geschrieben, plan_mode=runtime_verification_allowed
G9 B8 → B9 quality_reviewer OK, plan_mode=deployment_preparation_allowed → release_handoff_allowed
G10 B9 → Done release_auditor OK, /api/health public=200

Parallelisierungsmöglichkeiten

  • B4-T-09 (api) und T-10 (html) parallelisierbar
  • B5-T-15 (api) und T-16 (html) parallelisierbar
  • B6-T-21 (api) und T-22 (html) parallelisierbar
  • B7: alle test_*.py parallel schreibbar
  • B8: alle deploy/*.md parallel schreibbar