Skip to content

Latest commit

 

History

History
99 lines (74 loc) · 4.45 KB

File metadata and controls

99 lines (74 loc) · 4.45 KB

Audiences — Kamerplanter

Bounded context

Kamerplanter is a self-hosted, multi-tenant plant lifecycle management system (Python/FastAPI backend, React frontend, a RAG knowledge service, ArangoDB + PostgreSQL/pgvector + TimescaleDB + Redis, deployed via Docker / Kubernetes / Helm / Skaffold) covering seed-to-harvest grow management plus a Home Assistant integration.

Inside the boundary

  • The backend, frontend, and knowledge service under src/
  • The deployment stack (docker-compose*.yml, helm/, skaffold.yaml)
  • The Home-Assistant-facing API contract consumed by kamerplanter-ha
  • The data adapters (GBIF, Perenual, CSV/iCal)

Outside the boundary

  • The kamerplanter-ha custom integration itself (separate repo; consumes this API)
  • External botanical data providers and LLM backends (integrated, not owned)
  • The operator's own hardware / cluster

Audiences

Each entry: label, relationship category, interaction surface, expectation, documentation track (user-docs or developer-docs per spec/project/docs-audience-tracks/), confirmed/assumed, criticality.

Direct consumers

  • Home grower / hobby gardener / houseplant ownercategory: direct-consumer · surface: the web UI, adaptive care reminders, the knowledge assistant · expects: guidance scaled to skill level (beginner/intermediate/expert), reliable season- and hemisphere-aware reminders, accurate plant and nutrient data · track: user-docs · status: assumed · criticality: primary

  • Community-garden administratorcategory: direct-consumer · surface: the web UI with role-based access (admin/grower/viewer), shared gardens, the invitation system · expects: tenant isolation, role management, shared-responsibility workflows · track: user-docs · status: assumed · criticality: primary

Operators

  • Self-hostercategory: operator · surface: Docker Compose / Kubernetes / Helm / Skaffold, .env configuration, the multi-service data stack (ArangoDB, PostgreSQL/pgvector, TimescaleDB, Redis) · expects: reproducible deploy, an upgrade path, backup and retention controls, resource guidance · track: developer-docs · status: assumed · criticality: primary

  • Home Assistant integratorcategory: operator · surface: the Home-Assistant-facing API for sensor-data import and actuator control (consumed by kamerplanter-ha) · expects: a stable API contract for sensors and actuators · track: developer-docs · status: assumed · criticality: secondary

Contributors / maintainers

  • Maintainer (nolte)category: contributor · surface: the monorepo (backend / frontend / knowledge service), CI, the specs under spec/ · expects: green CI and spec-grounded changes · track: developer-docs · status: assumed · criticality: primary

  • Claude Code as co-authorcategory: contributor · surface: CLAUDE.md, .claude/, spec/, the Taskfile · expects: deterministic task targets and readable conventions · track: developer-docs · status: assumed · criticality: secondary

Governing parties

  • GDPR / data-protectioncategory: governing · surface: personal-data handling, retention policies, the self-hosted-private design · expects: lawful processing, retention enforcement, data-subject rights · track: developer-docs · status: assumed · criticality: secondary

Indirect audiences

  • External botanical / data providers (GBIF, Perenual)category: indirect · surface: the enrichment adapters that call their APIs · expects (without knowing): correct API usage, attribution, rate-limit respect · track: developer-docs · status: assumed · criticality: peripheral

Revisit triggers

Re-run audience-identify revisit when any of the following changes:

  • A hosted / SaaS offering is introduced (the self-hosted-only assumption breaks).
  • A new external integration surface appears (a public API, a second smart-home platform, a mobile app).
  • A regulated data class enters scope beyond today's personal-data handling.
  • An external contributor pattern emerges (guest contributors, plugins).