ctxlint — Prompts
ctxlint ships no LLM prompt files. Its checks are deterministic code, not LLM calls. However, it publishes three open lint specification documents that serve as the conceptual "prompts" for implementing the checks.
Verbatim Excerpt 1: CONTEXT_LINT_SPEC.md (opening framing)
# AI Context File Linting Specification
**Version:** 1.0.0-draft
**Date:** 2026-04-07
**Maintained by:** Yaw Labs / ctxlint
**License:** CC BY 4.0
## What is this?
AI coding agents are guided by context files — markdown documents like `CLAUDE.md`,
`.cursorrules`, and `AGENTS.md` that tell the agent how a project works. These files
reference source paths, build commands, frameworks, and conventions. When the code
changes and the context files don't, the agent follows stale instructions and fails.
This specification defines a standard set of lint rules for validating AI agent context
files across all major AI coding clients. It is tool-agnostic: any linter, IDE extension,
CI check, or AI agent can implement these rules.
Technique: Open specification pattern — ctxlint publishes the rule definitions as a CC BY 4.0 standard so other tools can implement the same rules, creating ecosystem network effects.
Verbatim Excerpt 2: README check table
| Check | What it finds |
| --------------------- | --------------------------------------------------------------------------------------------- |
| **Broken paths** | File references in context that don't exist in your project |
| **Wrong commands** | Build/test commands that don't match your package.json scripts or Makefile targets |
| **Stale context** | Context files not updated after recent code changes |
| **Token waste** | How much context window your files consume per session |
| **Redundancy** | Content the agent can already infer (e.g. "We use React" when react is in package.json) |
| **Contradictions** | Conflicting directives across context files (e.g. "use Jest" in one, "use Vitest" in another) |
| **Stale memory** | Claude Code memory entries referencing paths that no longer exist |
| **Loop detection** | Agent stuck in loops — repeated commands or cyclic patterns in session history |
Technique: exhaustive enumeration — the README provides a complete, flat table of all checks, making the tool's scope instantly scannable. This is a documentation-as-specification pattern.
Design Note
ctxlint deliberately does not use LLMs for any checks. From the spec: checks are deterministic code — path existence, regex matching against package.json scripts, git log parsing for rename detection. This is a conscious design choice: zero LLM calls means zero latency, zero cost, and 100% deterministic results.