Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
123 commits
Select commit Hold shift + click to select a range
24212bd
docs(openspec): change proposals — adopt-integration-leaves mcp-full-…
rubenvdlinde Aug 18, 2026
95ff8c3
chore(release): 0.1.141-unstable.20260820130046 [skip ci]
github-actions[bot] Aug 20, 2026
98333a5
Merge pull request #580 from ConductionNL/release/v0.1.141-unstable.2…
rubenvdlinde Aug 20, 2026
35a943c
chore(release): 0.1.141-unstable.20260820201847 [skip ci]
github-actions[bot] Aug 20, 2026
3539cb0
Merge pull request #583 from ConductionNL/release/v0.1.141-unstable.2…
rubenvdlinde Aug 20, 2026
6a2d172
chore(release): 0.1.141-unstable.20260820203911 [skip ci]
github-actions[bot] Aug 20, 2026
b7cb07a
Merge pull request #584 from ConductionNL/release/v0.1.141-unstable.2…
rubenvdlinde Aug 20, 2026
5689d7e
chore(release): 0.1.141-unstable.20260820205557 [skip ci]
github-actions[bot] Aug 20, 2026
3115b37
Merge pull request #585 from ConductionNL/release/v0.1.141-unstable.2…
rubenvdlinde Aug 20, 2026
743ba4b
chore(release): 0.1.141-unstable.20260820212102 [skip ci]
github-actions[bot] Aug 20, 2026
4f03776
fix(manifest): process and audit fields are no longer editable inputs
rubenvdlinde Aug 20, 2026
609d9b2
Merge pull request #586 from ConductionNL/release/v0.1.141-unstable.2…
rubenvdlinde Aug 20, 2026
d0bdc09
chore(release): 0.1.141-unstable.20260820214311 [skip ci]
github-actions[bot] Aug 20, 2026
9d49b71
Merge pull request #588 from ConductionNL/release/v0.1.141-unstable.2…
rubenvdlinde Aug 20, 2026
9a6e9e5
chore(release): 0.1.141-unstable.20260820220515 [skip ci]
github-actions[bot] Aug 20, 2026
54c4b8a
Merge pull request #589 from ConductionNL/release/v0.1.141-unstable.2…
rubenvdlinde Aug 20, 2026
fc64d96
Merge pull request #587 from ConductionNL/fix/lock-process-fields
rubenvdlinde Aug 20, 2026
71cb9a0
chore(release): 0.1.141-unstable.20260820223149 [skip ci]
github-actions[bot] Aug 20, 2026
068755c
Merge pull request #590 from ConductionNL/release/v0.1.141-unstable.2…
rubenvdlinde Aug 20, 2026
0c1e103
chore(release): 0.1.141-unstable.20260820224848 [skip ci]
github-actions[bot] Aug 20, 2026
aa50152
Merge pull request #592 from ConductionNL/release/v0.1.141-unstable.2…
rubenvdlinde Aug 20, 2026
c74a3a9
build(deps-dev): move the whole stylelint family to 17 as one upgrade
rubenvdlinde Aug 20, 2026
4f75670
chore(release): 0.1.141-unstable.20260820231107 [skip ci]
github-actions[bot] Aug 20, 2026
7dd42a7
Merge pull request #594 from ConductionNL/release/v0.1.141-unstable.2…
rubenvdlinde Aug 20, 2026
3b98ca4
chore(release): 0.1.141-unstable.20260820233952 [skip ci]
github-actions[bot] Aug 20, 2026
bafaf3c
Merge pull request #595 from ConductionNL/release/v0.1.141-unstable.2…
rubenvdlinde Aug 20, 2026
fa4ecea
chore(release): 0.1.141-unstable.20260821000125 [skip ci]
github-actions[bot] Aug 21, 2026
036a897
Merge pull request #593 from ConductionNL/chore/stylelint-17-coupled
rubenvdlinde Aug 21, 2026
95d44cb
Merge pull request #596 from ConductionNL/release/v0.1.141-unstable.2…
rubenvdlinde Aug 21, 2026
1ef96a2
chore(release): 0.1.141-unstable.20260821002227 [skip ci]
github-actions[bot] Aug 21, 2026
c3086f4
Merge pull request #598 from ConductionNL/release/v0.1.141-unstable.2…
rubenvdlinde Aug 21, 2026
ed1a773
chore(release): 0.1.141-unstable.20260821004639 [skip ci]
github-actions[bot] Aug 21, 2026
0e8550d
Merge pull request #599 from ConductionNL/release/v0.1.141-unstable.2…
rubenvdlinde Aug 21, 2026
de3924f
chore(release): 0.1.141-unstable.20260821010037 [skip ci]
github-actions[bot] Aug 21, 2026
36df9fc
Merge pull request #600 from ConductionNL/release/v0.1.141-unstable.2…
rubenvdlinde Aug 21, 2026
228c60b
chore(release): 0.1.141-unstable.20260821011425 [skip ci]
github-actions[bot] Aug 21, 2026
4d8f60a
Merge pull request #601 from ConductionNL/release/v0.1.141-unstable.2…
rubenvdlinde Aug 21, 2026
003cdf5
chore(release): 0.1.141-unstable.20260821012736 [skip ci]
github-actions[bot] Aug 21, 2026
e20f819
Merge pull request #602 from ConductionNL/release/v0.1.141-unstable.2…
rubenvdlinde Aug 21, 2026
231bfe2
chore(release): 0.1.141-unstable.20260821014525 [skip ci]
github-actions[bot] Aug 21, 2026
f736052
Merge pull request #603 from ConductionNL/release/v0.1.141-unstable.2…
rubenvdlinde Aug 21, 2026
249246c
chore(release): 0.1.141-unstable.20260821015458 [skip ci]
github-actions[bot] Aug 21, 2026
5719054
Merge pull request #604 from ConductionNL/release/v0.1.141-unstable.2…
rubenvdlinde Aug 21, 2026
c33308f
chore(release): 0.1.141-unstable.20260821020326 [skip ci]
github-actions[bot] Aug 21, 2026
2b7ed1a
Merge pull request #605 from ConductionNL/release/v0.1.141-unstable.2…
rubenvdlinde Aug 21, 2026
340ed2a
chore(release): 0.1.141-unstable.20260821022249 [skip ci]
github-actions[bot] Aug 21, 2026
bc2dd06
Merge pull request #606 from ConductionNL/release/v0.1.141-unstable.2…
rubenvdlinde Aug 21, 2026
7c737b5
chore(release): 0.1.141-unstable.20260821024223 [skip ci]
github-actions[bot] Aug 21, 2026
7316056
Merge pull request #607 from ConductionNL/release/v0.1.141-unstable.2…
rubenvdlinde Aug 21, 2026
6933bbb
chore(release): 0.1.141-unstable.20260821025313 [skip ci]
github-actions[bot] Aug 21, 2026
7210a42
Merge pull request #608 from ConductionNL/release/v0.1.141-unstable.2…
rubenvdlinde Aug 21, 2026
8569683
chore(release): 0.1.141-unstable.20260821030426 [skip ci]
github-actions[bot] Aug 21, 2026
baf46d3
Merge pull request #609 from ConductionNL/release/v0.1.141-unstable.2…
rubenvdlinde Aug 21, 2026
22f0241
chore(release): 0.1.141-unstable.20260821031723 [skip ci]
github-actions[bot] Aug 21, 2026
bbcef2a
Merge pull request #610 from ConductionNL/release/v0.1.141-unstable.2…
rubenvdlinde Aug 21, 2026
91062c2
chore(release): 0.1.141-unstable.20260821033058 [skip ci]
github-actions[bot] Aug 21, 2026
3a37cbc
Merge pull request #611 from ConductionNL/release/v0.1.141-unstable.2…
rubenvdlinde Aug 21, 2026
c69f4ee
chore(release): 0.1.141-unstable.20260821034217 [skip ci]
github-actions[bot] Aug 21, 2026
98db1e8
Merge pull request #612 from ConductionNL/release/v0.1.141-unstable.2…
rubenvdlinde Aug 21, 2026
692b859
chore(release): 0.1.141-unstable.20260821035333 [skip ci]
github-actions[bot] Aug 21, 2026
30f766e
Merge pull request #613 from ConductionNL/release/v0.1.141-unstable.2…
rubenvdlinde Aug 21, 2026
c25af32
chore(release): 0.1.141-unstable.20260821040505 [skip ci]
github-actions[bot] Aug 21, 2026
1c649cd
Merge pull request #614 from ConductionNL/release/v0.1.141-unstable.2…
rubenvdlinde Aug 21, 2026
5c61693
chore(release): 0.1.141-unstable.20260821041656 [skip ci]
github-actions[bot] Aug 21, 2026
a57e90b
Merge pull request #615 from ConductionNL/release/v0.1.141-unstable.2…
rubenvdlinde Aug 21, 2026
4ca2fed
chore(release): 0.1.141-unstable.20260821042832 [skip ci]
github-actions[bot] Aug 21, 2026
60626fe
Merge pull request #616 from ConductionNL/release/v0.1.141-unstable.2…
rubenvdlinde Aug 21, 2026
24a0095
chore(release): 0.1.141-unstable.20260821044543 [skip ci]
github-actions[bot] Aug 21, 2026
b5b738e
Merge pull request #617 from ConductionNL/release/v0.1.141-unstable.2…
rubenvdlinde Aug 21, 2026
29f588e
chore(release): 0.1.141-unstable.20260821050743 [skip ci]
github-actions[bot] Aug 21, 2026
b40f2b1
Merge pull request #653 from ConductionNL/release/v0.1.141-unstable.2…
rubenvdlinde Aug 21, 2026
1c0b9cb
chore(release): 0.1.141-unstable.20260821052417 [skip ci]
github-actions[bot] Aug 21, 2026
bbd7253
Merge pull request #689 from ConductionNL/release/v0.1.141-unstable.2…
rubenvdlinde Aug 21, 2026
08ed7cf
chore(release): 0.1.141-unstable.20260821053703 [skip ci]
github-actions[bot] Aug 21, 2026
e847c4c
Merge pull request #690 from ConductionNL/release/v0.1.141-unstable.2…
rubenvdlinde Aug 21, 2026
bcece50
chore(deps): refresh the shared Conduction locks (#692)
rubenvdlinde Aug 21, 2026
3f6beb9
chore(deps): refresh the shared Conduction locks (#694)
rubenvdlinde Aug 21, 2026
646c301
fix(tests): opt into the OpenRegister contract — fixes 130 standalone…
rubenvdlinde Aug 22, 2026
53692a1
chore(quality): migrate to PHPStan 2 — 35 findings to zero, plus a mi…
rubenvdlinde Aug 22, 2026
fe82198
chore(deps): refresh the shared Conduction locks (#706)
rubenvdlinde Aug 22, 2026
b95d4e4
feat: rename the app id from softwarecatalog to stackiq (#708)
rubenvdlinde Aug 23, 2026
95f4c99
feat(docs): move the docs host to the new name, and stop linking to C…
rubenvdlinde Aug 23, 2026
ccd57b3
test(l10n): ratchet the untranslated schema strings (#712)
rubenvdlinde Aug 23, 2026
fd400e1
fix(docs): point the repository CTA at GitHub, not Codeberg (#713)
rubenvdlinde Aug 23, 2026
902385c
Merge pull request #711 from ConductionNL/feat/docs-host-to-stackiq
rubenvdlinde Aug 24, 2026
f2d89f0
fix(docs): point openspec links at GitHub, so the docs site builds (#…
rubenvdlinde Aug 24, 2026
361ca9b
chore(deps): refresh the shared Conduction locks (#719)
rubenvdlinde Aug 24, 2026
2271112
chore(release): 0.1.141-unstable.20260824071410 [skip ci] (#720)
github-actions[bot] Aug 24, 2026
474cc7e
feat(register): rename the register slug voorzieningen -> stackiq (#722)
rubenvdlinde Aug 24, 2026
709ef8b
fix(decidiq): contract delegation was silently off — the event namesp…
rubenvdlinde Aug 24, 2026
9feb3c2
fix(walkthrough): end the tour on a call to action that opens the doc…
rubenvdlinde Aug 24, 2026
df5ce32
fix(docs): publish from development, to the worker that actually serv…
rubenvdlinde Aug 24, 2026
d12374b
docs: repoint stale Codeberg URLs to GitHub (#725)
rubenvdlinde Aug 24, 2026
39a37cb
feat: port issue templates to GitHub Issue Forms (#733)
rubenvdlinde Aug 24, 2026
e183ccf
fix(e2e): the sbom locator matched the name AND the purl (#735)
rubenvdlinde Aug 24, 2026
125536a
chore(release): 0.1.141-unstable.20260824200531 [skip ci] (#737)
github-actions[bot] Aug 24, 2026
ff2abf1
fix(repair): move OpenRegister schemas from softwarecatalog onto the …
rubenvdlinde Aug 24, 2026
66924de
chore(ci): remove dead Forgejo/Codeberg CI configuration (#738)
rubenvdlinde Aug 24, 2026
9ae12cf
fix(docs): pass secrets to the reusable documentation workflow (#732)
rubenvdlinde Aug 24, 2026
8e5f443
fix(lint): let prettier have the last word after eslint --fix (#744)
rubenvdlinde Aug 24, 2026
1e98aa9
chore: remove one-off debug scripts and point-in-time status docs fro…
rubenvdlinde Aug 24, 2026
19739c0
chore(release): 0.1.141-unstable.20260824225921 [skip ci] (#746)
github-actions[bot] Aug 25, 2026
0627596
chore: ignore agent/test scratch and untrack generated files (#747)
rubenvdlinde Aug 26, 2026
e423209
fix(register): repoint 32 dead configuration URLs to GitHub (#748)
rubenvdlinde Aug 26, 2026
85b9aea
chore(release): 0.1.141-unstable.20260826085431 [skip ci] (#749)
github-actions[bot] Aug 26, 2026
3f3c4b2
fix(manifest): drop 2 em-dashes from tour copy (#751)
rubenvdlinde Aug 26, 2026
dca786d
chore(release): 0.1.141-unstable.20260826204537 (#752)
github-actions[bot] Aug 26, 2026
4f5da03
feat(nav): a Flows surface in this app, on the shared page types (#753)
rubenvdlinde Aug 27, 2026
1605870
fix(l10n): regenerate all 38 browser catalogues, and add the check (#…
rubenvdlinde Aug 27, 2026
6caa14f
chore(release): 0.1.141-unstable.20260827025647 (#754)
github-actions[bot] Aug 27, 2026
2c55aed
ci: run check:l10n-js, so the browser catalogues cannot drift again (…
rubenvdlinde Aug 27, 2026
ffa4bba
fix(deps): development cannot npm install (#762)
rubenvdlinde Aug 27, 2026
2fdf073
perf(ci): one Code Quality run per commit, not two (#770)
rubenvdlinde Aug 27, 2026
61af6df
chore: untrack the build logs that were triggering full CI runs (#771)
rubenvdlinde Aug 27, 2026
9cd3aab
fix(release): name softwarecatalog as this app's previous App Store i…
rubenvdlinde Aug 27, 2026
41899ab
feat(demo): generated demo data for every schema (ADR-111) (#769)
rubenvdlinde Aug 27, 2026
6b79248
chore(deps): hydra-gates 1.10, so the E2E skip-discipline gate can ru…
rubenvdlinde Aug 28, 2026
f188aee
fix(e2e): move the three fixme reasons where the gate can read them (…
rubenvdlinde Aug 28, 2026
5738157
refactor(manifest): the flow pages are an index and a flow (#775)
rubenvdlinde Aug 28, 2026
1242262
chore(release): 0.1.143-unstable.20260828092138 (#781)
github-actions[bot] Aug 28, 2026
485e4a8
feat(walkthrough): show where flows are edited, without asking anyone…
rubenvdlinde Aug 28, 2026
6194ae4
chore(release): 0.1.144-unstable.20260828095409 (#782)
github-actions[bot] Aug 28, 2026
181aaa4
docs: add a local demo environment (#783)
rubenvdlinde Aug 28, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
94 changes: 47 additions & 47 deletions .claude/commands/test.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ category: Testing
tags: [testing, softwarecatalogus, newman, playwright, persona]
---

Base directory for this skill: /home/rubenlinde/nextcloud-docker-dev/workspace/server/apps-extra/softwarecatalog
Base directory for this skill: /home/rubenlinde/nextcloud-docker-dev/workspace/server/apps-extra/stackiq

# Test Softwarecatalogus — Orchestrator

Expand Down Expand Up @@ -57,33 +57,33 @@ When running API tests, use Newman CLI:
which newman || npm install -g newman newman-reporter-htmlextra

# Run setup first (creates test data)
newman run softwarecatalog/postman/softwarecatalogus-tests.json \
-e softwarecatalog/postman/environment-local.json \
newman run stackiq/postman/softwarecatalogus-tests.json \
-e stackiq/postman/environment-local.json \
--folder "00 - Setup" --reporters cli 2>&1 | tail -20

# Run all test folders
newman run softwarecatalog/postman/softwarecatalogus-tests.json \
-e softwarecatalog/postman/environment-local.json \
newman run stackiq/postman/softwarecatalogus-tests.json \
-e stackiq/postman/environment-local.json \
--reporters cli,htmlextra \
--reporter-htmlextra-export softwarecatalog/test-results/api/report.html 2>&1
--reporter-htmlextra-export stackiq/test-results/api/report.html 2>&1

# Run a specific folder
newman run softwarecatalog/postman/softwarecatalogus-tests.json \
-e softwarecatalog/postman/environment-local.json \
newman run stackiq/postman/softwarecatalogus-tests.json \
-e stackiq/postman/environment-local.json \
--folder "{folder-name}" --reporters cli 2>&1
```

**For custom environments**, pass variables:
```bash
newman run softwarecatalog/postman/softwarecatalogus-tests.json \
-e softwarecatalog/postman/environment-local.json \
newman run stackiq/postman/softwarecatalogus-tests.json \
-e stackiq/postman/environment-local.json \
--env-var "base_url={BACKEND}" \
--env-var "admin_user={ADMIN_USER}" \
--env-var "admin_pass={ADMIN_PASS}" \
--reporters cli 2>&1
```

Write API results to `softwarecatalog/test-results/api/results.md`.
Write API results to `stackiq/test-results/api/results.md`.

---

Expand Down Expand Up @@ -200,7 +200,7 @@ After EVERY page navigation, check network performance:
- Search queries with >5 active filters

### Acceptance Criteria
Before testing each issue, read its detailed acceptance criteria in `softwarecatalog/issues.md`. Each issue has specific, testable acceptance criteria with checkboxes. Use these to determine status:
Before testing each issue, read its detailed acceptance criteria in `stackiq/issues.md`. Each issue has specific, testable acceptance criteria with checkboxes. Use these to determine status:
- **PASS** = ALL acceptance criteria are met
- **PARTIAL** = Some criteria met, some not
- **FAIL** = Key criteria not met or feature is broken
Expand All @@ -217,7 +217,7 @@ CMS pages (privacy, terms, FAQ, disclaimer) are managed in the **OpenCatalogi**

### RBAC Reference
The authoritative RBAC rules are defined in the register JSON configuration:
- **File**: `softwarecatalog/lib/Settings/softwarecatalogus_register.json`
- **File**: `stackiq/lib/Settings/softwarecatalogus_register.json`
- Each schema has an `"authorization"` block with `create`, `read`, `update`, `delete` rules
- Rules can be simple group names (e.g., `"public"`, `"gebruik-beheerder"`) or conditional: `{ "group": "aanbod-beheerder", "match": { "_organisation": "$organisation" } }` (only own org's data)

Expand Down Expand Up @@ -261,7 +261,7 @@ After all testing is complete, agents **MUST** clean up any objects they created

### Rules
- **READ ONLY on GitHub issues** — NEVER update, close, or comment on issues
- Write test results ONLY to local files in `softwarecatalog/test-results/`
- Write test results ONLY to local files in `stackiq/test-results/`
- Take screenshots as evidence where applicable
- **ALWAYS clean up test data** created during wizard walkthroughs (see Test Data Cleanup above)

Expand Down Expand Up @@ -289,10 +289,10 @@ Run the setup script to create test organizations, contact persons, user account

```bash
# Local (default):
bash softwarecatalog/test-setup.sh
bash stackiq/test-setup.sh

# Custom environment:
BACKEND_URL="{BACKEND}" ADMIN_USER="{ADMIN_USER}" ADMIN_PASS="{ADMIN_PASS}" bash softwarecatalog/test-setup.sh
BACKEND_URL="{BACKEND}" ADMIN_USER="{ADMIN_USER}" ADMIN_PASS="{ADMIN_PASS}" bash stackiq/test-setup.sh
```

This script creates:
Expand Down Expand Up @@ -334,7 +334,7 @@ Run the Postman/Newman API test suite. This covers all `[API]`-tagged acceptance
which newman || npm install -g newman newman-reporter-htmlextra
```

**After Newman completes**, parse the output and write results to `softwarecatalog/test-results/api/results.md`:
**After Newman completes**, parse the output and write results to `stackiq/test-results/api/results.md`:
- Total requests, assertions, passes, failures
- Per-folder pass/fail counts
- Failed test names with issue references (tests are named `#NNN AC: description`)
Expand Down Expand Up @@ -366,7 +366,7 @@ Note: All 7 browsers are used. The bezoeker uses browser-6 (does not need headed
You are a testing agent for the GEMMA Softwarecatalogus.

Read and follow the instructions in the skill file at:
softwarecatalog/.claude/skills/test-{persona}.md
stackiq/.claude/skills/test-{persona}.md

This file contains your persona details, login credentials, test scope, and the list of issues to test.

Expand Down Expand Up @@ -418,7 +418,7 @@ Your persona is linked to a proper organization (not Default Organisation):
Organization-specific features (wizards, filters, dashboards) should work for your persona's org type.

### RBAC Reference
The authoritative RBAC rules are in `softwarecatalog/lib/Settings/softwarecatalogus_register.json`.
The authoritative RBAC rules are in `stackiq/lib/Settings/softwarecatalogus_register.json`.
Each schema has an `"authorization"` block. Key rules:
- **contactpersoon**: NOT public, but leverancier contact persons ARE expected to be publicly visible via publications. Only gemeente contact persons should be hidden.
- **module** (applicatie): Public can read only where `geregistreerdDoor: Leverancier`. aanbod-beheerder sees only own org.
Expand Down Expand Up @@ -496,7 +496,7 @@ And a Console Errors Summary:
- **#399 (cross-vendor)**: Public search page → find "Test Applicatie Leverancier 2", click Versies tab, click a version. Verify no error.
- **#375 (SaaS version)**: After wizard, find the created app on `/zoeken?_page=1`, check Versies tab.
- **#105 (RBAC)**: Leverancier only — `/beheer/applicatielandschappen` should show ONLY own org's applications (data scoping, not page visibility).
- **#141 (merge)**: Functioneel-beheerder only — test via Nextcloud backend: OpenRegister → Search/Views → voorzieningen register → organisatie schema → three-dot menu → Merge.
- **#141 (merge)**: Functioneel-beheerder only — test via Nextcloud backend: OpenRegister → Search/Views → stackiq register → organisatie schema → three-dot menu → Merge.
- **#403 (delete dialog)**: Find a test object in beheer table, click delete, verify dialog text and usage check, click Cancel.
- **#15 (export)**: In beheer table, click Acties → Exporteren → Als CSV/Excel. Verify download.
- **#402 (Edge vs Chrome)**: **SKIP** — untestable (single Chromium engine).
Expand All @@ -523,11 +523,11 @@ After completing all tests, you MUST clean up any objects you created during wiz
**Why this matters:** Without cleanup, wizard re-runs create duplicate entries that cause false FAIL results for count-based issues (#300, #307).

### Acceptance Criteria
Before testing each issue, read its acceptance criteria from softwarecatalog/issues.md.
Before testing each issue, read its acceptance criteria from stackiq/issues.md.
The file contains detailed checkboxes for each issue. Use these to determine PASS/FAIL/PARTIAL/CANNOT_TEST.

### Output Format
Write your results to: softwarecatalog/test-results/{persona}/results-authenticated.md
Write your results to: stackiq/test-results/{persona}/results-authenticated.md

Use this format:
- Header with persona name, date, environment, login used
Expand Down Expand Up @@ -557,20 +557,20 @@ If any agent fails (crashes, doesn't write results), log the failure and continu
After all tests complete (or in `summary-only` mode), read all result files and generate a summary.

**Read these files** (if they exist):
- `softwarecatalog/test-results/api/results.md` (API test results)
- `softwarecatalog/test-results/leverancier/results-authenticated.md`
- `softwarecatalog/test-results/gemeente/results-authenticated.md`
- `softwarecatalog/test-results/security-officer/results-authenticated.md`
- `softwarecatalog/test-results/functioneel-beheerder/results-authenticated.md`
- `softwarecatalog/test-results/samenwerking/results-authenticated.md`
- `softwarecatalog/test-results/architectuur-expert/results-authenticated.md`
- `softwarecatalog/test-results/bezoeker/results-public.md`
- `stackiq/test-results/api/results.md` (API test results)
- `stackiq/test-results/leverancier/results-authenticated.md`
- `stackiq/test-results/gemeente/results-authenticated.md`
- `stackiq/test-results/security-officer/results-authenticated.md`
- `stackiq/test-results/functioneel-beheerder/results-authenticated.md`
- `stackiq/test-results/samenwerking/results-authenticated.md`
- `stackiq/test-results/architectuur-expert/results-authenticated.md`
- `stackiq/test-results/bezoeker/results-public.md`

For each file, extract:
- Issue number, title, status (PASS/PARTIAL/FAIL/CANNOT_TEST), severity
- Agent/method that tested it (API or persona name)

**Write the summary to**: `softwarecatalog/test-results/README.md`
**Write the summary to**: `stackiq/test-results/README.md`

### Summary Report Format

Expand Down Expand Up @@ -707,11 +707,11 @@ After writing the summary, display a concise overview to the user:
- Total issues tested
- PASS/FAIL/PARTIAL/CANNOT_TEST counts
- Top 3 critical findings
- Link to the full report: `softwarecatalog/test-results/README.md`
- Link to the full report: `stackiq/test-results/README.md`

### Step 6: Backlog Suggestions

After presenting the report, review the test findings for **suggestions and improvements** that are NOT existing GitHub issues but could be valuable. Present these to the user and ask if they should be added to the backlog at `softwarecatalog/website/docs/backlog.md`.
After presenting the report, review the test findings for **suggestions and improvements** that are NOT existing GitHub issues but could be valuable. Present these to the user and ask if they should be added to the backlog at `stackiq/website/docs/backlog.md`.

Examples of backlog-worthy suggestions:
- UX improvements noticed during testing (e.g., inconsistent naming, confusing navigation)
Expand All @@ -730,7 +730,7 @@ When the argument starts with `issues`, this workflow processes open IGS issues

### Step 7: Build Issue List

Read `softwarecatalog/aanvullende-informatie.md` to get the full list of open issues with their categories.
Read `stackiq/aanvullende-informatie.md` to get the full list of open issues with their categories.

**Filter based on argument:**
- `issues` → all 72 open issues
Expand All @@ -756,22 +756,22 @@ Your task is to process the following open issues and prepare a GitHub reply com
For EACH issue number in your list:

### 1. Read the issue
Read `softwarecatalog/issues/{number}.md` for the full description, comments, and images.
Read `stackiq/issues/{number}.md` for the full description, comments, and images.

### 2. Determine the category
Look up the issue in `softwarecatalog/aanvullende-informatie.md` to find its category (Bug, Datakwaliteit, Tekstueel, Wens, Nog te bepalen).
Look up the issue in `stackiq/aanvullende-informatie.md` to find its category (Bug, Datakwaliteit, Tekstueel, Wens, Nog te bepalen).

### 3. Investigate based on category

**Bug issues:**
1. Navigate to the relevant page in the browser (Frontend: {FRONTEND}, Backend: {BACKEND})
2. Try to reproduce the problem described in the issue
3. Take screenshots showing the current state (whether fixed or still broken)
4. If it involves RBAC, check `softwarecatalog/lib/Settings/softwarecatalogus_register.json`
4. If it involves RBAC, check `stackiq/lib/Settings/softwarecatalogus_register.json`
5. Use the appropriate template from aanvullende-informatie.md (Template A if fixed, Template B if still broken)

**Datakwaliteit issues:**
1. Read the relevant CSV file(s) from `softwarecatalog/data/`
1. Read the relevant CSV file(s) from `stackiq/data/`
2. Search for the specific data causing the issue (orphaned references, missing fields, etc.)
3. Count affected records and provide examples
4. Use Template C from aanvullende-informatie.md
Expand All @@ -783,7 +783,7 @@ Look up the issue in `softwarecatalog/aanvullende-informatie.md` to find its cat
4. Use Template D from aanvullende-informatie.md

**Wens issues:**
1. Read `softwarecatalog/issues.md` to confirm this is outside the original PvE scope
1. Read `stackiq/issues.md` to confirm this is outside the original PvE scope
2. Describe current behavior
3. Use Template E from aanvullende-informatie.md

Expand All @@ -793,11 +793,11 @@ Look up the issue in `softwarecatalog/aanvullende-informatie.md` to find its cat
3. Follow that category's procedure

### 4. Write the reply
Save the prepared reply as: `softwarecatalog/reacties/{number}.md`
Save the prepared reply as: `stackiq/reacties/{number}.md`
Include the issue title as an H1 header, the category, and the reply content using the appropriate template.

### 5. Save screenshots
Save any screenshots to: `softwarecatalog/reacties/screenshots/{number}-{description}.png`
Save any screenshots to: `stackiq/reacties/screenshots/{number}-{description}.png`

## Browser Assignment
Use browser-{browser_num} for ALL browser operations (mcp__browser-{browser_num}__* tools).
Expand All @@ -808,16 +808,16 @@ For issues requiring authenticated access, log in as admin ({ADMIN_USER}/{ADMIN_
For public-facing issues, test without logging in.

## Data Files
CSV import data is in `softwarecatalog/data/`:
CSV import data is in `stackiq/data/`:
- module.csv (applicaties), koppeling.csv, organisatie.csv, contactpersoon.csv
- compliancy.csv, gebruik.csv, gebruik_2.csv, gebruik_3.csv, moduleversie.csv

GEMMA AMEF model: `softwarecatalog/data/GEMMA release.xml`
GEMMA AMEF model: `stackiq/data/GEMMA release.xml`

## Rules — CRITICAL
- NEVER update, close, or comment on GitHub issues — this is PREPARATION ONLY
- NEVER post anything to GitHub — all output is LOCAL files for human review
- Write replies ONLY to local files in softwarecatalog/reacties/
- Write replies ONLY to local files in stackiq/reacties/
- Take screenshots as evidence
- Do NOT use gh CLI to interact with issues in any way
```
Expand All @@ -827,14 +827,14 @@ GEMMA AMEF model: `softwarecatalog/data/GEMMA release.xml`
Wait for all issue agents to complete. Create the output directory if needed:

```bash
mkdir -p softwarecatalog/reacties/screenshots
mkdir -p stackiq/reacties/screenshots
```

### Step 10: Generate Issues Summary

After all agents complete, read all files in `softwarecatalog/reacties/` and generate a summary.
After all agents complete, read all files in `stackiq/reacties/` and generate a summary.

**Write to**: `softwarecatalog/reacties/README.md`
**Write to**: `stackiq/reacties/README.md`

```markdown
# IGS Issues — Voorbereide Reacties
Expand Down
Loading
Loading