Skip to content

v0.5.2

Choose a tag to compare

@jitokim jitokim released this 08 Aug 01:21
· 51 commits to main since this release
7815bf3

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