Review: Communications tab (admin): incoming management

review-1827-2026-07-18-b Review

review ready

Verdict: READY

RE-REVIEW. All previously flagged blockers have been resolved. Traceability gaps are known and low-priority.

Template Completeness

  • [x] Type (Feature)
  • [x] Lineage
  • [x] Repo
  • [x] User Story
  • [x] Context
  • [x] Dependencies
  • [x] File Targets
  • [x] Feature Flag (None)
  • [x] Acceptance Criteria
  • [x] Test Expectations
  • [x] Constraints
  • [x] Checklist
  • [x] Related

Traceability

  • [x] story:communications label present
  • [ ] story note MISSING from project-iss user-stories table — however, US-5.4 in repo docs/user-stories.md covers this exactly. Known low-priority gap; story IS documented in-repo.
  • [x] arch:rails label present
  • [ ] arch note MISSING — no arch-rails note in pal-e-docs. Known low-priority gap; arch:rails is a technology label used across dozens of tickets, not a novel component.
  • [x] Forgejo issue — #57 open, valid

File Targets

  • [x] app/controllers/communications_controller.rb — verified: admin branch renders :admin_index (line 16), data loading to be fleshed out
  • [x] app/views/communications/admin_index.html.erb — verified: exists as placeholder, references ticket #57
  • [x] app/views/communications/_inbox_card.html.erb — new partial (to be created), no conflict
  • [x] app/assets/stylesheets/communications.css — verified: exists with lead/client card styles, inbox styles to be added

Repo Placement

OK. Single repo (ldraney/intelligentstaffingsystems). Forgejo issue filed on same repo.

Dependencies

  • #54 (Appointment scheduling) — documented in Dependencies section. Board item #1824 in backlog. ACs properly make appointment display optional/graceful.
  • #55 (Live DM) — listed in Related. Not a blocker: Message model and messages inbox already exist on main.
  • #52 (Communications lead/client) — done (board item #1822). Provides the route and controller branching this ticket extends.

Acceptance Criteria

8 ACs, all testable by an agent. Role-based rendering (AC1, AC8) verifiable via endpoint tests with stubbed sessions. Filter behavior (AC4) properly conditioned on Appointment model existence. Quick actions (AC5-7) are link presence checks. Sort order (AC2) testable via fixture ordering. No ambiguity.

Blast Radius

Existing messages/inbox.html.erb provides admin DM thread list. This ticket adds a higher-level unified view. Constraint "Must not duplicate DM thread UI" plus "link to those controllers" correctly delineates boundary. No collision risk — communications admin_index aggregates; messages inbox drills into DM threads.

Decomposition Assessment

4 file targets in 1 repo, 8 ACs (all related view/controller work), estimated agent time well under 5 minutes. No decomposition needed.

Recommendation

No action needed. Ticket is ready for implementation.

Previous Review Issues — Resolution Status

  • [x] File target mismatch (inbox.html.erb vs admin_index.html.erb) — FIXED: now targets existing admin_index.html.erb
  • [x] Dependency on #54 for appointment data — FIXED: Dependencies section added, ACs graceful/optional
  • [x] Traceability gaps — acknowledged known low-priority gaps, not blocking