Skip to content

STE-Code REPOSITORY v1.1.0

Choose a tag to compare

@NikolaRHristov NikolaRHristov released this 02 Aug 23:47
· 256 commits to Current since this release
REPOSITORY-v1.1.0
830d06c

STE-Code REPOSITORY v1.1.0

Tag family. REPOSITORY-v1.1.0 versions the whole repository build-out —
benchmark, tooling, model config, skills, the scripts/tools/ migration,
and hygiene. It does not version the STE-Code standard; the companion
STANDARD-v1.1.0 covers only the wording (rules, categories, dictionary,
levels, FLAVOR), and no STANDARD-* or FLAVOR-* tag is moved or created
here.

Scope of this release. All measurements below are taken at the release tag
commit 830d06c (v1.1.0 = STANDARD-1.1.0 = REPOSITORY-1.1.0), not
at any later HEAD. 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, never random.shuffle, so the
    partition is reproducible without storing it; it implements Partition plus
    stratified / axis / temporal / variant-holdout split strategies and a
    degeneracy check.
  • PURPLEpurple.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-readmecategory-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, the run_pipeline.py driver, and the entire
status-honesty rewrite are v1.2.0, not this release. At 830d06c only
RED, BLACK, and PURPLE exist as modules; there is no red.py,
blue.py, or white.py
and no run_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 their PROJECT resolution collapsed from six
    .parent hops 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 to tools/, 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 to tools/.

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.md and
    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 is tools/grouping, not tools/merge; also
    touches .gitignore and ste-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
    stamped 1.0.0 onto a 1.1.0 release; the fix exports STE_RELEASE_VERSION
    ahead of the claim sync, makes facts.py honour it for all three tracks,
    drops a stray claim site, and genuinely restamps CITATION.cff, ROADMAP.md,
    and FLAVOR.md. It is the most self-aware commit in the range — the release
    fixing the way it lies about itself. One honest caveat: it left FLAVOR.md
    half-stamped (the stamper rewrites only registry-declared blockquote
    patterns; the H1 and some prose still read STANDARD-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
2a29611a430bf717b4f8d'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.0 is unchanged by this release's
    repository machinery, and no STANDARD-* or FLAVOR-* tag is created or
    moved here; the companion STANDARD-v1.1.0 carries the wording story.
  • The benchmark's honesty hardening, the five-colour harness, and the
    run_pipeline.py driver — 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.py driver appears.