---
name: brenbuilds1-ste-audit
description: "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."
license: "MIT"
metadata:
  decimalai-skill-id: "08850fea-c990-4618-ac10-e9c250e6b5bf"
  decimalai-version-id: "1650952f-77a2-4511-80f4-3dbabaddc884"
  decimalai-version: "1"
  decimalai-body-sha256: "3d1e0262001b003a21da4b1cd71adec2e29206ba02a7dceb0e477d4793e03330"
  decimalai-name: "brenbuilds1/ste-audit"
  decimalai-format: "1"
  decimalai-invocation: "model"
  decimalai-category: "documentation"
  decimalai-source: "https://app.decimal.ai/s/brenbuilds1-ste-audit@1/SKILL.md"
---
# 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.
