# docx.diff.redline

docx.diff.redline: Compare two versions of a Word file and return the earlier one with every difference as a tracked change; refused when the result would not accept to the later version.

Compare two versions of a Word file and return the earlier one with every difference as a tracked change; refused when the result would not accept to the later version.

Use `describe("docx.diff.redline")` when your code needs the complete live JSON Schemas.

## At a glance

| Property | Value |
| --- | --- |
| Package | `@runstamp/registry` |
| Domain / verb | `docx` / `diff` |
| Customer jobs | compare, review |
| Deterministic | No |
| Side effects | none |

## Availability

| Local | SDK | CLI | MCP | Managed API |
| --- | --- | --- | --- | --- |
| unavailable | unavailable | unavailable | unavailable | public ga |

Managed API route: `POST /api/v2/operations/docx/diff/redline`. Managed execution requires a free-trial workspace or an active Platform or Enterprise workspace, and an environment-bound API key.

## Input and result

| Schema | Required fields | Optional fields |
| --- | --- | --- |
| Input | none | none |
| Options | none | `operation`, `author`, `date`, `deterministic`, `deterministicSeed`, `timeoutMs`, `locale`, `lossPolicy`, `limits` |
| Result value | `artifact`, `revisions`, `comments`, `stats` | none |

Every success also carries `losses`, `diagnostics`, and a hash-bound `receipt`.

<Accordion title="Defaults, limits, and format constraints">

### Defaults

| Path | Default |
| --- | --- |
| `$.deterministic` | `default=true` |
| `$.lossPolicy` | `default="collect"` |

### Formats and profiles

No separate format selector is declared. Accepted artifacts are bounded by the exact input schema.

### Other limits

| Path | Constraint |
| --- | --- |
| `$` | `minItems=2`<br />`maxItems=2` |
| `$.author` | `minLength=1`<br />`maxLength=256` |
| `$.timeoutMs` | `minimum=1` |

</Accordion>

## Invoke

<CodeGroup>

```ts TypeScript docs-verify=skip docs-verify-reason="Generated example uses the published, hash-verified operation input."
const input = await fetch("https://runstamp.com/demo-evidence/operation-evidence/docx/docx.diff.redline/input.json").then((response) => response.json());
const result = await runstamp.run("docx.diff.redline", input);
if (!result.ok) throw new Error(`${result.error.code}: ${result.error.remediation}`);
console.log(result.value, result.losses, result.diagnostics, result.receipt);
```

```bash CLI
curl -fsS https://runstamp.com/demo-evidence/operation-evidence/docx/docx.diff.redline/input.json -o input.json
npx -p @runstamp/sdk runstamp ops invoke docx.diff.redline --input input.json
```

```json MCP
{
  "tool": "runstamp_invoke_operation",
  "arguments": {
    "operation": "docx.diff.redline",
    "input": "<JSON from https://runstamp.com/demo-evidence/operation-evidence/docx/docx.diff.redline/input.json>",
    "execution_mode": "local"
  }
}
```

</CodeGroup>

## Errors and losses

<Accordion title="Declared errors (9)">

- `common/SCHEMA_REJECTED`
- `common/CONTRACT_VIOLATION`
- `common/OPERATION_CANCELLED`
- `common/OPERATION_TIMEOUT`
- `common/RESOURCE_LIMIT_EXCEEDED`
- `common/INPUT_CORRUPT`
- `common/STEP_REJECTED`
- `common/POLICY_DENIED`
- `common/INVARIANT_VIOLATED`

</Accordion>

<Accordion title="Declared losses (0)">

- None.

</Accordion>

SDK `AbortSignal`, CLI exit 130, and MCP cancellation return the typed `common/OPERATION_CANCELLED` failure envelope.

## Verified example and exact contract

- Fixture: `icp-workflow` (Statement of work SOW-3: draft and the signed revision).
- [Example input](/demo-evidence/operation-evidence/docx/docx.diff.redline/input.json) — SHA-256 `bb95663e84d9220122efdf0ec6f8c6918fe8ad84bae34db9529a8b1f8d463f2c`.
- [Example result](/demo-evidence/operation-evidence/docx/docx.diff.redline/result.json) — SHA-256 `ee30b4a134dcf3e9cb830cc2492588808d4a3c576c159b163663bd61b81b04a2`.
- Verified result SHA-256: `724477b7788a72e2b487b1a86e06a00f61c769081cca8ccebc2e0ed207146f94`.
- Qualification lane: `10-pptx-docx`.

<Accordion title="Contract fingerprints">

- Descriptor: `58d0174096585ebd7fb1121c3d794a228879bb69e26553d656f2983c4ab53e30`.
- Input schema: `eecbef713539833541f710481d0b7b52bb091358d48537aa533353ceb015e769`.
- Options schema: `75f35aa7ff8fc343c20a62c4fe3fc53a5a9829d8a5301f32cf5d7d72207b4e80`.
- Result value schema: `da30a285e4da5d70c4a49d525901e4840cf3e1f0bf75c8efa65412d8c89b5254`.

</Accordion>

The [machine-readable operation reference](/operation-reference.json) publishes the complete schemas, qualification results, and evidence bindings for every operation.
