mralexsaavedra/spotiarr/spotiarr-architecture

Claude Code and agent skill by mralexsaavedra/spotiarr

Trust tier 2
  • community
LLM review pending
Source check pending

Checking that the SKILL.md file is still in the repository.

Trigger: architecture, layer, placement, where does X go, new feature, repo structure. spotiarr layer rules: backend DDD-lite, frontend hooks/store/views.

Install

npx vskill@latest install mralexsaavedra/spotiarr/spotiarr-architecture

SKILL.md

Activation Contract

Load when deciding where new code belongs across backend, frontend, or shared.

Hard Rules

  • Dependencies point inward: presentation → application → domain; infrastructure implements inner-layer contracts — never the reverse.
  • Prisma, Redis, yt-dlp, external HTTP → infrastructure/ only. Never in domain/ or presentation/.
  • All use-cases and services register at: apps/backend/src/container.ts (NOT in infrastructure/ — it's at src/ root).
  • Server state in frontend → TanStack Query (hooks/queries, hooks/mutations). Client state → Zustand slices under store/ (one file per domain).
  • Real-time SSE sync → useServerEvents hook. Do not add manual SSE subscriptions elsewhere.
  • Shared DTOs, enums, utilities → packages/shared/. Never duplicate in apps.
  • All Spotify HTTP calls must go through CircuitBreaker.execute() (infrastructure/external/circuit-breaker.ts). Never add a raw Spotify HTTP call without wrapping it. The circuit persists open state via onOpen callback → settings → restored on restart.

Decision Gates

Backend — where does it go?
Business rule / invariant? → domain/
Use-case orchestration? → application/
DB, queues, APIs, filesystem? → infrastructure/
HTTP routes, controllers, SSE? → presentation/
Cross-cutting request guards? → presentation/middleware/
Frontend — where does it go?
UI rendering / composition? → components/
Page-level screens? → views/
View logic / orchestration? → hooks/
Remote fetch / mutate? → services/ + hooks/queries|mutations
App-wide client state? → store/
Ephemeral gate/overlay state? → local useState in the controller hook (NOT a Zustand store; see useTokenGate)
Cross-cutting types / utils? → packages/shared/

References

  • DI container: apps/backend/src/container.ts
  • Store pattern: apps/frontend/src/store/
  • Request guards: apps/backend/src/presentation/middleware/
  • Auth gate hook: apps/frontend/src/hooks/controllers/useTokenGate.ts

Security

  • Security scanPassed, 93 of 100Pattern checks on the skill's files.
  • Model reviewNot runA model review is scheduled for the next rescan.

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

Repository stars
35
Repository forks
6
7-day trend score
18

Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/mralexsaavedra/spotiarr/spotiarr-architecture/badge)](https://verified-skill.com/skills/mralexsaavedra/spotiarr/spotiarr-architecture)

Something wrong with this skill or its page? Tell us.