Skip to content

docs(openspec): OpenSpec pass batch 2, architecture and lifecycle changes - #1109

Merged
rubenvdlinde merged 16 commits into
developmentfrom
parity/openspec-pass-2
Sep 27, 2026
Merged

rubenvdlinde merged 16 commits into
developmentfrom
parity/openspec-pass-2

Conversation

@rubenvdlinde

Copy link
Copy Markdown
Contributor

OpenSpec pass for stackiq, batch 2 of 3: 11 changes for architecture and lifecycle, 19 matrix rows. Specs only, nothing is implemented. The decisions for every row, the reading of the rule and the defects found are in batch 1 (#1094); this batch adds its build rows to openspec/parity/gap-decisions.json and sets them to specified in the matrix.

Changes in this batch

  • architecture-views-editor: arch-modelling, arch-diagram-version-compare, arch-view-tags
  • architecture-assistant-drafted-views: arch-ai-diagram
  • architecture-process-mapping: arch-process-mapping, arch-process-step-fields
  • architecture-data-model-and-ggm: arch-data-model, arch-ggm-link
  • architecture-reference-component-coverage: arch-capability-map, arch-gap-analysis, life-overlap, life-rationalisation-report
  • architecture-future-state-scenarios: arch-scenarios
  • architecture-decision-register: arch-decision-register
  • architecture-views-to-office-documents: arch-views-office
  • architecture-round-trip-check: arch-round-trip
  • lifecycle-application-value-assessment: life-value-assessment
  • lifecycle-maintenance-and-supplier-roadmap: life-maintenance-window, mkt-supplier-roadmap

Rows below the bar that ride with a build row of the same change: life-rationalisation-report (with life-overlap), mkt-supplier-roadmap (with life-maintenance-window).

life-maintenance-window was marked specified with no change directory; lifecycle-maintenance-and-supplier-roadmap is that change.

Matrix edits in this batch

  • 19 rows set to specified, each note naming its change directory. gap-decisions.json gains their 19 build entries (103 in all).

Defects found while reading the code

Written into the change that touches each, not filed as issues:

  • GET /api/views/{viewId} reads a view through ViewService::getViewFromRegister() (lib/Service/ViewService.php:307) with _rbac: false and _multitenancy: false (:328), so it returns any view to any signed-in user. Once organisations draw their own views that would expose another organisation's view by uuid; architecture-views-editor answers 404 for a view that is not imported or unmarked.
  • The round-trip test route (POST /api/archimate/test-round-trip, lib/Controller/SettingsController.php:2886) is @NoAdminRequired and imports a test model into the live shared register; its comparison can never succeed. architecture-round-trip-check replaces it with an admin check that writes nothing.
  • FacetService reads element['domain'] while the schema declares domein, so the domain facet stays empty (inherited, not in this batch's scope).
  • The moduleVersion lifecycle names Dutch states no row holds; lifecycle-maintenance-and-supplier-roadmap moves it onto the enum values with a schema version bump.

Checks

  • openspec validate: every change of this batch is valid with --strict. openspec validate --changes: 40 passed, 3 failed (the three failures are the pre-existing adopt-apphost, beta-surface-alignment and rename-app-id-to-stackiq).
  • parity_verify.py --strict: only the unknown-cells census (469 cells, as after batch 1), no other finding, no schema error.
  • composer check:strict (private HOME and TMPDIR): exit 0 (lint, phpcs, phpmd, psalm and phpstan pass; test:all prints SKIPPED because it needs a Nextcloud server tree).
  • npm run lint: exit 0 (217 warnings, 0 errors, none in files this PR touches).
  • No em-dash, en-dash or double dash in any file of this batch.
  • The PR touches only openspec/: its change directories, openspec/parity/capabilities.json and openspec/parity/gap-decisions.json.

🤖 Generated with Claude Code

…ce windows, owner notices and a product roadmap
@rubenvdlinde
rubenvdlinde merged commit e2d38aa into development Sep 27, 2026
36 of 37 checks passed
@github-actions

Copy link
Copy Markdown
Contributor

Quality Report — ConductionNL/stackiq @ cbd4bdf

Check PHP Vue Security License Tests
lint ✅
phpcs ✅
phpmd ✅
psalm ✅
phpstan ✅
phpmetrics ✅
eslint ✅
stylelint ✅
build ✅
check-manifest ✅
check-vue-demi ✅
test-l10n ✅
format ✅
check-schema-l10n ✅
check-l10n-js ✅
composer ✅ ✅ 130/130
npm ✅ ✅ 807/807
app:check-code ⏭️
info.xml ✅
REUSE ❌
lockfile sync ✅
PHPUnit ⏭️ not run for this diff — no file in this diff matches the code globs, and none carries a source extension — the heavy tier has nothing to decide about it.
Newman ⏭️
Playwright ⏭️ deferred: E2E runs locally and on the promotion path only. This pull request targets development, so the suite is asked once per promotion into beta and main rather than once per push per open pull request. Run it on any branch from the Actions tab, or locally with npx playwright test.
Hydra gates ❌

Quality workflow — 2026-09-27 18:34 UTC

Download the full PDF report from the workflow artifacts.

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