9124275bf3
Binary-only milestone fieldtest for milestone 36 (self-description): a
fieldtester agent bootstrapped from the release binary (d26f0c8) alone —
no engine sources, no repo docs, no bootstrap card — and drove five
end-to-end scenarios: cold bootstrap -> author -> validate (green,
synthetic + real EURUSD, 3944 trades), execution semantics +
latch/edge-pulse idiom (green), vocabulary breadth (33 nodes / 7 folds /
17 metrics / 6+6 blocks, every entry with a meaning), document ramp from
a bare {} (green, 3 members), trace/measurement path (dead-ends,
tracked).
Verdict: the bootstrap card (#267, closed as superseded) is empirically
redundant for the bootstrap->author->validate spine. Two seams keep the
promise short of end-to-end, both tracked outside M1: the declared-tap
drop on the registration path (#327, the missing mechanism of #312/M6)
and the sugar<->document axis namespace (#328, prerequisite of the #319
retirement). Friction routed: #329 #330 #331; evidence comments on #312
and #324. Milestone 36 closed with this adjudication; the fieldtest spec
remains the usual git-ignored working file.
refs #267, refs #312, refs #319
47 lines
1.9 KiB
Bash
Executable File
47 lines
1.9 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Scenario 3 — vocabulary self-description breadth probe.
|
|
# Protected property: every closed-vocabulary entry class the binary exposes is
|
|
# REACHABLE and carries a non-empty one-line meaning; no entry's meaning is a
|
|
# byte-for-byte duplicate of another entry in the SAME class (a duplicate is a
|
|
# non-discriminating meaning).
|
|
# Binary-only: uses nothing but `aura` introspection output.
|
|
set -u
|
|
AURA="${AURA:?set AURA to the release binary path}"
|
|
|
|
fail=0
|
|
|
|
echo "== node vocabulary: every node resolves via --node with a meaning =="
|
|
nodes=$("$AURA" graph introspect --vocabulary | awk '{print $1}')
|
|
for n in $nodes; do
|
|
line=$("$AURA" graph introspect --node "$n" 2>&1 | head -1)
|
|
case "$line" in
|
|
"$n — "*) : ;; # "<Name> — <meaning>"
|
|
*) echo " MISSING/BAD meaning for node $n: [$line]"; fail=1 ;;
|
|
esac
|
|
done
|
|
echo " nodes probed: $(echo "$nodes" | wc -w)"
|
|
|
|
echo "== duplicate node one-liners (non-discriminating meanings) =="
|
|
"$AURA" graph introspect --vocabulary \
|
|
| sed -E 's/^[A-Za-z0-9_]+ +//' \
|
|
| sort | uniq -c | sort -rn \
|
|
| awk '$1 > 1 { print " x"$1" identical: "substr($0, index($0,$2)) }'
|
|
|
|
echo "== folds carry a meaning =="
|
|
"$AURA" graph introspect --folds | awk 'NF==0{next} {print " ok: "$1}'
|
|
|
|
echo "== process blocks resolve via --block =="
|
|
for b in $("$AURA" process introspect --vocabulary | awk '{print $1}'); do
|
|
"$AURA" process introspect --block "$b" >/dev/null 2>&1 && echo " ok: $b" || { echo " BAD: $b"; fail=1; }
|
|
done
|
|
|
|
echo "== campaign blocks resolve via --block =="
|
|
for b in $("$AURA" campaign introspect --vocabulary | awk '{print $1}'); do
|
|
"$AURA" campaign introspect --block "$b" >/dev/null 2>&1 && echo " ok: $b" || { echo " BAD: $b"; fail=1; }
|
|
done
|
|
|
|
echo "== metrics carry an applicability tag + meaning =="
|
|
"$AURA" process introspect --metrics | awk '{print " ok: "$1}'
|
|
|
|
echo "RESULT: fail=$fail"
|