iter architect-iron-law.1: bench/architect_sweeps.sh runs the four design-md-consolidation sweeps against DESIGN.md
This commit is contained in:
Executable
+56
@@ -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
|
||||
Reference in New Issue
Block a user