STE-Code REPOSITORY v1.1.0
STE-Code REPOSITORY v1.1.0
Tag family.
REPOSITORY-v1.1.0versions the whole repository build-out —
benchmark, tooling, model config, skills, thescripts/→tools/migration,
and hygiene. It does not version the STE-Code standard; the companion
STANDARD-v1.1.0covers only the wording (rules, categories, dictionary,
levels, FLAVOR), and noSTANDARD-*orFLAVOR-*tag is moved or created
here.
Scope of this release. All measurements below are taken at the release tag
commit830d06c(v1.1.0=STANDARD-1.1.0=REPOSITORY-1.1.0), not
at any laterHEAD. Post-tag commits are out of scope.
Headline stats (all at 830d06c)
| Metric | Value | Note |
|---|---|---|
Files changed (0cf59e4..830d06c) |
2,605 | rename-aware (diff.renameLimit=3000); the 2,622 figure is the rename-unaware count |
| Lines | +319,500 / −158,750 | rename-aware; identical ±3,077 delta on both sides is moved-file detection |
| Commits | 432 (430 non-merge + 2 merge) | the range; 591 is all history behind the tag, not this release |
ste-code/ impact |
1,061 files, +269,168 / −98,217 | exact match, confirmed |
| Standard rule count | 54 rules + 4 GR = 58 | was 51+4=55 at v1.0.0; +3 rules (wording story in STANDARD-v1.1.0) |
This is a repository release
REPOSITORY v1.1.0 is a build-out release for the machinery that builds, tests,
and benchmarks STE-Code work. It does not change the STE-Code standard — the
companion STANDARD-v1.1.0 carries that story. The release brings the benchmark
into existence, completes the scripts/→tools/ migration, settles the default
model indirection behind STE_MODEL, and reorganises skills and the merge
stage.
The benchmark was born here
REPOSITORY-v1.1.0 is where the STE-Code benchmark comes into existence. At the
tag, .agents/benchmark/ holds 35 tracked files and three colour-named engines
are present:
- RED — a deterministic adversarial test-case generator (
adversarial.py,
build_red_cases(tier, per_technique, seed)). Per its own header, RED cases
are "pure seeded transforms, no LLM" — fast and reproducible, with an
LLM-driven "novel escape" round explicitly deferred to later. - BLACK — a split-half A/B verifier (
verification.py,black.py). Splits
are hashed with blake2s over the case id, neverrandom.shuffle, so the
partition is reproducible without storing it; it implementsPartitionplus
stratified / axis / temporal / variant-holdout split strategies and a
degeneracy check. - PURPLE —
purple.py/purple_stitch.py, which stitch RED and BLUE
activity into a shared view.
These are real, substantial modules (b90aa59, 1aa19e7, 10d3cab), and the
corpus they score was also established here: 59 cases across 14 categories
(category-1-readme … category-14-gen-readme; categories 9–14 are the gen-*
generation set), with a control-group orchestrator (orchestrator-control.py)
running the same cases against a plain assistant.
The benchmark numbers the project quotes today were set in this release. As
recorded in AGENTS.md at the tag: STE-Code scored 96.6 % (57/59) pass rate
and 0.919 average, versus the control group's 11.9 % (7/59) and
0.471. These scores are read from AGENTS.md at the tag, not re-run by
this release; treat them as attributed, not independently asserted. The corpus
size (59 cases, 14 categories) was verified directly; the scores were not.
Framing boundary — born, not hardened. The five-colour architecture, the
WHITE remedy layer, therun_pipeline.pydriver, and the entire
status-honesty rewrite are v1.2.0, not this release. At830d06conly
RED, BLACK, and PURPLE exist as modules; there is nored.py,
blue.py, orwhite.pyand norun_pipeline.py. Do not read
"five-colour", "WHITE remedy", or "honesty" framing back into v1.1.0.
The migration landed, then the repo spent weeks repairing it
The scripts/ → tools/ migration is the structural headline of the repository
side: 184a798 ("migrate scripts/ into tools/ hierarchy"), 1e47fd7 ("move
scripts to tools, fix all path references, add docs"), and 9485865
("reorganize into hierarchical directory structure") fold the legacy scripts/
tree into a tools/ hierarchy. At the tag, .agents/scripts/ is gone (0
entries) and .agents/tools/ holds 18 unit directories
(adaptation, artifacts, benchmark, continuation, extension, extraction, finalize, grouping, lib, linkcheck, maintenance, prompts, quality, refinement, release, runners, shared, trajectory).
Note tools/grouping (not tools/merge) — corroborating the stage rename
below.
The honest shape of this release is that the migration did not land clean. A
repair tail runs through the rest of the range, all fallout from the move:
0291d03— after the move, scripts still walked up the old directory depth;
28 tool scripts had theirPROJECTresolution collapsed from six
.parenthops to four (the changelog's "26+" undercounts; 29 files touched:
28 scripts +.gitignore).6b000e5— syntax errors and CRLF issues left by the migration.bddc852— wrapper path resolved relative totools/, not.agents/.e7119a3— oneshot wrapper path relative to.agents/, not project root.4de14e3— model name + wrapper path corrected in tools and config.cd3b2cd— a duplicate config file "created by path resolution bug" removed.f946325— all remaining.agents/scripts/references rewritten totools/.
Eight follow-up fixes for one move. That migration-then-repair arc is far more
interesting than the flat Added/Changed/Fixed buckets convey, and it is the real
narrative of the repository side.
The default model settled on tencent/hy3:free — via STE_MODEL
The changelog headlines 2000b8b ("Update default agent model to
poolside/laguna-s-2.1:free") as a Changed item. At the tag that headline is
false: git show 830d06c:.agents/config/agents.yaml reports
default_model: tencent/hy3:free. The poolside/laguna value was a short-lived
intermediate, abandoned inside this very release.
The true arc across the range (all 2026-07-31):
| Step | Commit | Effect |
|---|---|---|
| base | 0cf59e4 (v1.0.0) |
default_model: deepseek-v4-pro |
| 1 | 2000b8b |
→ poolside/laguna-s-2.1:free (the changelog's headline) |
| 2–5 | dff1158, 94fd2e3, 4beed8f |
→ tencent/hy3:free across agents/benchmark/scripts/docs |
| 6 | 8dd744b |
model reference moved behind the STE_MODEL env var |
| 7–8 | a76bd57, 005c80d |
runners switch to tencent/hy3:free via STE_MODEL |
| tip | 830d06c (v1.1.0) |
default_model: tencent/hy3:free |
So the durable, defensible headline is not a model name at all: the model
stopped being hardcoded and became STE_MODEL-driven (8dd744b). That single
indirection is why the churn could settle quickly, and it is the architectural
change v1.1.0 actually leaves behind. Published as "updated default model to
poolside/laguna-s-2.1:free," the note tells readers the opposite of what
shipped.
Reorganization, rename, and a stamp that nearly stuck
Three more repository-side changes are worth naming on their own.
- Skills reorganization [
8c2c6ea] — 41 files changed (+76 / −7,836),
overwhelmingly deletions and moves that de-duplicated skill content, plus
path-reference rewrites in.agents/uml/database-layout.mdand
worker-lifecycle.md. - Merge → grouping rename [
fe91d38] — 41 files changed (+382 / −852),
"rename merge stage to grouping with semantic awareness." Corroborated
structurally: the unit directory istools/grouping, nottools/merge; also
touches.gitignoreandste-code/README.md. - Version-stamp fix [
830d06c, the tip commit] — "stamp the version being
released, not the previous tag." A pre-tag sync had read the old tag and
stamped1.0.0onto a1.1.0release; the fix exportsSTE_RELEASE_VERSION
ahead of the claim sync, makesfacts.pyhonour it for all three tracks,
drops a stray claim site, and genuinely restampsCITATION.cff,ROADMAP.md,
andFLAVOR.md. It is the most self-aware commit in the range — the release
fixing the way it lies about itself. One honest caveat: it leftFLAVOR.md
half-stamped (the stamper rewrites only registry-declared blockquote
patterns; the H1 and some prose still readSTANDARD-1.0.0).
The .gitignore extracted-tracking saga (and a wrong attribution)
The changelog's Fixed section attributes 17b4f8d to "Negate
ste-code/extracted/ in .gitignore, add STE-Code extraction feedback." That
attribution is false about its own diff: git show 17b4f8d adds exactly one
file, .agents/feedback/exchange.md (+42 lines), and touches nothing in
.gitignore. The first half of that commit message was copied verbatim into the
changelog.
The real .gitignore negation work is 2a29611 ("negate extraction directory
to track extracted files") and a430bf7 ("re-enable tracking of
ste-code/extracted/ files"), both already in the changelog's Tooling section —
so the release does contain the change, just not at the hash the Fixed line
claims. And the whole ignore → untrack → negate → re-enable arc (bb97fb2 →
2a29611 → a430bf7 → 17b4f8d's message → bd80908) nets out to
nothing: at the tag, .gitignore contains no extracted line at all. The
honest summary is that the repo settled how ste-code/extracted/ is tracked,
not that 17b4f8d edited .gitignore.
The changelog's shape is itself a finding
Of 321 changelog lines, roughly 250 sit in a single unstructured "Other"
bucket, dominated by machine-generated pipeline progress commits
(Batch NN - PASS - Workers Wxxx, Phase F synthesize: batch NN,
Refine Batch NN). With only 2 merge commits in 432, this is an almost purely
linear, very high-volume working history. The "Other" bucket is pipeline
execution volume, not a list of release-worthy changes, and should be read as
such.
Standard-wording delta (detailed story in STANDARD-v1.1.0)
Three rules were added over v1.0.0 (a-sec2-rule2.3.md, a-sec6-rule6.6.md,
a-sec8-rule8.7.md), taking the count 51+4=55 → 54+4=58. 8a34daa also
corrected FLAVOR.md's inherited counts (rules 51→54, levels 5→8, dictionary
2,149→560). The full wording story — including the CJK-contamination fix
(38996ce) and the half-stamped FLAVOR.md — lives in the companion STANDARD
notes.
Contradictions resolved (repository view)
| Contradiction | Inherited / claimed | v1.1.0 (830d06c) |
|---|---|---|
| Commit count | 591 total | 432 (430 non-merge + 2 merge); 591 = all history behind the tag |
| Default model headline | poolside/laguna-s-2.1:free |
tencent/hy3:free via STE_MODEL (8dd744b) |
.gitignore attribution |
17b4f8d |
actually only adds feedback file; credit 2a29611/a430bf7; no extracted line at tag |
| "26+ tools scripts" | 26+ | 28 scripts (0291d03) |
| Benchmark framing | five-colour / hardened | born: RED + BLACK + PURPLE + 59 cases; BLUE/WHITE/run_pipeline.py are v1.2.0 |
| Diffstat | 2,622 files / +322,577 / −161,827 | 2,605 / +319,500 / −158,750 (rename-aware) |
Not changed in this release
- The STE-Code standard.
STANDARD-1.1.0is unchanged by this release's
repository machinery, and noSTANDARD-*orFLAVOR-*tag is created or
moved here; the companionSTANDARD-v1.1.0carries the wording story. - The benchmark's honesty hardening, the five-colour harness, and the
run_pipeline.pydriver — all are v1.2.0, not this release.
Version boundary
- REPOSITORY-v1.1.0 =
830d06c, building on REPOSITORY-v1.0.0
(0cf59e4). - Whole-range churn: 2,605 files, +319,500 / −158,750, 432 commits;
ste-code/
1,061 files, +269,168 / −98,217. - Next repository increment: REPOSITORY-v1.2.0 (latest) — where the
benchmark is honesty-hardened into the five-colour harness and the
run_pipeline.pydriver appears.