claude-code-plugin-ref…
Explain plugin, skill, command, agent, and hook mechanics used here. Use when authoring or debugging plugins. Do not use for ops;…
Applies Functional Core, Imperative Shell to isolate logic from side effects. Use when business logic is entangled with I/O or unit tests are slow and brittle.
Claude Code
$ npx -y skills add athola/claude-night-market --skill architecture-paradigm-functional-core --agent claude-code
Codex
$ npx skills add athola/claude-night-market --skill architecture-paradigm-functional-core -a codex -y
Cursor
$ npx skills add athola/claude-night-market --skill architecture-paradigm-functional-core -a cursor -y
Gemini CLI
$ npx skills add athola/claude-night-market --skill architecture-paradigm-functional-core -a gemini-cli -y
GitHub Copilot
$ npx skills add athola/claude-night-market --skill architecture-paradigm-functional-core -a github-copilot -y
OpenCode
$ npx skills add athola/claude-night-market --skill architecture-paradigm-functional-core -a opencode -y
Windsurf
$ npx skills add athola/claude-night-market --skill architecture-paradigm-functional-core -a windsurf -y
name: architecture-paradigm-functional-core description: Applies Functional Core, Imperative Shell to isolate logic from side effects. Use when business logic is entangled with I/O or unit tests are slow and brittle. alwaysApply: false category: architectural-pattern tags: - architecture - functional-core - imperative-shell - testability - business-logic - side-effects dependencies: [] tools: [] usage_patterns: - paradigm-implementation - refactoring-guidance - adr-support - testability-improvement complexity: intermediate estimated_tokens: 1200
1. **Inventory Side Effects**: Create a map of all side effects in the system, such as database writes, external API calls, UI events, and filesystem access. Explicitly assign these responsibilities to the "shell." 2. **Model the Core Logic**: Represent business rules and policies as pure functions. These functions should take domain data as input and return decisions or commands as output, avoiding shared mutable state. 3. **Design the Command Schema**: Define a small, explicit set of command objects that the core can return and the shell can interpret (e.g., `PersistOrder`, `PublishEvent`, `NotifyUser`). 4. **Refactor Incrementally**: Begin with high-churn or critical modules. Wrap legacy imperative code behind adapters while progressively extracting pure calculations into the functional core. 5. **Enforce Boundaries**: Use code reviews and automated architecture tests to validate a strict separation. The shell should only handle orchestration, sequencing, and retries, while the core should never call directly into frameworks or I/O libraries.
Vocabulary for the tools and abstractions an implementation of this paradigm tends to carry. Not dependencies, and not ``tools:`` frontmatter.
before any refactoring begins.
> 90% deterministic coverage.
contains zero imports from I/O or framework libraries.
before migration and compared after to demonstrate the pattern's value.
A plugin marketplace for Claude Code. Install only the plugins you need to run git workflows, code review, spec-driven development, and autonomous agents from inside your Claude Code session.
Explain plugin, skill, command, agent, and hook mechanics used here. Use when authoring or debugging plugins. Do not use for ops;…
States load-bearing decisions, invariants, and weak points. Use when judging a design change. Do not use for gating; use…
Rebuild the dev environment: uv, Python tiers, pins, traps. Use when onboarding or toolchain breaks. Do not use for daily…
Classify, gate, and review changes. Use when landing a PR, releasing, or amending rules. Do not use for failure triage; use…
Search and record project memory (Discussions, journal, ADRs). Use before re-investigating anything. Do not use for settled…
Bind loop 'done' to unfakeable gates. Use to harden egregore/herald loops or promote completion_integrity. Not for QA gates; use…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.