Files
Skills/docs
Brummel 808044c0cf fieldtest: skill + fieldtester agent migrated
Fifth skill via the boss pattern. fieldtest empirically tests
whether a shipped cycle is usable by a downstream consumer
who has only the public interface.

Profile gains two slots:
- `paths.public_interface` — list of dirs/files the fieldtester
  may read (the project's outward-facing surface: README, design
  ledger, docs, examples)
- `paths.fieldtest_examples` — where the fieldtester writes its
  fixtures

The forbidden zone is derived: everything not in
`paths.public_interface` (especially `paths.code_roots` and
`paths.bench_dir`) is closed to the fieldtester. This is the
load-bearing source-isolation discipline.

Vocabulary substitutions:
- AILang → "this project"
- milestone → cycle
- Boss → orchestrator
- ailang-fieldtester → fieldtester
- "AIL Surface form / .ail" → "the project's canonical
  authoring or consumer form"
- "design/INDEX.md + design/models/" → `paths.public_interface`
- "crates/, runtime/, bench/" → `paths.code_roots`,
  `paths.bench_dir`

AILang-specific bits dropped:
- The form-a-default-authoring milestone history (2026-05-13)
  and the eight `.ail.json` carve-outs — AILang-specific
  schema-migration detail; the universal rule is just
  "canonical authoring form only"
- The ail check / ail build / ail emit-ir CLI commands — the
  fieldtester now uses "the project's user-facing entry point"
- Per-iter journals reference — replaced with recent iter
  commit bodies (universal)
- Example ideas calibrated to AILang (FizzBuzz, Newton's method
  on Float, JSON-tree depth, ADT functors) — generalised to
  "realistic tasks an end-user might be asked to do"
- `design/contracts/0004-feature-acceptance.md` cross-ref —
  dropped (AILang-specific contract); the empirical-vs-
  prospective brainstorm symmetry survives in prose

Universal substance preserved verbatim:
- All three Iron Law clauses (public-interface-only,
  canonical-form-only, record-don't-fix)
- Five-phase process structure
- Four-class finding taxonomy (bug / friction / spec_gap /
  working)
- Spec template
- Status protocol (DONE / DONE_WITH_CONCERNS / NEEDS_CONTEXT /
  BLOCKED)
- All 8 Common Rationalisations rows (vocabulary-substituted)
- All 10 Red Flags bullets (vocabulary-substituted, with the
  AILang-specific .ail.json hand-write bullet generalised to
  "intermediate representations")

The source-isolation contract (Iron Law clause 1) is the
load-bearing discipline. Profile slot
`paths.public_interface` makes it machine-checkable; the
agent's hard limit on opening paths outside that list is the
discipline.
2026-05-28 16:02:58 +02:00
..