# Build report — asd-ste100 skill Built 2026-07-21 from `ASD-STE100_ISSUE9.pdf` (434 pages, Issue 9, issue date 2025-01-15). Method: two multi-agent workflows — one to read the spec in batch parts (27 agents, ~1.46M tokens, 13 min), one to write, fact-check, fix, and audit the skill (19 agents, ~1.58M tokens, 44 min). Every factual claim in the skill was verified against the extracted spec text; 1,263 claims/entries were checked in total. User constraint honored throughout: **GR-7 (Inclusive language) content is excluded.** Only its existence is recorded (see "GR-7 exclusion" below). --- ## Stage 0 — Extraction (orchestrator) 1. `pdfinfo` showed 434 pages (the file's embedded metadata wrongly claimed 33). The PDF is encrypted (copy: no) but text extraction is permitted. 2. `pdftotext -layout` extracted all 434 pages, split into 26 chunks aligned to the document structure: - `r1`–`r7`: Part 1 front matter + writing rules, Sections 1–9 (pdf 1–130; internal pages HI-1..SRI-4, i–viii, 1-1-1..1-9-14). - `r8`: Part 2 Dictionary introduction (pdf 131–148; pages 2-0-3..2-0-19). - `d01`–`d18`: Part 2 word list A–Z (pdf 149–434; pages 2-1-A1 onward), ~16 pdf pages per chunk. 3. Three graphics that pdftotext cannot extract were rendered to PNG at 150 dpi and transcribed by hand (see "Graphics supplement"). ## Stage 1 — Reading workflow (`ste100-read`, 27 Opus agents) Eight rule readers, one per chunk. Each read its chunk top to bottom, extracted every rule statement with details and Non-STE/STE example pairs, scanned for inclusive-language content (skipped where found, per the constraint), and logged anomalies: | Reader | Spec coverage | What it extracted | | --- | --- | --- | | r1 | Highlights HI-1..HI-6, TOC, Subject-to-rule index SRI-1..SRI-4, General introduction i–viii | Issue 9 change log, complete subject index (GR-7 row skipped), full general introduction, history table, 13-entry bibliography | | r2 | Section 1 (Words), pages 1-1-1..1-1-18 | Rules 1.1–1.14, all 22 technical-noun categories (Rule 1.5), all 4 technical-verb categories (Rule 1.12) | | r3 | Sections 2–3, pages 1-2-1..1-3-10 | Rules 2.1–2.2 (multi-word nouns), 3.1–3.7 (verbs, active voice, the four passive-to-active methods) | | r4 | Section 4 (Sentences), pages 1-4-1..1-4-10 | Rules 4.1–4.5 incl. the vertical-list checklist and article rules | | r5 | Sections 5–6, pages 1-5-1..1-6-8 | Rules 5.1–5.5 (procedural, 20-word limit), 6.1–6.6 (descriptive, 25-word limit, 6-sentence paragraphs) | | r6 | Sections 7–8, pages 1-7-1..1-8-8 | Rules 7.1–7.3 (warning/caution/note), 8.1–8.7 (punctuation and the word-count conventions) | | r7 | Section 9, pages 1-9-1..1-9-14 | Rules 9.1–9.4 and GR-1..GR-8; GR-7 (page 1-9-12) recorded as a one-line skip note only | | r8 | Dictionary introduction, pages 2-0-3..2-0-19 | 875/1274 word counts, 4-column format, 8 parts of speech, 4 verb types, 4 Help categories, 39 recurring errors, 208 approved verbs (per-letter subtotals re-summed) | Eighteen dictionary readers (d01–d18) transcribed the A–Z word list: UPPERCASE headwords = approved (with meanings), lowercase = not approved (with approved alternatives), preserving part-of-speech tags and (TN)/(TV) markers. Each verified its batch opened and closed on complete entries (no truncation at chunk boundaries). One synthesis agent built `map.md`: verified the rule inventory (14+2+7+5+5+6+3+7+4 = 53 rules, matching the General introduction's own "9 sections that contain 53 rules"), checked all 17 alphabetical junctions between dictionary batches for contiguity (A "A (art)" through Z "zero", no gaps), and reconciled counts: 879 approved / 1,319 not-approved entry *lines* vs the spec's claimed 875 / 1,274 *words* — the delta is per-part-of-speech row counting (confirmed by independent recount in Stage 2: 1,257 distinct not-approved headwords + 62 extra multi-POS lines = 1,319). ## Graphics supplement Three items exist only as graphics in the PDF and were rendered + transcribed separately: 1. **"How to select words correctly" flowchart** (page 2-0-16, pdf 144) — the 6-step decision flow now in `references/word-selection.md`. 2. **Rule 1.5 category 9 symbols** (page 1-1-7, pdf 51) — confirmed ° (degree), Ω (ohm), ″ (arc-second) in the example list. 3. **Rule 3.6 passive-to-active diagram** (page 1-3-7, pdf 73) — the agent/subject inversion (Method 1), described in the Rule 3.6 entry. ## Stage 2 — Writing workflow (`ste100-write-skill`, 19 Opus agents) Five files drafted in parallel, each then fact-checked by dedicated checkers, each finding re-verified against the spec text by a fixer before any edit. 13 findings total: 12 applied, 1 rejected with evidence. **SKILL.md** (82 lines) — drafted from the digests of the General introduction, Sections 5–8, and the dictionary introduction; the prose is written in STE itself (imperative instructions, active voice, 20/25-word limits, no semicolons, no contractions, recurring-error words avoided). Two checkers verified 52 factual claims and 56 style/sentence claims. 1 finding: line 82 used a reduced passive ("…, excluded on user instruction") with a known agent, violating Rules 3.6 and 3.3 (pages 1-3-6..1-3-8) — rewritten in active voice. **references/writing-rules.md** (458 lines) — all 53 rules with normative statements, condensed details, and one example pair each; Rule 1.5's 22 categories; Rule 1.12's 4 categories; GR-1..GR-8; subject-to-rule index (Appendix A); Issue 9 changes (Appendix B). Three checkers verified 515 claims. 5 findings, all applied: 1. **CRITICAL:** Appendix A still contained the "Inclusive language | 9 – GR-7" row (spec SRI-2) — deleted per the user constraint. 2. Rule 4.3 list-marker set: spec's normative set is "a number, letter, punctuation mark, or symbol" (page 1-4-4); dash/bullet are only examples — reworded. 3. Rule 4.3 checklist was missing the spec bullet "use an article before the noun that is the subject of each item" (page 1-4-4) — inserted. 4. Rule 3.7 ohmmeter pair is labeled "Do not write:/WRITE:" in the spec (page 1-3-9; both sentences are STE, the direct verb is just clearer) — relabeled. 5. Rule 8.3 title truncated the second parenthesis use ("…that identify items **on an illustration or in a text**", page 1-8-3) — completed. **references/word-selection.md** (252 lines) — the flowchart as a numbered decision list, dictionary format, verb types, Help categories, the 39 recurring errors, the 208 approved verbs (both counts machine-verified). One checker verified 384 claims. 2 findings: one applied (step 5a phrase-alternative parenthetical not in the flowchart transcription — removed); one **rejected with evidence** — the checker doubted the "light-bulb icon" description, but the spec states it twice ("Help (light bulb symbol)", Highlights and subject index, incl. "Part 2, applicable entries"), so the text stood. **references/dictionary-approved.md** (941 lines) — 18 digests merged; 117 irregular-verb/comparative form blocks normalized into bracketed notes; 100 case fixes; every apparent alphabetical inversion checked against the spec's printed order (all matched — none "repaired"). One checker sampled 148 entry lines across 55 words letter-by-letter against the spec tables. 3 findings applied (18 line edits): 13 irregular verbs (DO, GIVE, HANG, HEAR, HIT, HOLD, KEEP, KNOW, MAKE, MAKE SURE, READ, TELL, THINK) got their spec verb forms restored; LIGHT (adj) got (LIGHTER, LIGHTEST); SUPPLY (v) and SYNCHRONIZED (adj) got their numbered meanings back. **references/dictionary-unapproved.md** (1,325 lines) — merged, with the d08/d09 chunk junction at "impact" explicitly audited (no dropped or doubled row). One checker verified 108 claims incl. all 9 multi-POS headwords letter-perfect. 2 findings applied: the "perform" hint was misattributed to MEASURE instead of DO (spec page 2-1-P3); the header now states honestly that the spec introduction claims 1,274 words while the table yields 1,257 distinct headwords / 1,319 per-POS lines. **Audit** — one whole-skill audit agent re-read everything against the spec: verdict **clean**, with 3 cosmetic residuals and zero content errors. `finalFixes: 0`. ## Post-audit manual fixes (orchestrator) 1. 22 lines in dictionary-unapproved.md used `[TN]`/`[TV]` inside instrument parentheticals — normalized to `(TN)`/`(TV)`. Note: the spec's own typography prints `[TN]` when nested inside parentheses (e.g. "WITH A BOLT [TN]", page 2-1-B7); the file normalizes to `(TN)` because its legend reserves square brackets for rewording hints. Semantics identical. 2. 2 lines had unspaced ellipses (`IF …NOT`, `MAKE…SOFT`) — normalized to the spec's spaced form (`IF … NOT`, as printed in e.g. "TIGHTEN … WITH YOUR FINGERS"). 3. The SKILL.md Rule 8.6 table row was a 36-word cell — compressed to 22 words so the skill obeys the limit it teaches; the full rule wording remains in writing-rules.md. ## GR-7 exclusion Per user instruction, GR-7 (Inclusive language) content was not extracted, summarized, or reproduced anywhere. Locations recorded only as existence notes: GR-7 body (page 1-9-12), its Highlights change line, its subject-index row (SRI-2). Two external bibliography citations touching the topic were kept in Stage-1 digests as part of the spec's complete reference list but do not appear in the skill. The skill carries one scope line stating the exclusion. ## Known deviations and spec-internal notes - Dictionary counts: the skill states the spec's own numbers (875 / 1,274) and its files' real line counts (935 / 1,319 entry lines) side by side. - Spec-internal inconsistencies recorded, rule-box wording treated as canonical: Rule 3.6 "when/if the agent is unknown" (summary vs rule box); Rule 4.3 "text/texts"; Rule 8.6 "Structural/Structure Repair Manual"; subject-index footer date 2024-04-30 vs 2025-01-15 elsewhere. - `FOR EXAMPLE` (approved) and `such as` (not approved) carry no part of speech in the spec; the files preserve that. ## Inventory | File | Lines | Content | | --- | --- | --- | | SKILL.md | 82 | Entry point: workflow, core limits, safety instructions, checklist | | references/writing-rules.md | 458 | All 53 rules + GR-1..GR-8 + indexes | | references/word-selection.md | 252 | Selection flowchart, dictionary format, recurring errors, approved verbs | | references/dictionary-approved.md | 941 | 875 approved words (935 per-POS entry lines) | | references/dictionary-unapproved.md | 1,325 | 1,274 not-approved words (1,319 per-POS entry lines) with alternatives | | BUILD-LOG-reading.md | — | Unabridged per-agent Stage-1 explanations | | BUILD-LOG-writing.md | — | Unabridged per-agent Stage-2 explanations (drafts, checks, fixes, audit) |