@@ -9,21 +9,48 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
99
1010### Added
1111
12+ - Catalogue listing page with filters
13+ ([ #15 ] ( https://github.com/itk-dev/ai-lib/issues/15 ) ).
14+ - Initial Symfony 8 application scaffold on the ITK Dev Docker
15+ ` symfony-8 ` template (phpfpm 8.4, nginx, MariaDB, Mailpit, Traefik),
16+ including dev dependencies for coding standards (` php-cs-fixer ` ,
17+ ` twig-cs-fixer ` ) and composer normalization
18+ ([ #1 ] ( https://github.com/itk-dev/ai-lib/issues/1 ) ).
19+ - Architecture Decision Records under ` docs/adr/ ` with index and the
20+ first ADR ` 001-tech-stack-docker-symfony `
21+ ([ #11 ] ( https://github.com/itk-dev/ai-lib/issues/11 ) ).
1222- ` CLAUDE.md ` with project-level operating instructions for AI agents
13- (stack, structure, execution policy, branching, commits, CHANGELOG,
14- ADRs, domain glossary).
15- - Initial Symfony 8 application scaffold.
16- - PHPUnit test harness with 100% coverage gate enforced in CI via
23+ — stack, structure, execution policy, branching, commits, CHANGELOG,
24+ ADR conventions, translations, brand env vars, Tailwind rebuild
25+ notes, and the domain glossary
26+ ([ #5 ] ( https://github.com/itk-dev/ai-lib/issues/5 ) ).
27+ - Human-facing ` README.md ` rewritten around the AI Bibliotek catalog
28+ — project description, status banner, feature list, tech stack,
29+ Task-based local development workflow, contributing pointers, and
30+ prototype references
31+ ([ #28 ] ( https://github.com/itk-dev/ai-lib/issues/28 ) ).
32+ - ` CONTRIBUTING.md ` documenting branching, Conventional Commits,
33+ coding standards, changelog expectations, and the pull-request
34+ workflow
35+ ([ #9 ] ( https://github.com/itk-dev/ai-lib/issues/9 ) ).
36+ - Project license declared as ** MPL-2.0** — full ` LICENSE ` text at
37+ the repo root, ` composer.json ` ` license ` field updated from
38+ ` proprietary ` to ` MPL-2.0 ` , and ADR ` 004-project-license-mpl-2 `
39+ recording the rationale
40+ ([ #32 ] ( https://github.com/itk-dev/ai-lib/issues/32 ) ).
41+ - ` Taskfile.yml ` exposing common developer commands via ` task --list `
42+ (compose helpers, composer, console, coding-standards family) with
43+ README updates documenting ` task ` as a host requirement
44+ ([ #29 ] ( https://github.com/itk-dev/ai-lib/issues/29 ) ).
45+ - Frontend tooling: Tailwind CSS via ` symfonycasts/tailwind-bundle ` ,
46+ Symfony AssetMapper, and Stimulus via ` symfony/stimulus-bundle ` ,
47+ with base Twig layout (` templates/base.html.twig ` ), asset
48+ entrypoints (` assets/app.js ` , ` assets/styles/app.css ` ), Tailwind v4
49+ design tokens (` @theme ` ), and ADR ` 002-frontend-tooling `
50+ ([ #38 ] ( https://github.com/itk-dev/ai-lib/issues/38 ) ).
51+ - PHPUnit test harness with a 100 % coverage gate enforced in CI via
1752 ` rregeer/phpunit-coverage-check `
1853 ([ #31 ] ( https://github.com/itk-dev/ai-lib/issues/31 ) ).
19- - ADR 006 (Draft) — user registration, approval, and account-state
20- model: a ` status ` enum (` pending | approved | blocked ` ) on ` User ` ,
21- an env-var allow-list of e-mail domains for self-signup, and a
22- ` UserCheckerInterface ` gating login
23- ([ #60 ] ( https://github.com/itk-dev/ai-lib/issues/60 ) ).
24-
25- ### Changed
26-
2754- README refocused as human-facing project documentation: project purpose,
2855 tech stack, and local development bootstrap. Developer command reference
2956 moved to ` CLAUDE.md ` (and later ` CONTRIBUTING.md ` , tracked in #9 ).
@@ -34,13 +61,38 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
3461- Frontend tooling: Tailwind CSS (via ` symfonycasts/tailwind-bundle ` ),
3562 Symfony AssetMapper, and Stimulus (via ` symfony/stimulus-bundle ` ).
3663 Decision recorded in [ ADR 002] ( docs/adr/002-frontend-tooling.md ) .
64+ ([ #14 ] ( https://github.com/itk-dev/ai-lib/issues/14 ) , [ #16 ] ( https://github.com/itk-dev/ai-lib/issues/16 ) ).
3765- Base Twig layout (` templates/base.html.twig ` ) and frontend asset
3866 entrypoints (` assets/app.js ` , ` assets/styles/app.css ` ).
3967- Placeholder frontpage at ` / ` (` App\Controller\FrontpageController ` )
40- that previews the AI Bibliotek design with hardcoded sample data:
41- hero, search prompt, sample-assistant rail, "Sådan virker det"
42- steps, and "Kommer snart" chips. Follows the prototype mock at
43- ` itk-dev/research-projects/docs/public/projects/ai-bibliotek/mocks ` .
68+ previewing the AI Bibliotek design with hardcoded sample data
69+ (hero, search box, sample-assistant rail, "Sådan virker det" steps),
70+ site chrome (header with brand + nav, footer), the Stimulus
71+ ` nav_toggle_controller ` driving the mobile menu, and a
72+ ` block-on-label ` GitHub Action providing a per-PR merge gate
73+ ([ #40 ] ( https://github.com/itk-dev/ai-lib/issues/40 ) ).
74+ - User authentication: ` User ` Doctrine entity (email, hashed password,
75+ roles), ` UserRepository ` (with ` PasswordUpgraderInterface ` ), the
76+ ` UserManager ` service that hides persistence + hashing, form-login
77+ firewall + ` /login ` + ` /logout ` , fixtures for two baseline users
78+ (` alice@example.test ` , ` bob@example.test ` — password ` password ` ),
79+ console commands ` app:user:create ` and ` app:user:change-password ` ,
80+ and end-to-end functional + unit tests
81+ ([ #2 ] ( https://github.com/itk-dev/ai-lib/issues/2 ) ).
82+ - PHPUnit suite split into ` unit ` (no database) and ` integration ` (full
83+ kernel) testsuites under ` tests/Unit/ ` and ` tests/Integration/ ` , with
84+ transactional database isolation per integration test via
85+ ` dama/doctrine-test-bundle ` . The integration suite uses a dedicated
86+ ` tests/bootstrap_integration.php ` that builds the schema from ORM
87+ metadata and loads baseline ` UserFixtures ` once before any test;
88+ DAMA's per-test transaction rolls back mutations so the baseline
89+ persists. The default ` tests/bootstrap.php ` is minimal and is used
90+ by ` task test-unit ` . ` task test-unit ` and ` task test-integration `
91+ expose the suites individually.
92+ - Reusable Twig form components under ` templates/components/Form/ ` :
93+ ` Form/Label ` , ` Form/Input ` , and ` Form/Button ` (with ` variant ` and
94+ ` size ` props for future styling variants). The ` /login ` template
95+ consumes them instead of inlining the input/label/button markup.
4496- Site chrome (header with brand + nav, footer) in
4597 ` templates/base.html.twig ` , with the Fraunces/Geist font stack
4698 preloaded from Google Fonts.
@@ -53,13 +105,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
53105 per-PR merge gate for dependencies (e.g. another PR that must land
54106 first).
55107- ` LICENSE ` file at repo root containing the full Mozilla Public License 2.0 text.
56- - ADR ` docs/adr/002-project-license-mpl-2.md ` recording the MPL-2.0 license
57- decision and its rationale.
58- - License section in ` README.md ` referencing the new ` LICENSE ` file and ADR.
59108- Project license declared as ** MPL-2.0** (Mozilla Public License 2.0); the
60109 ` license ` field in ` composer.json ` updated from the Symfony skeleton
61110 default ` proprietary ` to the SPDX identifier ` MPL-2.0 ` .
62- - Added develop branch
63111- ` Taskfile.yml ` exposing common developer commands via ` task --list `
64112 (compose helpers, composer, console, coding-standards family).
65113- README documents [ Task] ( https://taskfile.dev ) as a host requirement and
@@ -68,6 +116,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
68116 documenting the choice of Symfony 8 on the ITK Dev Docker ` symfony-8 ` template.
69117- ` CONTRIBUTING.md ` documenting branching, Conventional Commits, coding
70118 standards, changelog expectations and the pull-request workflow.
71- - Rewrite the project README around the AI Bibliotek catalog: adds project
72- description, status banner, feature list, tech stack, Task-based local
73- development workflow, contributing pointers, and prototype references.
119+ - GitHub issue template ` .github/ISSUE_TEMPLATE/issue.md ` and pull-request
120+ template ` .github/PULL_REQUEST_TEMPLATE.md ` , each with a human-facing
121+ "Resume" / checklist section followed by an "AI specificities" detail
122+ block so other agents can continue work from a structured brief
123+ ([ #69 ] ( https://github.com/itk-dev/ai-lib/issues/69 ) ).
0 commit comments