Pular para conteúdo

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.