---
title: "Propose a structured PM amendment against the exact current repository-body revision without mutating intent.md or the cloud body projection."
method: POST
path: "/api/v1/intents/{id}/change-requests"
tags: ["change requests"]
---

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

`POST /api/v1/intents/{id}/change-requests`

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.

## Path parameters

- `id` string, required

## Request body

- object
  - `baseRepoBodyRevision` string, required — Exact 64-character revision shown to the PM. A stale base returns 409; it is never silently rebased.
  - `targetField` string, required — Semantic field or collection: title, severity, objective, currentState, outcomes, scope.inScope, scope.outOfScope, constraints, healthMetrics, edgeCases, decisions, verification, or implementationContext.
  - `targetItemId` string — Stable item id for outcome/verification items when one exists. Index-only targeting is forbidden.
  - `expectedOldValue` string — Required for replace/remove when no stable item id exists; compared to the immutable base snapshot.
  - `operation` string, required — replace, add, or remove. Scalar fields support replace only.
  - `proposedValue` string — Required for add/replace; forbidden for remove.
  - `reason` string, required — Why the product judgment requires this change (max 4000 chars).

## Response `201`

Request stored against the exact base revision

- object

## Other responses

- `400` — Invalid structured operation/value
- `401` — No valid signed-in session
- `403` — API keys cannot author PM judgment, or writer permission is missing
- `409` — Base revision or expected old value moved
- `422` — The intent is not repository-authority
- `500` — DB error creating the request

## Changes

- **2026-09-01** `a660c0d36148` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/pathmode/apis/pathmode-api/changes/api/v1/intents/:id/change-requests/post.md)

---

[API](https://skmtc.dev/pathmode/apis/pathmode-api.md) · [All operations](https://skmtc.dev/pathmode/apis/pathmode-api/llms.txt) · [OpenAPI document](https://skmtc.dev/pathmode/apis/pathmode-api/revisions/12d83e6e2fb6?raw)
