docs/archive/2026-07-ai-artifacts/claude-skills/feature-pipeline-preview/02-classify-feature/01-decide/SKILL.md
> **ARCHIVAL KNOWLEDGE — DO NOT USE OR REFERENCE.** > Superseded by `codemap/` + root `AGENTS.md`. Scheduled for deletion once the pipeline is verified (Phase 6). > Manifest: `docs/archive/2026-07-ai-artifacts/MANIFEST.md` --- name: 01-decide description: Judges the feature's complexity tier from the ADR, issue, and diff scope, with explicit rationale. kind: leaf executor: opus model: claude-opus-4-7 --- # Decide complexity tier Returns the single tier that best describes the feature's blast
npx skillsauth add neohaskell/neohaskell docs/archive/2026-07-ai-artifacts/claude-skills/feature-pipeline-preview/02-classify-feature/01-decideInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
ARCHIVAL KNOWLEDGE — DO NOT USE OR REFERENCE. Superseded by
codemap/+ rootAGENTS.md. Scheduled for deletion once the pipeline is verified (Phase 6). Manifest:docs/archive/2026-07-ai-artifacts/MANIFEST.md
Returns the single tier that best describes the feature's blast radius. The output drives every later grounding pass — trivial features skip cryptographic and hot-path checks entirely; security-critical features cannot skip them. A miscalled tier compounds across phases.
feature_name — string, the human-readable feature name from pipeline.py get feature_name.issue_text — string, the GitHub issue body if available (may be empty).module_path — string, the planned module location from pipeline.py get module_path.adr_path — optional, the path to the ADR if phase 3 has already produced one.diff_scope — optional list of file paths the feature touches, if known.The orchestrator gathers what is available. Any missing field is "" or [] — never invent content.
| Tier | The feature… | Grounding intensity |
| --- | --- | --- |
| trivial | Adds no new trust boundary, no external IO, no new dependency, no new control flow. Examples: a Mock integration used only in tests, a pure rename, a doc fix, a test fixture, an internal-only refactor. | Skips cryptographic, hot-path, and authorisation rubrics entirely. |
| simple | Adds a new pure value type or pure function with no IO and no dependency. Example: a Decimal type, a Uuid newtype. | Eyeball-only security/perf checks; rejects every cascade recommendation by default. |
| moderate | Adds a new query / command / decider / serialiser / persistence schema, or a new in-process integration. Touches external IO OR adds a dependency, but not both. | Keeps specific findings; demotes cascade recommendations unless directly applicable. |
| complex | Adds a new event-store layer, new networked subsystem, schema migration, replication, queue, or contention-sensitive concurrent structure. Touches both external IO AND a new dependency. | Full Top-10 + STRIDE + SSDF; profiling evidence required for any speedup claim. |
| security-critical | Produces, compares, signs, verifies, or stores a value whose secrecy gates access. Touches authn / authz, multi-tenant isolation, HMAC / JWT / OAuth / session / API-key handling. | Every methodology section active; no demotions. |
State assumptions, define the verifiable goal, then execute:
adr_path, read it end-to-end and consult its "Decision drivers" and "Public API" sections. If only feature_name + issue_text are present, work from those.true / false / unknown:
touches_secrets — does the feature produce, compare, sign, verify, or store a secret value (API key, token, HMAC, password, OAuth state, session id, share-link)?touches_auth — does it touch authentication, authorisation, multi-tenant isolation, or canAccess / canView semantics?external_io — does it perform network, file-system, or process IO?adds_dep — does it add a new cabal / npm / nix dependency?is_test_only — is the feature scoped to test code (Mock, fixture, stub, harness)? Mock integrations are test-only.is_pure_change — is the entire diff a pure rename, doc edit, internal refactor, comment fix, or formatting change?touches_secrets ∨ touches_auth ⇒ security-critical. No exceptions, even for test-only code that handles real secrets.is_pure_change ∨ is_test_only ⇒ trivial. This rule overrides keyword matches like "integration" or "http" when the feature is a mock or fixture. A "Mock HTTP integration for tests" is trivial.external_io ∧ adds_dep) ⇒ complex.external_io, OR adds_dep ⇒ moderate.simple.Emit exactly one JSON document on stdout, no preamble, no trailing commentary:
{
"tier": "trivial",
"rationale": "<one to three sentences naming the rule that fired and the decisive signals>",
"signals": {
"touches_secrets": false,
"touches_auth": false,
"external_io": false,
"adds_dep": false,
"is_test_only": true,
"is_pure_change": false
}
}
The persist step will read this JSON verbatim. Any deviation (preamble, multiple JSON blocks, missing field) breaks the pipeline.
unknown at emit time → refuse: "signal <name> cannot be determined from inputs; ask the maintainer". The JSON output schema is boolean-only; unknown is a scratchpad state for the decision algorithm and must never appear in the emitted JSON.development
> **ARCHIVAL KNOWLEDGE — DO NOT USE OR REFERENCE.** > Superseded by `codemap/` + root `AGENTS.md`. Scheduled for deletion once the pipeline is verified (Phase 6). > Manifest: `docs/archive/2026-07-ai-artifacts/MANIFEST.md` --- name: neohaskell-style-guide description: NeoHaskell coding style reference and enforcement rules. Load when writing, reviewing, or modifying any Haskell code in the NeoHaskell project. Triggers on 'NeoHaskell style', 'NeoHaskell conventions', 'how to write NeoHaskell', '
development
> **ARCHIVAL KNOWLEDGE — DO NOT USE OR REFERENCE.** > Superseded by `codemap/` + root `AGENTS.md`. Scheduled for deletion once the pipeline is verified (Phase 6). > Manifest: `docs/archive/2026-07-ai-artifacts/MANIFEST.md` --- name: neohaskell-security-review description: Security & Code Quality review for NeoHaskell. Use when reviewing code changes, PRs, or architectural decisions for security implications. Evaluates OWASP, NIST, EU compliance. Handles pipeline phases 2 (ADR review) and 10 (im
development
> **ARCHIVAL KNOWLEDGE — DO NOT USE OR REFERENCE.** > Superseded by `codemap/` + root `AGENTS.md`. Scheduled for deletion once the pipeline is verified (Phase 6). > Manifest: `docs/archive/2026-07-ai-artifacts/MANIFEST.md` --- name: neohaskell-qa-designer description: Testing QA Designer for NeoHaskell. Designs comprehensive test specifications with exhaustive edge cases, boundary conditions, and happy paths BEFORE implementation. Handles pipeline phase 6 (Test Spec Design). Outside-in TDD meth
development
> **ARCHIVAL KNOWLEDGE — DO NOT USE OR REFERENCE.** > Superseded by `codemap/` + root `AGENTS.md`. Scheduled for deletion once the pipeline is verified (Phase 6). > Manifest: `docs/archive/2026-07-ai-artifacts/MANIFEST.md` --- name: neohaskell-performance-review description: Performance review for NeoHaskell targeting 50k req/s throughput. Use when reviewing code for performance implications, INLINE pragmas, strictness, and allocation patterns. Handles pipeline phases 3 (ADR review) and 11 (imp