Deterministic Iterative Development Protocol (DIDP) v2

2.0 Foundation 2025-12-26

DIDP v2

DIDP v2 extends DIDP v1 with semantic versioning enforcement. All v1 rules remain in effect unless explicitly modified below.

Changes from v1

Added: Versioning Block

The iteration_state.yaml schema gains an optional versioning: block for tracking semantic version intent.

Added: Workflow Contract Versioning Policy

The workflow contract gains a versioning policy section.


Versioning Block (New in v2)

Schema Addition

Add to iteration_state.yaml:

versioning:
  scheme: semver                    # REQUIRED: versioning scheme (semver)
  current: "1.2.3"                  # OPTIONAL: current version before iteration
  planned_bump: minor               # REQUIRED at spec_lock: major|minor|patch
  enforcement: required|recommended # OPTIONAL: default is recommended
  changelog_required: true          # OPTIONAL: require changelog entry

Field Definitions

FieldTypeRequiredDescription
schemestringYesVersioning scheme. MUST be semver in v2.
currentstringNoCurrent version before this iteration.
planned_bumpenumAt spec_lockVersion bump intent: major, minor, or patch.
enforcementenumNorequired or recommended. Default: recommended.
changelog_requiredbooleanNoWhether changelog entry is required. Default: false.

Phase Requirements

PhaseVersioning Requirement
planningMAY declare planned_bump
analysisSHOULD validate bump intent against scope
spec_lockMUST declare planned_bump if enforcement: required
implementationNo change
testingNo change
archiveMUST include version tag if enforcement: required
mergeMUST validate version consistency
completeVersion recorded in iteration state

Bump Intent Rules

BumpWhen Required
majorBreaking changes to protocols or public interfaces
minorNew features, backwards compatible
patchBug fixes, documentation corrections

Example

iteration:
  id: ITER-2025-12-26-B
  goal: "Add semantic versioning enforcement to DIDP"

versioning:
  scheme: semver
  current: "1.0.0"
  planned_bump: major
  enforcement: required
  changelog_required: true

phase:
  name: spec_lock
  # ... rest of iteration state

Workflow Contract Additions (v2)

Add the following section to the workflow contract:

Versioning Policy

  1. SemVer is mandatory for protocol specifications.
  2. Breaking changes require major bump — no exceptions.
  3. All iterations SHOULD declare bump intent at spec_lock phase.
  4. Changelog entries are required when changelog_required: true.

Version Source

Each project MUST have exactly one canonical version source:

  • VERSION file, or
  • package.json / pyproject.toml / equivalent, or
  • Git tag

The version source MUST be updated during the archive phase.

Enforcement Levels

LevelBehavior
requiredPhase transitions blocked if versioning rules violated
recommendedWarnings emitted but transitions allowed

Backward Compatibility

DIDP v2 is backward compatible with v1:

  • The versioning: block is optional
  • All v1 iteration states remain valid
  • No v1 behavior is removed or modified
  • v2 adds capabilities without breaking existing workflows

Projects using v1 can adopt v2 incrementally by adding the versioning: block when ready.


Migration from v1

To upgrade from v1 to v2:

  1. Add versioning: block to iteration_state.yaml
  2. Update workflow contract with versioning policy section
  3. Set enforcement: recommended initially
  4. Upgrade to enforcement: required when ready

No other changes are required.


References