Skip to content

v1.10.0 — component-aware major

Choose a tag to compare

@pilotspacex-byte pilotspacex-byte released this 25 Jun 03:08
· 704 commits to main since this release
6196971

ADD 1.10.0 — component-aware major. Live on npm (@pilotspace/add@1.10.0) and PyPI (pilotspace-add 1.10.0).

ADD now models every codebase as a graph of components — each owning a source root, its own green-bar, and the contracts it produces or consumes — so one milestone ships a vertical slice across components in a monorepo or across repos. Bundles three closed milestones plus the ccsk --rule-file mode. Every new gate is opt-in or grandfathered: a project that declares no components is byte-identical to 1.9.0.

Added

  • Component registry (component-aware-add) — declare parts of a multi-part codebase in .add/components.toml ([component.<name>] = root + green-bar); a task binds with a component: header that anchors its §5 Scope. Declared, never inferred; zero components ⇒ byte-identical to today.
  • Per-component verify — a bound task is held to ITS component's green-bar at the gate (component_green_bar_uncited), so two tasks in one milestone can pass on two toolchains. The engine still never runs a suite.
  • Cross-component contracts (produces: / consumes:) — [contract.<id>] (producer + consumers); a producer's §3 freeze writes an immutable snapshot at .add/contracts/<id>.json, a consumer pins its hash, a changed re-freeze flags every consumer stale. Missing/malformed ⇒ HARD-STOP.
  • One milestone, full-stack slice — a consumes: task is HELD from entering §3 (producer_contract_unfrozen) until its producer freezes, so a BE→FE slice ships in one milestone.
  • Multi-repo federation (add.py federate pull <id>) — declare [federation.<id>] (source + optional pin) and pull a byte-for-byte copy of a producer repo's published snapshot. Fail-loud: unknown id / unreadable source / invalid snapshot / version mismatch each HARD-STOPS and lands nothing.
  • Component pillar docs — book chapter 17 · Components, a skill guide, and glossary terms.
  • The book as a live site (docs-site) — the AIDD book ships to GitHub Pages as a MkDocs-Material site; mkdocs build --strict gates the deploy. Packages stay zero-dependency.
  • Rule-file mode for ccsk projects (--rule-file) — relocate CLAUDE.md's block to .claude/rules/add-workflows.md for .ccsk/ projects; CLAUDE-only, idempotent, fail-soft, mirrored across all three installers.

Changed

  • Guided dynamic loop (loop-steering) — status and guide now STEER into the build→verify loop rather than only reporting it.

Compatibility

Python 3.11+ is required to use the component pillar (stdlib tomllib); on 3.10 the engine runs unchanged and a declared components.toml fails loud. Published packages remain zero-dependency.

Evidence: suite 1745/0 · check 378/0 · audit clean (74 tasks) · mkdocs build --strict clean. Full notes in CHANGELOG.md.