Skip to content

Latest commit

 

History

History
22 lines (17 loc) · 3.96 KB

File metadata and controls

22 lines (17 loc) · 3.96 KB

Implementation notes

Working notes for in-flight work in core. The ## Deviations section is read by scripts/hooks/deviation-log.mjs (Stop hook) — see adr:harness-loop-instrumentation.

Log the gap between plan and reality, not routine choices the plan already covered. The count is a discovery rate, never a defect rate: more entries is better.

Deviations

  • Plan specified registering the harnesses in decisions/loops/loops.md with trigger: harness-routine, on the basis that the value already existed. Territory: loops-lint.mjs defines TRIGGERS = ['launchd','gh-actions','hook','watchpath','manual']harness-routine appears only in the aspirational deliverable prose of rm:rm-l2-ojfbot#S29 and was never implemented, so authoring against it would have ERRORed. Took the conservative option: trigger: hook, which is both valid and more accurate since these are literally hooks. No schema change needed.
  • Plan hypothesised that acted ≈ 0 was caused by log-skill.sh being registered only at project scope, and pre-authorised registering it at user scope. Territory: suggest-skill.sh:228 already injects the complete skill-acted-emit.mjs command with the live suggestion_id into every single suggestion — the agent is told every time and does not comply. The gap is agent compliance, not wiring. Took the conservative option: did not register the hook, recorded the finding in the ADR instead, since registering it would have implied a fix that wasn't one.
  • Plan offered "relax Step 5 so grill-with-docs may write CONTEXT.md under confirmation" as a candidate resolution. Territory: in every sibling repo domain-knowledge/CONTEXT.md is a symlink into core, so any repo-local session writing it mutates fleet-shared state. Took the conservative option: gave the skill a new repo-local artifact it owns (decisions/open-unknowns.md) rather than loosening a constraint that exists for a good reason.
  • Plan specified H8 Stage A as a PreToolUse hook on Bash. Territory: user-scope PreToolUse(Bash) fires synchronously on every Bash call in every session, so installing the .mjs directly would spawn node fleet-wide for a signal needed only on merges. Took the conservative option: added merge-quiz.sh, a bash prefilter that rejects non-merge commands in ~4ms, and installed that as the hook entry instead.
  • Plan's S0 assumed the EXPECTED_ARTIFACT audit would mostly confirm entries. Territory: investigate names an exact artifact path in its own SKILL.md but had no pathPattern, so any file written in-session satisfied it; validate declares scheme: 'path' while its SKILL.md says "No auto-fixes — findings and verdict only", i.e. the same unreachability as grill-with-docs. Fixed the evidenced one (investigate), and surfaced validate/plan-feature as annotated ambiguities rather than guessing — the file's own docblock requires surfacing over guessing, and resolving them changes what those skills are.

Deviations — GOLF UMBRELLA landing 2026-07-30

  • Landing prompt placed the fairway itinerary row in "Leg 4"; disk itinerary has Leg 3 as the golf-only leg (2026-07-02 decision) and Leg 4 as GameWorld — rows landed in Leg 3, discrepancy noted in-row and in core#298.
  • Plan assumed the reference sweep could ride PR-1; gcgcca references live in four other repos, so the sweep distributed across core#297, mirrorworld#11, daily-logger#259, morning-cockpit#41.
  • daily-logger's sweep list turned out to live in src/collect-context.ts (code, not the README prose) — the rename would have silently dropped the repo from the nightly sweep; fixed in daily-logger#259.
  • Sitting's gcgcca git-state snapshot (push-u needed, 7 dirty) was stale by landing time — PRs #3/#4 already merged, main clean; the push-u step was dropped as obsolete.
  • RFI §6.2 "code-side Notion unauthenticated" is stale — read access works; found no mirrorworld itinerary row and stale property-subset framing on the Notion golf pages (flagged for chat-side refresh in core#298).