Skip to content

feat(runtime): 0.17.0 thin evidence-carrying kernel - #25

Merged
tdwhere123 merged 33 commits into
mainfrom
upgrade/minimal-evidence-kernel
Sep 1, 2026
Merged

feat(runtime): 0.17.0 thin evidence-carrying kernel#25
tdwhere123 merged 33 commits into
mainfrom
upgrade/minimal-evidence-kernel

Conversation

@tdwhere123

Copy link
Copy Markdown
Owner

Your project

  • This repository (tdwhere123/do-it), dogfooded across Claude Code, Codex, Cursor, Grok Build, OpenCode, Pi, and Kimi.
  • Daily driver for non-trivial repo work.
  • Skills in the real workflow: do-it-core, do-it-router, do-it-code-quality, do-it-verify, plus the rest of the 12-skill set when needed.

The real problem that triggered this change

  • 0.16 injected a lexical router and Heavy grill on every prompt. Reminder saturation did not stop unauthorized live HTTP, and write-quality depended on classifier tier/dim_* that thin sessions never write.
  • Completion claims could treat a green command name as proof.

What this change does

  • Default runtime is thin: one compact Do-it kernel: per session; the lexical classifier is skipped.
  • Skills stay the judgment layer (rewritten as executable algorithms with progressive disclosure).
  • Live-network admission looks at the command (Claude PreToolUse can ask; other hosts remind). Write-quality scans added lines, not router dims.
  • Evidence observer records edit/command facts; verification still requires fresh worktree evidence or NOT_VERIFIED.
  • Rollback: DO_IT_ROUTER_MODE=legacy. S16 Phase B (delete router/grill) is not in this PR.
  • Source version metadata is 0.17.0. This PR does not git-tag or npm-publish.

Re-test: npm test exit 0; npm run smoke:package exit 0; node scripts/validate-release.mjs v0.17.0 exit 0. Pi live 28×4×2 archived locally (Cursor full matrix NOT_RUN).

Why this belongs in do-it

  • This is the shipped runtime for every host adapter, not a project-specific overlay.
  • A fork cannot keep six hosts on one kernel.

Linked Issue

  • n/a (author dogfood on this repo; merge requested by maintainer)

Verification

npm test
node scripts/validate-release.mjs v0.17.0

S00 records the 8e85add inventory, router/grill snapshots, and exact
npm test / lint / smoke:package outputs. No runtime behavior change.
Keep the eight Core rule IDs and rewrite their canonical sentences
for active contract, evidence kinds, cheapest uncertainty, and
causal recovery. Add Task Contract v1 with a structural validator.
Sync generated host copies and closed-set consumers. Hook
injection surfaces are unchanged.
Establish the fixture-backed A/B harness (validate/judge/runner/report)
and the nine Wave 0 seed scenarios. Live host/model backends stay
unimplemented; ordinary tests cover validate, deterministic gates, and
dry-run only.
Fixture dry-run of the nine seed scenarios under legacy. Live host/model
runs are NOT_RUN; canned R03/R04/R06 honesty failures prove hard gates.
This is not promotion evidence.
Define Identity, Interleaving, Commit, Amplification, and Copies &
Recovery as an on-demand production-failure scan, with owner vs
mechanism, four short examples, and an applicable-faces anti-checklist.
Replace Grill/Diverge/Plan/Slice modes with a five-step decide kernel:
decision-changing unknown, cheapest resolver, dominant route or
decision boundary, readiness, and a chat-default minimal contract.
Lock stable anchors in tests and add D03–D06 behavior scenarios.
Compress do-it-code-quality to Trace/Locate/Change/Stress/Prove/Settle.
Sink comments, worktree, merge, mock, and optimization detail into
causal-change.md. Add B03–B08 behavior scenarios and lock the kernel
anchors in tests/skill-contracts/build.test.mjs.
Compress the architecture hot path to five decision surfaces and the
semantic/admission/projection/recovery quartet. Keep task routes.
Move the original eight lenses into rationale and point Failure &
Recovery at the stateful change scan.
Contract-aware Spec checks and Standards (authority, fallout,
stateful failures, proof quality). Default inline review; at most
one independent reviewer. No fixed multi-reviewer pipeline.
Closeout is an acceptance-to-evidence map on this worktree. Stale,
other-worktree, irrelevant, mock-only, and partial evidence cannot
be VERIFIED. Honest NOT_VERIFIED names the missing proof.
S03–S07 added scenarios. Keep the original nine as required seeds
without asserting they are the only YAML files.
New handbook init creates CONTEXT, handbook, worklog, and plans only.
Stop shipping empty brainstorm/grill gitkeeps; leave existing user
content. Plans are Goal/Decisions/Boundary/Acceptance contracts, not
progress logs. Runtime/adaptive/events stay local via .do-it/.gitignore.
Repo-local active-task pointer, JSONL evidence ledger, worktree
fingerprint, and adaptive-profile resolve/hash/parse. Fail-open,
schema-versioned, unwired from default hooks.
Fixed do-it-adaptive interpreter, delta-only profile schema, validator,
and fail-open hash-once injection. Missing profile is silent; invalid
entries are skipped with one diagnostic. Unwired from host manifests.
Normalize edit/shell/test/build tool results into canonical evidence
events. Verification-gate v2 reads active-task and worktree freshness
and stays advisory: no auto-proof, no VERIFIED, fail-open.
Lock child agents to a narrow slice with no further dispatch and no
commit/merge/revert-peer/scope expansion. Expensive plan, product,
architecture, cleaner, and tdd agents are not default. Replace English
regex skill-boundary checks with HTML contract anchors; budgets warn only.
Record edit, shell/test/build, and completion facts on Claude, Codex,
Cursor, OpenCode, Pi, and Kimi using the canonical evidence schema.
Fail open if the observer is missing. Cursor postToolUse/afterFileEdit
edits are deduped. Missing shell results are partial, never complete.
Pi reminders use ledger freshness instead of process-local success
flags. OpenCode no longer treats command names as proof.
Upgrade the default-off complaint recorder to a learning event ledger.
Explicit user feedback and objective workflow observations
(scope-creep, completion-after-edit, review-blocking) are stored as
redacted metadata, never as active policy. Reports stay no-action on a
single event and do not write adaptive profile or Core.

