From 67223c84878e6d6ff418ebb4bb0167365c096e7d Mon Sep 17 00:00:00 2001 From: Brummel Date: Sun, 10 May 2026 20:01:47 +0200 Subject: [PATCH] iter architect-iron-law.1: bench/architect_sweeps.sh runs the four design-md-consolidation sweeps against DESIGN.md --- bench/architect_sweeps.sh | 56 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100755 bench/architect_sweeps.sh diff --git a/bench/architect_sweeps.sh b/bench/architect_sweeps.sh new file mode 100755 index 0000000..06a39b4 --- /dev/null +++ b/bench/architect_sweeps.sh @@ -0,0 +1,56 @@ +#!/usr/bin/env bash +# bench/architect_sweeps.sh +# +# Run the four design-md-consolidation sweep-invariant greps against +# docs/DESIGN.md. Output: matched lines, prefixed by sweep name. Exit 0 +# if all four sweeps are clean, 1 if any anchor was found. +# +# Companion to skills/audit/agents/ailang-architect.md "What you check +# / DESIGN.md history-anchor regrowth". See JOURNAL 2026-05-10 +# ("Milestone close: design-md-consolidation") for the rationale of +# each sweep regex; the regexes here are copied verbatim from JOURNAL +# entries 12487 (Sweep 1), 12619 (Sweep 2), 12718-12720 (Sweep 3), +# and 12840 (Sweep 4). +# +# A non-zero exit is advisory, not authoritative: the architect agent +# reviews each match and decides whether it is a legitimate quote +# (e.g. a JOURNAL citation inside a block-quote) or fresh drift. + +set -u +DESIGN="docs/DESIGN.md" +HITS=0 + +if [[ ! -f "$DESIGN" ]]; then + echo "architect_sweeps: $DESIGN not found (run from repo root)" >&2 + exit 2 +fi + +run_sweep() { + local name="$1" + local pattern="$2" + local matches + matches=$(grep -nE "$pattern" "$DESIGN" || true) + if [[ -n "$matches" ]]; then + echo "=== Sweep: $name ===" + echo "$matches" + echo + HITS=1 + fi +} + +run_sweep "1 (history anchors)" \ + 'Iter [0-9]+[a-z]?(\.[0-9]+)?|Family [0-9]+|^[^/]*2026-[0-9]{2}-[0-9]{2}|\*\*Status: |pre-[0-9]+[a-z]?|[0-9]+[a-z]? sketch|21\.g' + +run_sweep "2 (REVERTED + migration)" \ + 'REVERTED|preserved for the audit trail|Migration plan|[Oo]riginally framed|original rationale|empirically-grounded version|A future (iter|iteration|milestone|Prelude) may|A future iter that|a (later|future) iter(ation)? \(deferred\)|Concrete design deferred' + +run_sweep "3 (schema SoT)" \ + '^\s*(struct |enum |pub (struct|enum|fn))|whenever the two disagree|ast\.rs is the source of truth' + +run_sweep "4 (workflow + stale cross-references)" \ + 'agents/README\.md|ailang-docwriter|Recently lifted|see the JOURNAL queue|later the same day|Sharpened later|closure conversion in JOURNAL' + +if [[ $HITS -eq 0 ]]; then + echo "All four sweeps clean." +fi +exit $HITS