Skip to main content

Trust Keywords

Five keywords for document integrity — tracking versions, recording approvals, signing with hash verification, sealing against modification, and formally amending sealed documents.

track:

Category: Trust Since: v2.8

Activates document version tracking. Once set, the CLI records revisions below the history: boundary automatically.

Syntax

track: | version: value | by: author

Properties

PropertyTypeRequiredDescription
versionstringyesCurrent version identifier
bystringyesWho created this version

Examples

track: | version: 1.0 | by: Ahmed Al-Rashid
track: | version: 2.3 | by: Sarah Chen

Notes

  • track: content is typically empty — data is in properties
  • Required before approve:, sign:, or freeze: can be used
  • History is recorded automatically below x-trust: history as x-trust: revision blocks

approve:

Category: Trust Since: v2.8

Named approval stamp. Records who approved the document, their role, and when.

Syntax

approve: description | by: name | role: title | at: timestamp | ref: reference

Properties

PropertyTypeRequiredDescription
bystringyesApprover name
rolestringnoApprover's role or title
atstringnoApproval timestamp (ISO 8601)
refstringnoReference to approval authority or document

Examples

approve: Legal review complete | by: Sarah Chen | role: General Counsel | at: 2026-03-05
approve: Finance approved | by: James Miller | role: CFO | at: 2026-03-06
approve: Compliance review | by: Maria Santos | role: Compliance Officer | ref: Policy CMP-2026-01

Notes

  • Multiple approve: blocks are common — legal, finance, compliance, management
  • Requires track: to be set first
  • Queryable: intenttext query . --type approve --by "Sarah Chen"

sign:

Category: Trust Since: v2.8

Integrity hash seal. Records the signer's name, role, timestamp, and a SHA-256 hash of the document body at the time of signing. If the document is modified after signing, the stored hash will no longer match and verification will report the discrepancy. This is tamper evidence via hash comparison, not cryptographic non-repudiation.

Syntax

sign: signer name | role: title | at: timestamp | hash: algorithm:value

Properties

PropertyTypeRequiredDescription
rolestringnoSigner's role
atstringnoSigning timestamp (ISO 8601)
hashstringnoContent hash at time of signing

Examples

sign: Ahmed Al-Rashid | role: CEO | at: 2026-03-06T14:32:00Z | hash: sha256:a1b2c3d4e5f6
sign: James Miller | role: CFO | at: 2026-03-06T15:00:00Z

sign: vs x-doc: signline

sign:x-doc: signline
TypeDigitalPhysical
VerificationSHA-256 hash comparison — machine-verifiableVisual line on paper — human-verifiable
Lives inThe .it file permanentlyThe printed/PDF output
Use caseFile integrity verificationPaper contract signatures

Use both when a contract needs digital verification and paper signatures.


freeze:

Category: Trust Since: v2.8 Aliases: lock:

Seal the document. After freeze:, any edit to the content above invalidates the hash.

Syntax

freeze: | status: locked | at: timestamp | hash: algorithm:value

Properties

PropertyTypeDescription
statusstringlocked
atstringSealing timestamp (ISO 8601)
hashstringContent hash of the frozen document

Examples

freeze: | status: locked | at: 2026-03-06T14:33:00Z | hash: sha256:e5f6a7b8

Notes

  • freeze: content is typically empty — data is in properties
  • After freezing, the only permitted additions are amendment: blocks
  • Use intenttext seal to compute the hash and add sign: + freeze: automatically
  • Use intenttext verify to check the hash against current content

amendment:

Category: Trust Since: v2.11 Aliases: amend:, change:

Formal change to a frozen document. Preserves the original seal while recording what was changed, where, who authorized it, and when.

Syntax

amendment: description | section: target | was: previous | now: current | ref: identifier | by: author | at: timestamp | approved-by: approver | hash: value

Properties

PropertyTypeRequiredDescription
sectionstringyesWhich section was amended
wasstringnoThe previous value or text
nowstringyesThe new value or text
refstringnoAmendment reference identifier
bystringnoWho authored the amendment
atstringnoAmendment timestamp
approved-bystringnoWho approved the amendment
hashstringnoHash of the amendment block

Examples

amendment: Payment terms updated | section: Payment | was: Net 30 | now: Net 15 | ref: Amendment #1 | by: Ahmed Al-Rashid | approved-by: Sarah Chen
amendment: Scope extended | section: Scope | now: Includes Phase 2 deliverables | ref: Amendment #2 | by: Ahmed Al-Rashid | at: 2026-04-01

The amendment model

Without amendment:, changing a frozen document means:

  1. Breaking the seal (invalidating freeze: and sign:)
  2. Making edits, re-approving, re-signing, re-freezing

All original signatures are voided. The audit trail has a gap.

With amendment::

  • The original seal is preserved
  • The amendment is additive — it records the change alongside the sealed content
  • Each amendment can have its own approval chain (approved-by:)
  • intenttext verify reports both the original seal status and all amendments

CLI

intenttext amend contract.it \
--section "Payment" \
--was "Net 30" \
--now "Net 15" \
--ref "Amendment #1" \
--by "Ahmed Al-Rashid"

Notes

  • Validation error AMENDMENT_WITHOUT_FREEZE if the document has no freeze: block
  • Amendments appear after freeze: but before the x-trust: history boundary
  • Each amendment is independently queryable

The trust chain

A typical trust workflow combines all five keywords:

title: Service Agreement

section: Parties
contact: Ahmed Al-Rashid | role: CEO | email: ahmed@acme.com
contact: Sarah Chen | role: General Counsel | email: sarah@acme.com

section: Terms
text: Full contract terms...

track: | version: 1.0 | by: Ahmed Al-Rashid
approve: Legal review complete | by: Sarah Chen | role: General Counsel | at: 2026-03-05
sign: Ahmed Al-Rashid | role: CEO | at: 2026-03-06T14:32:00Z | hash: sha256:a1b2c3d4
freeze: | status: locked | at: 2026-03-06T14:33:00Z | hash: sha256:e5f6a7b8

Extension keywords

Automated history and revision blocks are available in the x-trust: namespace. These are managed by the CLI — you do not write them manually.

ExtensionPurpose
x-trust: historyHistory boundary marker — separates live document from machine-managed history section
x-trust: revisionAuto-generated change record written by intenttext seal and intenttext amend

See Extension Keywords → for full syntax documentation.