v0.5.2
Nothing new to type. No flag, no command, no schema key — every change here
corrects something v0.5.1 already shipped.
Skill activation's 1-in-7 has a cause now (#130, #137)
v0.5.1 shipped skill activation wired, disclosed, and recording 1 Skill
invocation across 7 activated planned nodes — with the cause unknown.
44 real claude -p spawns later it is known:
| arm | prompt | corpus | sentence | fired |
|---|---|---|---|---|
| A | planner register | 35 real skills | no | 0 of 9 |
| B | the same bytes | 35 real | yes | 8 of 9 |
| H | the same bytes | 35 real + 1 planted trigger description | no | 3 of 3 |
| J | no fitting skill exists | 35 real | yes | 0 of 3 |
So the staged descriptions do reach a node running under --setting-sources ""
— arm H moves 0→3 without changing one byte of the prompt. An activated node's
prompt now carries one fixed sentence saying a corpus exists. Arm J is the
bound: the sentence does not manufacture fit it does not have.
The "fit" reading an earlier draft attached to this data is retracted inside
the entry itself: the confirming arm was pre-registered at 3 of 3 and came
back 0 of 3. Whether the nodes that fired produced better work is still
unmeasured, and says so next to the feature.
Judged only by a Skill tool-use record in the node's own transcript, or a
planted skill's marker file on disk — never by asking a model what it can see.
Every arm, both sealed pre-registrations and the runner scripts are in
docs/measurements/.
lint and run --dry-run stopped losing advisories over a pipe (#134)
Both read the graph path twice. On a non-seekable path the second read came
back empty, so an empty graph passed every check and every advisory vanished
while valid and exit 0 printed. It fooled two probes of the review that
found it.
Every verdict prompt now names where a caveat goes (#138, ADR 0019)
A merge node reported FAIL over a merge that had landed — it put a
housekeeping line before its verdict. Across 187 runs / 218 verdict-bearing
node executions, 22 result_matches failures: 16 were the check working
(4 of them literally the promise reply the anchor exists to reject), 6 were
misjudgements, all in the safe direction. Replaying all 22 without the anchor
passes 9 that should fail. The anchor stays; the prompts now say caveats go
after the verdict, and merge's re-run is made cheap instead.
Also: merge was confirming against a stale origin/main.
Isolation stays scoped to the invocation repository (#103, ADR 0018)
Multi-repo managed worktrees: decided against, with the costs a future
"yes" would owe — resume is not free, cleanup is unwired, paths collide — and
a pre-registered measurement that would flip the decision.
Install: go install github.com/jitokim/oh-my-graph/cmd/oh-my-graph@v0.5.2
Full changelog: https://github.com/jitokim/oh-my-graph/blob/v0.5.2/CHANGELOG.md