Skip to content
Back to skills

Vertically Sliced Feature Modules

ASecurity

Feature-first module architecture for cohesive ownership, composition, and promotion boundaries. Use when designing, moving, or reviewing feature and package structure.

  • 12 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 6, 2026
code-qualitygit

Security analysis

A100/100

Pro scans all 11 files and shows the line behind each finding

Scanned September 6, 2026

npx -y skills add Casper-Studios/casper-marketplace --skill vertically-sliced-feature-modules --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Vertically Sliced Feature Modules?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Vertically Sliced Feature Modules
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/casper-studios-vertically-sliced-feature-modules/badge)](https://www.skillsdirectory.com/skills/casper-studios-vertically-sliced-feature-modules)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: vertically-sliced-feature-modules
description: Feature-first module architecture for cohesive ownership, composition, and promotion boundaries. Use when designing, moving, or reviewing feature and package structure.
license: MPL-2.0
metadata:
  author: 'Basti Ortiz <ortiz@bastidood.dev>'
  source: 'https://github.com/BastiDood/skills'
---

# Vertically Sliced Feature Modules

This skill organizes systems around capabilities that own their implementation end to end. Feature roots, nested subsystems, compositional entry points, and deliberately promoted shared boundaries keep cohesion high and dependency direction visible.

Reconstruct the current ownership graph and build/runtime boundaries before proposing folders. Treat the example trees as adaptable ownership shapes, not prescribed filenames.

## Feature Ownership

A feature owns one user-visible or business capability end to end. Keep its complete private implementation closure under that owner, recursively, instead of scattering technical roles across global layers.

An entry implements or composes the operation its consumer needs. Keep setup options private when a caller only uses them to finish that operation. Do not introduce a forwarding wrapper or re-export barrel to manufacture an entry point.

Keep a readable private helper in its consumer. Extract a utility file when meaningful sans-I/O behavior needs a focused colocated test, even with one production consumer; this does not make the utility shared. Do not invent tests for trivial glue.

Features are isolated siblings and do not import one another. Callers and orchestrators compose feature entries. When multiple features need the same stable logic, promote it to a focused shared owner instead of making either feature the dependency of the other.

## References

Read the reference that matches the ownership or boundary being changed.

1. Keep each capability's technical roles together under its owning feature.
   - [Use a feature-first directory structure instead of scattering a capability by layer.](./references/directory-structure.md)
   - [Give a single owner's private capability a deeper nested subsystem instead of a broad prefixed namespace.](./references/nested-subsystems.md)
   - [Collocate unit tests with their narrowest leaf and hoist cross-cutting scenarios to an integration owner.](./references/test-placement.md)
2. Compose features through deliberate entries and one-way public boundaries.
   - [Keep routes and registries as composition surfaces; entry points must not absorb reusable business behavior.](./references/entry-points-and-composition.md)
   - [Prevent feature-to-feature coupling through public contracts with downward import direction.](./references/public-contracts-and-import-direction.md)
3. Promote shared ownership and package boundaries only when the system requires them.
   - [Require multiple owners to share one stable responsibility before promoting code to a shared-code owner.](./references/shared-code-promotion.md)
   - [Admit an independently buildable package only for a real dependency, runtime, build, or deployment closure.](./references/package-admission.md)
4. Preserve the existing ownership graph, contracts, and behavior during structural changes.
   - [Refactor and review module moves without redesigning logic under the cover of a move.](./references/refactor-and-review.md)

Files in this skill

  • LICENSE.txt16.3 KB
  • SKILL.md3.3 KB
  • agents/openai.yaml137 B
  • references/directory-structure.md1.5 KB
  • references/entry-points-and-composition.md2.4 KB
  • references/nested-subsystems.md1.5 KB
  • references/package-admission.md1.8 KB
  • references/public-contracts-and-import-direction.md1.5 KB
  • references/refactor-and-review.md1.8 KB
  • references/shared-code-promotion.md1.2 KB
  • references/test-placement.md1.8 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.