Developer Documentation
- Architecture - package ownership, dependency direction, and implemented boundaries.
- Data lifecycle - authority, artifacts, projections, publication, and retrieval.
- Runtime reliability - Temporal boundaries, replay, retries, and safe failure behavior.
- Extending HarborRAG - connectors, parsers, models, repositories, engine stages, and public surfaces.
- Testing - test layout, markers, quality gates, and real-system smoke checks.
- Deployment - local service stacks plus API, CLI, worker, and MCP images.
- Release process - maintainer-only publication sequence, version formats, and Trusted Publisher setup.
- Open-source publication guidelines - what belongs in public docs and what must stay private.
- Contributing - setup, review expectations, commits, and pull requests.
Development principles
- Keep provider-neutral data and errors in
harborrag-core; keep provider SDKs in harborrag-adapters.
- Prefer narrow dependency injection over a global settings object.
- Preserve source identity, permissions, content type, timestamps, and parser warnings across ingestion stages.
- Treat embedding model and dimension as part of a vector space’s identity.
- Require explicit tenant context on repository operations.
- Make default tests hermetic; put live checks behind opt-in smoke scripts.
- Redact secrets and bound logged content at every provider/observability boundary.
- Document implemented behavior separately from scaffolded intent.
Before opening a pull request, run the quality commands in CONTRIBUTING.md.