Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
212 commits
Select commit Hold shift + click to select a range
3f4e1b4
fix: Remove hardcoded _source=database from controllers and frontend
rubenvdlinde Mar 9, 2026
4c3f506
Merge pull request #422 from ConductionNL/development
remko48 Mar 10, 2026
ae08655
Merge pull request #418 from ConductionNL/fix/remove-source-hardcoding
rubenvdlinde Mar 19, 2026
f70266b
fix(headers): @author email typo dev@conductio.nl -> info@conduction.nl
rubenvdlinde Apr 20, 2026
0001aa1
ci: add automated lint check workflow
rubenvdlinde Apr 21, 2026
18acbc5
ci: remove deprecated lint check
rubenvdlinde Apr 21, 2026
c9af854
feat(catalog+listing): adopt x-openregister-lifecycle
rubenvdlinde Apr 29, 2026
8514f0c
Merge remote-tracking branch 'origin/development' into feature/declar…
rubenvdlinde May 3, 2026
0201817
Merge remote-tracking branch 'origin/main' into hotfix/main-to-beta
remko48 May 7, 2026
1b72be5
phpcs
remko48 May 7, 2026
b2578fe
Fixed dashboard colors on empty
remko48 May 7, 2026
2c54f2d
Fix: updated translations in viewObject
remko48 May 8, 2026
f416867
Updated translation on dashboard
remko48 May 8, 2026
7dfd1d1
Updated RBAC in publication views
remko48 May 8, 2026
c0e1707
eslint
remko48 May 8, 2026
897de28
Merge pull request #541 from ConductionNL/hotfix/main-to-beta
remko48 May 8, 2026
8c78a42
Potential fix for pull request finding 'CodeQL / Bad HTML filtering r…
rubenvdlinde May 8, 2026
de06582
Potential fix for pull request finding 'CodeQL / Workflow does not co…
rubenvdlinde May 8, 2026
aabfc54
Potential fix for pull request finding 'CodeQL / Workflow does not co…
rubenvdlinde May 8, 2026
85b2384
Potential fix for pull request finding 'CodeQL / Workflow does not co…
rubenvdlinde May 8, 2026
06a35b0
Potential fix for pull request finding 'CodeQL / Workflow does not co…
rubenvdlinde May 8, 2026
462ff41
Potential fix for pull request finding 'CodeQL / Workflow does not co…
rubenvdlinde May 8, 2026
3808571
Potential fix for pull request finding 'CodeQL / Workflow does not co…
rubenvdlinde May 8, 2026
a2f8c9f
Potential fix for pull request finding 'CodeQL / Workflow does not co…
rubenvdlinde May 8, 2026
3afe5e3
Improved code quality
remko48 May 8, 2026
f0c5631
Merge pull request #543 from ConductionNL/hotfix/code-quality
remko48 May 8, 2026
649a4b1
Merge pull request #539 from ConductionNL/beta
remko48 May 8, 2026
e4d1839
Fixed release workflow
remko48 May 8, 2026
08779d0
Merge pull request #544 from ConductionNL/hotfix/release-fix
remko48 May 8, 2026
8e749bf
feat(manifest-v2): adopt universal widget manifest (skip v1) (#612)
rubenvdlinde May 19, 2026
e37ef79
fix(build): downgrade node-polyfill-webpack-plugin to ^3.0.0 (#613)
rubenvdlinde May 19, 2026
c00f84e
Formatted README
remko48 May 20, 2026
494bc3c
Merge pull request #616 from ConductionNL/hotfix/release
remko48 May 20, 2026
14f6342
filter selected schemas from options & keep open on click
SudoThijn May 20, 2026
13b3c93
upped nextcloud-vue versions
SudoThijn May 20, 2026
f2d16db
refactor(manifest): opencatalogi customs → new lib types + components…
rubenvdlinde May 20, 2026
c133c41
chore(cleanup): remove dead view files orphaned by #636 manifest clea…
rubenvdlinde May 21, 2026
6aae754
Fixed page using slug instead of id
remko48 May 21, 2026
d66a2bd
chore(deps): bump @conduction/nextcloud-vue to ^1.0.0-beta.66 (#642)
rubenvdlinde May 21, 2026
e145d27
Fixed extra buttom
remko48 May 21, 2026
922fdb4
added a dedicated done button
SudoThijn May 15, 2026
3bcfd21
do not allow uploading duplicate files
SudoThijn May 15, 2026
4e41abe
rename automatically share to automatically publish
SudoThijn May 15, 2026
e7a7d13
updated icon colors to right variant
SudoThijn May 15, 2026
33ce79a
commented out button
SudoThijn May 15, 2026
bcac179
fixed nextcloudGroups service
SudoThijn May 15, 2026
438a5f4
made settings page read-only for non-admins
SudoThijn May 21, 2026
0ab1ccb
Merge pull request #637 from ConductionNL/hotfix/quick-fixes
SudoThijn May 21, 2026
d64ff55
updated package lock
remko48 May 21, 2026
5d2038a
Merge pull request #646 from ConductionNL/hotfix/quick-fixes
remko48 May 21, 2026
2e10598
fix: restore federation publications endpoint and Vue UI mount (#644)
rubenvdlinde May 21, 2026
a991a41
fix(store): honor IAppConfig per-type register in _registerTypesFromS…
rubenvdlinde May 21, 2026
6e5275c
chore: remove dead .php-cs-fixer.dist.php (#648)
rubenvdlinde May 21, 2026
384e37f
chore: sync canonical root configs + mechanical phpmd cleanup (#650)
rubenvdlinde May 21, 2026
2e5806d
chore(webpack): align config with openconnector (#651)
rubenvdlinde May 21, 2026
3ce113e
refactor(registry): consolidate customComponents.js into registry.js …
rubenvdlinde May 21, 2026
8f20b28
chore(deps): bump PHP requirement to ^8.3 (#659)
rubenvdlinde May 22, 2026
bdf5dd2
docs(architecture): add ADR-001 information architecture (#661)
rubenvdlinde May 23, 2026
05acf7f
chore(deps): bump composer config.platform.php to 8.3 (#662)
rubenvdlinde May 23, 2026
5b05f52
chore(info.xml): canonicalize PHP min, NC version range, licence spel…
rubenvdlinde May 23, 2026
6db161d
fix(health): remove dead ElasticSearchService reference (#665)
rubenvdlinde May 24, 2026
010b358
chore(openspec): relocate org-archimate-export + 3 GEMMA changes to s…
rubenvdlinde May 24, 2026
528faee
chore(specs): normalize requirement headings to Form A (ADR-037) (#667)
rubenvdlinde May 24, 2026
4ad25fc
retrofit: annotate opencatalogi Bucket 1 (183 methods / 136 REQs) (#669)
rubenvdlinde May 25, 2026
d7365d2
retrofit: reverse-spec publications (3 REQs / 3 frontend units) (#670)
rubenvdlinde May 25, 2026
96761bb
retrofit: reverse-spec generic-object-modals (5 REQs / 27 methods) (#…
rubenvdlinde May 25, 2026
aaf8baf
retrofit: reverse-spec catalogs (4 REQs / 6 frontend units) (#672)
rubenvdlinde May 25, 2026
8a550e7
retrofit: reverse-spec entity-typescript-models (4 REQs / 22 units) (…
rubenvdlinde May 25, 2026
80a42c8
retrofit: reverse-spec content-management (5 REQs / 13 frontend units…
rubenvdlinde May 25, 2026
3e7b607
retrofit: reverse-spec dashboard (5 REQs / 14 frontend units) (#675)
rubenvdlinde May 25, 2026
1152f79
retrofit: reverse-spec search (4 REQs / 6 units) (#676)
rubenvdlinde May 25, 2026
fb7e2bf
retrofit: reverse-spec admin-settings (3 REQs / 3 frontend units) (#677)
rubenvdlinde May 25, 2026
a7d6596
retrofit: reverse-spec file-management (4 REQs / 5 frontend units) (#…
rubenvdlinde May 25, 2026
be53023
fix: replace full-NC bootstrap with lightweight unit-test bootstrap (…
rubenvdlinde May 25, 2026
ff8c443
fix(headers): @author email typo dev@conductio.nl -> info@conduction.…
rubenvdlinde May 25, 2026
3434673
chore(brand): align app-store hex to canonical cobalt #21468B (#557)
rubenvdlinde May 25, 2026
474cb1e
feat(catalog+listing): adopt x-openregister-lifecycle (#491)
rubenvdlinde May 25, 2026
c6f9c1a
docs(public-api): document _extend=files opt-in + drop deprecated _pu…
rubenvdlinde May 25, 2026
8ca3c4d
chore: make all .ts files pass --strict type-check (#530)
rubenvdlinde May 25, 2026
5d22f6f
chore(brand): preset 2.10 + auto-derived hero + smaller app-icon glyp…
rubenvdlinde May 25, 2026
a84a002
chore: add SPDX headers to lib/ (44 files) (#521)
rubenvdlinde May 25, 2026
3c436a5
feat(mcp-tools): OpenCatalogiToolProvider — AI companion MCP tools (M…
rubenvdlinde May 25, 2026
5beac9b
fix(ci): remove dead ElasticSearch test files referencing deleted cla…
rubenvdlinde May 25, 2026
bc04ffa
perf(build): swap ts-loader for babel-loader + share framework chunks…
rubenvdlinde May 25, 2026
3c53b40
refactor(store): wrap object.js around @conduction/nextcloud-vue crea…
rubenvdlinde May 25, 2026
5257911
chore(woo-transparency): re-point queue/workflow to OR leaves (ADR-022)
rubenvdlinde May 25, 2026
480b405
Merge pull request #684 from ConductionNL/chore/intercept-woo-to-leaves
rubenvdlinde May 25, 2026
5be4f50
feat(nav): add Documentation + Features & roadmap footer items + road…
rubenvdlinde May 25, 2026
c17d8e9
fix(ui): bump @nextcloud/vue to ^8.39.0 to fix nav corner sliver on N…
rubenvdlinde May 25, 2026
e48267e
feat(preferences): preferences endpoint + bump nc-vue to beta.102 (#687)
rubenvdlinde May 25, 2026
d8a80d6
chore(openspec): leaf-migration + consume specs (ADR-022)
rubenvdlinde May 25, 2026
b442ebf
Merge pull request #690 from ConductionNL/chore/leaf-migration-specs
rubenvdlinde May 25, 2026
c80c6b8
retrofit: close spec coverage to zero (opencatalogi) (#688)
rubenvdlinde May 25, 2026
ec36377
[change request] opencatalogi notifications (#689)
rubenvdlinde May 25, 2026
99be36a
chore(composer): bump lock platform-overrides to PHP 8.3 to match con…
rubenvdlinde May 25, 2026
7e818a5
chore(composer): bump dev deps twig/twig + symfony/yaml to patched ve…
rubenvdlinde May 26, 2026
523836a
feat: dashboard widgets, catalog schema listener + tests, e2e scaffol…
rubenvdlinde May 26, 2026
db02ab2
Merge remote-tracking branch 'origin/development' into feature/declar…
rubenvdlinde May 26, 2026
d839487
style(phpcs): wrap long @spec-exclude docblock lines + fix tag indent…
rubenvdlinde May 26, 2026
f7d2329
ci: regenerate docs/features.json from openspec/specs/ [skip ci]
github-actions[bot] May 26, 2026
6effbc3
fix: add accessible labels to NcSelect components (hydra gate-12) (#700)
rubenvdlinde May 26, 2026
ce584e9
fix(ci): green quality gates — declare eslint/stylelint peer plugins,…
rubenvdlinde May 26, 2026
e9a8b5f
Merge remote-tracking branch 'origin/feature/declarative-annotation-p…
rubenvdlinde May 26, 2026
8170faf
fix(ci): allow pako + sha.js npm licenses via override
rubenvdlinde May 26, 2026
58f0700
Merge pull request #697 from ConductionNL/feature/declarative-annotat…
rubenvdlinde May 26, 2026
728bae7
fix: remove debug logging, license docblock, stylelint dup selectors,…
rubenvdlinde May 26, 2026
25d59b2
test(e2e): add spec-coverage Playwright suite covering all 17 openspe…
rubenvdlinde May 26, 2026
8615079
Merge pull request #724 from ConductionNL/test/e2e-spec-coverage
rubenvdlinde May 26, 2026
cd9e830
fix(security): clear Bucket-B gates 5/6/7/9/14 (ADR-023 + auth/routin…
rubenvdlinde May 26, 2026
4379d30
refactor: decompose PublicationsController (reduce PHPMD complexity, …
rubenvdlinde May 26, 2026
5e0c890
test(e2e): gate-19 coverage — annotate specs and add Playwright suite
rubenvdlinde May 26, 2026
7cec956
Merge pull request #727 from ConductionNL/test/e2e-coverage-gate19
rubenvdlinde May 26, 2026
cea87d4
fix(security): SSRF guard + public-read RBAC/published enforcement (#…
rubenvdlinde May 27, 2026
f4be172
test: align unit tests with security fixes (#737) (#738)
rubenvdlinde May 27, 2026
1a8a7fc
fix: extend allowlist + catalog-membership + DoS guard + CORS + SOLR …
rubenvdlinde May 27, 2026
9342000
feat(migrate-activity-to-activity-leaf): implement spec (#692) (#739)
rubenvdlinde May 27, 2026
826d72c
feat(migrate-share-links-to-shares-leaf): implement spec (#691) (#741)
rubenvdlinde May 27, 2026
ff23c9f
feat(publication-detail-leaf-widgets): implement spec (#693) (#742)
rubenvdlinde May 27, 2026
1d3e833
feat(upload): default "Automatically publish" toggle from schema conf…
WilcoLouwerse May 27, 2026
0fa5f8d
fix(security): bump symfony/http-foundation to v7.4.13 (CVE-2026-48736)
rubenvdlinde May 27, 2026
e9bafd7
Merge pull request #743 from ConductionNL/fix/symfony-http-foundation…
rubenvdlinde May 27, 2026
5164ce3
fix(security): enforce published predicate on all public-read paths (…
rubenvdlinde May 28, 2026
29ce095
fix(security): enforce published predicate and SSRF guards on sitemap…
rubenvdlinde May 28, 2026
3772e0e
fix(security): harden exception handling, extend sanitisation, DB que…
rubenvdlinde May 28, 2026
a78983b
fix(security): bump twig/twig to ^3.27.0 to address 5 sandbox bypass …
rubenvdlinde May 28, 2026
db377e3
Merge pull request #747 from ConductionNL/fix/twig-cve-3-27
rubenvdlinde May 28, 2026
0e2b6e5
fix(security): wave-3 critical fixes (C1 settings allowlist, C2 multi…
rubenvdlinde May 28, 2026
4fe95ab
fix(psalm): resolve strict check failures and add check:strict script
rubenvdlinde May 28, 2026
220f4dc
fix(psalm): resolve strict check failures and add check:strict script
rubenvdlinde May 28, 2026
b5f4224
fix(wave5): resolve 4 regression items from wave-4 verification (R1, …
rubenvdlinde May 28, 2026
b2f5548
ci(docs): add nightly journeydoc capture workflow
WilcoLouwerse May 28, 2026
da79ed4
fix(security): wave-7 critical C1-C3 (federation catalog-scope + info…
rubenvdlinde May 28, 2026
4579d39
chore(community-sync): create CODE_OF_CONDUCT.md from Conduction/.github
May 29, 2026
dc7c737
chore(community-sync): create CONTRIBUTING.md from Conduction/.github
May 29, 2026
cc1ef9a
chore(community-sync): create SECURITY.md from Conduction/.github
May 29, 2026
0054dc7
chore(community-sync): create SUPPORT.md from Conduction/.github
May 29, 2026
cb5da67
chore(community-sync): create .forgejo/issue_template/bug-report.yml …
May 29, 2026
991f10e
chore(community-sync): create .forgejo/issue_template/feature-request…
May 29, 2026
b55528d
chore(community-sync): create .forgejo/issue_template/technical-task.…
May 29, 2026
76a4447
chore(community-sync): create .forgejo/issue_template/user-story.yml …
May 29, 2026
d300b23
chore(workflows): add Forgejo Actions documentation.yml
May 29, 2026
cd9af9f
chore(workflows): add Forgejo Actions release-stable.yml
May 29, 2026
d3a0310
chore(workflows): add Forgejo Actions release-beta.yml
May 29, 2026
764084f
ci(docs): repoint quality.yml uses: to Conduction/.github on Codeberg
WilcoLouwerse May 29, 2026
3b9bb61
chore: replace check:strict shell-loop with standard composer chain
May 29, 2026
e231550
Merge pull request 'chore: replace check:strict shell-loop with stand…
May 29, 2026
cfe6be2
ci: add pre-merge check:strict + hydra-gates quality gate
juanclaude-conduction May 29, 2026
201c9ba
Merge pull request 'ci: add pre-merge check:strict + hydra-gates qual…
May 29, 2026
8c3b1d0
chore(opencatalogi): archive 16 completed openspec changes [opsx]
juanclaude-conduction May 31, 2026
91ce3bc
Merge pull request 'chore(opencatalogi): archive 16 completed openspe…
May 31, 2026
80305af
docs: point Documentation button to opencatalogi.conduction.nl
WilcoLouwerse Jun 1, 2026
be4c0fb
docs: replace remaining gitbook + documentatie.opencatalogi.nl refs
WilcoLouwerse Jun 1, 2026
615e229
feat: add design.md and close confirmation tasks for opencatalogi-not…
Jun 1, 2026
028a32e
feat: spec opencatalogi-adopt-or-abstractions — all 8 phases (#8)
infoconductionnl Jun 1, 2026
7114aeb
chore(hydra): init cycle (trigger=build:queued) [skip ci]
Jun 1, 2026
3f5194b
chore(hydra): record build stage [skip ci]
Jun 1, 2026
fedc719
feat: legacy quality cleanup — clear PHPCS/PHPMD debt + shrink PHPSta…
Jun 1, 2026
64b7d60
feat(audit): add task-audit.json + update tasks.md checkboxes (#9)
Jun 1, 2026
b9899a2
chore(hydra): init cycle (trigger=build:queued) [skip ci]
Jun 1, 2026
be808f0
chore(hydra): record build stage [skip ci]
Jun 1, 2026
70d44ef
feat(ci): add weekly quality smoke-test cron; mark tasks complete (#9)
Jun 1, 2026
d587d08
fix(auth): add missing auth annotations caught by hydra gates (#9)
Jun 1, 2026
c1550ca
Merge pull request 'docs: point all in-app links to opencatalogi.cond…
Jun 1, 2026
e273f06
chore(hydra): pattern-tag browser-test-nc-setup-failed [skip ci]
Jun 1, 2026
1eedefe
ci(opencatalogi): point reusable workflows at Conduction/.github (org…
rubenvdlinde Jun 1, 2026
0126472
Merge pull request 'ci(opencatalogi): fix reusable-workflow org refs …
Jun 1, 2026
bdf9f75
chore(hydra): init cycle (trigger=build:queued) [skip ci]
Jun 1, 2026
b3be473
chore(hydra): record build:fail stage [skip ci]
Jun 1, 2026
612015b
chore(hydra): close cycle outcome=needs-input [skip ci]
Jun 1, 2026
a5ef0ee
chore(hydra): close cycle outcome=aborted [skip ci]
Jun 1, 2026
c90a9ac
chore(hydra): close cycle outcome=aborted [skip ci]
Jun 1, 2026
6ba83ae
feat: add x-openregister-notifications to catalog and listing schemas…
Jun 1, 2026
fb36241
chore(hydra): init cycle (trigger=build:queued) [skip ci]
Jun 1, 2026
6cf7953
chore(hydra): record build:fail stage [skip ci]
Jun 1, 2026
a48f54d
chore(hydra): close cycle outcome=needs-input [skip ci]
Jun 1, 2026
df26ccb
fix(merge): incorporate previous cycle artifacts, use complete design…
Jun 1, 2026
08fef4d
chore: add pr-create.sh for wrapper to use when pushing (#10)
Jun 1, 2026
082ca6a
feat(opencatalogi): ADR-037 modular register/manifest fragments [opsx]
rubenvdlinde Jun 2, 2026
52d61fc
Merge pull request 'feat(opencatalogi): register.d + manifest.d fragm…
Jun 2, 2026
7a0ad16
Merge remote-tracking branch 'origin/development' into pr-branch
Jun 2, 2026
8259a70
Merge remote-tracking branch 'origin/development' into pr-branch
Jun 2, 2026
740ec52
Merge https://codeberg.org/Conduction/opencatalogi into pr-branch
Jun 2, 2026
51635d9
Merge https://codeberg.org/Conduction/opencatalogi into pr-branch
Jun 2, 2026
bb21568
chore(hydra): record applier stage [skip ci]
Jun 2, 2026
be1e850
chore(hydra): close cycle outcome=done [skip ci]
Jun 2, 2026
10adb2c
Merge pull request 'feat(opencatalogi-adopt-or-abstractions): impleme…
Jun 2, 2026
646021f
Merge remote-tracking branch 'origin/development' into pr-branch
Jun 2, 2026
e951801
ci(pre-merge): runs-on docker -> codeberg-small
Jun 3, 2026
bf02c21
Merge pull request 'feat(opencatalogi-legacy-quality-cleanup): implem…
Jun 3, 2026
03fe483
Merge pull request 'feat(opencatalogi-notifications): implement spec …
Jun 3, 2026
efc854a
Merge pull request 'ci(docs): add nightly journeydoc capture workflow…
Jun 3, 2026
cbc4173
feat: fix catalog-update infinite loop — pre-save listener + SOLR arr…
infoconductionnl Jun 4, 2026
b9739f3
feat(openspec): mark design status pr-created, add PR link (#6)
infoconductionnl Jun 4, 2026
22f5b8a
Merge pull request 'feat: fix catalog-update infinite loop — pre-save…
Jun 4, 2026
9825cfd
test(gate19): whole-spec exclude opencatalogi-adopt-or-abstractions (…
rubenvdlinde Jun 6, 2026
ce697e6
test(gate19): whole-spec exclude opencatalogi-store-migration (Pinia …
rubenvdlinde Jun 6, 2026
88d9b94
test(gate19): exclude object-modals + mass-object-actions retrofits (…
rubenvdlinde Jun 6, 2026
669e1a6
test(gate19): exclude remaining retrofit component-logic + preference…
rubenvdlinde Jun 6, 2026
225d6b7
test(gate19): requirement-level excludes for admin-settings OR-contra…
rubenvdlinde Jun 6, 2026
9b7d879
test(gate19): requirement-level excludes for dashboard OR-aggregation…
rubenvdlinde Jun 6, 2026
5aed9ec
test(gate19): requirement-level excludes for download-service + file-…
rubenvdlinde Jun 6, 2026
0e3c0af
test(gate19): exclude publications OR-leaf-widget + search OR-delegat…
rubenvdlinde Jun 6, 2026
fc03ce3
test(gate19): live-verify artifacts
rubenvdlinde Jun 6, 2026
ba613c6
Merge pull request 'test(gate19): honest 100% UI e2e coverage' (#20) …
Jun 6, 2026
fe1b33f
ci(docs): deploy only from documentation branch (decouple from releas…
Jun 8, 2026
1192b15
ci(docs): documentation-branch deploy standard
Jun 8, 2026
edb1ce3
docs(tutorials/admin): recapture manage-federation-sources against re…
WilcoLouwerse Jul 9, 2026
b858a76
Merge pull request 'docs(tutorials/admin): cherry-pick manage-federat…
Jul 9, 2026
55c4679
docs(build): sync docs/ build config from development so documentatio…
WilcoLouwerse Jul 10, 2026
58fa4cf
Merge pull request 'docs(build): sync docs/ build config from develop…
Jul 10, 2026
93b4c32
ci(docs): run docs build + deploy on Conduction's `con-ci-oci` self-h…
WilcoLouwerse Jul 13, 2026
2d4646f
Merge pull request 'ci(docs): run docs build + deploy on Conduction's…
Jul 13, 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
  •  
  •  
  •  
5 changes: 3 additions & 2 deletions .babelrc
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
{
"presets": [
"@babel/preset-env"
"@babel/preset-env",
"@babel/preset-typescript"
]
}
}
92 changes: 92 additions & 0 deletions .forgejo/issue_template/bug-report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
name: "🐛 Bug Report"
description: "Iets werkt niet zoals verwacht"
title: "[BUG] "
labels: ["bug", "needs-triage"]
assignees: []
body:
- type: markdown
attributes:
value: |
## Bug Report
Beschrijf het probleem zo concreet mogelijk zodat het reproduceerbaar is.

- type: textarea
id: description
attributes:
label: "Beschrijving"
description: "Wat gaat er mis?"
placeholder: "Bij het uploaden van een PDF groter dan 10MB crasht de anonymizer."
validations:
required: true

- type: textarea
id: reproduce
attributes:
label: "Stappen om te reproduceren"
value: |
1. Ga naar ...
2. Doe ...
3. Zie fout ...
validations:
required: true

- type: textarea
id: expected
attributes:
label: "Verwacht gedrag"
placeholder: "Het document wordt anonimiseerd en gedownload."
validations:
required: true

- type: textarea
id: actual
attributes:
label: "Werkelijk gedrag"
placeholder: "HTTP 500 na ~30 seconden, geen output."
validations:
required: true

- type: textarea
id: environment
attributes:
label: "Omgeving"
value: |
- Namespace/omgeving:
- Versie/image tag:
- Browser (indien van toepassing):
validations:
required: false

- type: textarea
id: logs
attributes:
label: "Logs / Screenshots"
description: "Plak relevante logs of voeg screenshots toe"
render: shell
validations:
required: false

- type: textarea
id: acceptance-criteria
attributes:
label: "Acceptatiecriteria (fix)"
value: |
- [ ] Bug is niet meer reproduceerbaar
- [ ] Regressietest toegevoegd
- [ ] Fix getest in acceptatieomgeving
- [ ] Geen nieuwe security findings
- [ ] Code gereviewd (4-eyes)
validations:
required: true

- type: dropdown
id: severity
attributes:
label: "Severity"
options:
- "🔴 Critical — productie ligt plat"
- "🟠 High — grote impact, workaround aanwezig"
- "🟡 Medium — beperkte impact"
- "🟢 Low — cosmetic / minor"
validations:
required: true
125 changes: 125 additions & 0 deletions .forgejo/issue_template/feature-request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,125 @@
name: "✨ Feature request"
description: "Suggest a feature or improvement. Fields below feed a draft OpenSpec proposal."
title: "[FEATURE] "
labels: ["enhancement", "feature", "needs-triage"]
type: "Feature"
body:
- type: markdown
attributes:
value: |
## Suggest a feature

Thanks for telling us what you need. **Triage happens within 24 hours.**

The fields below feed an OpenSpec proposal directly if the suggestion
is accepted. The more concrete you are, the faster it ships.

Prefer Dutch? Vul de velden in het Nederlands in — that's fine, we triage in both.

- type: textarea
id: problem
attributes:
label: "Problem"
description: "What can't you do today? What's the friction? Write it from your perspective — one or two sentences is plenty."
placeholder: "I want to filter contacts by last interaction date but the list view doesn't support it. I end up exporting to CSV and sorting in a spreadsheet."
validations:
required: true

- type: textarea
id: proposed-solution
attributes:
label: "Proposed solution"
description: "How would you like it to work? Sketches, links, references welcome. \"I'm not sure\" is also a valid answer — we'll figure it out together."
placeholder: "A date-range filter in the contacts list sidebar, defaulting to last 30 days, persisted per user."
validations:
required: true

- type: textarea
id: who-benefits
attributes:
label: "Who benefits"
description: "Which user role or workflow does this serve? Be specific."
placeholder: "Account managers tracking client engagement, especially before renewal conversations."
validations:
required: true

- type: dropdown
id: priority-to-you
attributes:
label: "How important is this to you?"
description: "Honest self-assessment. Helps us prioritise."
options:
- "Nice to have"
- "Would use weekly"
- "Would use daily"
- "Blocking me right now"
validations:
required: true

- type: textarea
id: context
attributes:
label: "Anything else?"
description: "Edge cases, alternatives you've considered, things to avoid, related capabilities, anything that didn't fit in the boxes above."
placeholder: "Out of scope: per-team default filter (could be later). Avoid: hiding the filter behind a settings page — needs to be one click from the list."

- type: markdown
attributes:
value: |
### Context

The fields below are auto-filled when you suggest a feature from inside
the app. They capture where you were when the idea hit so we can scope
the spec without a second round of questions.

**We show them to you here on purpose**: you can see exactly what we
send and edit or clear any field before you submit. Leave them blank if
you're filing directly from GitHub — we'll still triage it.

- type: input
id: app
attributes:
label: "App"
description: "Auto-filled by the in-product modal. The Nextcloud app you were using."
placeholder: "pipelinq"

- type: input
id: page
attributes:
label: "Page"
description: "Auto-filled. The manifest page id + route you were on when you opened the modal."
placeholder: "clients-detail (/clients/abc-123)"

- type: input
id: surface
attributes:
label: "Modal or widget"
description: "Auto-filled. Any modal, dialog, dashboard widget, or sidebar tab open at the moment the modal launched. Helps us pinpoint UI-attached suggestions."
placeholder: "edit-client-modal · or · dashboard widget: open-leads"

- type: input
id: object
attributes:
label: "Object in focus"
description: "Auto-filled. The OpenRegister register + schema + UUID the page was viewing, if any. Lets us trace the suggestion to a real data shape."
placeholder: "pipelinq · Client · 2f9d-…-abc"

- type: input
id: spec-ref
attributes:
label: "Related capability"
description: "Auto-filled if the page or widget declares a `specRef`. Connects the suggestion to the existing OpenSpec for that capability."
placeholder: "client-management"

- type: markdown
attributes:
value: |
---

### What happens next

1. **Within 24 hours**: a maintainer reads this and replies with one of `ready-to-build`, `needs-design`, `parking-lot`, or `wont-build` (with a reason).
2. **If `ready-to-build`**: an OpenSpec proposal is auto-drafted from these fields. Hydra picks it up and opens a draft PR within days.
3. **When it ships**: you're credited on the spec, you get a `Co-Authored-By:` trailer on the merge commit, and you appear on the app's contributors page.

Read the full flow at the [Users are the moat](https://docs.conduction.nl/strategy/users-are-the-moat) strategy doc.
92 changes: 92 additions & 0 deletions .forgejo/issue_template/technical-task.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
name: "⚙️ Technische Taak"
description: "Infra, refactor, technische schuld of ops-werk"
title: "[TECH] "
labels: ["technical", "needs-refinement"]
assignees: []
body:
- type: markdown
attributes:
value: |
## Technische Taak
Gebruik dit template voor infra-wijzigingen, refactoring, technische schuld of operationeel werk zonder directe gebruikerswaarde.

- type: textarea
id: description
attributes:
label: "Beschrijving"
description: "Wat moet er gedaan worden en waarom?"
placeholder: "Migreer de WOO-platform PVC's naar S3 primary storage op Fuga Cloud."
validations:
required: true

- type: textarea
id: motivation
attributes:
label: "Motivatie / Aanleiding"
description: "Welk probleem lost dit op? Waarom nu?"
placeholder: "Huidige lokale PVC's lopen vol en zijn niet HA. Zie ook issue #123."
validations:
required: false

- type: textarea
id: approach
attributes:
label: "Aanpak (globaal)"
description: "Hoe gaan we dit oplossen? Welke keuzes zijn al gemaakt?"
placeholder: |
1. Backup bestaande data
2. S3 bucket aanmaken op Fuga Cloud
3. Nextcloud occ storage:update uitvoeren
4. Smoke test per namespace
validations:
required: false

- type: textarea
id: acceptance-criteria
attributes:
label: "Acceptatiecriteria"
value: |
- [ ] Taak uitvoerbaar via Ansible/Terraform (geen handmatige stappen)
- [ ] Gedocumenteerd in runbook of ADR
- [ ] Getest in acceptatieomgeving vóór productie
- [ ] Rollback-procedure beschreven
- [ ] Geen downtime buiten afgesproken window
- [ ] Gereviewd (4-eyes)
- [ ] Geen nieuwe security findings
validations:
required: true

- type: textarea
id: risks
attributes:
label: "Risico's / Afhankelijkheden"
placeholder: "Afhankelijk van beschikbaarheid acceptatieomgeving. Risico: dataverlies bij fout in migratiescript."
validations:
required: false

- type: dropdown
id: category
attributes:
label: "Categorie"
options:
- "Infra / ops"
- "Refactor"
- "Technische schuld"
- "Security"
- "Performance"
- "CI/CD"
- "Documentatie"
validations:
required: true

- type: dropdown
id: priority
attributes:
label: "Prioriteit"
options:
- "🔴 Critical"
- "🟠 High"
- "🟡 Medium"
- "🟢 Low"
validations:
required: true
74 changes: 74 additions & 0 deletions .forgejo/issue_template/user-story.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
name: "✨ User Story"
description: "Nieuwe functionaliteit vanuit gebruikersperspectief"
title: "Als [rol] wil ik [actie] zodat [waarde]"
labels: ["user-story", "needs-refinement"]
assignees: []
body:
- type: markdown
attributes:
value: |
## User Story
Beschrijf de gewenste functionaliteit vanuit het perspectief van de gebruiker.

- type: textarea
id: story
attributes:
label: "Story"
description: "Als [rol] wil ik [actie] zodat [waarde]"
placeholder: "Als gemeentemedewerker wil ik een document kunnen anonimiseren zodat ik het veilig kan delen."
validations:
required: true

- type: textarea
id: context
attributes:
label: "Context / Achtergrond"
description: "Waarom is dit nodig? Wat is de aanleiding?"
placeholder: "WOO-verzoeken vereisen anonimisering vóór publicatie..."
validations:
required: false

- type: textarea
id: acceptance-criteria
attributes:
label: "Acceptatiecriteria"
description: "Definition of Done — vink af wat van toepassing is"
value: |
- [ ] Functionaliteit werkt zoals beschreven in de story
- [ ] Er zijn unit tests aanwezig
- [ ] Er zijn integratietests aanwezig
- [ ] Documentatie is bijgewerkt
- [ ] Code is gereviewd (4-eyes)
- [ ] Geen nieuwe security findings (SAST/Trivy)
- [ ] Getest in acceptatieomgeving
validations:
required: true

- type: textarea
id: out-of-scope
attributes:
label: "Buiten scope"
description: "Wat doen we expliciet NIET in dit issue?"
placeholder: "Geen bulk-verwerking, geen UI-wijzigingen."
validations:
required: false

- type: dropdown
id: priority
attributes:
label: "Prioriteit"
options:
- "🔴 Critical"
- "🟠 High"
- "🟡 Medium"
- "🟢 Low"
validations:
required: true

- type: input
id: story-points
attributes:
label: "Story points (optioneel)"
placeholder: "3"
validations:
required: false
Loading