File size: 8,058 Bytes
08b2498
 
 
 
 
7ee3f10
 
 
08b2498
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
# Native record values in Gooo bodies

Observed on 2026-10-04 at clean compiler candidate
[`fa3c892791a2fd775a265c7524c9ee59adce45bf`](https://github.com/kimjooyoon/meta-ontology-go/commit/fa3c892791a2fd775a265c7524c9ee59adce45bf),
[development PR1223](https://github.com/kimjooyoon/meta-ontology-go/pull/1223).
Go 1.27.1, macOS arm64. The feature is now merged and installed at main
`b629a664`; [fresh installed observations and field completeness summaries](installed/README.md)
are retained separately from these candidate measurements.

## What a user can express

The source declares `Candidate { title, state }` and `Review { summary, reason }`.
Their fields use the existing required-string, one-value entity profile. A body
can construct a complete record, read a field, copy a record into a local, replace
that local with a complete value, return it, and compare two values of the same
record type. Scalar and record inputs can share an activity. Each activity has
one output and at most sixteen ordered inputs.

This fixture connects six activities:

```text
Score(Integer) ──> Propose(Integer, Text) ──> Candidate
                         β”‚                       β”‚
                         β”œβ”€β”€> Echo(Candidate) ───────> Same(Candidate, Candidate)
                         └──> ReviewCandidate(Candidate, Boolean) ──> Review ──> Label
```

The graph carries actual values. For example, `Propose` creates a title and a
`ready`/`wait` state; `ReviewCandidate` reads that state and the caller's Boolean
to return `accepted`/`deferred`. Each delivery retains the source field identity,
declared field order and actual value. Native code uses value structs in declared
field order and stable names derived from the full source identity. JSON keeps
the original lower-case field names. This is a small form being passed between
desks: its title and status remain visible at every handoff.

## Own model and deterministic construction

The unchanged own model ranks three operand choices in **Score**. The other
bodies, including record construction and field reads, are written in Gooo.
The model proposed mask 6 first; it passed 0/6 selection examples. The next mask,
7, passed 6/6. Model search evaluated two of eight declared candidates;
deterministic search evaluated all eight. Both paths produced the same selected
Gooo source, native Go and driver across three consecutive generations and saved
replays.

The model is
[`asketeddy/gooo-three-choice-feedback-tiny-v1`](https://huggingface.co/asketeddy/gooo-three-choice-feedback-tiny-v1/tree/24238ca67048b36bc305731799985271bb752dd1/models/set-feedback/fp32),
frozen revision `24238ca67048b36bc305731799985271bb752dd1`. Its tensor payload is
74,624 bytes; metadata and weight digests appear in every model construction.
This observation updates compiler behavior and evidence using the existing
weights. It provides no new record-trained model or accuracy gain estimate.

## Finite observations

The main cohort consists of one six-activity graph, six authored runtime cases,
two modes, three fresh constructions per mode and six saved replays:

| Observation | Count |
| --- | ---: |
| Named output expectations met | 432/432 |
| Actual input slots checked | 648 |
| Producer-to-consumer deliveries checked | 432 |
| Record field observations checked | 1,152 |
| Native executions | 24 |
| Actual fresh model predictions | 3 |
| Actual predictions during saved replay | 0 |

Field observations include input and output positions. Repeated values can occur
at several positions; these counts describe trace coverage. The controls reuse
one fixture. Some runtime integers overlap selection examples.

Additional controls are separate in `additional-metrics.json`:

- Two fresh processes started together, one per mode: 72/72 named outputs, both
  completed. Process wall times were approximately 660ms and 802ms. This is a
  finite concurrency observation; arbitrary schedules need further measurement.
- Eight further runtime-only cases through each saved composition: 96/96 named
  outputs, 256 field observations, zero new predictions. Inputs include branch
  crossings, caller approval changes, emoji, quotes, tabs and a 1,000-byte title.
- Changing only one expected `state` from `ready` to `wait` produces **35/36**
  named matches. The trace retains the actual `ready` value and the failed
  expectation. At this scope, completeness is 97.22% of named expectations.
  Expected output-record fields also match 35/36 in this control. These finite
  denominators let a user locate the gap; they do not assign confidence to all
  possible programs.

## Time and memory

Three fresh requests per mode, in a fixed model-then-deterministic order with a
warm native build cache:

| Median | Own model | Deterministic |
| --- | ---: | ---: |
| Graph generation | 12.801ms | 11.774ms |
| Compiled graph runtime/build observation | 319.866ms | 311.529ms |
| Whole command wall time | 343.507ms | 334.904ms |
| Process user CPU | 0.15s | 0.15s |
| Process system CPU | 0.11s | 0.11s |
| Maximum observed resident memory | 83.39MiB | 83.17MiB |

Actual model prediction median was **26,875ns (26.9Β΅s)**. Model loading is retained
separately in `.composition.model.setup_ms`, outside request-generation timing.
Saved controls retain the historical prediction duration under
`stored_prediction_ns`; their actual model-call count is zero.

Process resource measurements include native builds and child processes. They do
not measure a host CPU utilization increase caused by inference. The current
model reduces candidate evaluations while generation takes a little longer in
this sample. The dominant cost here is native build/execution, making reusable
compiled artifacts a useful next usability experiment.

## Reproduce

Build the clean compiler revision above with Go 1.27.1. From this research
repository's root, set `gooo_bin` to that executable, put Go 1.27.1 on PATH, and run:

```sh
"$gooo_bin" body-compose \
  --source publication/native-record-values-20261004/source.gooo.fixture \
  --cases publication/native-record-values-20261004/cases.json \
  --model models/own-three-feedback-v1/set-feedback/models/fp32/model.json \
  > /tmp/gooo-records.json
jq .composition /tmp/gooo-records.json > /tmp/gooo-record-composition.json
"$gooo_bin" body-compose \
  --source publication/native-record-values-20261004/source.gooo.fixture \
  --cases publication/native-record-values-20261004/cases.json \
  --composition /tmp/gooo-record-composition.json
```

Omit `--model` for deterministic construction. The CLI can also write a new output
directory with `--out`: inspect `realized.gooo`, generated Go, driver, composition
and runtime there. `go run ./cmd/native-record-observe --verify-json FILE
--compiler-source fa3c892791a2fd775a265c7524c9ee59adce45bf --mode model` checks the
captured six-case profile. Add `--saved` for a saved-composition observation.

The observer's default mode captures the twelve-row macOS resource cohort into
fresh public/private directories. `--controls` adds the separate controls to an
existing cohort. Its tests check the published observations and reject absent,
reordered or changed fields, wrong producer values and altered model identity.
The research CI reconstructs the graph and verifies fresh/saved actual field
delivery on Linux at the same compiler revision.

## Current boundaries and next work

Required string fields form the currently supported record profile. Optional,
many-valued and nested records require further entity-profile work. Body calls,
loops and field mutation remain outside this pure body grammar. Registered
domain `run` chains have their own runtime contracts; issue874 remains open.

Useful next steps are guided record-field choices declared inside `assembling`,
field-level expected/missing measurements in normal CLI output, and reuse of
compiled graph artifacts. These connect small model decisions to the language
while keeping the selected source available for the next construction.