Add validation column to board schema and API #241

Closed
opened 2026-03-28 19:17:21 +00:00 by forgejo_admin · 1 comment

Type

Feature

Lineage

  • Board: board-pal-e-docs
  • Story: story:superuser-maintain
  • Arch: arch:board-api
  • Enables: validation-gate hook, Validation SOP enforcement

Repo

forgejo_admin/pal-e-api

User Story

As the PM, I need a validation column between needs_approval and done so that merged work goes through production validation before it's considered done. Currently items jump from needs_approval to done, skipping validation entirely.

Context

The sop-board-workflow defines a validation column but the board API doesn't implement it. The update_board_item and create_board_item endpoints accept: backlog, todo, next_up, in_progress, needs_approval, qa, done. The validation column is missing.

The column ordering should be: backlog → todo → next_up → in_progress → qa → needs_approval → validation → done.

File Targets

  • src/pal_e_docs/schemas.py — Add validation to the BoardColumn enum (between needs_approval and done)
  • src/pal_e_docs/routes/boards.py — Ensure sync operations handle the new column
  • alembic/ — Migration to add the enum value if stored in DB (check if column is a DB enum or Python-only)

Acceptance Criteria

  • update_board_item(column="validation") works via API
  • create_board_item(column="validation") works via API
  • list_board_items(column="validation") returns items in the column
  • sync_board handles the new column correctly
  • Existing board items in other columns are unaffected

Test Expectations

  • Unit test: create item in validation column
  • Unit test: move item to validation column
  • Unit test: list items filtered by validation column
  • Run pytest tests/ — all existing tests pass + new tests pass

Constraints

  • Column must be ordered between needs_approval and done in the enum
  • Must not break any existing board operations
  • The MCP SDK list_board_items description needs the new column in the docstring

Checklist

  • Update schema enum
  • Add migration if needed
  • Update API docstrings
  • Add tests
  • Verify existing tests pass
  • PR opened
  • sop-board-workflow — defines the validation column semantics
  • convention-validation-checkpoints — what validation means
### Type Feature ### Lineage - Board: board-pal-e-docs - Story: story:superuser-maintain - Arch: arch:board-api - Enables: validation-gate hook, Validation SOP enforcement ### Repo `forgejo_admin/pal-e-api` ### User Story As the PM, I need a `validation` column between `needs_approval` and `done` so that merged work goes through production validation before it's considered done. Currently items jump from needs_approval to done, skipping validation entirely. ### Context The `sop-board-workflow` defines a `validation` column but the board API doesn't implement it. The `update_board_item` and `create_board_item` endpoints accept: backlog, todo, next_up, in_progress, needs_approval, qa, done. The `validation` column is missing. The column ordering should be: backlog → todo → next_up → in_progress → qa → needs_approval → validation → done. ### File Targets - `src/pal_e_docs/schemas.py` — Add `validation` to the `BoardColumn` enum (between `needs_approval` and `done`) - `src/pal_e_docs/routes/boards.py` — Ensure sync operations handle the new column - `alembic/` — Migration to add the enum value if stored in DB (check if column is a DB enum or Python-only) ### Acceptance Criteria - [ ] `update_board_item(column="validation")` works via API - [ ] `create_board_item(column="validation")` works via API - [ ] `list_board_items(column="validation")` returns items in the column - [ ] `sync_board` handles the new column correctly - [ ] Existing board items in other columns are unaffected ### Test Expectations - [ ] Unit test: create item in validation column - [ ] Unit test: move item to validation column - [ ] Unit test: list items filtered by validation column - [ ] Run `pytest tests/` — all existing tests pass + new tests pass ### Constraints - Column must be ordered between needs_approval and done in the enum - Must not break any existing board operations - The MCP SDK `list_board_items` description needs the new column in the docstring ### Checklist - [ ] Update schema enum - [ ] Add migration if needed - [ ] Update API docstrings - [ ] Add tests - [ ] Verify existing tests pass - [ ] PR opened ### Related - `sop-board-workflow` — defines the validation column semantics - `convention-validation-checkpoints` — what validation means
Author
Owner

Scope Review: BLOCK

Review note: review-602-2026-03-28

The work described in this issue has already been completed.

Evidence:

  • BoardColumn enum in models.py already includes validation (line 30)
  • BoardColumnType Literal in schemas.py already includes "validation" (line 233)
  • Alembic migration r8m9n0o1p2q3_add_validation_board_column.py exists
  • Tests exist and pass: test_board_item_validation_column, test_board_item_filter_validation_column
  • Prior board items #522 (pal-e-api#232) and #524 (pal-e-api#233) completed this work and are in done

Recommend closing as duplicate.

Discovered scope: MCP tool docstrings in pal-e-mcp are stale — list_board_items, create_board_item, update_board_item descriptions don't mention validation column. Recommend a new ticket on forgejo_admin/pal-e-mcp.

## Scope Review: BLOCK Review note: `review-602-2026-03-28` **The work described in this issue has already been completed.** Evidence: - `BoardColumn` enum in `models.py` already includes `validation` (line 30) - `BoardColumnType` Literal in `schemas.py` already includes `"validation"` (line 233) - Alembic migration `r8m9n0o1p2q3_add_validation_board_column.py` exists - Tests exist and pass: `test_board_item_validation_column`, `test_board_item_filter_validation_column` - Prior board items #522 (pal-e-api#232) and #524 (pal-e-api#233) completed this work and are in `done` **Recommend closing as duplicate.** Discovered scope: MCP tool docstrings in `pal-e-mcp` are stale — `list_board_items`, `create_board_item`, `update_board_item` descriptions don't mention `validation` column. Recommend a new ticket on `forgejo_admin/pal-e-mcp`.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
forgejo_admin/pal-e-api#241
No description provided.