Keith Solomon
3263975d2a
feat: add Request and Response value objects
2026-07-06 17:52:29 -05:00
Keith Solomon
9ce0c2ac20
feat: add CSRF token store and verifier
2026-07-06 17:44:41 -05:00
Keith Solomon
a05baeb4f6
chore: track tests/Integration directory with placeholder
...
The phpunit.xml split into unit + integration testsuites requires the
integration directory to exist on disk, even when empty. The .gitkeep
keeps the directory present in fresh checkouts and on CI; the first real
integration test in a later task will replace the placeholder.
2026-07-06 17:24:41 -05:00
Keith Solomon
eed678e688
chore: add web toolchain and infrastructure for Plan 3
2026-07-06 17:22:46 -05:00
Keith Solomon
17782aab33
docs: complete Plan 3a scope notes (handlers/views/front controller stubbed for Plan 3b)
2026-07-06 16:01:22 -05:00
Keith Solomon
8df51fc1ed
docs: in-progress Plan 3a (PHP backend) - 10 of ~19 tasks
2026-07-06 15:58:55 -05:00
Keith Solomon
18520fee22
docs: add Plan 3 design spec (persistence, editors, uploads)
2026-07-06 15:36:21 -05:00
Keith Solomon
1d69e89faf
chore: add editor settings and initial project notes
CI / php (push) Failing after 1m43s
2026-07-06 14:34:43 -05:00
Keith Solomon
02addec8df
docs: include Plan 2 implementation plan in repo
2026-07-06 14:33:41 -05:00
Keith Solomon
86d82c353d
Merge feature/curated-content-and-objectives into develop
...
CI / php (push) Failing after 1m37s
Plan 2: Curated Content, Abilities, Objectives, and Scenario Validation.
Adds the curated content library (archetypes, abilities, terrain behaviors),
per-round objective control, both victory conditions, and full scenario
validation. 9 production files, 7 test files, 130/130 tests, PHPStan level 6
clean, PHPCS clean. See docs/superpowers/plans/2026-07-05-curated-content-
abilities-and-objectives.md for the implementation plan.
2026-07-05 20:38:44 -05:00
Keith Solomon
39b15c35da
refactor: tighten useAbility and Scenario archetype lookup
...
Final-review-driven changes (Tasks 6/M1, I1 from the ledger):
- Drop the redundant abilities-list check in CombatEngine::useAbility.
By construction (Scenario::__construct enforces the allowlist), any
ability the unit 'knows' is also archetype-allowed; the second check
alone is sufficient and removes a dead code path.
- Update testUseAbilityRejectsAnAbilityTheArchetypeForbids to assert the
'Unit archetype forbids that ability.' message it actually exercises.
- Compute $template once in Scenario::__construct's per-unit loop and
drop the redundant catalog lookup on the next line.
2026-07-05 20:33:03 -05:00
Keith Solomon
12f5c0bd3a
test: cover scenario to match flow with ability and objective
2026-07-05 20:23:28 -05:00
Keith Solomon
6fffaa2306
feat: validate scenario deployment zones and objectives
2026-07-05 20:11:35 -05:00
Keith Solomon
84fb175c0c
feat: resolve objective control and objective victory
2026-07-05 20:06:27 -05:00
Keith Solomon
088e85c9b4
feat: model scenarios and start match snapshots
2026-07-05 19:27:22 -05:00
Keith Solomon
06632ff9b3
feat: model objectives, deployment zones, and victory conditions
2026-07-05 19:11:24 -05:00
Keith Solomon
e70b60696c
feat: track archetype, abilities, and buff on unit state
2026-07-05 19:05:03 -05:00
Keith Solomon
88149ab1cf
feat: catalog curated abilities and definitions
2026-07-05 18:47:20 -05:00
Keith Solomon
0ac8c06c5e
feat: catalog curated unit archetypes and templates
2026-07-05 18:41:53 -05:00
Keith Solomon
78fc802cdc
fix: enforce LF for PHP files
2026-07-04 18:07:00 -05:00
Keith Solomon
de0bc9c43f
ci: pin workflow action revisions
2026-07-04 16:15:54 -05:00
Keith Solomon
07e58c84fe
ci: enforce PHP quality checks
2026-07-04 16:11:14 -05:00
Keith Solomon
fef22d7b56
fix: guard invalid turn transitions
2026-07-04 16:07:36 -05:00
Keith Solomon
acfbbf4a91
feat: add alternating team turns
2026-07-04 16:02:49 -05:00
Keith Solomon
7588b304e1
refactor: reuse position distance for attacks
2026-07-04 15:58:29 -05:00
Keith Solomon
3c6359243a
feat: resolve attacks and elimination victory
2026-07-04 15:53:57 -05:00
Keith Solomon
3eba823e52
fix: enforce executable movement state
2026-07-04 15:47:29 -05:00
Keith Solomon
1550e2920b
feat: validate and resolve unit movement
2026-07-04 15:37:05 -05:00
Keith Solomon
5297b41208
fix: enforce immutable match state invariants
2026-07-04 15:33:05 -05:00
Keith Solomon
94560da5b4
test: verify original match remains unchanged
2026-07-04 15:25:06 -05:00
Keith Solomon
0c5e824942
feat: model immutable combat state
2026-07-04 15:23:00 -05:00
Keith Solomon
4421c5ae32
test: strengthen battlefield boundary coverage
2026-07-04 15:19:06 -05:00
Keith Solomon
b789f1b61f
fix: validate battlefield reachability inputs
2026-07-04 15:15:08 -05:00
Keith Solomon
189be5bc64
feat: model battlefield terrain and movement costs
2026-07-04 15:08:40 -05:00
Keith Solomon
7b82adbd71
chore: identify Composer package as project
2026-07-04 15:05:11 -05:00
Keith Solomon
a97ecbc6d3
chore: bootstrap PHP quality toolchain
2026-07-04 15:02:06 -05:00
Keith Solomon
e20017f1e5
docs: plan combat core implementation
2026-07-04 14:59:00 -05:00
Keith Solomon
5ddfff2679
chore: ignore local worktrees
2026-07-04 14:59:00 -05:00
Keith Solomon
f43fa541c0
docs: define curated tactical sandbox scope
2026-07-04 13:41:13 -05:00