capabilities-layer
SKILL.md
Capabilities Layer
Intent
Deliver independent capabilities as bounded contexts that interact only via events and the workspace context.
Structure Rules
- Keep each capability cohesive: UI + application orchestration + domain model (if needed).
- Do not create cross-capability imports for business logic; communicate via events.
State Management
- Use
@ngrx/signalsstores as the source of truth for capability state. - Derive view state via computed signals; avoid mutable arrays/objects and avoid
.push(). - Async side effects run through
rxMethod+tapResponsewith explicit operator choice.
Event-Driven Interactions
- Publish domain/application events after persistence (append-before-publish).
- Subscribe to events in application stores/effects, not in presentation components.
UI Rules
- Standalone, zone-less components.
- Templates bind to signals only and use Angular control flow (
@if,@for,@switch,@defer). - Material Design 3 token usage only; no hardcoded colors.
Data Boundaries
- Infrastructure returns Observables/Promises; convert to signals before templates.
- Do not leak Firebase/DataConnect DTOs outside integration/infrastructure.
Testing Expectations
- Cover critical flows with unit tests for store transitions and Playwright for happy paths.
- Use stable selectors (
data-testid, roles/labels).
Weekly Installs
5
Repository
7spade/black-tortoiseFirst Seen
Feb 5, 2026
Security Audits
Installed on
codex5
opencode4
gemini-cli4
replit4
claude-code4
mcpjam3