architecture-fsd
Feature-Sliced Design — layers, import rules, and slice structure for src/renderer
Install / Use
npx skills add AK2083/DojoSphereInstalls into whichever agent you are using.
.clinerules
Cline rules
Quality Score
Category
Development & EngineeringSupported Platforms
Our assessment of architecture-fsd
architecture-fsd scores 64/100 on our quality scale, 3961st of 4,610 Development & Engineering skills we index.
Its .clinerules is 6.7 KB long, well organised into 9 sections with 2 code examples: a thorough specification that gives an agent plenty to work with.
It has no GitHub stars yet, so there is no community track record; judge it on its content.
Maintenance, license and trust
- We could not determine when the repository was last updated.
- Our last check on 2026-10-18 found the source still online.
- No license is declared. By default that means all rights are reserved: you can read it, but reusing or redistributing it is not clearly permitted. Ask the author before building on it commercially.
- Its trust signals score 68/100, with 3 cautions from licensing, adoption, age or documentation. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.
Safety scan
No issues foundOur scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands. An AI review of the same text found nothing harmful.
AI review by kimi-k2.7-code on 2026-09-24. Automated pattern scan on 2026-09-24. It catches known dangerous patterns, not every risk — read a skill before letting an agent act on it.
architecture-fsd compared with similar skills
All 4 of these similar skills score higher than architecture-fsd; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| architecture-fsd (this skill)by AK2083 | 64 | 0 | — | .clinerules |
| taste-skillby Leonxlnx | 100 | 99.7k | today | CLAUDE.md |
| ai-job-searchby MadsLorentzen | 100 | 59.2k | today | CLAUDE.md |
| claude-howtoby luongnv89 | 100 | 42.0k | today | CLAUDE.md |
| algorithmic-artby anthropics | 100 | 177.9k | 28d ago | SKILL.md |
Frequently asked questions
- How do I install architecture-fsd?
- Run
npx skills add AK2083/DojoSphere. The install tabs above show the steps for each supported agent. - Which AI agents does architecture-fsd work with?
- It is written for Cline, as a .clinerules file. Other agents that read the same format can often use it too.
- Is architecture-fsd safe to use?
- Our scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands. An AI review of the same text found nothing harmful. It declares no license and scores 68/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
- Is architecture-fsd still maintained?
- We could not determine when the repository was last updated.
Skill content
View source on GitHubdescription: Feature-Sliced Design — layers, import rules, and slice structure for src/renderer globs: src/renderer/**/* alwaysApply: false
Feature-Sliced Design (FSD)
Renderer code lives under src/renderer/ in five layers. Imports may only point downward — never from shared toward features, pages, widgets, or app.
app → pages, widgets, features, shared
pages → features, widgets, shared
widgets → features, shared
features → shared (+ slices of the same feature among themselves)
shared → internal only
app vs. shared — decision guide
Classify new dependencies by role, not technology:
| Question | → app | → shared |
| ----------------------------------------------------------------------- | ------- | ---------- |
| Part of the composition root (start app, register plugins)? | Yes | No |
| Swappable/mockable without rewriting features? | No | Yes |
| Features should not import SDKs directly? | — | Yes |
| Switching mainly requires wiring changes in main.ts/providers/? | Yes | No |
Rules of thumb:
- Render framework and global providers (app shell) →
app/providers/— configure directly, do not abstract. - Vendor/infrastructure clients (backend, storage bridge, …) →
shared/— wrap behind a public API (e.g.logErrorvia@shared/lib, main-process logging in@main/shared/logging/). - Thin helpers built on the framework that features use everywhere →
shared/lib/(setup stays inapp).
Split pattern: A dependency can be both — instance/wiring in app/providers/, usage API in shared/lib/ (e.g. plugin in app, composable in shared).
app
Composition root — app initialization, global providers, and framework wiring under providers/ and main.ts.
- Contains everything that composes the renderer application; not further abstracted.
- Examples (project-specific): Vue Router, Pinia instance, UI framework, i18n plugin.
- Router imports only page components from
@pages/*. - Router guards may use features/
sharedfor app-wide orchestration (e.g. auth check). - Do not register feature or widget UI directly in the router.
pages
Route components — one page per route. The router knows only @pages/*.
- Pages compose features and optionally widgets; they contain no business logic.
- Structure per page:
ui/,index.ts(public API). - Each file in
ui/is a page component: ship<Name>.vue,<Name>.stories.ts, and<Name>.e2e.spec.tstogether (seevue-frontend.md). - Example:
Login.vuebinds@features/authentication/signin-user.
widgets
Standalone UI building blocks without feature affiliation (e.g. Navigation). Not a use-case slice.
- May use features and
shared, but should not be imported by pages when mounted globally. - Structure:
ui/, optionali18n/,index.ts. - Each component in
ui/requires colocated<Name>.stories.tsand<Name>.e2e.spec.ts.
features
Business functionality divided into slices (use cases). One slice = one cohesive use case.
Ideal slice structure per use case:
features/<feature>/<slice>/
ui/ # Vue components for the use case
# Per component: <Name>.vue + <Name>.stories.ts + <Name>.e2e.spec.ts (all required)
model/ # composables, state, form logic
i18n/ # keys.ts, de.ts, en.ts, index.ts (one de/en file each — no language subfolders)
api/ # use-case API: wraps shared/api for this slice
service/ # (optional) orchestration within the slice
index.ts # public API — export only here
API layering: Generic client access lives in shared/api/ (e.g. Supabase client, generic auth functions). Each slice that needs such access gets its own api/ folder with use-case-specific functions that call shared/api and handle errors/monitoring at slice level.
-
model/andservice/import only from the sliceapi/, never directly from@shared/api. -
Example:
register-user/api/sign-up-with-mail-and-password.tscallssignUpByEmailPasswordfrom@shared/api;model/use-register.tsuses the slice function. -
Cross-slice logic within a feature belongs in
features/<feature>/service/ormodel/. -
Slices import
shared; they may use other slices of the same feature, but not other features, pages, or widgets. -
Add new functionality as a new slice; do not mix into existing slices.
shared
Abstraction of swappable dependencies. No feature or page logic. Features/widgets import only the public API — never the SDK directly.
| Segment | Level | Content |
| ------------------------------------------------------------ | ---------- | ------------------------------------------------------- |
| api/ | Low-level | Client implementations (e.g. Supabase) |
| lib/browser/, lib/validation/, lib/pinia/, lib/i18n/ | Low-level | Technical helpers, validation, store utilities |
| lib/logging/ | High-level | Error logging via logError (@shared/lib public API) |
| ui/ | — | Reusable Vue components without feature affiliation |
| model/, store/, types/, errors/ | — | Shared domain types, stores, error classes |
- Low-level: direct technology abstractions (storage, HTTP client, validators).
- High-level: domain-near abstractions (logging). Features use
@shared/liblogErrorinapi/layers instead of direct file or IPC access. - Vue components without feature affiliation →
shared/ui/, not in features. - Each component in
shared/ui/requires colocated<Name>.stories.tsand<Name>.e2e.spec.ts. sharedimports no features, pages, widgets, orapp.
Import aliases
@app/*, @pages/*, @features/*, @widgets/*, @shared/* — always import via aliases, never relative paths across layer boundaries.
Checklist for new files
- Correct layer and slice chosen?
- app vs. shared: wiring or swappable abstraction?
- Import direction respected (downward only)?
- Public API exported via
index.ts? - i18n keys in slice under
i18n/, not inshared? - Reusable UI without feature affiliation →
shared/ui/? - API access to
shared/api→ sliceapi/as intermediary, not directly inmodel/? - New or changed file in
ui/→ colocated<Name>.stories.tsand<Name>.e2e.spec.tsadded in the same change (not follow-up)?
Related Skills
taste-skill
99.7kAgent skills that give coding agents taste: art direction, reference images and a browser check instead of generic AI pages
ai-job-search
59.2kThe job search that runs on your machine. AI job application framework built on Claude Code: evaluate postings, tailor CVs, write cover letters, prep interviews. Fork it and own it.
claude-howto
42.0kA visual, example-driven guide to Claude Code — from basic concepts to advanced agents, with copy-paste templates that bring immediate value.
algorithmic-art
177.9kCreating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems.
Trust signals
From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.
