# Ste Audit

> Check output against the machine-checkable ASD-STE100 rules: sentence length caps, noun cluster limits, allowed verb forms, -ing restrictions, passive voice, paragraph limits. Use after adding an STE memory line, CLAUDE.md rule, or writer skill, or when replies drift wordy again. Violations table with Issue 9 rule numbers and quoted receipts, plus a drift verdict (holding, drifting, gone). Reports only; never rewrites; no dictionary bundled.

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

---


# STE Audit

Audit text against ASD-STE100 (Issue 9, January 2025). A memory line or
writer skill sets the style; this verifies it, with rule numbers and
quotes.

Scope: structural rules only. Dictionary rules (1.2, 1.3: approved words,
approved meanings) need the STE dictionary, which is ASD copyright and not
bundled here. Free copy: request form on asd-ste100.org.

## Modes

- Procedural (instructions to act): 20 words max per sentence.
- Descriptive (everything else): 25 words max per sentence.
- Ambiguous sentence: judge at 25 and mark it in the row.

## Method

1. Collect the assistant's responses in order, or a file the user names.
   Exempt from all checks: code blocks, commands, file paths, URLs, quoted
   error text.
2. Split into sentences and paragraphs. Words are whitespace tokens; a
   hyphenated word counts as one.
3. Check each sentence against the table.
4. Report every violation: verbatim quote + rule number.
5. Trend violations per response, first to last.
6. Verdict, drift start point, worst sentence.

## Checks

| rule | violation to flag |
|---|---|
| 5.1 | procedural sentence over 20 words |
| 6.3 | descriptive sentence over 25 words |
| 6.6 | paragraph with more than six sentences |
| 6.5 | paragraph covering more than one topic (judgment call: name both topics) |
| 2.1 | multi-word noun (noun cluster) longer than three words |
| 3.2 | verb form outside: infinitive, imperative, simple present, simple past, simple future, past participle as adjective |
| 3.4 | stacked auxiliary constructions ("would have been configured") |
| 3.5 | an -ing verb used outside a technical-noun role |
| 3.6 | passive voice where the agent is known |

## Report

```markdown
| where | quote | rule | violation |
|---|---|---|---|
| r4 s2 | "the config that was being generated by the daemon" | 3.6 | passive, agent known |
| r7 s1 | 31 words | 6.3 | descriptive cap is 25 |
| r7 s4 | "long running background task execution queue" | 2.1 | five-word noun cluster |
| r9 s3 | "consider leveraging incremental checkpointing" | 3.5 | -ing verb, not a technical noun |
```

```markdown
| response | sentences | violations | rate |
|---|---|---|---|
| r1 | 6 | 0 | 0% |
| r5 | 9 | 2 | 22% |
| r9 | 14 | 6 | 43% |
```

Verdicts: **holding** (rate flat, near zero), **drifting** (rate
climbing), **gone** (violations in the majority). End with the response
where drift started and the worst sentence in the session.

## Hard Rules

- Report only. Never rewrite the audited text.
- Every violation quotes the text verbatim. No receipt, no row.
- Rule numbers cite Issue 9. Unsure means say unsure; never invent a rule
  number.
- Never bundle, quote at length, or reconstruct the STE dictionary.
- Code, commands, error strings, quotes: always exempt.

