Nightly 2026-04-20 — 2 cycles, +15 goal weight, 1 dream finding closed#136
Merged
Nightly 2026-04-20 — 2 cycles, +15 goal weight, 1 dream finding closed#136
Conversation
The provenance audit's learningFrontmatter decoded source as a bare string and failed with "cannot unmarshal !!map into string" whenever a learning used a structured value — for example, the 2026-04-19 orchestrator-compression learning set source to a session+evidence map. Dream's INGEST stage then listed the file under degraded every run and never counted its source toward MissingSources. Switch Source to a flexibleString wrapper whose UnmarshalYAML accepts scalar, map, or sequence nodes. Structured values decode to a non-empty sentinel so the existing "missing source" predicate still works; scalar values are preserved verbatim. Surfaced during the 2026-04-20 nightly dream run.
Codex mirror SKILL.md files still carried Claude-native Skill(skill="...", args="...") calls in their executable DAG blocks, which codex-skill-api does not recognize as delegated sub-skill invocations. Rewrite all 11 occurrences in design, implement, red-team, and validation to the canonical $<name> form (e.g. $vibe recent, $test coverage --quick, $post-mortem <epic-id>). Prose occurrences inside shared/references/strict-delegation-contract.md are left intact: they document the Claude-native shape. Regenerate skills-codex hashes so the manifest and per-skill generated markers match the new content; parity audit and codex-native lint pass. Addresses the low-severity council finding tracked under the 2026-04-19-rpi-dag-hardening epic in .agents/rpi/next-work.jsonl.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Nightly summary
Bounded autonomous nightly pass on
nightly/2026-04-20branched fromorigin/main @ 6bbc0307.Anchor: previous nightly branch
origin/nightly/2026-04-17-v2 @ 4269c665(no nightly git tags existed yet — this run creates the first).Per-cycle summary
Cycle 1 —
6103c2e2fix(provenance): accept structured source frontmatter in learning auditDream's INGEST stage flagged
.agents/learnings/2026-04-19-orchestrator-compression-anti-pattern.mdevery iteration withyaml: cannot unmarshal !!map into string, becauselearningFrontmatter.Sourcewas typed asstringwhile the file uses a map (source: {session, evidence}). SwappedSourcefor aflexibleStringwrapper whoseUnmarshalYAMLaccepts scalar, map, or sequence nodes; structured values decode to a non-empty sentinel so the "missing source" predicate keeps working. Added a regression test (TestProvenanceAudit_StructuredSourceAccepted) covering all three shapes.Cycle 2 —
8778fa97fix(codex): convert remaining Skill() invocations to $skill notationClosed the low-severity council finding under
2026-04-19-rpi-dag-hardeningin.agents/rpi/next-work.jsonl. Rewrote all 11 remainingSkill(skill="…", args="…")calls inskills-codex/{design,implement,red-team,validation}/SKILL.mdto the canonical$<name>form ($vibe recent,$test coverage --quick,$post-mortem <epic-id>, etc.). Prose examples insideskills-codex/shared/references/strict-delegation-contract.mdleft as documentation of the Claude-native shape. Regenerated codex hashes (manifest + per-skill markers);bash scripts/audit-codex-parity.shandbash scripts/lint-codex-native.shpass.Findings
source:2026-04-19-rpi-dag-hardening: remainingSkill()notation in codex2026-04-19-rpi-dag-hardening: "Decompose skills/crank/SKILL.md under 248 lines"tests/skills/lint-skills.shno longer enforces line count whenreferences/is present (crank has one)No new findings opened, no auto-reverts, no quarantined goals.
Goal results
Still failing (both out of nightly scope):
[8] flywheel-compounding— σρ > δ not met in the measurement window; this is a knowledge-lifecycle metric that needs corpus activity, not a code fix.[6] go-complexity-ceiling—gocyclobinary not installed in this runtime environment; no code regression.Moved from fail → pass:
[7] flywheel-proof— baseline failure was transient:sum.golang.org 503 DNS cache overflowduring proof-run toolchain download.[4] compile-freshness— baseline lacked.agents/defrag/latest.json; generated by a dry-runao defragduring cycle selection (runtime state, not a committed artifact; nightly CI runsao defragbefore measuring, so this also reflects correct CI flow).[4] compile-no-oscillation— same root cause as compile-freshness.Final validation bundle
ao autodev validate --file PROGRAM.md --jsonvalid: truego build ./.../go vet ./...go test ./cmd/ao ./internal/autodev ./internal/provenance ./internal/overnightskills/heal-skill/scripts/heal.sh --strictAll clean. No findings.tests/docs/validate-links.shscripts/audit-codex-parity.sh --skill {design,validation,implement,red-team}scripts/lint-codex-native.shscripts/pre-push-gate.sh --fastnightly/*branch (the script expects the canonical root onmain). All other checks pass.Commit links
Anchor for tomorrow's audit
This branch will be tagged
nightly/2026-04-20after the PR is opened so the next nightly has a concrete fitness anchor to diff against.Generated by Claude Code