Review: API Boards + Board Items -- 12 endpoints

review-1568-2026-06-23 Review

review needs-refinement

Verdict: NEEDS_REFINEMENT

Template Completeness

  • [x] Type -- Feature
  • [x] Lineage -- decomposed from paldocs#51, depends on #49 and #57
  • [x] Repo -- ldraney/paldocs
  • [x] User Story -- present, well-formed
  • [x] Context -- clear background on decomposition and MCP migration
  • [x] File Targets -- 3 files to create/modify, 3 files not-to-touch listed
  • [x] Feature Flag -- none (additive API routes, correct)
  • [x] Acceptance Criteria -- 5 criteria
  • [x] Test Expectations -- request specs, integration test, response shape comparison
  • [x] Constraints -- as_json pattern, JSON shape matching, no jbuilder
  • [x] Checklist -- present
  • [x] Related -- project, story, arch, upstream/sibling/downstream all listed

Traceability

  • [x] story:consolidation label -- story-paldocs-consolidation
  • [x] story note verified -- found in project-paldocs user-stories section
  • [x] arch:rails-api label -- present on board item
  • [ ] arch note MISSING -- [SCOPE] Create architecture note arch-rails-api for the Rails API component
  • [x] Forgejo issue -- https://forgejo.tail5b443a.ts.net/ldraney/paldocs/issues/58, open

File Targets

  • [x] app/controllers/api/boards_controller.rb -- to be created. api/ directory confirmed present from #57.
  • [x] app/controllers/api/board_items_controller.rb -- to be created. Same api/ directory.
  • [x] config/routes.rb -- to be modified. Has namespace :api block with notes routes from #57.
  • [x] app/controllers/api/base_controller.rb -- correctly listed as do-not-touch.
  • [x] app/models/ -- correctly listed as do-not-touch. BoardItem model exists. Boards are Notes.

Repo Placement

OK. Issue filed on ldraney/paldocs, all file targets in same repo. Single-repo change.

Dependencies

  • [x] Upstream #49 (schema ownership) -- closed/merged
  • [x] Upstream #57 (API namespace + notes controller) -- closed/merged
  • [x] Sibling #59 (projects/repos/tags/search API) -- open, no blocking dependency
  • [x] Downstream #54 (MCP server) -- open, sprint:3, correctly sequenced

Acceptance Criteria

5 criteria, all verifiable by an agent via request specs and JSON shape comparison.

Blast Radius

Existing UI controllers in separate namespace, no collision. Routes additive under namespace :api. Sync endpoint needs pal-e-docs Python source reference.

Decomposition Assessment

3 file targets in 1 repo. 5 AC. 12 endpoints following established pattern. No decomposition needed.

Recommendation

  • [SCOPE] Create architecture note arch-rails-api for the Rails API component. Used by #58, #59, and #54 but no backing note exists.