harness-reckoning · git:20260919.9b428e6 · 2026-09-19 · sha256 e7de58ef8743a7ef
harness-reckoning git:20260919.9b428e6A
Immutable. This exact content is served forever at /api/v1/blob/e7de58ef8743a7ef.
--- name: harness-reckoning description: Run and interpret a read-only nightly retrospective over Harness ledger projections, then prepare evidence-backed framework fixes, deletion candidates, or time-bounded rule proposals for human adjudication. --- # Harness Reckoning Use this skill when a maintainer wants a daily, offline review of repeated friction without allowing the reviewer to modify code, rules, Tasks, Facts, or Decisions. ## Run The schedule must use `mode: detect` and a Codex-first agent runtime. Its mission invokes: ```sh node tools/nightly-reckoning/run-reckoning.mjs --root "$REPOSITORY_ROOT" --db "$LEDGER_ROOT/.harness/cache/task.sqlite" ``` The command reads the local SQLite projection and repository files and writes only stdout. The occurrence runtime's final output is the report artifact. A missing projection is an error, never a healthy empty report. Do not invoke `ha`, connect to the daemon socket, or redirect output into the repository. Optional sources implement the contract in [references/source-contract.md](references/source-contract.md) and are passed with repeated `--source` arguments. ## Adjudicate Read the evidence link or identifier on every candidate. Apply the funnel in order: 1. Fix the CLI, SDK, kernel, configuration, or error message that created the friction. 2. If no framework fix applies, propose removal of an obsolete rule. 3. Only then consider a new rule; require a trigger and expiration date. 4. A second occurrence is an architecture defect, not permission for a second local patch. The report is advisory. A human decides whether to create a Task, retire a rule, or propose a Decision. Quiet output is a valid health attestation; never manufacture findings. ## Boundaries Occurrence claim ownership (`nodeId` plus `claimFence`) supplies multi-node mutual exclusion. Each result belongs to its occurrence; no shared report path is used. Edge nodes read their local projection, so the report identifies local evidence rather than pretending to be a fleet-wide canonical snapshot. The method follows the third-generation pattern: offline replay, external evidence, a minimal proposed difference, and human adjudication. It deliberately avoids online self-editing and append-only memory growth. See [references/method.md](references/method.md).