Skip to content
This repository was archived by the owner on May 29, 2026. It is now read-only.

feat(openspec): actionitem-analytics-declarative-migration — second ADR-031 spec#147

Merged
rubenvdlinde merged 1 commit into
developmentfrom
feature/actionitem-analytics-declarative-migration
May 7, 2026
Merged

feat(openspec): actionitem-analytics-declarative-migration — second ADR-031 spec#147
rubenvdlinde merged 1 commit into
developmentfrom
feature/actionitem-analytics-declarative-migration

Conversation

@rubenvdlinde

Copy link
Copy Markdown
Contributor

Second ADR-031-aware spec on decidesk, sister to PR #146 (quorum-declarative-migration).

Spec, not implementation. Sanity-check first; the goal is to verify the ADR-031 + opsx-ff template applies consistently across migrations.

Honest reframing

The 2026-05-06 readiness audit listed ActionItemAnalyticsService → x-openregister-aggregations as one of five high-leverage decidesk migrations. Re-reading the source against ADR-031, the picture is more nuanced:

Method LOC State
getSummary($from, $to) ~12 Already declarative-first. Thin AggregationRunner dispatch over named aggregations on ActionItem (commit e8b1812).
getCompletionRates($limit) ~70 Migration target. Per-Meeting completion rate.
getMyItems($user) ~50 Stays imperative. User-specific filter + presentation bucketing. ADR-031 exception 2.

So one method to migrate, not three. Two are already right.

What this spec exercises

Artifacts (431 LOC total)

  • proposal.md — what / why / capabilities. Honest about the audit's overstatement.
  • design.md — Declarative-vs-imperative decision table for all three methods. Engine-dependency call-out. Controller wire-shape preservation note. Materialise-refresh risk surfaced.
  • tasks.md — schema-register patches first, controller rewrite, service-method deletion, retain-imperative verification step, materialise-refresh soft-gate test, frontend Playwright smoke step.

Sanity-check checklist

Notes

Markdown only. Worktree-built. Draft because it's a spec for sanity-check. Same admin-merge pattern as other Stage A/B work when you're ready.

…DR-031-aware spec

Specifies the migration of `ActionItemAnalyticsService::getCompletionRates()`
into `x-openregister-aggregations` + `x-openregister-calculations` on
the Meeting schema. The other two methods on the service stay as-is
per ADR-031:

- `getSummary()` — already declarative-first (thin AggregationRunner
  dispatch over named aggregations on ActionItem; commit e8b1812).
- `getMyItems()` — legitimately imperative (user-specific filter +
  presentation bucketing; ADR-031 exception 2).

So the "audit said this is the next service to migrate" reading
collapsed under closer inspection — the service is mostly already
right; one method needs migrating, two stay.

Engine-dependency: shares the cross-schema aggregation
(`@self.{relation}`) question with PR #146 (quorum-declarative-migration).
Task 1 here is a lighter spike than #146's, verifying the back-relation
direction (Meeting counting ActionItems where `meeting == @self.id`)
once the forward direction (Meeting → Participants) is confirmed.

Three artifacts:
- proposal.md (90 lines) — what / why / capabilities. Honest about the
  audit's overstatement.
- design.md (143 lines) — declarative-vs-imperative decision table for
  all three methods, engine-dependency call-out cross-referencing PR
  #146, controller wire-shape preservation note.
- tasks.md (172 lines) — schema-register patches first, controller
  rewrite, service-method deletion, retain-imperative verification step
  for getSummary + getMyItems, materialise-refresh soft-gate test.
@github-actions

github-actions Bot commented May 6, 2026

Copy link
Copy Markdown
Contributor

Quality Report — ConductionNL/decidesk @ dde04f4

Check PHP Vue Security License Tests
lint
phpcs
phpmd
psalm
phpstan
phpmetrics
eslint
stylelint
composer ✅ 100/100
npm
PHPUnit ⏭️
Newman ⏭️
Playwright ⏭️

Quality workflow — 2026-05-06 14:51 UTC

Download the full PDF report from the workflow artifacts.

@rubenvdlinde rubenvdlinde marked this pull request as ready for review May 7, 2026 05:20
@rubenvdlinde rubenvdlinde requested a review from Rem-Dam as a code owner May 7, 2026 05:20
@rubenvdlinde rubenvdlinde merged commit 85ebd1f into development May 7, 2026
30 of 39 checks passed
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant