Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "simple-workflow",
"description": "The Claude Code plugin for an end-to-end AI development workflow — ticket management, multi-agent code review, security audit, and automated PR creation — built on a Harness for long-running AI agents with strict context management and cross-session learning.",
"version": "8.3.0",
"version": "8.3.1",
"author": {
"name": "aimsise",
"url": "https://github.com/aimsise"
Expand Down
22 changes: 22 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,28 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [8.3.1] — 2026-06-04

**TL;DR.** A fail-open, criticality-gated refinement of v8.3.0's M1 (Gate 8 + the `evidence_floor` ladder) and M5 (criticality floor) — the "Wave A" verification-assurance pass that closes the main residual lead a 2026-06-02 A/B found a human-directed max-effort build still held over the harness. It does NOT add a gate; it sharpens what the EXISTING `thorough` / `exhaustive` floor demands for a **standard-backed computational** AC: **(H1)** the oracle evidence must be ≥2 mutually-validated oracles with ≥1 derived from first principles (the spec formula, no library); **(H2)** un-defers committed seeded fuzz — a fixed-seed property-fuzz loop becomes a depth-gated MUST, not an encouragement; **(H3)** `EC-DIFFERENTIAL` is re-specced to algorithm-vs-algorithm where a second independent algorithm exists (membership is necessary-not-sufficient). **(H13)** ships `skills/impl/references/independent-oracle-harness.md`, the copyable gold-standard four-part oracle module (first-principles block + independent-library block + seeded PRNG + second-algorithm differential helper), wired into the producer rubric, the taxonomy, and the verifier. **(H12)** tightens the M5 criticality cue set (color-science cues + a shared-core / shared-input-boundary trigger) so the class of ACs this rigor targets reliably escalates — the catch only fires if classification fires. Every requirement engages ONLY at the `thorough` / `exhaustive` evidence_floor (already M5-criticality-gated) and ONLY where a published spec / second oracle / second algorithm exists; otherwise it degrades to the single natural channel + a Caveat (never a block). A routine S/M-conservative ticket stays byte-identical to v8.3.0; the `standard` floor and every `constraints.<x>: off` path are unchanged. `v8.4.0` remains reserved for M3 + M4.

### Added

- **`skills/impl/references/independent-oracle-harness.md`** (H13) — a new reference encoding the gold-standard four-part independent-oracle module: (a) a from-first-principles formula block (the published spec, no library), (b) an independent-library oracle block (a library that does not share the implementation's core), (c) a seeded `mulberry32` PRNG for reproducible fuzz, and (d) a second-algorithm differential helper — with a worked color/WCAG example transcribed from the A/B reference build. It is read at authoring time and is never a runtime gate. Linked from `test-authoring-guidance.md`, `evidence-channels.md`, `agents/ac-evaluator.md` (+ `ac-evaluator-hi.md`), `agents/test-writer.md`, and `agents/implementer.md`.
- **Multi-oracle mutual validation (H1)** — Gate 7 in `skills/create-ticket/references/ac-quality-criteria.md` gains a depth-gated multi-oracle clause: at the `thorough` / `exhaustive` `evidence_floor`, a standard-backed computational AC's expected value must come from ≥2 oracles independent of the implementation's core, mutually-validated (they agree within an explicit tolerance before either is trusted), with ≥1 derived from first principles. A single oracle still suffices at `standard`. Mirrored into the `EC-ORACLE` definition (`evidence-channels.md`), the producer rubric rule 1 (`test-authoring-guidance.md`) + both producer agents (`implementer`, `test-writer`), the verifier (`ac-evaluator` `## Oracle Independence` point 1 + the V3 lens), and the planner step-8 / ticket-evaluator Gate-7-row authoring guidance.
- **Committed seeded fuzz un-deferred (H2)** — `test-authoring-guidance.md` rule 7 is promoted from "encouraged" to a depth-gated **MUST**: at `thorough` / `exhaustive` a computational AC must ship a committed, fixed-seed property-fuzz loop (reproducible PRNG, tier-scaled case count) over the input distribution, not only deterministic grids. Mirrored into the `EC-PROPERTY` definition, both producer agents, the verifier (`## Oracle Independence` point 5 + the V2/V3 lenses), and the planner/ticket-evaluator Gate-8 authoring guidance. (Closes the v8.2.1 seeded-fuzz deferral, now justified by the 2026-06-02 dogfood.)
- **Algorithm-vs-algorithm differential (H3)** — `EC-DIFFERENTIAL` is re-specced (in `evidence-channels.md`, Gate 7 of `ac-quality-criteria.md`, `test-authoring-guidance.md` rule 3, `agents/ac-evaluator.md` + the V2 lens, and `ac-evaluator-orchestration.md`): when a second INDEPENDENT algorithm for the same contract exists (e.g. CSS-MINDE vs chroma-clamping gamut mapping), the verification compares algorithm-vs-algorithm within tolerance — a membership / invariant check alone is necessary-not-sufficient because a wrong result can still be in-range.
- **`### Standard-backed computational evidence floor` subsection** in `skills/impl/references/verification-depth.md` — the single authoritative statement tying H1/H2/H3 to the `thorough` / `exhaustive` floor, with the fail-open degradation rule, placed without disturbing the pinned effects-ladder cells.
- **Cat EV CT-EV-10..14** in `tests/test-skill-contracts.sh` — H1 multi-oracle symmetry guard (`mutually-validated` across the full 9-file author→verify surface — canonical gate + taxonomy + producer rubric + both producers + planner author + ticket-evaluator grader + verifier + floor doc — plus `first-principles` at the two ends; CT-EV-10), H2 committed-seeded-fuzz symmetry guard (`fixed-seed` across 8 files; CT-EV-11), H3 algorithm-vs-algorithm symmetry guard (`algorithm-vs-algorithm` across 9 files; CT-EV-12), H13 harness file-exists + reference-wired (CT-EV-13), and the H12 criticality cue (`shared-core`; CT-EV-14). Every token is HEAD=0 (a `git stash` of the change flips the assert to FAIL). The symmetry guards include the `planner` author and `ticket-evaluator` grader cells so a future silent revert of either authoring surface cannot ship green.

### Changed

- **M5 criticality cue set widened (H12)** — the `## Criticality floor` cue list in `verification-depth.md` adds color-science cues (color-space / gamut / OKLab / luminance / chroma conversion) and a domain-independent **shared-core input-boundary** trigger: a computational AC that reads or must hold an invariant across a parser / validation / constant (e.g. an epsilon / range / gamut guard) shared with sibling tools floors `criticality=critical` even when its surface domain is otherwise routine. This is the exact wrong-but-self-consistent shared-core defect class the floor targets; the trigger only RAISES the tier, never lowers it.

### Verification

- `bash tests/test-skill-contracts.sh` 797/797, `bash tests/test-path-consistency.sh` 142/142; full sweep 34/34 suites.
- New **CT-EV-10..14** all pass; each new grep token (`mutually-validated`, `first-principles`, `fixed-seed`, `algorithm-vs-algorithm`, `independent-oracle-harness.md`, `shared-core`) is HEAD=0 — a `git stash` flips the corresponding assert to FAIL, `git stash pop` restores PASS. Every v8.3.0 contract is intact: Gate 7's `## Gate 7: Oracle Independence` section (CT-AR-1/4/8), the `## Verification Lens (high-assurance handoff)` / `multi-verifier` DEPTH-8 anchors, the CT-EV-1..9 + CT-EV-MODEL-1..4 family, the `parse-accepted` / `sibling-guard` / `outputSchema` CT-AR-12/13/14 tokens, the `Gates 1-8` carriers, and the `ac-evaluator` ↔ `ac-evaluator-hi` byte-identical-body invariant (every body edit was mirrored). The feature is additive and fail-open: a routine S/M-conservative ticket resolves `evidence_floor=EC-STATIC+natural` (no multi-oracle, no fuzz mandate, no differential), each `constraints.<x>: off` makes its mechanism a no-op, and the requirements degrade to the natural channel + a Caveat where no published spec / second oracle / second algorithm exists.

## [8.3.0] — 2026-06-02

**TL;DR.** First of three additive, fail-open minor releases bringing the autonomous Generator-Evaluator harness toward parity with a human-directed max-effort session, after an A/B on a color-math MCP server lost on correctness/safety axes. This release ships the shared scaffolding (**Phase 0**) plus the first two measures. **Phase 0**: a new canonical **Evidence-Channel Taxonomy** (`skills/impl/references/evidence-channels.md`) — five evidence channels `EC-ORACLE` / `EC-DIFFERENTIAL` / `EC-PROPERTY` / `EC-RUNTIME` / `EC-STATIC`, five reserved red-team attack classes `RT-FUZZ` / `RT-ABUSE` / `RT-MALFORMED` / `RT-EXHAUST` / `RT-CONCURRENCY` (M2, v8.5.0), and the irreversibility-axis cue list (M5) — cited by ID, never paraphrased; and a `/impl` Step 3a resolved struct `{depth_tier, criticality, evidence_floor, evaluator_model, redteam_budget, domain_set}` that for a routine S/M-conservative ticket resolves to today's values (a byte-identical no-op). **M5 (effort/model allocation by criticality)**: a single `criticality = blast_radius(Size) × irreversibility` scalar, a new **irreversibility axis** (an AC verifying writes / network / money / destructive / external-system side-effects floors `criticality=critical` even at Size S), and an evaluator-model bump (sonnet→opus at `critical`/`exhaustive`) realized via the byte-identical sibling agent `agents/ac-evaluator-hi.md` (the Agent JSONSchema rejects a per-spawn `model:` override). **M1 (evidence-channel independence)**: a new **Gate 8 "Independent Evidence"** generalizing Gate 7's oracle requirement to every *behavioral* AC (Gate 7 stays a literal, intact section as the strongest `EC-ORACLE` sub-case), the three multi-verifier lenses re-specced from attitude-diverse to **evidence-mode-diverse**, and an `evidence_floor` ladder (standard = the AC's natural channel; thorough = +1 independent channel; exhaustive = ≥2). Default `auto` keeps a routine ticket byte-identical; the per-brief kill switches `constraints.independent_evidence: off`, `constraints.irreversibility_floor: off`, and the master `constraints.verification_depth: off` each restore prior behaviour. Red-team budget is recorded into the struct but has no consumer until M2 (v8.5.0).
Expand Down
Loading