Hosts keep invoking behavior-feedback.sh; the wrapper execs the new
recorder. Session ids are hashed. Same-event rows are deduplicated.
Add Policy Candidate v1 JSONL checks: target failure, supporting
evidence, rollback, and promotion gates. A single complaint stays
candidate. Inferred rules need two independent tasks and a passing
shadow eval; explicit preference may activate after exact wording.
The report is read-only and never writes profile or Core.
Document the observation → candidate → shadow → active → revert
ladder on Adaptive Policy v1 without changing the profile schema.
Explicit preference and inferred lessons are separate paths.
Counterexamples mark review-needed. Core promotion is a proposal
only. Candidates stay shadow/NOT_EVALUATED when live eval cannot run.
Add DO_IT_ROUTER_MODE=legacy|shadow|thin (default legacy) so 0.16
classifier+grill injection stays the golden path. shadow/thin inject one
compact kernel per session, plus active-task and adaptive on hash change.
No-write reminders fire every turn and are never dropped by once-dedup.
Grill is silent except an explicit compatibility diagnostic. The lexical
classifier records diagnostics in shadow and is skipped in thin.

Host adapters skip the old bootstrap text when not legacy. Kimi
sessionStart points at kernel-context.sh, which is silent in legacy.
Register do-it-adaptive as extended-on-demand so runnable skills are 12
with 10 agents. Ship kernel-context, adaptive-context, and
evidence-observer through hook-manifest, run-hook allowlists, and
managed extras. Add skill-contract, skill-budget, and behavior-eval
scripts without putting live model runs in npm test. Document the
evidence-carrying product sentence, contract-shaped .do-it layout,
runtime modes, and Unreleased 0.17 work. Version stays 0.16.0.
Regenerate index.json, Claude skill index, and Codex/Cursor/OpenCode/Pi
plugin bundles so they include do-it-adaptive, kernel-context, and
adaptive-context. No hand edits to generated files.
Fixture seed dry-runs and adapter tests only. Live model A/B is NOT_RUN.
Keep DO_IT_ROUTER_MODE=legacy. Do not authorize S16 Phase A (thin default)
or Phase B (hard delete). Do not tag, push, or publish.
Align skills, eval CLI, host docs, and runtime path safety with the
open Important items from the upgrade card reviews. Keep Opportunity
findings deferred. Rebuild generated host bundles from source.
Drop the leftover 0.14.2 view pin from the OpenCode plugin README.
Keep handbook/plan/runtime state local. Templates stay in
skills/do-it/do-it-handbook/templates/. Also ignore .codegraph/.
Unset DO_IT_ROUTER_MODE now selects thin. Legacy stays an explicit
rollback and the eval baseline. Add command-only live-network
admission: Claude PreToolUse asks, other hosts remind.

Land live Cursor/Pi eval adapters, fairer command_exit0 and
honest_verified scoring, and 0.17 unreleased evidence. Suite JSON
strips probe credentials.
Thin sessions have no classifier, so write-quality-lint scans added
lines and derives extra-family risk from path. SessionStart still
emits the kernel when collect is empty. Register network-admission
in the install manifest.

Archive the Pi live 28x4x2 S19 aggregate. Cursor full matrix is
NOT_RUN. Deleting the lexical router (S16 Phase B) is not authorized.
Promote the evidence-carrying thin default to version 0.17.0 across
package, manifest, and host plugin metadata. This is not a git tag or
npm publish. Rollback remains DO_IT_ROUTER_MODE=legacy.
Git Bash can leave the temp dir locked after spawnHook. Retry rmdir on
EBUSY/EPERM, and give the real subagent-stance hook 15s on Windows CI.
Canonical ubuntu Node 22 npm test runs test-pi and needs
plugins/do-it-pi devDependencies. Shadow prompt-submit on Windows
Git Bash exceeds the 15s default hook timeout.
@tdwhere123
tdwhere123 merged commit 162511f into main Sep 1, 2026
11 checks passed
@tdwhere123
tdwhere123 deleted the upgrade/minimal-evidence-kernel branch September 1, 2026 12:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant