Skip to content

feat: add appspec/openspec scaffold and dev tooling - #1

Closed
WilcoLouwerse wants to merge 10 commits into
developmentfrom
feature/appspec-openspec-scaffold
Closed

feat: add appspec/openspec scaffold and dev tooling#1
WilcoLouwerse wants to merge 10 commits into
developmentfrom
feature/appspec-openspec-scaffold

Conversation

@WilcoLouwerse

@WilcoLouwerse WilcoLouwerse commented Mar 22, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Add appspec/ scaffold with app-config.json, feature docs, and ADR README — aligns with OpenSpec-driven development workflow
  • Add openspec/ directory with README and ROADMAP for spec-driven planning
  • Update README to Procest-style template with full project documentation structure
  • Add .claude/settings.local.json with read-only permission allowlist for safe Claude Code usage
  • Add .gitattributes, .prettierrc, .vscode/settings.json, and eslint.config.js for consistent dev tooling

Checks

  • ✅ All local checks passed (composer check:strict: lint, phpcs, phpmd, psalm, phpstan, test:all)

Test plan

  • CI passes
  • Reviewed for regressions

@github-actions

Copy link
Copy Markdown
Contributor

Quality Report

Repository ConductionNL/nextcloud-app-template
Commit b023d08
Branch 1/merge
Event pull_request
Generated 2026-03-22 16:00 UTC
Workflow Run https://github.com/ConductionNL/nextcloud-app-template/actions/runs/23406834248

Summary

Group Result
PHP Quality PASS
Vue Quality FAIL
Security FAIL
License FAIL
PHPUnit SKIP
Newman SKIP

PHP Quality

Tool Result
lint PASS
phpcs PASS
phpmd PASS
psalm PASS
phpstan PASS
phpmetrics PASS

Vue Quality

Tool Result
eslint FAIL
stylelint FAIL

Security

Ecosystem Result
composer PASS
npm FAIL

License Compliance

Ecosystem Result
composer PASS
npm FAIL

composer dependencies (100 total)

Metric Count
Approved (allowlist) 100
Approved (override) 0
Denied 0

PHPUnit Tests

PHPUnit tests were not enabled for this run.

Integration Tests (Newman)

Newman integration tests were not enabled for this run.


Generated automatically by the Quality workflow.

Download the full PDF report from the workflow artifacts.

@github-actions

Copy link
Copy Markdown
Contributor

Quality Report

Repository ConductionNL/nextcloud-app-template
Commit 26ff410
Branch 1/merge
Event pull_request
Generated 2026-03-22 16:16 UTC
Workflow Run https://github.com/ConductionNL/nextcloud-app-template/actions/runs/23407147469

Summary

Group Result
PHP Quality PASS
Vue Quality FAIL
Security FAIL
License FAIL
PHPUnit SKIP
Newman SKIP

PHP Quality

Tool Result
lint PASS
phpcs PASS
phpmd PASS
psalm PASS
phpstan PASS
phpmetrics PASS

Vue Quality

Tool Result
eslint FAIL
stylelint FAIL

Security

Ecosystem Result
composer PASS
npm FAIL

License Compliance

Ecosystem Result
composer PASS
npm FAIL

composer dependencies (100 total)

Metric Count
Approved (allowlist) 100
Approved (override) 0
Denied 0

PHPUnit Tests

PHPUnit tests were not enabled for this run.

Integration Tests (Newman)

Newman integration tests were not enabled for this run.


Generated automatically by the Quality workflow.

Download the full PDF report from the workflow artifacts.

@github-actions

Copy link
Copy Markdown
Contributor

Quality Report

Repository ConductionNL/nextcloud-app-template
Commit b206f6f
Branch 1/merge
Event pull_request
Generated 2026-03-22 16:20 UTC
Workflow Run https://github.com/ConductionNL/nextcloud-app-template/actions/runs/23407209282

Summary

Group Result
PHP Quality PASS
Vue Quality FAIL
Security FAIL
License FAIL
PHPUnit SKIP
Newman SKIP

PHP Quality

Tool Result
lint PASS
phpcs PASS
phpmd PASS
psalm PASS
phpstan PASS
phpmetrics PASS

Vue Quality

Tool Result
eslint FAIL
stylelint FAIL

Security

Ecosystem Result
composer PASS
npm FAIL

License Compliance

Ecosystem Result
composer PASS
npm FAIL

composer dependencies (100 total)

Metric Count
Approved (allowlist) 100
Approved (override) 0
Denied 0

PHPUnit Tests

PHPUnit tests were not enabled for this run.

Integration Tests (Newman)

Newman integration tests were not enabled for this run.


Generated automatically by the Quality workflow.

Download the full PDF report from the workflow artifacts.

- Replace @typescript-eslint/eslint-plugin@^8.x with ^7.18.0 to satisfy
  peer dependency chain from @nextcloud/eslint-config via @vue/eslint-config-typescript
- Add @typescript-eslint/parser@^7.18.0 and eslint-plugin-vue@^9.21.1 explicitly
  so transitive peer deps are hoisted to top-level node_modules (required by ESLint v8)
- Add vue-eslint-parser@^9.4.3 explicitly to ensure it is hoisted and discoverable
- Add stylelint.config.js to prevent stylelint picking up parent-directory config
- Regenerate package-lock.json with correct dependency resolution
@github-actions

Copy link
Copy Markdown
Contributor

Quality Report

Repository ConductionNL/nextcloud-app-template
Commit d8f1e20
Branch 1/merge
Event pull_request
Generated 2026-03-22 16:53 UTC
Workflow Run https://github.com/ConductionNL/nextcloud-app-template/actions/runs/23407767929

