Skip to content

feat: plan 6 wedge specs (idea → planned) — opsx-ff artifacts for nextcloud-app, course-management, enrolment, certification, compliance-audit, dashboard#19

Merged
rubenvdlinde merged 6 commits into
developmentfrom
feat/wedge-specs-planned
May 11, 2026
Merged

feat: plan 6 wedge specs (idea → planned) — opsx-ff artifacts for nextcloud-app, course-management, enrolment, certification, compliance-audit, dashboard#19
rubenvdlinde merged 6 commits into
developmentfrom
feat/wedge-specs-planned

Conversation

@rubenvdlinde
Copy link
Copy Markdown
Contributor

Summary

Move the 6 wedge specs from idea to planned status by generating OpenSpec change artifacts (proposal + formal spec + design + tasks) for each. Per the workflow rule 'ADRs before specs', this PR depends on #18 (ADR acceptance) which is already merged.

Specs landed (in dependency order)

Spec RFC-2119 requirements Scenarios Implementation tasks Lines (design.md)
nextcloud-app 10 19 18 360
course-management 8 16 20 280
enrolment 7 13 18 212
certification 7 14 18 300
compliance-audit 8 17 22 380
dashboard 8 16 18 287

Total: 48 requirements, 95 GIVEN/WHEN/THEN scenarios, 114 implementable tasks, ~3,432 lines added.

ADR dependencies (all accepted on 2026-05-11)

  • ADR-002 — Content runtime: cmi5 + xAPI primary, SCORM compatibility shim
  • ADR-005 — EU AI Act compliance gate: feature-flag + audit trail per AI decision
  • ADR-008 — Immutable audit trail as architectural foundation

Each spec's depends_on_adrs frontmatter lists the applicable ADRs.

Design decisions made under uncertainty (no user-blocking questions)

  1. Compliance officer + HR role share the compliance dashboard (same KPI surface, both buyer-persona-aligned per WEDGE-PLAN.md).
  2. trend_12m in dashboard is a v0.1 stub (months-since-install = 0); real audit-trail-backed monthly query deferred to V1.
  3. scholiq-learner-profile schema is assumed/degraded-graceful by the dashboard role detection. A follow-up wedge spec will own that schema; the dashboard code path defaults to 'learner' when the schema/record is missing.

Out of scope (Phase 2-5 specs, deferred)

8 other specs stay at idea: assessment-engine, proctoring, grading-pta, opp-cycle, bron-rod-exchange, oso-transfer, absence-leerplicht, identity-federation. Their planning happens when the wedge ships and Phase 2 begins (per openspec/WEDGE-PLAN.md).

Next steps after this merges

  1. /opsx-apply per spec → Hydra builds each capability (one PR per spec).
  2. As each capability lands, the matching folder is moved from tests/wedge-scaffolds/scholiq-wedge.postman_collection.json into tests/integration/scholiq.postman_collection.json and its requests are enabled (TDD validation).
  3. After all 6 specs land + Newman fully green: first pilot deployment.

Move nextcloud-app from idea -> planned via opsx-ff.

Artifacts generated:
- proposal.md: scope, dependencies, risks
- specs/nextcloud-app/spec.md: formal RFC-2119 requirements + GIVEN/WHEN/THEN
- design.md: technical approach
- tasks.md: implementation breakdown

Depends on (accepted): ADR-005 (AI Act gate),
ADR-008 (audit trail). See openspec/WEDGE-PLAN.md for wedge sequencing.
Move course-management from idea -> planned via opsx-ff.

Artifacts generated:
- proposal.md: scope, dependencies, risks
- specs/course-management/spec.md: formal RFC-2119 requirements + GIVEN/WHEN/THEN
- design.md: technical approach
- tasks.md: implementation breakdown

Depends on (accepted): ADR-002 (cmi5+xAPI),
ADR-008 (audit trail). See openspec/WEDGE-PLAN.md for wedge sequencing.
Move enrolment from idea -> planned via opsx-ff.

Artifacts generated:
- proposal.md: scope, dependencies, risks
- specs/enrolment/spec.md: formal RFC-2119 requirements + GIVEN/WHEN/THEN
- design.md: technical approach
- tasks.md: implementation breakdown

Depends on (accepted): ADR-008 (audit trail). See openspec/WEDGE-PLAN.md
for wedge sequencing.
Move certification from idea -> planned via opsx-ff.

Artifacts generated:
- proposal.md: scope, dependencies, risks
- specs/certification/spec.md: formal RFC-2119 requirements + GIVEN/WHEN/THEN
- design.md: technical approach
- tasks.md: implementation breakdown

Depends on (accepted): ADR-002 (cmi5+xAPI), ADR-005 (AI Act gate),
ADR-008 (audit trail). See openspec/WEDGE-PLAN.md for wedge sequencing.
Move compliance-audit from idea -> planned via opsx-ff.

Artifacts generated:
- proposal.md: scope, dependencies, risks
- specs/compliance-audit/spec.md: formal RFC-2119 requirements + GIVEN/WHEN/THEN
- design.md: technical approach
- tasks.md: implementation breakdown

Depends on (accepted): ADR-002 (cmi5+xAPI), ADR-005 (AI Act gate),
ADR-008 (audit trail). See openspec/WEDGE-PLAN.md for wedge sequencing.
Move dashboard from idea -> planned via opsx-ff.

Artifacts generated:
- proposal.md: scope, dependencies, risks
- specs/dashboard/spec.md: formal RFC-2119 requirements + GIVEN/WHEN/THEN
- design.md: technical approach
- tasks.md: implementation breakdown

Depends on (accepted): ADR-002 (cmi5+xAPI), ADR-005 (AI Act gate),
ADR-008 (audit trail). See openspec/WEDGE-PLAN.md for wedge sequencing.
@github-actions
Copy link
Copy Markdown
Contributor

Quality Report — ConductionNL/scholiq @ 903bfa4

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

Coverage: 0% (0/3 statements)


Quality workflow — 2026-05-11 16:49 UTC

Download the full PDF report from the workflow artifacts.

@rubenvdlinde rubenvdlinde merged commit eff385c into development May 11, 2026
26 checks passed
@rubenvdlinde rubenvdlinde deleted the feat/wedge-specs-planned branch May 11, 2026 16:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant