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

docs(openspec): bring spec-coverage to zero (gate-16)#65

Merged
rubenvdlinde merged 1 commit into
developmentfrom
retrofit/coverage-to-zero-nct
May 25, 2026
Merged

docs(openspec): bring spec-coverage to zero (gate-16)#65
rubenvdlinde merged 1 commit into
developmentfrom
retrofit/coverage-to-zero-nct

Conversation

@rubenvdlinde

Copy link
Copy Markdown
Contributor

Summary

Brings nextcloud-app-template to 0 uncovered spec-coverage methods (gate-16), down from 29 (16 backend + 13 frontend). Since this is the fleet SCAFFOLD repo, the @spec examples written here are the reference new apps copy.

Breakdown (29 methods)

Annotated to existing specs (23):

  • Backend (16): DashboardController::{page,catchAll} -> dashboard-page; SettingsController::{index,create,load} + SettingsService::{getSettings,updateSettings,loadConfiguration} -> settings-management; DeepLinkRegistrationListener::handle -> deep-linking; InitializeSettings::run -> configuration-initialization; InitializeActions::run + ActionAuthService::{requireAction,can,getAllowedGroups,getMatrix,setMatrix} -> ADR-023.
  • Frontend (7): StatusBadge::normalised, ExampleModal::{onConfirm,onCancel}, ExampleWidget::mounted -> new scaffold-components cap; settings.js::{fetchSettings,saveSettings} -> new frontend-data-stores cap.

Reverse-spec'd - two new example capability specs:

  • openspec/specs/frontend-data-stores/spec.md - Pinia object store (configure/registerObjectType/fetchObjects), settings store, and initializeStores boot helper (5 REQs).
  • openspec/specs/scaffold-components/spec.md - runtime behaviour of the cell-renderer / modal / widget demos (3 REQs).

Excluded - pure plumbing (3, all in App.vue):

  • provide() - reactive sidebar-state channel wiring.
  • translateForApp() - i18n wrapper binding @nextcloud/l10n translate to the app id.
  • permissions - window.OC.currentUser.permissions passthrough.

These three are intentionally the canonical excludable examples for the fleet.

Verification

  • python3 csc.py <worktree> --mode report -> uncovered_count: 0.
  • All @spec referenced paths resolve; PHP files lint clean.

Annotate the 29 uncovered methods so every observable capability in the
scaffold carries an @SPEC reference. Because this is the fleet template,
the balance struck here is the reference for new apps.

Backend (16): annotate to the existing example specs / ADR-023.
Frontend (10): two new example capability specs — frontend-data-stores
(Pinia object/settings stores + boot initializer) and scaffold-components
(cell-renderer, modal, widget runtime behaviour).
Excluded (3, App.vue): provide() channel wiring, the i18n translate
wrapper, and the window.OC permissions passthrough — the canonical
plumbing-only exclude examples for template-derived apps.

Gate-16 now reports 0 uncovered methods.
@rubenvdlinde rubenvdlinde added the openspec OpenSpec-driven change label May 25, 2026
@rubenvdlinde rubenvdlinde requested a review from Rem-Dam as a code owner May 25, 2026 20:11
@rubenvdlinde rubenvdlinde added yolo Auto-merge when all phases pass retrofit Coverage/spec retrofit labels May 25, 2026
@rubenvdlinde rubenvdlinde requested a review from SudoThijn as a code owner May 25, 2026 20:11
@rubenvdlinde rubenvdlinde added the reverse-spec Reverse-engineered spec from code label May 25, 2026
@rubenvdlinde rubenvdlinde merged commit 4b64ffc into development May 25, 2026
8 of 17 checks passed
@github-actions

Copy link
Copy Markdown
Contributor

Quality Report — ConductionNL/nextcloud-app-template @ 4dc8538

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

Quality workflow — 2026-05-25 20:12 UTC

Download the full PDF report from the workflow artifacts.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

openspec OpenSpec-driven change retrofit Coverage/spec retrofit reverse-spec Reverse-engineered spec from code yolo Auto-merge when all phases pass

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant