Update docs for four-role multi-user model and tab layout #120
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "docs/user-roles-and-tabs"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Changes
docs/user-stories-auth.md: Full rewrite -- four roles, tab layout, onboarding flow, multi-tenancy data model, crew communication, delivery phases, open questionsdocs/ROADMAP.md: Updated from stale tickets 1-3 to reflect completed work (tickets 1-5) and active auth phases 1-4docs/app-architecture.md: Added Keycloak auth flow, Business model, per-user queues, role-based navigation, PropertyComment, PaperTrailREADME.md: Updated description, added roles table, fixed doc links, added testing-strategy linkdocs/user-story.md: Marked as historical with pointer to user-stories-auth.mdTest Plan
Review Checklist
Related Notes
ldraney/landscaping-assistant #107-- parent auth issuePR #120 Review
DOMAIN REVIEW
Domain: Documentation (Markdown, Mermaid diagrams, ERD data models, architecture docs)
This is a documentation-only PR updating 5 files (599 additions, 193 deletions) to align the project docs with a new four-role model (Client, Crew Member, Crew Lead, Admin). No code changes, no test impact, no security surface change.
Cross-document consistency check:
Data model inconsistency between user-stories-auth.md and app-architecture.md -- The
favoritedfield lives in different places:user-stories-auth.mdERD:favoritedis on theUSERtableapp-architecture.mdERD:favoritedis on theUSER_BUSINESSjoin tableThe
USER_BUSINESSplacement (app-architecture.md) is architecturally correct -- favoriting is a per-business action, not a global user attribute. The user-stories-auth.md ERD should match.rolefield duplication in user-stories-auth.md -- TheUSERtable hasroleAND theUSER_BUSINESSjoin table also hasrole. If role is per-business (which the multi-tenancy model implies), it should only be onUSER_BUSINESS. Having it on both tables invites divergence when code is written.Role/tab matrix -- Consistent across README, ROADMAP, app-architecture.md, and user-stories-auth.md. All four docs agree on the same role-to-tab mapping. The nav slot layout (Person centered at slot 3) is also consistent.
Mermaid diagrams -- Gantt chart, sequence diagrams, flowcharts, and ERDs all use valid Mermaid syntax. The dependency graph correctly shows P1 -> P2 -> P3 -> P4 chain with side dependencies for iOS and Apple enrollment.
Issue references -- All referenced Forgejo issue numbers (#107, #108, #109, #115, #116, #117, #118) exist and have matching titles.
Superseded PR -- PR body states this supersedes PR #114. PR #114 and its parent issue #113 are both still open. They should be closed if this PR fully replaces that work.
BLOCKERS
None. This is a documentation-only PR. No code, no secrets, no security surface. The BLOCKER criteria (test coverage for new functionality, unvalidated input, secrets, DRY auth violations) do not apply.
NITS
Data model inconsistency (favorited/role placement) -- See domain review items 1 and 2 above. These are doc-level inconsistencies that will cause confusion when the implementation starts. Recommend resolving before merge so the implementation tickets have a single source of truth for the schema.
Multi-Database doc dropped from README -- The README doc table removes
Multi-Database(docs/multi-database.md) but that file still exists on disk. If the doc is still relevant, keep the link. If it is obsolete, either delete the file or mark it historical (like user-story.md was handled). Silently dropping the link while keeping the file creates a discoverability gap.Trailing whitespace removal -- The diff removes a trailing blank line at the end of
README.md(line 44 in the old file). Fine, just noting it is unrelated to the stated scope.PR #114 / Issue #113 cleanup -- If this PR fully supersedes #114, both #114 and #113 should be closed (or #114 marked as superseded) to avoid stale open items in the tracker.
SOP COMPLIANCE
docs/user-roles-and-tabs. Convention requires{issue-number}-{kebab-case-purpose}(e.g.,119-update-docs-four-role-model). This branch does not include the issue number.d745727,058c9f2,4bfe6b7) have clear purpose-driven messages.PROCESS OBSERVATIONS
favoritedplacement androleduplication. When Phase 2 implementation starts, the developer will need to decide which doc is canonical. Resolving this now saves a round-trip later.VERDICT: APPROVED
The data model inconsistency and branch naming are real issues but non-blocking for a documentation PR. The role/tab matrix is internally consistent across all four docs, the Mermaid diagrams are syntactically valid, issue references all resolve, and no secrets or code changes are present. Recommend fixing the
favorited/roleplacement inconsistency and closing PR #114 before starting Phase 2 implementation work.Fixed review nits in
9cb3473:roleandfavoritedfromUSERentity in user-stories-auth.md -- they belong onUSER_BUSINESS(role is relative to a business, not global). Now consistent with app-architecture.md.multi-database.mdlink in README doc table.Remaining nits (not fixing):