From 7cc3ce0d9e181e6dfb8648d6dd7a528dcdfd3257 Mon Sep 17 00:00:00 2001 From: claude Date: Fri, 24 Jul 2026 15:22:24 +0200 Subject: [PATCH] =?UTF-8?q?fieldtest:=20fold-selector=20=E2=80=94=202=20ex?= =?UTF-8?q?amples,=200=20bugs=20/=205=20friction=20/=201=20spec-gap?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Per-cycle fieldtest of the #310 --tap selector, source-blind against the release binary (e482f0e). Spine holds: fold selection end-to-end byte-exact incl. the C1 pin and kind-aware folds/refusals on a Bool tap; parse refusals precise at exit 2. Findings routed to the tracker: introspect --folds renders the aura-std FoldKind table instead of the registry roster (capitalized ids, record missing); no public surface enumerates a blueprint's declared taps; an explicit --tap plan drops unlisted taps without the C14 'aura: note:' skipped-tap notice; fold summary-row timestamp semantics undocumented and mixed. Exit-class tension already tracked on #297 (audit). refs #310 --- .../fold-selector/fs_1_two_taps.ops.json | 15 +++++++++++++++ .../fold-selector/fs_2_bool_tap.ops.json | 18 ++++++++++++++++++ 2 files changed, 33 insertions(+) create mode 100644 fieldtests/fold-selector/fs_1_two_taps.ops.json create mode 100644 fieldtests/fold-selector/fs_2_bool_tap.ops.json diff --git a/fieldtests/fold-selector/fs_1_two_taps.ops.json b/fieldtests/fold-selector/fs_1_two_taps.ops.json new file mode 100644 index 0000000..c72da54 --- /dev/null +++ b/fieldtests/fold-selector/fs_1_two_taps.ops.json @@ -0,0 +1,15 @@ +[ + {"op": "source", "role": "price", "kind": "F64"}, + {"op": "add", "type": "SMA", "name": "fast", "bind": {"length": {"I64": 3}}}, + {"op": "add", "type": "SMA", "name": "slow", "bind": {"length": {"I64": 6}}}, + {"op": "add", "type": "SMA", "name": "px", "bind": {"length": {"I64": 1}}}, + {"op": "feed", "role": "price", "into": ["fast.series", "slow.series", "px.series"]}, + {"op": "add", "type": "Sub", "name": "sub"}, + {"op": "connect", "from": "fast.value", "to": "sub.lhs"}, + {"op": "connect", "from": "slow.value", "to": "sub.rhs"}, + {"op": "add", "type": "Bias", "name": "bias", "bind": {"scale": {"F64": 0.5}}}, + {"op": "connect", "from": "sub.value", "to": "bias.signal"}, + {"op": "tap", "from": "sub.value", "as": "signal"}, + {"op": "tap", "from": "px.value", "as": "price"}, + {"op": "expose", "from": "bias.bias", "as": "bias"} +] diff --git a/fieldtests/fold-selector/fs_2_bool_tap.ops.json b/fieldtests/fold-selector/fs_2_bool_tap.ops.json new file mode 100644 index 0000000..c3dcb86 --- /dev/null +++ b/fieldtests/fold-selector/fs_2_bool_tap.ops.json @@ -0,0 +1,18 @@ +[ + {"op": "source", "role": "price", "kind": "F64"}, + {"op": "add", "type": "SMA", "name": "fast", "bind": {"length": {"I64": 3}}}, + {"op": "add", "type": "SMA", "name": "slow", "bind": {"length": {"I64": 6}}}, + {"op": "feed", "role": "price", "into": ["fast.series", "slow.series"]}, + {"op": "add", "type": "Gt", "name": "cross"}, + {"op": "connect", "from": "fast.value", "to": "cross.a"}, + {"op": "connect", "from": "slow.value", "to": "cross.b"}, + {"op": "add", "type": "Sign", "name": "sgn"}, + {"op": "add", "type": "Sub", "name": "sub"}, + {"op": "connect", "from": "fast.value", "to": "sub.lhs"}, + {"op": "connect", "from": "slow.value", "to": "sub.rhs"}, + {"op": "connect", "from": "sub.value", "to": "sgn.value"}, + {"op": "add", "type": "Bias", "name": "bias", "bind": {"scale": {"F64": 1.0}}}, + {"op": "connect", "from": "sgn.value", "to": "bias.signal"}, + {"op": "tap", "from": "cross.value", "as": "above"}, + {"op": "expose", "from": "bias.bias", "as": "bias"} +]