Skip to content

test(harness-memory): freeze description-trigger probes for stateless and audit - #11933

Merged
kyle-sexton merged 4 commits into
mainfrom
feat/6583-concise-skills-harness-memory
Nov 1, 2026
Merged

kyle-sexton merged 4 commits into
mainfrom
feat/6583-concise-skills-harness-memory

Conversation

@kyle-sexton

Copy link
Copy Markdown
Member

Closes #6583

Summary

Concise-skills rollout for harness-memory, descriptions only (scope recorded on #6476: #6476 (comment)). Freezes description-trigger probes for both model-invoked skills. Both shorter descriptions were measured but stay at main: the pre-recorded rule leaves them unmeasured.

Fix

  • plugins/harness-memory/probes/{stateless,audit}.json: frozen probes.
  • Changelog fragment (bump: none).
  • Descriptions and skill bodies unchanged (byte-identical to main).

Verification

Held-out trigger probes (16 per skill, written blind, not committed), Opus model and judge, 3 runs per case, decision rule recorded before any pass.

Skill Positive fire (before -> after) Negative quiet (before -> after) Result
stateless 24/24 -> 24/24 24/24 -> 24/24 unmeasured; main kept
audit 24/24 -> 24/24 21/24 -> 21/24 unmeasured; main kept

Related

🤖 Generated with Claude Code

kyle-sexton and others added 3 commits October 31, 2026 20:02
Authored by a fresh agent from the before descriptions at b4214d6,
with near-misses at sibling and look-alike skills, before any description
rewrite. measure-invocation validate passes.

Refs: #6583

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…sured

Held-out trigger passes on Opus (16 passes, 192 with-arm runs, 3 runs per
query, Claude Code 2.1.316) compared main's descriptions with shorter ones
(stateless 620 -> 456 chars, audit 444 -> 383). Neither ships. Each
skill has INVALID negative passes: runs that never called Skill were
denied Globs of the real home directory, before the decision point. The
plan routes that to "INVALID from the eval sandbox itself (#11727):
that skill is unmeasured, its description stays main". Bodies and
descriptions are byte-identical to main; this commit adds only the
changelog fragment (bump: none) for the frozen probe sets.

| skill     | split   | before        | after         | verdict          |
|-----------|---------|---------------|---------------|------------------|
| stateless | pos     | 24/24 fired   | 24/24 fired   |                  |
| stateless | neg     | 24/24 quiet   | 24/24 quiet   | unmeasured, main |
| audit     | pos     | 24/24 fired   | 24/24 fired   |                  |
| audit     | neg     | 21/24 quiet   | 21/24 quiet   | unmeasured, main |

Per query, every pos-val-01..08 fired 3/3 in both versions for both
skills. Every neg query held 0/3 in both versions, except audit
neg-val-04, which fired 3/3 in both. No query changed majority.

Invalid runs (plan rule: denial before the decision), 12 of 192:
- stateless neg-val-04: 3 before, 2 after; neg-val-06: 1 before
- audit neg-val-03: 3 before, 3 after
run-validity 0.13.1 (raw, before the plan's post-decision override):
8 positive passes VALID with warnings, 8 negative passes INVALID.
The post-decision denial rule changed 99 runs' verdicts (stateless 43,
audit 56).

skill-quality check: 2 passed, 0 failed, 4 warnings (same as before).

Refs: #6583

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@kyle-sexton
kyle-sexton marked this pull request as ready for review November 1, 2026 14:09
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Nov 1, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-11-01T14:10:59.531845Z e5129d0 Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@github-actions

github-actions Bot commented Nov 1, 2026 •

Copy link
Copy Markdown
Contributor

claude-security-review reviewed 191119ee853fdaa7bacc7edede7da014b6b5225e: read 2 of 2 changed file(s); 0 finding(s), 0 as inline comments.

Security review: incremental (e5129d0 → 191119e)

No security issues found. I read every hunk of the incremental diff in both files that changed.

  • plugins/harness-memory/probes/audit.json and plugins/harness-memory/probes/stateless.json: each competitors list now names only the other skill in the same plugin. Four cross-plugin skill names were removed from each list. Each ranking_note string was reworded to match.

These files are frozen test data for description-trigger probes. They run nothing, grant no tools, hold no tokens or secrets, and change no trust control, merge hold, manifest or instruction surface. Neither file matches a trusted-path glob. Removing names from a probe's competitor list widens nothing. Under skip-gate item 2, this change has no security-relevant surface.

The PR context file contains no embedded text telling the lane to pass the PR, skip a check, drop a finding or post somewhere else.

critical-findings: 0

@github-actions

github-actions Bot commented Nov 1, 2026 •

Copy link
Copy Markdown
Contributor

claude-review reviewed 191119ee853fdaa7bacc7edede7da014b6b5225e: read 2 of 2 changed file(s); 0 finding(s), 0 as inline comments.

Incremental review (e5129d0 → 191119e): no findings

Scope: I read every hunk of .claude-lane/incremental.diff, and the head version of both files in scope:

  • plugins/harness-memory/probes/audit.json
  • plugins/harness-memory/probes/stateless.json

What changed: Each probe's competitors[] list now names only its sibling skill: harness-memory:stateless in audit.json and harness-memory:audit in stateless.json. The four rivals from other plugins are gone: harness-config:audit-instructions, instruction-placement:audit, docs-hygiene:write-for-agents and session-flow:handoff. Each ranking_note was rewritten to match.

Checked against criteria:

  • Same-plugin competitors only. The probe template now holds: "Same-plugin competitors only. List sibling skills from the same plugin, so a parallel rewrite in another plugin cannot move this score" (template.md#L22-L23). Both lists name only harness-memory:* ids, so no competitor_dirs entry is needed.
  • Notes match the lists. Each ranking_note now names only the competitor in its list.
  • Frozen before the rewrite. The template asks that the probe set stay unchanged through a rewrite. This PR ships no description or body change (the PR body records "main kept" for both skills), so editing the probe metadata now breaks nothing.
  • Queries. All 18 queries in each file are unchanged, so each file still has both polarities and both splits. Some negative queries (handoff/checkpoint, path-scoped rules, stale skill or hook text) target areas the removed rivals covered. They are still valid "should not trigger" cases without those rivals listed.
  • PR numbers. The before/after table in the PR body came from held-out probes that were never committed, so this change does not touch those numbers. That table is author-claimed and I did not verify it.

Closing issue #6583: Its Done-when items are about the merged PR body ("a per-skill decision table", "any skill left unmeasured, and why, is named"). The current PR body meets both, and this incremental change touches neither.

Not verified: I had no shell, so I did not run measure-invocation.sh validate on these files. The PR context contains no embedded instructions aimed at this lane.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: e5129d05f3

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Both probe files listed competitors from other plugins, against the
same-plugin rule in plugins/skill-quality/probes/template.md. A
parallel rewrite in another plugin could then move these scores.
Each file now names only its sibling skill. No description changed,
and the held-out passes loaded only this plugin, so no decision moves.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@kyle-sexton
kyle-sexton added this pull request to the merge queue Nov 1, 2026
Merged via the queue into main with commit 933cff3 Nov 1, 2026
44 checks passed
@kyle-sexton
kyle-sexton deleted the feat/6583-concise-skills-harness-memory branch November 1, 2026 15:51
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.

Concise skills rollout: harness-memory (2 skills, 2 model-invoked)

1 participant