Skip to content

docs(timetable): the generator's feature page and Newman folder; archive timetabling-generator - #799

Merged
rubenvdlinde merged 14 commits into
developmentfrom
feat/timetable-generator-docs
Sep 30, 2026
Merged

rubenvdlinde merged 14 commits into
developmentfrom
feat/timetable-generator-docs

Conversation

@rubenvdlinde

Copy link
Copy Markdown
Contributor

Timetable generator, section 9: docs, Newman, e2e for every scenario, and the change archived

Base: development (19711e0). Sits on #798 (section 8, publish), which sits on #797, #796, #795, #794, #793 and #791. Merge in that order, or merge this PR with a merge commit to land the whole generator.

Change: timetabling-generator (DECISIONS rows 17 and 21), section 9 of 9 (tasks 9.1, 9.2). The change is archived here as openspec/changes/archive/2026-09-30-timetabling-generator; its spec delta folds into the new main spec openspec/specs/timetable-generator/spec.md (Purpose written, no delta header left). Rows tt-hard-soft-wishes (built in #795) and tt-scenario-compare (built in #797) now name the archived change.

What changes

  • docs/features/timetable-generator.md: the week grid and budget settings, the activities (learniq or two uploaded sheets), wishes, generate, take the current timetable, compare, publish as drafts, and the four admin endpoints. A row in docs/features/README.md.
  • Newman folder "Timetable generator" (8 requests): upload the sheets, add a hard wish, add a generated scenario, generate answers 202 with the uploaded lessons queued, import on a generated scenario refused with the reason, publish on an unfinished scenario refused with the reason, clean up.
  • tests/e2e/timetable-generator.spec.ts: two more cases, "a lesson that cannot be placed is listed with its reason" and "publish a scenario as drafts", so all six scenarios of the spec have a Playwright case (hydra gate-19 had named these two).
  • Every @spec tag of the change (43 files) points at the archived path.

Verification

At head 2ebf34d: openspec validate timetabling-generator --type change --strict passed before the archive; openspec validate --specs --strict 38 of 40 (app-metadata and task-collaboration, inherited and unchanged). parity_verify --strict 0 (only the unknown-cells census). composer check:strict 0 (PHPUnit 536, 7 skipped); npm lint, stylelint, check:l10n, check:l10n-js, check:schema-l10n, check:manifest, vitest and build all 0. CI-shaped Hydra gates (hydra-gates@main, full coverage, this body): ALL 82 applicable gates passed.

Live check

  1. Run the Newman folder "Timetable generator" against a dev instance: 8 requests, all green.
  2. Read docs/features/timetable-generator.md and follow "Generate a scenario" on a dev instance with the sheets from the Newman folder.

Inherited: the non-required Newman, PHPUnit (pgsql) and Quality Report jobs have been red on every PR since #758.

🤖 Generated with Claude Code

@github-actions

Copy link
Copy Markdown
Contributor

Quality Report — ConductionNL/planninq @ 0840e97

Check PHP Vue Security License Tests
lint ✅
phpcs ✅
phpmd ✅
psalm ✅
phpstan ✅
phpmetrics ✅
eslint ✅
stylelint ✅
build ✅
check-manifest ✅
check-l10n-js ✅
check-schema-l10n ✅
composer ✅ ✅ 107/107
npm ✅ ✅ 646/646
app:check-code ⏭️
info.xml ✅
REUSE ❌
lockfile sync ✅
PHPUnit ❌
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-30 07:57 UTC

Download the full PDF report from the workflow artifacts.

@rubenvdlinde
rubenvdlinde merged commit 524271b into development Sep 30, 2026
36 of 39 checks passed
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