change requests

Propose a structured PM amendment against the exact current repository-body revision without mutating intent.md or the cloud body projection.

Creation runs under the intent row lock and validates the expected value against the immutable base snapshot. It inserts only intent_change_requests; the repo-owned intent body is never edited.

post/api/v1/intents/{id}/change-requests

Path parameters

idstring required

id path parameter.

Request body

baseRepoBodyRevisionstring required

Exact 64-character revision shown to the PM. A stale base returns 409; it is never silently rebased.

targetFieldstring required

Semantic field or collection: title, severity, objective, currentState, outcomes, scope.inScope, scope.outOfScope, constraints, healthMetrics, edgeCases, decisions, verification, or implementationContext.

targetItemIdstring

Stable item id for outcome/verification items when one exists. Index-only targeting is forbidden.

expectedOldValuestring

Required for replace/remove when no stable item id exists; compared to the immutable base snapshot.

operationstring required

replace, add, or remove. Scalar fields support replace only.

proposedValuestring

Required for add/replace; forbidden for remove.

reasonstring required

Why the product judgment requires this change (max 4000 chars).

Response

Request stored against the exact base revision

object required

Changes