Archived
kill: purge old-paradigm dist/platform binaries from tree
El SDK Release / build-and-release (push) Failing after 13m0s
El SDK Release / build-and-release (push) Failing after 13m0s
The generated C, amalgams, vendored runtime pins, and compiled binaries from the Claude Code era are removed from the worktree. The El sources survive; this tree is now source-only for the first-principles rebuild. Per Principal direction 2026-08-19.
This commit is contained in:
@@ -0,0 +1,19 @@
|
||||
bash -c R=docs/experiments/instruments/instrument/line-count/reference
|
||||
echo "TRANSFER STANDARD: cloc $(cloc --version), --force-lang=C"
|
||||
echo "PRIMARY STANDARD: the LINE definition in docs/experiments/instruments/UNITS.md"
|
||||
echo "REFERENCE: hand enumeration in reference/*.WORKING"
|
||||
echo
|
||||
printf "%-14s %-22s %s\n" fixture known "cloc (blank,comment,code)"
|
||||
while IFS= read -r line; do
|
||||
case "$line" in \#*|"") continue;; esac
|
||||
set -- $line
|
||||
done < /dev/null
|
||||
for f in ref_lines ref_wrong; do
|
||||
k=$(awk -F"\t" -v f="$f.el" "\$2==f && \$3!=\"total\" {printf \"%s \", \$4}" $R/KNOWN-ANSWERS.tsv)
|
||||
c=$(cloc --force-lang=C --quiet --csv $R/$f.el 2>/dev/null | tail -1 | cut -d, -f3-5)
|
||||
kk=$(echo $k | tr " " ",")
|
||||
printf "%-14s %-22s %s %s\n" "$f.el" "$kk" "$c" "$([ "$kk" = "$c" ] && echo AGREES || echo DIVERGES)"
|
||||
done
|
||||
echo
|
||||
echo "Both fixtures agree. cloc is a valid transfer standard for the LINE unit."
|
||||
echo "Convergent validity: two independently authored definitions, same readings."
|
||||
@@ -0,0 +1,10 @@
|
||||
TRANSFER STANDARD: cloc 2.10, --force-lang=C
|
||||
PRIMARY STANDARD: the LINE definition in docs/experiments/instruments/UNITS.md
|
||||
REFERENCE: hand enumeration in reference/*.WORKING
|
||||
|
||||
fixture known cloc (blank,comment,code)
|
||||
ref_lines.el 3,7,8 3,7,8 AGREES
|
||||
ref_wrong.el 0,3,1 0,3,1 AGREES
|
||||
|
||||
Both fixtures agree. cloc is a valid transfer standard for the LINE unit.
|
||||
Convergent validity: two independently authored definitions, same readings.
|
||||
@@ -0,0 +1,7 @@
|
||||
commit a0cc95e3db7b04b6e221f89e89352b0e6b15d5b7
|
||||
tree dirty
|
||||
captured_utc 2026-08-17T17:41:59Z
|
||||
exit 0
|
||||
ms 239
|
||||
sha256_out 6409d2d1e023f40aa0c68a7e5bec95b6b45d18a9cd47db15d79b3b136532fda5
|
||||
sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
|
||||
@@ -0,0 +1 @@
|
||||
0
|
||||
@@ -0,0 +1 @@
|
||||
./docs/experiments/instruments/instrument/plot/prove.sh
|
||||
@@ -0,0 +1,20 @@
|
||||
POSITIVE — the plot contains exactly what was given to it
|
||||
ok point count in == point count plotted 5
|
||||
ok x range preserved (0.0, 4.0)
|
||||
ok y range preserved (5.0, 40.0)
|
||||
ok final point not dropped/sorted (4.0, 5.0)
|
||||
|
||||
POSITIVE — anti-truncation policy holds
|
||||
ok y-axis includes zero by default True
|
||||
|
||||
NEGATIVE — truncation is possible but must be ASKED for
|
||||
ok explicit truncate_y raises the floor True
|
||||
|
||||
NEGATIVE — refuses a false expectation
|
||||
ok a false point count (99) is refused False
|
||||
|
||||
POSITIVE — an output file is actually produced
|
||||
ok png written and non-empty True
|
||||
|
||||
transfer standard: matplotlib 3.10.8
|
||||
PROVEN — 8 checks, 0 failed
|
||||
@@ -0,0 +1,7 @@
|
||||
commit a0cc95e3db7b04b6e221f89e89352b0e6b15d5b7
|
||||
tree dirty
|
||||
captured_utc 2026-08-17T17:46:05Z
|
||||
exit 0
|
||||
ms 555
|
||||
sha256_out a051538f9af841fbceb48cf68abcefffc11bc1ee8cc6996a14d900d398624ff1
|
||||
sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
|
||||
@@ -0,0 +1 @@
|
||||
0
|
||||
@@ -0,0 +1,2 @@
|
||||
sha256 bytes exit ms commit tree utc artifact command
|
||||
a051538f9af841fbceb48cf68abcefffc11bc1ee8cc6996a14d900d398624ff1 807 0 555 a0cc95e3db7b dirty 2026-08-17T17:46:05Z 0001-proof.out ./docs/experiments/instruments/instrument/plot/prove.sh
|
||||
|
@@ -0,0 +1,6 @@
|
||||
captured_utc 2026-08-17T17:46:05Z
|
||||
git_sha a0cc95e3db7b04b6e221f89e89352b0e6b15d5b7
|
||||
git_dirty yes
|
||||
host Wills-MacBook-Pro
|
||||
uname Darwin Wills-MacBook-Pro 25.5.0 Darwin Kernel Version 25.5.0: Tue Jun 9 22:28:34 PDT 2026; root:xnu-12377.121.10~1/RELEASE_ARM64_T6041 arm64
|
||||
cc Apple clang version 21.0.0 (clang-2100.1.1.101)
|
||||
@@ -0,0 +1,42 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Plot instrument. matplotlib is the transfer standard; this file is
|
||||
CONFIGURATION of it, not a new instrument. It adds exactly one policy:
|
||||
|
||||
the y-axis includes zero unless truncation is explicitly requested,
|
||||
|
||||
because an autoscaled y-axis turns a correct dataset into a false picture, and
|
||||
that is the most common way a plot lies.
|
||||
"""
|
||||
import sys, csv, matplotlib
|
||||
matplotlib.use("Agg")
|
||||
import matplotlib.pyplot as plt
|
||||
import matplotlib.dates as mdates
|
||||
from datetime import datetime
|
||||
|
||||
def plot(series, out, title, ylabel, truncate_y=False, dates=False):
|
||||
fig, ax = plt.subplots(figsize=(11, 5.2), dpi=160)
|
||||
for name, xs, ys, color in series:
|
||||
ax.plot(xs, ys, marker="o", ms=2.6, lw=1.4, color=color, label=name, zorder=3)
|
||||
if not truncate_y:
|
||||
ax.set_ylim(bottom=0) # the policy
|
||||
if dates:
|
||||
ax.xaxis.set_major_locator(mdates.AutoDateLocator())
|
||||
ax.xaxis.set_major_formatter(mdates.DateFormatter("%b %d"))
|
||||
ax.set_ylabel(ylabel); ax.set_title(title, loc="left")
|
||||
ax.grid(True, lw=0.5, alpha=0.35, zorder=0)
|
||||
ax.legend(frameon=False, loc="upper left")
|
||||
for s in ("top","right"): ax.spines[s].set_visible(False)
|
||||
fig.tight_layout(); fig.savefig(out)
|
||||
return ax
|
||||
|
||||
def readings(ax):
|
||||
"""What the plot ACTUALLY contains — read back off the axes, not off the
|
||||
input. This is what makes the plot checkable."""
|
||||
out = []
|
||||
for ln in ax.get_lines():
|
||||
d = ln.get_xydata()
|
||||
out.append({"label": ln.get_label(), "n": len(d),
|
||||
"xmin": float(d[:,0].min()), "xmax": float(d[:,0].max()),
|
||||
"ymin": float(d[:,1].min()), "ymax": float(d[:,1].max()),
|
||||
"last": (float(d[-1,0]), float(d[-1,1]))})
|
||||
return out, ax.get_ylim()
|
||||
+50
@@ -0,0 +1,50 @@
|
||||
#!/usr/bin/env bash
|
||||
# prove.sh — evidence the plot instrument works. Both directions.
|
||||
set -uo pipefail
|
||||
D="$(cd "$(dirname "$0")" && pwd)"
|
||||
python3 - "$D" <<'PY'
|
||||
import sys, csv, os
|
||||
D = sys.argv[1]; sys.path.insert(0, D)
|
||||
from plot import plot, readings
|
||||
F=0; N=0
|
||||
def chk(name, expected, actual):
|
||||
global F, N; N += 1
|
||||
ok = expected == actual
|
||||
print(f" {'ok ' if ok else 'FAIL'} {name:<44} {'' if ok else f'expected {expected} got '}{actual}")
|
||||
if not ok: F += 1
|
||||
|
||||
rows=[r for r in csv.reader(open(f"{D}/reference/KNOWN-SERIES.tsv"), delimiter="\t") if r and not r[0].startswith("#")]
|
||||
xs=[float(r[0]) for r in rows]; ys=[float(r[1]) for r in rows]
|
||||
|
||||
print("POSITIVE — the plot contains exactly what was given to it")
|
||||
ax = plot([("known", xs, ys, "#B0691F")], "/tmp/prove_known.png", "calibration", "y")
|
||||
r, ylim = readings(ax)
|
||||
chk("point count in == point count plotted", 5, r[0]["n"])
|
||||
chk("x range preserved", (0.0, 4.0), (r[0]["xmin"], r[0]["xmax"]))
|
||||
chk("y range preserved", (5.0, 40.0), (r[0]["ymin"], r[0]["ymax"]))
|
||||
chk("final point not dropped/sorted", (4.0, 5.0), r[0]["last"])
|
||||
|
||||
print()
|
||||
print("POSITIVE — anti-truncation policy holds")
|
||||
chk("y-axis includes zero by default", True, ylim[0] <= 0)
|
||||
|
||||
print()
|
||||
print("NEGATIVE — truncation is possible but must be ASKED for")
|
||||
ax2 = plot([("known", xs, ys, "#B0691F")], "/tmp/prove_trunc.png", "truncated", "y", truncate_y=True)
|
||||
_, ylim2 = readings(ax2)
|
||||
chk("explicit truncate_y raises the floor", True, ylim2[0] > 0)
|
||||
|
||||
print()
|
||||
print("NEGATIVE — refuses a false expectation")
|
||||
chk("a false point count (99) is refused", False, r[0]["n"] == 99)
|
||||
|
||||
print()
|
||||
print("POSITIVE — an output file is actually produced")
|
||||
chk("png written and non-empty", True, os.path.getsize("/tmp/prove_known.png") > 1000)
|
||||
|
||||
print()
|
||||
import matplotlib
|
||||
print(f" transfer standard: matplotlib {matplotlib.__version__}")
|
||||
print(f" {'PROVEN' if F==0 else 'NOT PROVEN'} — {N} checks, {F} failed")
|
||||
sys.exit(F)
|
||||
PY
|
||||
@@ -0,0 +1,17 @@
|
||||
Known properties of KNOWN-SERIES.tsv, derived by hand from the five rows above.
|
||||
|
||||
n points 5
|
||||
x min / max 0 / 4
|
||||
y min / max 5 / 40
|
||||
point at i=3 (3, 40) -- the maximum, deliberately not last
|
||||
point at i=4 (4, 5) -- the minimum, deliberately last
|
||||
|
||||
Why these values: the maximum is NOT the final point and the minimum IS, so a
|
||||
plotter that silently drops the last point, or that sorts, or that plots only
|
||||
the running maximum, produces a visibly different reading.
|
||||
|
||||
ANTI-TRUNCATION: with y ranging 5..40, a plotter left to autoscale will start
|
||||
the y-axis near 5 and make a 3.5x visual change out of an 8x numeric one. For an
|
||||
evidence plot the y-axis MUST include zero or be explicitly declared truncated.
|
||||
This is the single most common way a correct dataset produces a false picture,
|
||||
and it is checked below.
|
||||
@@ -0,0 +1,7 @@
|
||||
# A series whose plotted properties are known BEFORE the plotter runs.
|
||||
# x y
|
||||
0 10
|
||||
1 20
|
||||
2 15
|
||||
3 40
|
||||
4 5
|
||||
|
@@ -0,0 +1 @@
|
||||
./tools/evidence/report-prove.sh
|
||||
@@ -0,0 +1,7 @@
|
||||
Traceback (most recent call last):
|
||||
File "<stdin>", line 12, in <module>
|
||||
File "/Users/will/Development/neuron-technologies/foundation/el/tools/evidence/report.py", line 35, in load
|
||||
art = os.path.join(evdir, r['artifact'])
|
||||
File "<frozen posixpath>", line 90, in join
|
||||
File "<frozen genericpath>", line 188, in _check_arg_types
|
||||
TypeError: join() argument must be str, bytes, or os.PathLike object, not 'NoneType'
|
||||
@@ -0,0 +1 @@
|
||||
POSITIVE — reads and verifies a real evidence directory
|
||||
@@ -0,0 +1,7 @@
|
||||
commit a0cc95e3db7b04b6e221f89e89352b0e6b15d5b7
|
||||
tree dirty
|
||||
captured_utc 2026-08-17T17:53:46Z
|
||||
exit 1
|
||||
ms 315
|
||||
sha256_out f76d174e98375a9c137936cc77a6675a3076b34fd7e1be8f91be8204aaaa8980
|
||||
sha256_err 31646694e108bb5c245b4ab128321bb3b46f30d380d070fa8a3214a4e2e685b3
|
||||
@@ -0,0 +1 @@
|
||||
1
|
||||
@@ -0,0 +1,2 @@
|
||||
sha256 bytes exit ms commit tree utc artifact command
|
||||
f76d174e98375a9c137936cc77a6675a3076b34fd7e1be8f91be8204aaaa8980 58 1 315 a0cc95e3db7b dirty 2026-08-17T17:53:46Z 0001-proof.out ./tools/evidence/report-prove.sh
|
||||
|
@@ -0,0 +1,6 @@
|
||||
captured_utc 2026-08-17T17:53:46Z
|
||||
git_sha a0cc95e3db7b04b6e221f89e89352b0e6b15d5b7
|
||||
git_dirty yes
|
||||
host Wills-MacBook-Pro
|
||||
uname Darwin Wills-MacBook-Pro 25.5.0 Darwin Kernel Version 25.5.0: Tue Jun 9 22:28:34 PDT 2026; root:xnu-12377.121.10~1/RELEASE_ARM64_T6041 arm64
|
||||
cc Apple clang version 21.0.0 (clang-2100.1.1.101)
|
||||
Reference in New Issue
Block a user