anneal — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited anneal (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
A lightweight discipline: at a fork, explore a few directions and let a cheap measurement pick the winner, before you invest in the expensive build. Named for simulated annealing (explore, then converge) — but it is a checklist you run inline, not an engine you launch.
Only when the user types /anneal. Never auto-invoke.
Run it at a decision fork where the best approach is not obvious — and run it cheap and early, before significant effort goes into any one direction.
There are two different scorers, and conflating them is the failure mode:
Polish must never pick or eliminate a direction. And the sharp corollary, learned the hard way: *a fixable hygiene issue must not disqualify the substantively-best candidate. If the best-on-substance option has a couple of lint/a11y/style violations that are routine to fix, remediate them and then judge* — do not let an eligibility gate hand the win to a worse-but-cleaner option. (That mistake quietly carries the weakest idea forward; see §4.)
Bound "fixable": mechanical, bounded, and non-directional — it does not change the candidate's core approach, data model, interaction model, or API shape, and can be remediated before comparison without invalidating the measured fitness. If the fix changes the approach, it is not a fix — re-measure it as a new candidate.
Do this yourself (or with a single helper) — do not spin up parallel agents or git worktrees. The whole point is that it is cheap.
Propose, then confirm. Run the algorithm yourself to draft the measurement sheet, then show the user the 2–5 candidate fitness questions and ask them to confirm, cut, or add — before any prototyping. Don't make the user invent the questions from scratch (that's the hard part they came to you for), and don't silently lock in your own (a model-drafted rubric diverges from human intent ~20–30% of the time). Draft → confirm → measure.
a. Name the actor and task. "After this change, what should a user or system be able to DO faster, more correctly, or with less effort?" Use verbs: find, choose, trace, diagnose, recover, extend, call, compare. If there is no actor and task, declare pure taste and degrade to "show options, the user picks."
b. Extract 2–5 task questions from that task. Each must be answerable on the same fixture/input for every candidate. Bad: "is it cleaner?" Good: "can a new caller add one optional field without editing more than one file?" / "can the user identify the highest-risk item in one view?"
c. Give each question one countable outcome: pass/fail, elapsed time, clicks/steps, files touched, call-site lines, errors produced, p95 latency, memory, bundle size — or a 0/1/2 rubric where 2 = answered directly in one view/run, 1 = answerable but indirect, 0 = not answerable without extra inspection.
d. Define worst and ideal before seeing candidates. Write the scale up front. It must be direction-neutral and must not reward polish, typography, naming taste, or implementation completeness — unless that is literally the task.
e. Demand an improvement surface. A low score must point to the next fix ("caller must edit 3 files", "p95 regressed", "risk owner invisible"). If a score can only say "feels worse," discard that question.
f. Gate. Proceed only if at least two questions can be measured on cheap prototypes. If not, say: "No measurable direction-fitness found; anneal cannot rank this — I can show options, but you must pick."
rubrics/default.polish.md) to finish it. Now polish is welcome — the direction is already settled.The expensive mistake is building deep in a direction your intuition picked, only to find a cheaper measurement would have flagged it wrong.
Illustration: faced with "show entity relationships," the instinct is often a node-link graph, and it is tempting to build several graph variants. But operationalizing the goal into five task-questions and scoring a quick table against them can reveal the table answers them better — because the data is tree-structured (one owner per entity), which a table renders at least as well. Teams that build the graphs first burn that effort; teams that measure first, cheaply spend a few minutes and skip the wrong track. Put the measurement before the build.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.