improve: skill auto-capture catches reactive corrections and routes them to existing skills#100576
Conversation
|
Codex review: needs maintainer review before merge. Reviewed July 6, 2026, 4:28 AM ET / 08:28 UTC. Summary PR surface: Source +497, Tests +712, Docs +8. Total +1217 across 18 files. Reproducibility: yes. Source inspection of current main shows auto-capture reads full event history and only handles the prior single-signal path; the PR adds focused tests for current-turn capture, Review metrics: 1 noteworthy metric.
Root-cause cluster Members:
Proposal only: this assessment does not dispatch repair, suppress jobs, mutate sibling items, close, or merge anything. Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Rank-up moves:
Next step before merge
Security Review detailsBest possible solution: Land this coordinated autonomous auto-capture overhaul after maintainer review of the exact-head CI/Testbox evidence, keeping #100692 as the merged suggestion-tier prerequisite. Do we have a high-confidence way to reproduce the issue? Yes. Source inspection of current main shows auto-capture reads full event history and only handles the prior single-signal path; the PR adds focused tests for current-turn capture, Is this the best way to solve the issue? Yes. The fix is in the owner path: signal extraction stays in AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against 0c38082c6db9. Label changesLabel changes:
Label justifications:
Evidence reviewedPR surface: Source +497, Tests +712, Docs +8. Total +1217 across 18 files. View PR surface stats
What I checked:
Likely related people:
What the crustacean ranks mean
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics. How this review workflow works
Review history (1 earlier review cycle)
|
|
Independent review (read both diffs in full plus the current Blocking findings
Shared capture invariant to build against (this PR + the suggest tier +
Coordination: a default-on "suggest" tier (detect signal → one-shot context line next turn → user decides; no new config) is about to land, sitting between off and Integration acceptance tests for the refactor: Related: #100578 is being closed in favor of this coordinated design — its reactive-correction insight survives here in |
|
i’m addressing the blocking capture-invariant findings on this branch now: current-turn provenance/revision without replay, /learn same-run suppression, and extraction before workspace discovery. i’ll push the rebased exact-head patch with Testbox + autoreview evidence when it’s clean; please hold off on a parallel branch rewrite for the moment. |
4f6374f to
609b97d
Compare
|
Updated this branch on current
Proof:
|
…ons (#100576) Merges the reactive-correction extractor with the landed suggest tier under one capture contract: signal-fingerprint ring on the session entry (replay-proof across applied/rejected proposals), revise-upsert into autocapture-owned pending proposals, same-run suppression for /learn-style turns, and extraction-before-discovery. Restores the suggest-tier behavior a textually-clean rebase had silently dropped. Fixes check-lint (.sort()) and docs table formatting.
609b97d to
517c125
Compare
…ariant (#100576) Reactive corrections ("that's not what I asked", "stop doing X") now count as durable signals: expanded extraction patterns, vocabulary routing to existing workspace skills, per-skill grouping. Both capture modes share one invariant: a bounded signal-fingerprint ring on the session entry prevents replaying applied/rejected corrections, pending autocapture-owned proposals are revised instead of skipped, /learn-style turns suppress duplicate agent-end capture, and extraction runs before any skill discovery. Autonomy off keeps the suggest-tier offer; autonomy on files/revises proposals directly. Co-authored-by: Vincent Koc <[email protected]>
517c125 to
ad7af27
Compare
|
Landed as 8b2e9dd with the coordinated refactor on top of your extractor work (squash credits preserved via co-authorship). What changed relative to your last push, per the review contract above:
Your REACTIVE_PATTERNS, vocabulary routing, and grouping shipped intact — thanks Vincent, the reactive-phrasing insight is the heart of the feature. Proof: 680/680 focused Testbox tests across research/session/reply surfaces, clean structured review. |
…ariant (openclaw#100576) (openclaw#100576) Reactive corrections ("that's not what I asked", "stop doing X") now count as durable signals: expanded extraction patterns, vocabulary routing to existing workspace skills, per-skill grouping. Both capture modes share one invariant: a bounded signal-fingerprint ring on the session entry prevents replaying applied/rejected corrections, pending autocapture-owned proposals are revised instead of skipped, /learn-style turns suppress duplicate agent-end capture, and extraction runs before any skill discovery. Autonomy off keeps the suggest-tier offer; autonomy on files/revises proposals directly. Co-authored-by: Peter Steinberger <[email protected]>
…ariant (openclaw#100576) (openclaw#100576) Reactive corrections ("that's not what I asked", "stop doing X") now count as durable signals: expanded extraction patterns, vocabulary routing to existing workspace skills, per-skill grouping. Both capture modes share one invariant: a bounded signal-fingerprint ring on the session entry prevents replaying applied/rejected corrections, pending autocapture-owned proposals are revised instead of skipped, /learn-style turns suppress duplicate agent-end capture, and extraction runs before any skill discovery. Autonomy off keeps the suggest-tier offer; autonomy on files/revises proposals directly. Co-authored-by: Peter Steinberger <[email protected]>
What Problem This Solves
Skill auto-capture missed reactive corrections, could route tied matches to an arbitrary skill, overwrote existing skill descriptions, replayed historical transcript signals, and could double-capture explicit
/learnrequests. Currentmainalso has a default suggestion tier, so suggestion and autonomous capture need one coordinated signal and provenance path.Why This Change Was Made
.agents/skills, while preserving existing skill descriptions./learnduplication in both suggestion and autonomous modes.runId; use it only when available for same-run provenance and deduplication.mainsupersedes the always-rendered prompt approach from improve: skill-workshop prompt banks reactive corrections without a save command #100578.User Impact
Users get pending skill improvements from the correction they just made, targeted only when one writable skill is the clear match. Existing metadata and manual proposals are preserved, explicit
/learnremains authoritative, and old transcript corrections do not get captured again.Evidence
tbx_01kwv5ewt8fz6mw1r050y6rt7s(blacksmith-testbox), validating local headf811a19cb015d1b5c99075ac58744d97ea4f3346.pnpm check:changed -- <18 changed paths>: clean.autoreview --mode branch --base origin/main: no accepted/actionable findings; overall patch-correct confidence0.78.609b97d3d6b1d19de619d17bb974b8ea40dc923chas the same stable patch ID as the Testbox-validated and autoreviewed content after rebasing onto7b68306949d9a268cb2b3d6ddc635073b5ddcff6.codex-rs/app-server-protocol/src/protocol/v2/turn.rsandcodex-rs/app-server/src/request_processors/turn_processor.rs: turn input is the currentVec<UserInput>validated before turn start.