chore: remove evals from policy and plugin#191
Conversation
The tessl publish pipeline runs the eval suite unconditionally inside tesslio/patch-version-publish, and that trigger is not skippable. When the org is out of credits the eval run fails and the publish never advances the registry — the #188 credit-outage tolerance covers the skill-review step but cannot reach inside patch-version-publish. Since evals can't run without credits and block every publish, remove them. Deleted: rules/plugin-evals.md, the Mandatory Evals section of context-artifacts, the eval-authoring and eval-curation skills, and the whole evals/ scenario suite. Reconciled cross-references in testing-standards (Fixture Hygiene inlined), rule-frontmatter, context-writing-style, migrate-to-plugin, release (self-audit + criteria checks), and the skill-review action. Dropped the eval-curation Python paths from pyrightconfig.json. Updated the manifest, README tables, and rule count (23 -> 22). Diagnostics clean, 18/18 suites, tessl plugin lint valid. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
Removes Tessl eval scenarios and the associated rule/skills from jbaruch/coding-policy to prevent the unskippable eval run inside tesslio/patch-version-publish from blocking publishes during out-of-credits outages, while reconciling all cross-references and published-plugin surfaces.
Changes:
- Deleted the eval policy surface (
rules/plugin-evals.md), eval skills (eval-authoring,eval-curation), and theevals/suite. - Removed/updated all documentation and rule references that pointed at evals (rules/skills/README/action comments).
- Updated plugin manifest + ancillary config (e.g.,
pyrightconfig.json) to stop shipping/typing deleted content.
Reviewed changes
Copilot reviewed 55 out of 55 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| skills/release/SKILL.md | Removes eval-related self-audit/examples from the release workflow guidance. |
| skills/migrate-to-plugin/SKILL.md | Drops the frozen-eval-scenario-names contract note now that evals are removed. |
| skills/eval-curation/tests/test_compute_lift.py | Deleted (eval curation test suite removed). |
| skills/eval-curation/SKILL.md | Deleted (eval curation skill removed). |
| skills/eval-curation/compute-lift.py | Deleted (eval curation helper script removed). |
| skills/eval-authoring/SKILL.md | Deleted (eval authoring skill removed). |
| skills/eval-authoring/REVIEW_CHECKLIST.md | Deleted (eval scenario review guidance removed with eval system). |
| skills/eval-authoring/LIFT_ANALYSIS.md | Deleted (lift analysis reference removed with eval system). |
| rules/testing-standards.md | Inlines fixture hygiene guidance previously sourced from plugin-evals. |
| rules/rule-frontmatter.md | Removes evals/ from scoping examples. |
| rules/plugin-evals.md | Deleted (eval governance rule removed). |
| rules/context-writing-style.md | Removes plugin-evals as an example of multi-aspect rules. |
| rules/context-artifacts.md | Removes evals/** from applyTo, removes Mandatory Evals section, updates “standard directories”. |
| README.md | Updates repo description + rule counts; removes eval skills and rule from “What’s Included”. |
| pyrightconfig.json | Removes pyright include paths for deleted eval-curation Python files. |
| evals/version-bump-reasoning-and-manifest-upda/task.md | Deleted (eval scenario removed). |
| evals/version-bump-reasoning-and-manifest-upda/criteria.json | Deleted (eval scenario removed). |
| evals/rule-frontmatter-tile-rule-agreement/task.md | Deleted (eval scenario removed). |
| evals/rule-frontmatter-tile-rule-agreement/criteria.json | Deleted (eval scenario removed). |
| evals/rule-frontmatter-mixed-scope-no-narrow/task.md | Deleted (eval scenario removed). |
| evals/rule-frontmatter-mixed-scope-no-narrow/criteria.json | Deleted (eval scenario removed). |
| evals/rule-frontmatter-conditional-rule/task.md | Deleted (eval scenario removed). |
| evals/rule-frontmatter-conditional-rule/criteria.json | Deleted (eval scenario removed). |
| evals/review-feedback-addressing-conventions/task.md | Deleted (eval scenario removed). |
| evals/review-feedback-addressing-conventions/criteria.json | Deleted (eval scenario removed). |
| evals/pr-merge-and-post-merge-cleanup/task.md | Deleted (eval scenario removed). |
| evals/pr-merge-and-post-merge-cleanup/criteria.json | Deleted (eval scenario removed). |
| evals/migrate-to-plugin-keeps-contracts/task.md | Deleted (eval scenario removed). |
| evals/migrate-to-plugin-keeps-contracts/criteria.json | Deleted (eval scenario removed). |
| evals/install-reviewer-refuses-overwrite/task.md | Deleted (eval scenario removed). |
| evals/install-reviewer-refuses-overwrite/criteria.json | Deleted (eval scenario removed). |
| evals/eval-scenario-quality-review-and-repair/task.md | Deleted (eval scenario removed). |
| evals/eval-scenario-quality-review-and-repair/criteria.json | Deleted (eval scenario removed). |
| evals/eval-curation-universal-competence-retire/task.md | Deleted (eval scenario removed). |
| evals/eval-curation-universal-competence-retire/criteria.json | Deleted (eval scenario removed). |
| evals/eval-curation-task-leak-fix/task.md | Deleted (eval scenario removed). |
| evals/eval-curation-task-leak-fix/criteria.json | Deleted (eval scenario removed). |
| evals/eval-curation-criteria-grade-universal-competence/task.md | Deleted (eval scenario removed). |
| evals/eval-curation-criteria-grade-universal-competence/criteria.json | Deleted (eval scenario removed). |
| evals/eval-curation-clean-suite-no-action/task.md | Deleted (eval scenario removed). |
| evals/eval-curation-clean-suite-no-action/criteria.json | Deleted (eval scenario removed). |
| evals/copilot-review-via-graphql/task.md | Deleted (eval scenario removed). |
| evals/copilot-review-via-graphql/criteria.json | Deleted (eval scenario removed). |
| evals/consumer-scaffolds-policy-reviewer/task.md | Deleted (eval scenario removed). |
| evals/consumer-scaffolds-policy-reviewer/criteria.json | Deleted (eval scenario removed). |
| evals/ci-and-review-status-polling/task.md | Deleted (eval scenario removed). |
| evals/ci-and-review-status-polling/criteria.json | Deleted (eval scenario removed). |
| evals/adopt-fork-pr-same-repo-passthrough/task.md | Deleted (eval scenario removed). |
| evals/adopt-fork-pr-same-repo-passthrough/criteria.json | Deleted (eval scenario removed). |
| evals/adopt-fork-pr-adopts-fork-branch/task.md | Deleted (eval scenario removed). |
| evals/adopt-fork-pr-adopts-fork-branch/criteria.json | Deleted (eval scenario removed). |
| CHANGELOG.md | Adds a release note about removing evals and reconciled references. |
| .tessl-plugin/plugin.json | Removes deleted skills and rule from the published plugin manifest. |
| .github/actions/skill-review/review-skills.sh | Removes a citation to the deleted plugin-evals rule in a comment. |
| .claude/CLAUDE.md | Removes the deleted plugin-evals rule from the maintainer context imports. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
|
||
| ### Rules | ||
|
|
||
| - **Evals removed from policy and plugin** — the tessl publish pipeline runs the eval suite unconditionally inside `tesslio/patch-version-publish`, and that trigger is not skippable. When the org is out of credits the eval run fails (`Failed to start eval run: ...out of credits`) and the publish never advances the registry — the credit-outage tolerance added in #188 covers the `skill-review` step but cannot reach inside `patch-version-publish`. Since evals can't run without credits and block every publish, they're gone: deleted `rules/plugin-evals.md`, the `## Mandatory Evals` section of `context-artifacts`, the `eval-authoring` and `eval-curation` skills, and the whole `evals/` scenario suite. Cross-references in `testing-standards` (Fixture Hygiene inlined), `rule-frontmatter`, `context-writing-style`, `migrate-to-plugin`, and the `skill-review` action were reconciled; `pyrightconfig.json` drops the eval-curation Python paths; manifest, README tables, and the rule count (23→22) updated. The nanoclaw-plugin auto-publish eval carve-outs are now moot and tracked for removal in their own repos. |
There was a problem hiding this comment.
Fixed in a0cbbc8 — collapsed to a 3-sentence what/why/reference summary; the file-by-file inventory stays in the PR body per CHANGELOG Hygiene.
There was a problem hiding this comment.
Policy loaded: 22 rule files from rules/ (PR head).
All rules pass — no violations found.
Reviewed the eval-removal diff against the PR-head policy, including the changed rule files and the changed release / migrate-to-plugin skill files. Surface sync is consistent: the manifest, README, maintainer context, pyright config, and residual references have been reconciled, and deleted skills are handled by the skill-review action's existing deleted-skill skip path.
Generated by PR Policy Review (OpenAI) for #191 · 80 AIC · ⌖ 4.36 AIC · ⊞ 18.2K
Per rules/context-artifacts.md CHANGELOG Hygiene (archive but bounded), collapsed the entry to a 3-sentence summary — what/why/reference — and left the file-by-file inventory to the PR body. Flagged by Copilot on #191. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
Policy loaded: 22 rule files from rules/ (PR head).
All rules pass — no violations found.
Reviewed the eval-policy removal, surface sync updates, changed rule/skill prose, manifest, README, changelog entry, pyright include list, and remaining references. No policy violations found.
Generated by PR Policy Review (OpenAI) for #191 · 76.2 AIC · ⌖ 13.2 AIC · ⊞ 16.5K
Author-Model: claude-opus-4-8
Why
The tessl publish pipeline runs the eval suite unconditionally inside
tesslio/patch-version-publish, and that trigger is not skippable. When the org is out of credits the eval run fails (Failed to start eval run: ...out of credits) and the publish never advances the registry — observed live on the #190 merge, where the workflow went green but0.3.94never reached the registry.The credit-outage tolerance added in #188 covers the
skill-reviewstep but cannot reach insidepatch-version-publish. Since evals can't run without credits and block every publish, and we've decided we won't do evals if they gate the registry this way, they're removed entirely.What was removed
rules/plugin-evals.md(the entire rule)## Mandatory Evalssection ofrules/context-artifacts.mdeval-authoringandeval-curationskillsevals/scenario suite (43 files)Cross-references reconciled (no dangling links)
testing-standards— Fixture Hygiene reference inlined (dates in the filename)rule-frontmatter,context-writing-style— droppedevals//plugin-evalsexamplesskills/migrate-to-plugin— dropped the frozen-eval-scenario-names bulletskills/release— dropped theevals/self-audit example and thecriteria.jsonmax_scoreweight checks.github/actions/skill-review/review-skills.sh— dropped the plugin-evals Naming citationpyrightconfig.json— dropped theeval-curationPython paths.tessl-plugin/plugin.json,.claude/CLAUDE.md,README.md(description, What's New, rules + skills tables, rule count 23→22)A repo-wide grep confirms no
plugin-evals/eval-authoring/eval-curation/Mandatory Evalsreference survives outside the CHANGELOG archive.Verification
run-diagnostics.sh(shellcheck + pyright) clean{"suites":18,"passed":18,"failed":0}tessl plugin lintvalidNotes
0.3.94(registry is still0.3.93;0.3.94was bumped on main by feat(ci): native tessl out-of-credits tolerance for the skill-review action (#188) #190's failed publish but never published). Whether removing evals actually unblockspatch-version-publishis the open question this change tests on merge — if patch-version-publish still attempts an eval run with zero scenarios, publishing stays blocked and we'll need a different lever.🤖 Generated with Claude Code