angular-material-v20
π―Skillfrom 7spade/black-tortoise
Provides a comprehensive Angular Material v20 configuration and component setup with strict architectural governance for event-sourced domain-driven design applications.
Installation
npx skills add https://github.com/7spade/black-tortoise --skill angular-material-v20Skill Details
Overview
# Architecture Gate CI - Implementation Guide
Comment ID 3796470142 Implementation
This document describes the implementation of the Architecture Gate CI system for enforcing event-sourcing and DDD architectural invariants.
Files Created/Modified
1. Script: `comprehensive-audit.js`
The main architecture enforcement script that validates:
- Presentation layer isolation: No EventBus/EventStore/DomainEvent imports from domain
- Event publishing control: Only PublishEventUseCase and event handlers can call publish/append
- Store layer placement: All stores MUST be in application layer
- Sequential append-before-publish: No Promise.all with event operations
- Event causality propagation: Handlers MUST propagate correlationId and set causationId
- Signal-first architecture: Minimal RxJS in presentation layer
2. Package Script: `package.json`
Already configured with script command:
```json
"architecture:gate": "node comprehensive-audit.js"
```
3. Documentation: `.architectural-rules.md`
Updated with:
- CI gate implementation details
- Detailed rule descriptions
- GitHub Actions workflow specification
- Local testing instructions
- Exit code documentation
- Workflow security features
4. GitHub Actions Workflow: `.github/workflows/architecture-gate.yml`
IMPORTANT: Create this file manually with the following content:
```yaml
name: Architecture Gate
on:
push:
branches: ['**']
paths:
- 'src/*/.ts'
- 'comprehensive-audit.js'
- '.github/workflows/architecture-gate.yml'
pull_request:
branches: ['**']
paths:
- 'src/*/.ts'
- 'comprehensive-audit.js'
- '.github/workflows/architecture-gate.yml'
# Least-privilege permissions (security best practice)
permissions:
contents: read
# Prevent concurrent runs, cancel outdated PR builds
concurrency:
group: architecture-gate-${{ github.ref }}
cancel-in-progress: true
jobs:
enforce-architecture:
name: Enforce Event-Sourcing Invariants
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 1
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
- name: Run Architecture Gate
run: node comprehensive-audit.js
env:
NODE_ENV: production
```
Manual Steps Required
- Create the workflow directory (if it doesn't exist):
```bash
mkdir -p .github/workflows
```
- Create the workflow file:
Copy the workflow YAML above into .github/workflows/architecture-gate.yml
- Test locally:
```bash
npm run architecture:gate
```
- Commit and push:
```bash
git add .
git commit -m "feat: add architecture gate CI per comment_id 3796470142"
git push
```
Architecture Rules Enforced
Rule 1: Presentation Layer Isolation
Forbidden in src/app/presentation/:**
- β
from '@domain/event-bus' - β
from '@domain/event-store' - β
from '@domain/event'
Must use:
- β Application facades
- β Application stores
Rule 2: Event Publishing Control
Only these can call eventBus.publish() or eventStore.append():
- β
publish-event.use-case.ts - β
Event handlers (in
application//handlers/event-handler*.ts)
All other files:
- β Cannot call
eventBus.publish() - β Cannot call
eventStore.append()
Rule 3: Store Layer Placement
*Stores (.store.ts) MUST:**
- β
Be in
src/app/application/** - β NOT be in presentation or domain layers
Rule 4: Sequential Append-Before-Publish
Forbidden:
- β
Promise.all([eventStore.append(...), ...]) - β
Promise.all([eventBus.publish(...), ...])
Required:
- β
Sequential:
await eventStore.append()thenawait eventBus.publish()
Rule 5: Event Causality Propagation
Event handlers creating events MUST:
- β
Propagate
correlationIdfrom parent event
More from this repository8
Implements and demonstrates Angular 20's new control flow syntax using @for, @if, and @switch directives for more concise and readable template rendering.
Manages Firebase integration and authentication workflows for Angular applications, ensuring secure and standardized connection to Firebase services.
Validates and enforces Angular routing architectural constraints and patterns within a TypeScript/Angular application's codebase.
ddd standard architecture rules skill from 7spade/black-tortoise
Validates and enforces architectural constraints for RxJS-based event-sourcing systems using static code analysis and predefined architectural rules.
Based on the README, there's no direct information about the "material-design-3" Claude Code skill. The README is focused on an architecture enforcement system for event-sourcing and DDD architectu...
Integrates Google Maps functionality into Angular applications, providing a wrapper for rendering maps, markers, and geospatial interactions with simplified configuration and TypeScript support.
Connects and manages Firebase data interactions for a Claude Code skill, enabling seamless data retrieval, storage, and synchronization within the application architecture.