Chore/repository hardening#134
Conversation
architecture.md claimed no service reads another's schema directly, but event/letter services do via read-only shadow entities backed by the shared `reader` Postgres role. Both README.md and architecture.md also said GenAI persists to Chroma "instead of" PostgreSQL, omitting that it owns a sixth `reports` schema where generated report text is actually written.
…l diagrams The three mandatory UML-style diagrams didn't exist for the current system - the only PNGs in the repo (docs/outdated/) model a pre-refactor 3-service topology and are unreferenced from any current doc. These are generated from Mermaid sources (docs/diagrams/*.mmd) so they can be regenerated instead of drifting silently again. Subsystem decomposition depicts the Kubernetes/Rancher deployment specifically (nginx ingress, oauth2-proxy gating only the web-client, per-service Bearer-JWT checks, two separate Postgres instances), sourced from the actual Helm values/templates rather than a blurry cross-environment abstraction. Use case and analysis object model are built from the client's perspective (navPolicy.ts's role table, types.ts's flat Role attribute, each feature's role-gated mutations) rather than the server's per-scope join-table entities, which don't reflect how the system actually presents roles to users. Styled closer to the retired docs/outdated/ diagrams: actor-specific use cases with a genuine «include», and an abstract Member with role subclasses carrying real operations.
Report generation only ever analyzes feedback entries plus RAG knowledge-base excerpts (services/py-genai-helper/reports.py) - it never reads attendance records, and member/team names are only resolved for display, not analyzed.
Contributors currently have to know each service's own invocation (gradlew from its own directory, pnpm from web-client/, docker compose specifically from infra/ so the override merges) with no single documented entrypoint. Adds up/down/logs/ps (compose lifecycle, always cd'd into infra/ so docker-compose.override.yml auto-merges), and test/lint/build that always run against everything (no per-service targets, kept deliberately simple), plus verify mirroring what CI checks per PR.
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: ⛔ Files ignored due to path filters (2)
📒 Files selected for processing (3)
🚧 Files skipped from review as they are similar to previous changes (1)
📝 WalkthroughWalkthroughThe change adds a root Makefile for Docker Compose and repository-wide checks, updates GenAI persistence and architecture documentation, and introduces Mermaid diagrams with regeneration guidance. ChangesRepository workflows and documentation
Estimated code review effort: 3 (Moderate) | ~20 minutes Suggested labels: Suggested reviewers: 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@docs/diagrams/use-case.mmd`:
- Around line 21-23: Update the Admin relationships in the use-case diagram to
match the documented role contract: include UC9 because it is available to both
Coach and Director, and remove or otherwise reconcile the Admin-only UC8a
relationship so Admin represents the union of those roles. Keep the Coach and
Director edges unchanged.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro Plus
Run ID: 82c7ecfb-1e11-41fa-bea1-539fdf6da73d
⛔ Files ignored due to path filters (3)
docs/diagrams/analysis-object-model.pngis excluded by!**/*.pngdocs/diagrams/subsystem-decomposition.pngis excluded by!**/*.pngdocs/diagrams/use-case.pngis excluded by!**/*.png
📒 Files selected for processing (3)
docs/diagrams/analysis-object-model.mmddocs/diagrams/subsystem-decomposition.mmddocs/diagrams/use-case.mmd
🚧 Files skipped from review as they are similar to previous changes (2)
- docs/diagrams/subsystem-decomposition.mmd
- docs/diagrams/analysis-object-model.mmd
| Coach --> UC5 & UC7 & UC6 & UC8 & UC9 & UC10 & UC11b | ||
| Admin --> UC5 & UC7 & UC6 & UC8 & UC8a & UC10 & UC11a & UC11b | ||
| Director --> UC6 & UC8 & UC9 & UC10 & UC11b |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟠 Major | ⚡ Quick win
Align Admin’s edges with the documented capability contract.
docs/architecture.md:53-58 says Admin is exactly the union of Coach and Director, but this diagram omits Admin’s UC9 edge even though both roles have it, while UC8a is shown as Admin-only. Either update the documentation or add the missing/generalized relationships so the diagram and role contract agree.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@docs/diagrams/use-case.mmd` around lines 21 - 23, Update the Admin
relationships in the use-case diagram to match the documented role contract:
include UC9 because it is available to both Coach and Director, and remove or
otherwise reconcile the Admin-only UC8a relationship so Admin represents the
union of those roles. Keep the Coach and Director edges unchanged.
ac62f69 to
10ec77e
Compare
I fixed some outstanding of the documentation and added a root level makefile for simplifications.
Closes #132
Summary by CodeRabbit
New Features
Documentation
reportsschema, while RAG documents are stored in the Chroma vector store.