Skip to content
Back to skills

Spec

ASecurity

How to author and change files under specs/ - the state side of the state/motion split

  • 2 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 26, 2026
ai-agents

Security analysis

A100/100

Scanned September 26, 2026

npx -y skills add andyrids/icm-spec --skill spec --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Spec?

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

Security grade badge for Spec
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/andyrids-spec/badge)](https://www.skillsdirectory.com/skills/andyrids-spec)

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: spec
description: How to author and change files under specs/ - the state side of the state/motion split
paths:
  - "specs/**"
---

# Working under specs/

`specs/` declares what MUST be true - permanent desired state, changed only by review. The full
protocol is `specs/README.md`; the authoring bar and templates are
`ICM/_config/reference-standard-spec.md`. Read both before writing.

The rules that bite most often:

- Specs state behaviour observable from outside the implementation - invocation, outputs,
  failure modes, errors. Never function names, module paths or test cases; those rot on the
  first refactor.
- Every spec carries `## Out of scope`: the adjacent capability a reader would assume is
  included, and where it went. Edge cases stay in the spec too, as `If <trigger>, then` criteria.
- Behaviour is stated in EARS (`ICM/_config/reference-standard-validation.md`). The prose *about*
  authoring a spec stays in modal form; the requirements inside one do not.
- The level-of-detail test: could two implementers read it and disagree about whether the code
  conforms? If yes, it is too vague.
- A new spec on the default branch needs an owning plan unless the behaviour already exists -
  named in that plan's `specs:` if code changes to conform, its `authors:` if the plan only
  writes the spec. Invariant 1 in `specs/README.md`.
- Every spec opens with the `context-hierarchy` / `context-hierarchy-role` / `immutable` / `tags`
  frontmatter block in `specs/README.md`. Without it the spec is not routable by layer.
- After amending a spec, run the ripple check: `grep -l '<spec path>' plans/*.md`, then flag the
  plans chasing the old desired state.
- Spec/code divergence is a bug, not debt. Fix the code or amend the spec - never work around a
  spec in code.

Spec authorship belongs to ICM stage 01 (`/icm:specify`). Editing a spec mid-implementation is a
re-entry decision, not a quiet patch.

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.