[Epic] Package scaffold & engine foundations #6

Closed
opened 2026-07-01 00:50:31 +00:00 by manlycucumber · 1 comment
manlycucumber commented 2026-07-01 00:50:31 +00:00 (Migrated from github.com)

Stand up the composer package, autoloading, coding standards, and the core value objects (observance ID, rank/class, colour, season) that the resolver builds on. Done when a consumer can composer require introibo/core, instantiate the engine, and the foundational types are unit-tested.

Epic — child issues are tracked as sub-issues.

Stand up the composer package, autoloading, coding standards, and the core value objects (observance ID, rank/class, colour, season) that the resolver builds on. Done when a consumer can `composer require introibo/core`, instantiate the engine, and the foundational types are unit-tested. _Epic — child issues are tracked as sub-issues._
manlycucumber commented 2026-07-01 05:36:28 +00:00 (Migrated from github.com)

All seven children are merged to develop — Epic complete.

Foundation shipped:

  • #7 composer package introibo/core (PSR-4) · #8 PSR-12 + PHPStan L6 + PHPUnit tooling and CI gate
  • #9 Observance identity + ObservanceId grammar (roman:<cycle>:<body>) + design docs — src/Observance/
  • #10 RankClass + LegacyRank · #11 Colour + ElementColour — per-edition attributes, src/Attribute/
  • #12 Season + forBlock() helper — src/Temporal/
  • #13 LiturgicalDay aggregate + day() entry point — the contract seam, src/Calendar/ + src/functions.php

The identity/attribute/temporal value objects and the immutable day() contract are in place. Wave 1 continues with the temporal cycle (Epic #14) and the sanctoral overlay (Epic #23) populating this shell.

All seven children are merged to `develop` — Epic complete. **Foundation shipped:** - **#7** composer package `introibo/core` (PSR-4) · **#8** PSR-12 + PHPStan L6 + PHPUnit tooling and CI gate - **#9** `Observance` identity + `ObservanceId` grammar (`roman:<cycle>:<body>`) + design docs — `src/Observance/` - **#10** `RankClass` + `LegacyRank` · **#11** `Colour` + `ElementColour` — per-edition attributes, `src/Attribute/` - **#12** `Season` + `forBlock()` helper — `src/Temporal/` - **#13** `LiturgicalDay` aggregate + `day()` entry point — the contract seam, `src/Calendar/` + `src/functions.php` The identity/attribute/temporal value objects and the immutable `day()` contract are in place. Wave 1 continues with the temporal cycle (Epic #14) and the sanctoral overlay (Epic #23) populating this shell.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Directorium/Core#6
No description provided.