Skip to content
KramorDS
Switch light or dark

Patterns

Status and lifecycle

Kramor separates claims that sound alike. Accepted policy is not implementation, implementation is not testing, testing is not certification. Each state has its own name, icon and treatment.

8 statuses5 ledger stages9 waves7 value states

Status vocabulary

One vocabulary for documents, database enums, pull requests and the interface. Emphasis grows with confidence: outline for provisional, subtle for in progress, solid only for certified.
ProposedPROPOSED

Idea or design under consideration.

Accepted policyACCEPTED_POLICY

Normative rule approved for implementation. Not yet built.

Recommended defaultRECOMMENDED_DEFAULT

The path to take without asking routine questions.

ImplementedIMPLEMENTED

Code written and committed. Not yet tested.

TestedTESTED

Executed against suites with retained evidence.

CertifiedCERTIFIED

Route and entity verified end to end under real conditions.

DeferredDEFERRED

Explicitly postponed to a future milestone.

OpenOPEN

Needs evidence or a benchmark before it can be resolved.

The confidence ladderEach step requires evidence the previous one did not.
ProposedAccepted policyImplementedTestedCertified

Ledger stages

Every record moves through the same five stages, recorded in a hash-chained ledger. The track shows how far a record has come. The timeline shows the evidence behind each step.

Ledger track

Staged
Dispatched
Certified

Ledger timeline

prd_48213
  1. Pre-dispatch

    09:12 · planner

    Payload hashed from source revision 2026-11-08.

    sha256:7b1e44a0…1c5e92
  2. Staged

    09:20 · Priya Raman

    Locked in plan revision r14.

    sha256:e2c94b7a…e9d4b7
  3. Dispatched

    09:41 · worker eu-3

    productCreate committed on attempt 1.

    sha256:a4d07c2e…a5b2e4
  4. Verified

    Waiting

    Read-back confirms the record exists at the destination.

  5. Certified

    Waiting

    Signed evidence record committed to the database.

Exception states

When a write cannot be confirmed, the record leaves the happy path. The rule for ambiguous outcomes is strict: no retry until read-back proves what happened.
Outcome unknownReconcilingPausedQuarantinedFailed
  1. Outcome unknown

    A write timed out or returned a 5xx. Retries are blocked.

  2. Read-back

    Query the destination for the record and compare its hash.

  3. Reconciled

    Verified if it landed. Only a confirmed failure can be retried.

Warning: Never show a retry button on an unknown outcome

The only action offered is read-back. A retry before reconciliation can create duplicate products or double orders.

Wave pipeline

Nine waves run in dependency order, so nothing is created before the things it points to. The pipeline shows each wave with its count, its progress and any exceptions.
  1. W1Foundations

    Taxonomies, metafields, custom data and inventory locations

    4,812 / 4,812
    Certified
  2. W2Media

    Media assets and file uploads through staged targets

    38,240 / 38,240
    Certified
  3. W3Hierarchy

    Collections, categories, menus and visual hierarchy

    1,206 / 1,206
    Certified
  4. W4Catalog

    Products, the variant matrix and multi-location stock

    61,430 / 98,750
    12 exceptionsDispatching
  5. W5Customers and orders

    Customers, historical orders and draft orders

    0 / 412,880
    25 exceptionsBlocked
  6. W6Theme

    Theme AST transpilation and Liquid conversion

    0 / 214
    Queued

Field dispositions

Every field in a migration plan has exactly one disposition. There is no silent sixth option: if a field is not mapped, transformed or omitted on purpose, it is unsupported or unresolved, and the plan says so.
Mapped

Copied one to one into a destination field.

Transformed

Converted by a deterministic, versioned rule.

Unsupported

No destination exists. Required fields halt strict completion.

Omitted

Left out on purpose, with a recorded reason.

Unresolved

Waiting on a decision before the plan can be approved.

Value states

Missing, null, empty, zero, false, clear and unknown are seven different facts. They render as literals in mono with distinct icons, so they can never be confused at a glance.
missing, Missing: The field is absent from the source payload.null, Null: The source sent an explicit null."", Empty string: Present, with zero characters.0, Zero: A real numeric zero, such as stock on hand.false, False: A real boolean false, such as taxable: false.clear, Clear: A command to wipe the destination value.unknown, Unknown: A value the engine does not recognise.
How source values carry to the destination
FieldSourceDestinationOutcome
compare_at_pricenull, Null: The source sent an explicit null.missing, Missing: The field is absent from the source payload.Explicit null is kept. The destination field is not written.
inventory.available0, Zero: A real numeric zero, such as stock on hand.0, Zero: A real numeric zero, such as stock on hand.A real zero. Stock is written as 0, not skipped.
seo.description"", Empty string: Present, with zero characters.clear, Clear: A command to wipe the destination value.Empty string becomes a clear command, behind the destructive gate.
taxablefalse, False: A real boolean false, such as taxable: false.false, False: A real boolean false, such as taxable: false.Boolean false is preserved, never treated as missing.
custom.fit_notesunknown, Unknown: A value the engine does not recognise.missing, Missing: The field is absent from the source payload.Unrecognized value raises an exception for review.
null, Null: The source sent an explicit null."", Empty string: Present, with zero characters.0, Zero: A real numeric zero, such as stock on hand.

Do

Show the literal value

An operator reading null, "" or 0 knows exactly what the source sent and what will be written.

– · – · –

Don't

Collapse different states into a dash

A dash for every empty-looking value hides the difference between missing and cleared, which is where data loss starts.

Overview
Color
Typography
Space, shape and motion
Actions
Forms
Feedback
Data display
Navigation
Overlays
Portal shell
Status and lifecycle
Trust and safety
Template gallery
Overview screen
Connections screen
Studio screen
Validation screen
Recovery screen
Governance screen
Settings screen
Switch light or dark mode