# Hrt Artifact Lint

> Runs the deterministic structural lint over a tempa-spec change's artifacts (hashtag counts, checkbox format, delta headers, capability<->spec-file correspondence, Covers: target existence, design.md section presence, unverified External Dependencies rows) so a language model does not do this by hand. Called from hrt-adversarial-authoring and hrt-align-consistency-review. Judgement checks stay with the reviewers.

- Skill: `hash-id/hrt-artifact-lint` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add hash-id/hrt-artifact-lint`
- Raw SKILL.md: https://api.skillmd.com/api/skills/hash-id/hrt-artifact-lint/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: hash-id (https://skillmd.com/u/hash-id)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/hash-id/hrt-artifact-lint

---


# hrt-artifact-lint

Run the bundled `lint.cjs` (sits next to this file, installed at `.agents/skills/hrt-artifact-lint/lint.cjs`, no dependencies) against the change directory - the folder with `proposal.md`, `specs/`, `design.md`, `tasks.md`:

```
node .agents/skills/hrt-artifact-lint/lint.cjs <change-dir>
```

Output is `LEVEL path:line  message`, one per line. Exit 1 if any `ERROR`, else 0.

- **ERROR**: a deterministic structural defect with exactly one correct fix. Fix it directly, no user prompt, record what changed.
- **WARN**: non-blocking. Fix if quick.

The caller does not re-run these checks by hand after the lint passes. The caller's judgement checks (is a scenario genuinely behaviour, is a requirement genuinely testable, is an N/A section genuinely non-applicable) are not covered here and still run.

If Node is missing or `lint.cjs` cannot be found, say so and fall back to checking these by hand. Do not skip them silently.

