Skip to content

Remove redundant [agent_defaults] from L2/L3/L4/C1 lesson packs#84

Draft
austinborn wants to merge 1 commit into
mainfrom
fix-curriculum-pack-toml-schema-drift
Draft

Remove redundant [agent_defaults] from L2/L3/L4/C1 lesson packs#84
austinborn wants to merge 1 commit into
mainfrom
fix-curriculum-pack-toml-schema-drift

Conversation

@austinborn

Copy link
Copy Markdown
Collaborator

Summary

Removes the redundant [agent_defaults] table from the four lesson packs (packs/lessons/{L2,L3,L4,C1}/pack.toml). gc 1.2.1 rejects [agent_defaults] in pack.toml, which broke gc register for students running the curriculum on the newer gc 1.2.1 / bd 1.0.5 toolchain.

The block was safe to remove. Every agent in each lesson already declares the same default_sling_formula in its own agent.toml, and the curriculum's own lint (test-harness/lesson-pack-lint.py) reads the per-agent value rather than the pack-level default. This mirrors the L2 fix already applied locally, generalized to L3, L4, and C1, plus L2 itself, whose local fix had not yet reached main.

Deferred: the rig-import migration needs a scope decision

The same drift report also covers migrating the rig-import pattern ([defaults.rig.imports.factory] in pack.toml moving to a [[rigs]] block in city.toml) and updating the lab READMEs. That work is not in this PR, because it collides with the curriculum's own test harness and cannot be verified in this environment:

  • test-harness/lesson-pack-lint.py currently requires the old pattern. SFI112 requires [defaults.rig.imports.factory] in my-factory/pack.toml; SFI501 and SFI502 require the lesson docs to show that block and the gc --rig <rig> import add/remove factory flow.
  • test-harness/behavioral-smoke.sh runs that linter, so migrating the pattern without also rewriting the linter, the snapshots under test-harness/walkthrough-snapshots/, and the walkthrough scripts would make the repo's own checks fail.
  • The migration targets gc 1.2.1's schema, but only gc 1.1.1 is installed in this environment, so the end-to-end behavior cannot be verified here.

A correct migration is a coordinated change across the linter, the snapshots, the walkthrough scripts, the my-factory templates, and the lab and capstone docs. It belongs in its own reviewed change rather than bolted onto this one.

Test plan

  • python3 test-harness/lesson-pack-lint.py --lesson L2 --lesson L3 --lesson L4 --lesson C1 reports no new findings against the unmodified tree. The two pre-existing SFI100/SFI110 errors are about my-factory/{city,pack}.toml being absent in a fresh checkout, before a student copies the templates, and are unrelated to this change.
  • bash test-harness/migration-check.sh passes all 10 structural invariants.
  • On a gc 1.2.1 environment, confirm gc register succeeds for each lesson pack. A reviewer with that toolchain should verify, since only gc 1.1.1 is available here.

Generated by the operator's software factory.
• City: factory-main · Agent: local-core.builder-5
• On behalf of: @austinborn

gc 1.2.1 rejects the [agent_defaults] table in pack.toml, which broke
`gc register` for students running the curriculum on the newer
gc 1.2.1 / bd 1.0.5 toolchain.

The block was redundant: every agent in each lesson pack already
declares the same default_sling_formula in its own agent.toml, and the
lesson lint (test-harness/lesson-pack-lint.py) validates the per-agent
value rather than the pack-level default. Removing it loses no behavior
and is version-safe. This generalizes the L2 fix to L3, L4, and C1, and
to L2 itself, whose local fix had not yet reached main.

Verified: lesson-pack-lint.py (L2/L3/L4/C1) reports no new findings
against the unmodified tree; migration-check.sh passes all 10
structural invariants.

Generated by the operator's software factory.
City: factory-main · Agent: local-core.builder-5
On behalf of: @austinborn
Co-Authored-By: operator-factory-bot <factory-bot@operator-domain.invalid>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant