Commit graph

4 commits

Author SHA1 Message Date
Anton Razzhigaev
98ca8a13d5 Retire completed campaign artifacts and keep repository reports explicit
Remove completed campaign records, one-time adoption/transplant machinery and
incidental line floors. Keep current contracts and generated inventories with
their readers, and direct optional domain reports to stdout or an explicit file.
Document continuing-purpose review in the existing handbook and checklists.

No version bump; ordinary release gates and runtime behavior are preserved.

Co-authored-by: Ouroboros <311266734+ouroboros-agent@users.noreply.github.com>
2026-09-18 01:07:51 +03:00
Ouroboros
4c91444b60 docs: qualify the source-span duplicate scan shortcut 2026-09-12 17:47:28 +03:00
Anton
065467f97d P8-4: skip the per-function source re-slice below the copy floor
`duplicate_bodies` extracted a source segment for EVERY function in the module
population, including one-liners that can never reach the ten-line literal-copy
floor. `ast.get_source_segment` re-splits the whole file per call, so the scan
paid O(source) for each short function.

The span a node already carries (`end_lineno - lineno + 1`) decides whether the
slice is worth taking. This is output-identical by construction, not merely by
test: `_normalize_body` dedents, rstrips and DROPS blank lines, so a normalized
body can never have more lines than its raw span, and a node whose span is below
the floor could never have satisfied the existing normalized-line check. The
recursion into nested functions stays unconditional, so a long inner function
inside a short outer one is still scanned.

Oracle, over the full module population with every module given its own domain
so every digest group surfaces as a row: byte-identical output (3 rows, same
sha256) before and after, 31.1s -> 21.4s. `scripts/check_domains.py` exits 0
with "OK: domain manifest complete", and the `[duplicates] allowed = []`
baseline is untouched in both directions.

The new boundary test pins the floor exactly: a cross-domain copy of exactly
DUPLICATE_MIN_LINES lines is still detected, one line shorter is not. Verified
load-bearing - changing the filter to `span > min_lines` reddens it.
2026-09-12 16:18:32 +03:00
Ouroboros
aed018ea5c v7next F5 CPL-1: production domain manifest + gate (directions, cycles, literal-copy ban)
Promote the F0 report-only scripts/v7next_domains.toml to the production
manifest ouroboros/domains.toml (ships as package data): 1:1 module->domain
for all 488 tracked runtime modules across D01-D20, plus generated baseline
sections pinning today's factual dependency data - 164 strict cross-domain
directions, the single 20-domain strict-quotient SCC as the cycle ceiling
(target []), 92 lazy-only hidden-coupling pairs, zero dynamic pairs, and an
EMPTY cross-domain literal-copy baseline.

scripts/domain_graph.py is the shared import-graph core (extracted from the
report generator so gate and report cannot drift); scripts/check_domains.py
is the gate + --write regenerator (also renders docs/DOMAIN_MAP.md from the
manifest alone - the gen half of the gen/verify pair);
tests/test_domain_manifest.py is the verify half: population completeness
(a tracked module without a row = red), baseline exactness for directions/
cycles/classification/duplicates, DOMAIN_MAP byte-identity, and synthetic
red-branch coverage for every detector. scripts/v7next_domain_report.py now
consumes the shared core and stays report-only.
2026-09-01 10:37:37 +00:00