Updates the architecture/dependency diagrams and omissions table to match
what actually shipped: RemoteData<T> (not <E, T>), @angular/router moved
from "avoided" to "used", the new shared/infrastructure/http.ts fetch
boundary, and the CI/coverage gates now in place. Removes the now-false
"CI pipeline" omission row and adds honest rows for the linter and
per-environment config this template still deliberately skips.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Three fixes to the parts of the template that contradicted its own
"illegal states unrepresentable" claim:
- tsconfig: turn on strict + strictTemplates (measured zero fallout —
the codebase already typechecked cleanly, it just wasn't enforced).
- RemoteData<T> drops its unused error type parameter (Resource.error
is always Error) and Failure now carries a real Error. Pages read the
union with @let instead of re-deriving from the resource, which
deletes the non-null assertion strictNullChecks would otherwise flag.
- users.adapter.ts never checked response.ok, so an HTTP error resolved
as a garbage Success and crashed instead of reaching RemoteData's
Failure branch. New shared/infrastructure/http.ts adds the status
check plus hand-written parse guards and abortSignal forwarding; the
six fetch stubs across the test suite (which encoded the missing
check) and adapter spec now cover the Failure and Empty paths.
Also adds real routing (@angular/router was a dependency with zero
imports and a fake "Back" button): /users and /users/:id are now
deep-linkable via withComponentInputBinding(), tested with
RouterTestingHarness driving real navigation.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Wires the previously-inert @vitest/coverage-v8 into the test builder with
measured thresholds, adds a GitHub Actions workflow (format, test, build),
and fixes assorted gaps a cloning team would hit: no LICENSE, no engines/
.nvmrc, an unusable prettier install, a committed local-only settings file,
a dead 0-byte stylesheet, and a broken Karma-era VS Code test/debug config.
Also drops @angular/forms, which nothing in src/ imports.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
README now shows folder layering, minimal-Angular dependency flow, and
the users feature data flow as diagrams. Adds docs/adding-a-store.md,
a step-by-step guide to building an Elm-style store from just signals.
Extracted from atomic-design-poc: RemoteData<E,T> (bare union + fromResource,
no combinators) + a trimmed <app-async> switch, no Elm-style store — state is
resource() plus one plain signal. Minimal DDD layering per context
(domain/infrastructure/application/ui) combined with atomic design inside
ui/ (atoms/molecules/organisms/templates/pages), mirroring the POC's
conventions at template scale.
One worked feature (users/): a list with a click-through to a detail view
(its own independent resource() fetch) and a Back action. Tests are
BDD-style (describe/it, one assertion per it) and black-box (assert
rendered DOM/emitted events only) - 100% branch/line coverage. README.md
documents what's deliberately omitted vs. the POC and the concrete growth
path back to it.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>