feature-driven-architecture-python

feature-driven-architecture-python is a skill for Claude Code from Dynokostya/just-works. It costs 115 tokens per session (3,848 once invoked), scanned A, original, Apache-2.0.

A set of instructions for organizing a Python backend by business capability, with each capability kept in its own feature area. This approach is also called vertical slicing: related routes, logic, and data code stay together.

In plain words
What is it for?
Use it when starting or reorganizing a Python backend, defining feature boundaries, or separating business logic from routers and views.
Why use it?
It helps prevent feature boundaries from eroding through direct model access, circular imports, or business logic placed in HTTP handlers.

Skill for Claude Code

Written for Claude Code: installed under .claude/.

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add skills/dynokostya/just-works/feature-driven-architecture-python
Any agent
npx skills add Dynokostya/just-works --skill feature-driven-architecture-python
Clone the repo
git clone --depth 1 https://github.com/Dynokostya/just-works

Made for: Claude Code.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for feature-driven-architecture-python

README.md
[![agentmods](https://agentmods.dev/badge/skills/dynokostya/just-works/feature-driven-architecture-python.svg)](https://agentmods.dev/skills/dynokostya/just-works/feature-driven-architecture-python)
Your own site
<a href="https://agentmods.dev/skills/dynokostya/just-works/feature-driven-architecture-python"><img src="https://agentmods.dev/badge/skills/dynokostya/just-works/feature-driven-architecture-python.svg" alt="Measured on agentmods" height="20"></a>
Per session 115 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 3,848 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00115 $0.03848
Opus 5 $0.00057 $0.01924
Sonnet 5 $0.00023 $0.00770
Haiku 4.5 $0.00012 $0.00385

Measured yesterday against content hash 502c47419264, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-06, from the pricing page.

Security

Grade A, and why

feature-driven-architecture-python scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

.claude/skills/feature-driven-architecture-python/SKILL.md · 307 lines

How it starts

The opening of the file, as written. The whole thing — 307 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Feature-Driven Architecture

Match the project's existing structure. When uncertain, read 3-5 existing feature directories to infer the local conventions. Check for import-linter or PyTestArch configuration in pyproject.toml. These defaults apply only when the project has no established convention.

Never rules

These are unconditional. They prevent coupling and boundary erosion regardless of project style.

  • Never import another feature's ORM models directly. Features own their models. Cross-feature data access goes through the owning feature's service layer or shared read models. from src.billing.models import Invoice inside src.auth/ is always a defect.
  • Never create circular imports between features. If Feature A imports from Feature B and Feature B imports from Feature A, the feature boundaries are drawn wrong. Refactor using events, a shared service, or merge the features.
  • Never put business logic in routers/views. Routers handle HTTP concerns (status codes, response formatting). Business logic lives in service.py or domain functions within the feature.
  • Never share Pydantic request/response schemas across features. Each feature defines its own schemas. Identical DTOs in two features today will diverge tomorrow — duplication is cheaper than the wrong shared abstraction.
  • Never skip boundary enforcement tooling. Setup is 15 minutes — a single independence contract in pyproject.toml and lint-imports in CI. Kraken Technologies found that violations appear even on small teams under deadline pressure, and compound quickly. Code review catches logic issues; import-linter catches structural invariants that are tedious and error-prone to verify manually in diffs.
  • Never use ForeignKey across feature boundaries in new code. Use plain integer ID fields between features. The referential integrity cost is real but coupling cost is worse. Shared read models are the escape hatch.
  • Never put feature-specific code in the shared layer. shared/ or core/ contains only cross-cutting infrastructure: auth middleware, database session factory, base classes, pagination, response schemas. If it's specific to one feature, it belongs in that feature.
  • Never use extend_existing=True for cross-feature read models. It silently merges column definitions into a shared Table object (SQLAlchemy issues #7366, #8925). Use database VIEWs mapped to separate ORM classes instead.

Read the full file on GitHub · 307 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. yesterday First seen · 307 lines · 115 tokens per session scan A 502c47419264

Subscribe to this mod's changes

feature-driven-architecture-python is a skill published in the GitHub repository Dynokostya/just-works (14 stars, last pushed yesterday), licensed Apache-2.0. It adds 115 tokens to every session and 3,848 once invoked, about $0.0006 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-04.

Related

Other skills, from other repositories

matlab

Build, review, migrate, and safely plan MATLAB or GNU Octave numerical workflows, including arrays, tabular/time data, tests, projects, graphics, MAT files, and explicit Python interoperability.

K-Dense-AI/scientific-agent-skills · 42 tokens

pennylane

Hardware-agnostic quantum ML framework with automatic differentiation. Use when training quantum circuits via gradients, building hybrid quantum-classical models, or needing device portability across IBM/Google/Rigetti/IonQ. Best for variational algorithms (VQE, QAOA), quantum neural networks, and integration with…

K-Dense-AI/scientific-agent-skills · 98 tokens

dd-code-generation

Use pup CLI for immediate Datadog operations or generate code for integration into applications.

DataDog/pup · 16 tokens

typing-exclusion-worker

Python typing exclusion worker: remove assigned mypy exclusion modules in small scoped batches, fix typing issues, run validation, and produce a structured completion summary. Use when running parallel typing-debt workers or when asked to remove modules from pyproject mypy exclusion overrides.

getsentry/skills · 57 tokens

python

Python development with ruff, mypy, pytest - TDD and type safety.

alinaqi/maggy · 18 tokens

splitting-oversized-modules

Split an oversized Python module (a thousand-plus-line logic.py, models.py, api.py, or its test file) into a package of one module per concern, mechanically and provably without changing behavior. Use on a request to split / break up / decompose a god module or move functions out of one, once a human has agreed to…

PostHog/posthog · 197 tokens