v0.3.0
0.3.0 — 2026-06-09
SDD contract and profile upgrade, BDD/Gherkin metadata and tooling (import, export, validate, sync), scope metadata and monorepo support, combo trace, ID format drift repair, and release-hardening fixes.
Added
- SDD contract and profile upgrade (task-0026) — SDD profile with enforceable traceability policy (
require_acceptance_criteria,require_implementation_refs,require_test_refs), effective config policy merging,sdd check/check-pr/statusCLI commands, profile gate, link-target-status warning, expanded JSON schemas (sdd.v1,sdd-status.v1,sdd-pr.v1), andinit --profile sdd. - SDD review fixes (task-0027) — hardened inline acceptance-criteria handling, normalized source/test reference checks, real PR gate for
check-pr,--include-drafts/--include-superseded/--all-statusesflags,sdd_options_from_configmerging config+CLI overrides, AC ergonomics (--requirement/--validation-command/--validation-expected), andSddContextrefactored module. - BDD/Gherkin metadata and tooling (task-0028) — BDD front-matter model (
BddAutomation/BddExample),normalize_bdd_metadata, SDD-BDD checks (shape, GWT, automation, feature-ref, AC-link), minimal Gherkin parser,bdd import/exportCLI, config flags (require_bdd_gwt_for_behavior_records,require_bdd_automation_for_accepted_records), JSON schemas (bdd-import.v1,bdd-export.v1), and docs/skill updates. Phases 0-5. - SDD/BDD review fixes (task-0029) — P0 Gherkin parser fixes (removed
matched_scenario, fixedUnsupportedGherkinError, fixed step bucket sharing), P1 profile UX (bddis not a standalone profile, config preservation on enable/disable), P2 docs/stale-reference cleanup. - SDD/BDD integration review fixes (task-0032) — safe/atomic/multi-rule batch export with path sanitization, JSON error envelopes for
bdd validate/sync/exportmisuse, normalized export payloads, Option A linked/automated semantics,behavior_linkedcoverage dimension, GWT forquality_scenario,sdd coverage --by-record,sdd-check.v2schema, and newbdd-sync/sdd-init/sdd-explainschemas. - BDD/spec workflow alignment (task-0033) — SpecWeave-owned
specs/behavior/featuresconvention, separatesource_refs(feature files) fromtest_refs(pytest), deprecated path warnings across import/export/validate/sync,bdd linktest_refs support, SDD BDD test-ref and path-convention rules. - Scope metadata and monorepo support (task-0034) —
RecordScopedataclass withkind/name/applies_to/excludes/lifecycle, scope normalization and context matching,applies_tolink rel,--scope/--scope-kind/--addonCLI filters,scope list/show/affectedsubcommands, relaxed source-ref existence for archived records. - Combo trace (task-0037) —
archledger trace --format combo-jsonemittingcombi.trace.v1bundles with source/test refs, BDD IDs, AC IDs, and Taskledger provenance; SDD external reference checks for Taskledger ID shapes and linked BDD automation; three-tool boundary documentation. - P0-P2 release hardening (task-0038) — shared BDD mutation validation helpers, safe
bdd set/linkpre-validation, tightened Gherkin parser, cached feature-file parsing in sync, structured sync findings, extractedsdd_support.py/sdd_indexes.pymodules,sdd-check.v2schema aliasing, markdown coverage formatting, JSON envelopes for early SDD validation errors, dedicateddocs/sdd.rstanddocs/bdd-gherkin.rstguide pages.
Changed
- Config version v7 → v8 — profile layout (
[profiles]/[profiles.arc42]/[profiles.sdd]) introduced viaarchledger profile migrate(task-0028). - SDD linked-automation policy — linked imports accepted by default; warns in
--strict; errors only whenrequire_bdd_automation_for_accepted_recordsis enabled (task-0032, task-0038). - BDD export payload — normalized to
{schema, exported[], feature_files[], warnings[]}for both single and batch (task-0032, task-0038). sdd checkpayload — migrated toarchledger.sdd-check.v2withdefault_profile/enabled_profiles/sdd_enabled(task-0032).
Fixed
- Test failures from markdown default source format change (task-0024).
- Archive tombstones rejected by check/build; added
archive_tombstoneto valid record types (task-0030). - ID format drift:
doctor --repairnow refuses when ID format mismatches config;renumbersupports--from-prefix/--from-width/--from-id-segment-modefor explicit migration; stale generated tombstone collision detection and quarantine (task-0035). - Hidden config init guard:
initchecks botharchledger.tomland.archledger.toml; renumber infers old segment mode from drift (task-0036). - Profile enable/disable preserves existing profile settings instead of overwriting (task-0029).
scan_git_revisionskips.archledger/buildstate files, fixing spurious unlinked changes in PR checks (task-0027).assert result.stderrtest failures migrated toresult.outputfor combined-stream CliRunner (task-0028).
Internal
- Code smell review: removed unused
repository_checksmodule, unreachable model code, fixedCallabletyping, added missing test annotations, aligned release docs with mypy scope (task-0025).
Full Changelog: v0.2.0...v0.3.0