Skip to content

Commit c489396

Browse files
Trecekclaude
andauthored
Implementation Plan: Standardize recipe_version Field Across Recipe YAMLs (#3904)
## Summary Standardize the `recipe_version` field across all bundled recipe YAML files to use quoted semver format (`"X.Y.Z"`), fix `schema_version` values in experiment-type and methodology-tradition YAMLs from `"1.0"` to `"1.0.0"` (three-component semver), update all three registry/validation modules that compare against the expected version, update the CLI `validate registries` command constant, regenerate compiled JSON siblings, and add a structural test enforcing semver consistency going forward. The `schema_version` key name is intentionally preserved for experiment-type and methodology-tradition files — these are not recipes (they're `ExperimentTypeSpec` and `MethodologyTraditionSpec` parsed by separate registries) and renaming to `recipe_version` would be semantically misleading. ## Implementation Plan Plan file: `/home/talon/projects/autoskillit-runs/impl-20260608-005324-730329/.autoskillit/temp/make-plan/standardize_recipe_version_plan_2026-06-08_010500.md` Closes #3772 🤖 Generated with [Claude Code](https://claude.com/claude-code) via AutoSkillit <!-- autoskillit:pipeline-signature steps=prepare_pr,run_arch_lenses,compose_pr,annotate_pr_diff,review_pr --> ## Token Usage Summary | Step | Model | count | uncached | output | cache_read | peak_ctx | turns | cache_write | time | |------|-------|-------|----------|--------|------------|----------|-------|-------------|------| | plan* | opus[1m] | 1 | 6.0k | 25.3k | 2.4M | 118.3k | 68 | 101.1k | 14m 22s | | verify* | sonnet | 1 | 84 | 7.1k | 436.2k | 52.7k | 26 | 31.1k | 3m 46s | | implement* | MiniMax-M3 | 1 | 94.5k | 13.5k | 3.5M | 91.5k | 148 | 0 | 9m 47s | | fix* | sonnet | 1 | 134 | 3.5k | 756.4k | 57.3k | 36 | 35.7k | 6m 22s | | audit_impl* | sonnet | 1 | 46 | 8.2k | 170.0k | 43.5k | 16 | 31.6k | 4m 36s | | prepare_pr* | MiniMax-M3 | 1 | 45.7k | 4.4k | 206.7k | 50.0k | 15 | 0 | 2m 4s | | compose_pr* | MiniMax-M3 | 1 | 36.3k | 1.2k | 151.4k | 39.3k | 12 | 0 | 58s | | **Total** | | | 182.8k | 63.1k | 7.6M | 118.3k | | 199.5k | 41m 57s | \* *Step used a non-Anthropic provider; caching behavior may differ.* ## Token Efficiency | Step | LoC Changed | cache_read/LoC | cache_write/LoC | output/LoC | |------|-------------|----------------|-----------------|------------| | plan | 0 | — | — | — | | verify | 0 | — | — | — | | implement | 187 | 18668.5 | 0.0 | 72.0 | | fix | 2 | 378191.0 | 17854.5 | 1727.5 | | audit_impl | 0 | — | — | — | | prepare_pr | 0 | — | — | — | | compose_pr | 0 | — | — | — | | **Total** | **189** | 40343.2 | 1055.6 | 333.9 | ## Model Usage Breakdown | Model | steps | uncached | output | cache_read | cache_write | time | |-------|-------|----------|--------|------------|-------------|------| | opus[1m] | 1 | 6.0k | 25.3k | 2.4M | 101.1k | 14m 22s | | sonnet | 3 | 264 | 18.7k | 1.4M | 98.4k | 14m 45s | | MiniMax-M3 | 3 | 176.5k | 19.1k | 3.8M | 0 | 12m 50s | --------- Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
1 parent bb1f909 commit c489396

68 files changed

Lines changed: 119 additions & 80 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

src/autoskillit/cli/_validate.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919

2020
validate_app = App(name="validate", help="Validation commands.")
2121

22-
EXPECTED_SCHEMA_VERSION = "1.0"
22+
EXPECTED_SCHEMA_VERSION = "1.0.0"
2323

2424

2525
@dataclass

src/autoskillit/recipe/_registry_utils.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@
33
from __future__ import annotations
44

55
from pathlib import Path
6+
from typing import Final
67

8+
EXPECTED_SCHEMA_VERSION: Final = "1.0.0"
79
_MISSING_MTIME: float = -1.0
810

911

src/autoskillit/recipe/experiment_type_registry.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,12 @@
77
from typing import Any
88

99
from autoskillit.core import get_logger, load_yaml, pkg_root
10-
from autoskillit.recipe._registry_utils import _MISSING_MTIME, dir_mtime, parse_int_field
10+
from autoskillit.recipe._registry_utils import (
11+
_MISSING_MTIME,
12+
EXPECTED_SCHEMA_VERSION,
13+
dir_mtime,
14+
parse_int_field,
15+
)
1116

1217
logger = get_logger(__name__)
1318

@@ -137,12 +142,12 @@ def load_all_experiment_types(
137142
user_dir = Path(project_dir) / ".autoskillit" / "experiment-types"
138143
user_types = _load_types_from_dir(user_dir)
139144
for spec in user_types.values():
140-
if spec.schema_version and spec.schema_version != "1.0":
145+
if spec.schema_version and spec.schema_version != EXPECTED_SCHEMA_VERSION:
141146
logger.warning(
142147
"User experiment type has schema_version mismatch; loading continues",
143148
type_name=spec.name,
144149
schema_version=spec.schema_version,
145-
expected_schema_version="1.0",
150+
expected_schema_version=EXPECTED_SCHEMA_VERSION,
146151
)
147152
types.update(user_types)
148153

src/autoskillit/recipe/methodology_tradition_registry.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,12 @@
77
from typing import Any
88

99
from autoskillit.core import get_logger, load_yaml, pkg_root
10-
from autoskillit.recipe._registry_utils import _MISSING_MTIME, dir_mtime, parse_int_field
10+
from autoskillit.recipe._registry_utils import (
11+
_MISSING_MTIME,
12+
EXPECTED_SCHEMA_VERSION,
13+
dir_mtime,
14+
parse_int_field,
15+
)
1116

1217
logger = get_logger(__name__)
1318

@@ -243,12 +248,12 @@ def load_all_methodology_traditions(
243248
user_dir = Path(project_dir) / ".autoskillit" / "methodology-traditions"
244249
user_traditions = _load_traditions_from_dir(user_dir)
245250
for spec in user_traditions.values():
246-
if spec.schema_version and spec.schema_version != "1.0":
251+
if spec.schema_version and spec.schema_version != EXPECTED_SCHEMA_VERSION:
247252
logger.warning(
248253
"User methodology tradition has schema_version mismatch; loading continues",
249254
tradition_name=spec.name,
250255
schema_version=spec.schema_version,
251-
expected_schema_version="1.0",
256+
expected_schema_version=EXPECTED_SCHEMA_VERSION,
252257
)
253258
traditions.update(user_traditions)
254259

src/autoskillit/recipes/experiment-types/benchmark.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "benchmark",
3-
"schema_version": "1.0",
3+
"schema_version": "1.0.0",
44
"priority": 3,
55
"is_fallback": false,
66
"classification_triggers": [

src/autoskillit/recipes/experiment-types/benchmark.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
name: benchmark
2-
schema_version: "1.0"
2+
schema_version: "1.0.0"
33
priority: 3
44
is_fallback: false
55
classification_triggers:

src/autoskillit/recipes/experiment-types/causal_inference.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "causal_inference",
3-
"schema_version": "1.0",
3+
"schema_version": "1.0.0",
44
"priority": 1,
55
"is_fallback": false,
66
"classification_triggers": [

src/autoskillit/recipes/experiment-types/causal_inference.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
name: causal_inference
2-
schema_version: "1.0"
2+
schema_version: "1.0.0"
33
priority: 1
44
is_fallback: false
55
classification_triggers:

src/autoskillit/recipes/experiment-types/configuration_study.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "configuration_study",
3-
"schema_version": "1.0",
3+
"schema_version": "1.0.0",
44
"priority": 5,
55
"is_fallback": false,
66
"classification_triggers": [

src/autoskillit/recipes/experiment-types/configuration_study.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
name: configuration_study
2-
schema_version: "1.0"
2+
schema_version: "1.0.0"
33
priority: 5
44
is_fallback: false
55
classification_triggers:

0 commit comments

Comments
 (0)