AUR-308: legacy documentation characterization
Documento histórico do board. Pode descrever componentes removidos; para uso atual, consulte o guia do produto.
Contract
AUR-308 executes the reachable behavior of every Go package in the closed
legacy scope: the extractor core, eight language extractors, normalizer,
incremental, and site. classification.tsv binds each package to one passing
behavioral test and to exactly one disposition: keep, migrate, replace,
or delete. A fresh go list inventory, the explicit manifest, and the
executed-test ledger must agree exactly.
migrate means the observed behavior is useful but must move behind the
reconstructed ownership boundaries. replace means the executed probe exposes
a behavior that the new implementation must not preserve: repository-controlled
build execution, non-docstring capture, or symlink-following cache output. This
snapshot has no package whose complete implementation stays at the legacy path
(keep) and no behaviorless package (delete).
The tests use bounded temporary fixtures and scripted command runners. They do
not start the documentation pipeline, install tools, use the network, or modify
internal/documentation. External-tool probes call the real extractor methods,
observe the exact command boundary, and materialize only the minimum fake tool
output needed for the extractor to inspect.
Artifact and replay
The acceptance emits one canonical JSON observation with the package,
disposition, test selector, and observed behavior for all 12 packages. It also
binds the runner's input-manifest digest when available. Two writes from the
same inputs must be byte-identical. The coordinator, not the read-only worker,
captures that observation as .board/evidence/AUR-308/acceptance/AC-001.json.
Artifact writes require a real staging directory, an output lexically and physically contained beneath it, and a previously absent regular output path. An existing symlink is rejected before opening it.
Execution
./.board/bin/oci-run --profile bootstrap-readonly-v1 --card AUR-308
The default AC-001 path executes all 12 package tests and the declared Unit,
Contract, Integration, and E2E selectors. It then applies MUT-001 (a reusable
classification referencing an unexecuted test), observes RED, restores GREEN,
applies MUT-002 (artifact output symlinked outside staging), observes RED without
changing the target, and restores GREEN.
Failures are typed beneath AUR-308/AC-001. Exit 1 means a reached behavioral
assertion failed. Exit 64 is selector misuse. Exit 69 is missing runtime or
another infrastructure failure; it is never a characterization result.
Rollback
Revert only AUR-308's test, acceptance, and specification paths. The legacy source remains byte-for-byte unchanged throughout characterization.