Skip to content

v2.0.0 - contracts, self-check, and rules you can argue with

Choose a tag to compare

@fredgis fredgis released this 10 Aug 19:43
· 183 commits to main since this release
e7d4a55

The first external audit challenged the facts, and v1.18 answered it. A second one challenged the design, and its charge was harder to dismiss: the repository tested what was easy to test rather than what makes the decision.

v2.0.0 is the answer. No knowledge-base fact changed.

What a user actually sees differently

The skill checks its own answer before showing it. It re-reads its draft against 9 invariants — no eligibility claim may rest on a field you never answered, and the stated migration method must actually be available for the recommended target. When an invariant fails, the inconsistency is shown to you. It is never silently repaired.

Every verdict is addressable. The card cites a rule ID, and the rule index lists all 26 with the fields each consumes and what it does when one is unknown. You can look a decision up and argue with it.

What changed underneath

Two contracts, because what was implicit had already drifted. A user who answered no dependencies was told dependencies unknown — a missing distinction, not a broken rule. input-contract.md now owns the 30 option IDs, the 20 canonical fields, and the three states an answer can hold: confirmed-none, unknown, not-applicable. output-contract.md owns the status vocabulary and the invariants.

Ranking is ordered. Phase B was eight criteria with no weights, so two readers weighing cost against resilience differently reached two answers from the same estate. It is now ten ordered steps, and a tie returns a shortlist rather than an invented winner.

A gate now guards the confidence vocabulary. v1.18 announced that high and validated were removed. Aligning the documentation found both still published in three documents and asserted by two golden scenarios. Nothing had been watching, so the suite was protecting words it was supposed to have deleted. That is the audit's own charge appearing inside the response to it.

Installation was broken by the move, and only testing it revealed that. The skill mixed two path conventions and the installed copy could not reach either contract.

Install

copilot plugin install fredgis/sql-migration-advisor

The skill is now get-migration-assessment. If you installed the old assessment-advisor folder, delete it — two copies would both match the trigger and you would not know which answered.

What this does not do

It does not guarantee a better answer. It reduces what the model has to interpret and makes it check itself, which is not the same thing. The skill reads no artefact from your estate, so provisional remains the only status and medium the confidence ceiling. Tool-based assessment and architect validation stay mandatory.

21 gates, 90 golden scenarios. Plan and delivery record: docs/NEWDESIGNv2.md.