Borrowing it
Nothing to install: this file belongs to neohaskell/NeoHaskell. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/neohaskell/NeoHaskell/main/.pi/skills/neohaskell-concept-derivation/SKILL.mdgit clone --depth 1 https://github.com/neohaskell/NeoHaskellWrote 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.
[](https://agentmods.dev/skills/neohaskell/neohaskell/neohaskell-concept-derivation)<a href="https://agentmods.dev/skills/neohaskell/neohaskell/neohaskell-concept-derivation"><img src="https://agentmods.dev/badge/skills/neohaskell/neohaskell/neohaskell-concept-derivation/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/neohaskell/neohaskell/neohaskell-concept-derivation"><img src="https://agentmods.dev/badge/skills/neohaskell/neohaskell/neohaskell-concept-derivation.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
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.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00118 | $0.01874 |
| Opus 5 | $0.00059 | $0.00937 |
| Sonnet 5 | $0.00024 | $0.00375 |
| Haiku 4.5 | $0.00012 | $0.00187 |
Grade A, and why
neohaskell-concept-derivation 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 11d ago.
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.
How it starts
The opening of the file, as written. The whole thing — 125 lines — stays where its author put it; the contents beside it link to each section on GitHub.
NeoHaskell concept derivation
Every core concept type (query, command, event, outbound integration) has a Template Haskell marker that emits the mechanical instances it needs. The marker is the canonical way to declare the concept. Your job is to author the data type plus the required companion functions and business-logic instances — never the boilerplate the marker owns.
The rule
Use the marker. Author only what the marker cannot: the data type, the
required companion functions, the required marker-specific type instances (a
command's EntityOf/TransportsOf — never the query NameOf/EntitiesOf the
marker generates), and the business-logic instances. Never hand-write an
instance the marker emits.
Markers are idempotent (they call Service.TH.Boilerplate.emitInstanceIfMissing,
which reifies existing instances and skips them). So a hand-written
deriving (Show, Generic) or instance ToJSON next to a marker is silently
redundant at best — and a hard Duplicate instance GHC error if you place it
after the marker. Both are the noise this skill exists to remove.
The markers (ground truth — read the module, don't recall)
| Concept | Marker | Module | Emits (skipped if already in scope) | You author |
|---|---|---|---|---|
| Query | deriveQuery ''Q [''E1, ''E2] |
Service.Query.TH |
Show, Generic, FromJSON, ToJSON, ToSchema, NameOf Q = "Q", EntitiesOf Q = '[E1,E2], Query (wires canAccessImpl = canAccess, canViewImpl = canView, and maxResultsImpl = maxResults if maxResults is defined), KnownHash |
the data type; canAccess and canView (required, top-level); maxResults :: Int (optional cap); one QueryOf entity Q instance per contributing entity (business logic) |
| Command | command ''C |
Service.CommandExecutor.TH |
Show, Generic, FromJSON, ToJSON, NameOf C = "C", Command (wires getEntityIdImpl = getEntityId, decideImpl = decide, and the multi-tenancy mode), KnownHash |
the data type; getEntityId and decide (required); type instance EntityOf C = SomeEntity (required); type instance TransportsOf C = '[WebTransport] for HTTP commands |
| Event | event ''E |
Service.Event.TH |
Show, Generic, FromJSON, ToJSON |
the data type; for a domain event driven through the store: type instance EventOf/EntityOf and instance Event (business getEventEntityIdImpl) |
| Outbound | outboundIntegration ''O |
Service.OutboundIntegration.TH |
KnownHash + the JSON/deriving boilerplate |
the data type + the companion functions the module's error messages name — read Service/OutboundIntegration/TH.hs before use |
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.
- 11d ago First seen · 125 lines · 118 tokens per session scan A 278c2cbf6bb1
neohaskell-concept-derivation is a skill published in the GitHub repository neohaskell/NeoHaskell (347 stars, last pushed 3d ago), licensed Apache-2.0. It adds 118 tokens to every session and 1,874 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-08-30.
Other skills, from other repositories
resolve-conflicts
Use this skill immediately when the user mentions merge conflicts that need to be resolved. Do not attempt to resolve conflicts directly - invoke this skill first. This skill specializes in providing a structured framework for merging imports, tests, lock files (regeneration), configuration files, and handling…
github-pr-description
Generate and create pull request descriptions automatically using GitHub CLI. Use when the user asks to create a PR, generate a PR description, make a pull request, or submit changes for review. Analyzes git diff and commit history to create comprehensive, meaningful PR descriptions that explain what changed, why it…
execute-plan
Execute structured task plans with status tracking. Use when the user provides a plan file path in the format plans/{current-date}-{task-name}-{version}.md or explicitly asks you to execute a plan file.
vibe-research
Research an app idea or resolve product and technical uncertainties before committing to a design.
a-philosophy-of-software-design
Apply John Ousterhout-inspired software design rules when reducing complexity, designing module boundaries, or reviewing APIs and abstractions.
domain-driven-design
Apply Eric Evans-inspired DDD rules when modeling a complex domain, defining bounded contexts, protecting ubiquitous language, or designing aggregates.