Summary

Group Result
PHP Quality PASS
Vue Quality PASS
Security PASS
License PASS
PHPUnit FAIL
Newman SKIP

PHP Quality

Tool Result
lint PASS
phpcs PASS
phpmd PASS
psalm PASS
phpstan PASS
phpmetrics PASS

Vue Quality

Tool Result
eslint PASS
stylelint PASS

Security

Ecosystem Result
composer PASS
npm PASS

License Compliance

Ecosystem Result
composer PASS
npm PASS

composer dependencies (100 total)

Metric Count
Approved (allowlist) 100
Approved (override) 0
Denied 0

npm dependencies (215 total)

Metric Count
Approved (allowlist) 215
Approved (override) 0
Denied 0

PHPUnit Tests

PHP Nextcloud Result
Overall FAIL

Integration Tests (Newman)

Newman integration tests were not enabled for this run.


Generated automatically by the Quality workflow.

Download the full PDF report from the workflow artifacts.

CI requires phpunit.xml or phpunit-unit.xml when enable-phpunit is true.
Adds both config files, bootstrap files, and a placeholder unit test.
@github-actions

Copy link
Copy Markdown
Contributor

Quality Report

Repository ConductionNL/nextcloud-app-template
Commit 27803e8
Branch 1/merge
Event pull_request
Generated 2026-03-22 17:33 UTC
Workflow Run https://github.com/ConductionNL/nextcloud-app-template/actions/runs/23408551204

Summary

Group Result
PHP Quality PASS
Vue Quality PASS
Security PASS
License PASS
PHPUnit PASS
Newman SKIP

PHP Quality

Tool Result
lint PASS
phpcs PASS
phpmd PASS
psalm PASS
phpstan PASS
phpmetrics PASS

Vue Quality

Tool Result
eslint PASS
stylelint PASS

Security

Ecosystem Result
composer PASS
npm PASS

License Compliance

Ecosystem Result
composer PASS
npm PASS

composer dependencies (100 total)

Metric Count
Approved (allowlist) 100
Approved (override) 0
Denied 0

npm dependencies (215 total)

Metric Count
Approved (allowlist) 215
Approved (override) 0
Denied 0

PHPUnit Tests

PHP Nextcloud Result
Overall PASS

Code coverage: 0% (0 / 2 statements)

Integration Tests (Newman)

Newman integration tests were not enabled for this run.


Generated automatically by the Quality workflow.

Download the full PDF report from the workflow artifacts.

Provides a starting structure for API integration tests.
Enable in CI by setting enable-newman: true in code-quality.yml.
@github-actions

Copy link
Copy Markdown
Contributor

Quality Report

Repository ConductionNL/nextcloud-app-template
Commit 4ae4ae7
Branch 1/merge
Event pull_request
Generated 2026-03-22 17:46 UTC
Workflow Run https://github.com/ConductionNL/nextcloud-app-template/actions/runs/23408789780

Summary

Group Result
PHP Quality PASS
Vue Quality PASS
Security PASS
License PASS
PHPUnit PASS
Newman SKIP

PHP Quality

Tool Result
lint PASS
phpcs PASS
phpmd PASS
psalm PASS
phpstan PASS
phpmetrics PASS

Vue Quality

Tool Result
eslint PASS
stylelint PASS

Security

Ecosystem Result
composer PASS
npm PASS

License Compliance

Ecosystem Result
composer PASS
npm PASS

composer dependencies (100 total)

Metric Count
Approved (allowlist) 100
Approved (override) 0
Denied 0

npm dependencies (215 total)

Metric Count
Approved (allowlist) 215
Approved (override) 0
Denied 0

PHPUnit Tests

PHP Nextcloud Result
Overall PASS

Code coverage: 0% (0 / 2 statements)

Integration Tests (Newman)

Newman integration tests were not enabled for this run.


Generated automatically by the Quality workflow.

Download the full PDF report from the workflow artifacts.

The register() method is part of the IBootstrap interface contract.
Like boot(), its $context parameter is intentionally unused in the
template since it serves as a placeholder for app-specific registrations.
@WilcoLouwerse

Copy link
Copy Markdown
Collaborator Author

Closing in favour of a fresh PR with all CI check fixes applied.

@github-actions

Copy link
Copy Markdown
Contributor

Quality Report

Repository ConductionNL/nextcloud-app-template
Commit 29a5891
Branch 1/merge
Event pull_request
Generated 2026-03-22 18:16 UTC
Workflow Run https://github.com/ConductionNL/nextcloud-app-template/actions/runs/23409335117

Summary

Group Result
PHP Quality PASS
Vue Quality PASS
Security PASS
License PASS
PHPUnit PASS
Newman SKIP

PHP Quality

Tool Result
lint PASS
phpcs PASS
phpmd PASS
psalm PASS
phpstan PASS
phpmetrics PASS

Vue Quality

Tool Result
eslint PASS
stylelint PASS

Security

Ecosystem Result
composer PASS
npm PASS

License Compliance

Ecosystem Result
composer PASS
npm PASS

composer dependencies (100 total)

Metric Count
Approved (allowlist) 100
Approved (override) 0
Denied 0

npm dependencies (215 total)

Metric Count
Approved (allowlist) 215
Approved (override) 0
Denied 0

PHPUnit Tests

PHP Nextcloud Result
Overall PASS

Code coverage: 0% (0 / 2 statements)

Integration Tests (Newman)

Newman integration tests were not enabled for this run.


Generated automatically by the Quality workflow.

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