LIMREN / Docs
Start here
Overview

Limren Docs.

Limren controls the final point at which a proposed action can change an external system, then verifies the observed result.

Current public surface: Playground + documented control model.
New to Limren?
  1. Read the core lifecycle.
  2. Understand the commit boundary.
  3. Run a Playground scenario.

Why a decision is not permission to execute

An agent can reason, plan, and propose. Limren becomes relevant when that proposal is about to change an external system. A positive decision made earlier is not permanent permission to execute later.

Invariant

Decision is not execution. The facts that justified a decision must still be valid at the final state-changing boundary.

How to use these docs

If you are new to Limren, read Core lifecycle and Commit boundary, then use the Playground. If you are evaluating implementation behavior, move to Action envelope, Preconditions & conflict, and the Reference section.

API status

These docs intentionally do not publish package names, authentication flows, or production endpoints that are not yet part of the public surface.

Start here
Conceptual model

Core lifecycle.

A proposal is bound to current facts, decided, checked again at commit, and verified against the resulting state.

Lifecycle overview

Intent

An intent is the requested state change: who is acting, what should change, which target is affected, and what authority supports the request.

Bind

Limren binds the decision to the exact target, payload, authority, evidence, and dependencies it evaluated. If any of those values change, the old decision cannot silently authorize the new action.

Validate and decide

Limren checks the action against current authority, policy, state, constraints, and dependencies. It then returns ALLOW, DENY, MODIFY, STEP-UP, HOLD, or DEFER.

Revalidate

Immediately before the state change, Limren checks the decision again. Stale state, expired authority, changed dependencies, or a changed binding stop the commit.

Commit

COMMIT performs the protected state change. No other stage may write to the protected target.

Verify

After commit, Limren observes the target and compares the result with the intended state. If they differ, Limren records drift and the action moves to reconciliation.

Start here
Available

Test the commit boundary.

Run action scenarios, change the conditions between decision and commit, and observe whether Limren commits, holds, verifies, or reports drift.

What you can test

Scenario

Valid action

Verified
Intent
Change requested.
Decision
ALLOW
Commit
Accepted after revalidation.
Observed result
Matches intended effect.
Scenario

Dependency drift

Held
Decision
ALLOW
Before commit
Dependency changed.
Commit
HELD
Verdict
Revalidation required.
Scenario

Expired authority

Stopped
Decision
Earlier approval is valid.
Before commit
Authority expires.
Commit
Not attempted.
Outcome
Action must be re-authorized.
Scenario

Duplicate execution

No second effect
Intent
Same logical action is replayed.
Revalidation
Duplicate is detected.
Commit
No second state change is sent.
Evidence
Replay is linked to the existing result.
Scenario

Competing write

Conflict
Decision
Built against an expected target version.
Reality
Another actor changes the target first.
Commit
Target precondition rejects the stale write.
Outcome
Re-evaluate against current state.
Scenario

Observed drift

Reconcile
Commit
Protected write is accepted.
Intended state
Expected effect is known.
Observed state
Reality differs from the intended effect.
Verdict
DRIFT → reconciliation.

Why the Playground comes first

The Playground is the most concrete way to understand Limren through cause and effect: change the conditions around an action and watch the final boundary respond.

Failure mode

The important test is not whether a proposal once received ALLOW. Change the world after the decision and verify that the final boundary notices.

Core model
Conceptual model

The commit boundary.

The final point at which Limren decides whether a proposal may become an external state change.

Why it exists

A decision can be valid when it is made and invalid seconds later. State can change, authority can expire, a dependency can move, another actor can write first, or the payload can change.

Invariant

Decision is not execution. The facts that justified a decision must still be valid at the final state-changing boundary.

How it works

  1. Bind the proposal to its target, payload, authority, evidence, and dependencies.
  2. Evaluate the proposal and produce a decision.
  3. Wait if approval or another condition is required.
  4. Revalidate immediately before the protected write.
  5. Commit only if the required guarantees still hold.
  6. Observe the real result and verify it against the intended effect.
Strict commit rule

A strict commit requires a target-enforced precondition. If the target cannot enforce the precondition, the operation cannot honestly be described as strict.

What crosses the boundary

The boundary does not govern reasoning. It governs a specific state change bound to a target, payload, authority, and the facts that justified the decision.

Failure mode · Expired authority

A proposal can be allowed and still become ineligible before execution. If its authority expires before COMMIT, revalidation must stop the write rather than inherit the earlier ALLOW.

Typical reasons the boundary stops

  • Authority expired.
  • A dependency became stale.
  • The target version changed.
  • The payload no longer matches the approved proposal.
  • The action is a duplicate.
  • A required approval is missing or no longer valid.
Core model
Public model

Action envelope.

An action carries the values that must remain bound from decision through commit: actor, target, payload, authority, evidence, dependencies, and constraints.

Current Playground shape

The current public Playground represents an action with fields such as actor, action, target, evidence, and approval.

JSON · Playground example
{
  "actor": "workflow-agent",
  "action": "set_status",
  "target": {
    "resource": "resource-42"
  },
  "payload": {
    "status": "ready"
  },
  "authority": {
    "approval": "APR-2291"
  },
  "dependencies": [
    {
      "resource": "dependency-A",
      "expected_version": 81
    }
  ]
}

What Limren needs to reason about

ConceptRole
AuthorityWho or what is permitted to request, approve, and execute the change.
TargetThe exact resource, record, system, or object the proposal intends to change.
PayloadThe exact mutation or effect that would be committed.
DependenciesFacts or resources that must still be current for the decision to remain valid.
ConstraintsHard limits the proposed change must not violate.
SufficiencyWhether enough information exists to make a justified commit decision.
ClosureWhether the relevant effects and dependencies have been accounted for.
ValidityWhether the decision is still true at the final moment before commit.

Why bindings matter

The action that executes must be the action Limren evaluated. If the payload, target, authority, or evidence changes, the old decision must not carry over.

Core model
Conceptual model

Decision lifecycle.

A verdict tells the system what may happen next. It does not itself perform the protected write.

Verdicts

VerdictMeaning
ALLOWThe action may continue toward commit, subject to commit-time revalidation.
DENYThe action is not permitted under the current identity, policy, state, or effect constraints.
MODIFYThe requested effect must be changed into a permitted form before execution.
STEP-UPAdditional authority or explicit approval is required.
HOLDThe action cannot safely cross now, commonly because current reality no longer supports the earlier decision.
DEFERExecution waits for a required condition, dependency, or decision path.

Approval is not execution

Human approval can satisfy a decision requirement, but it does not bypass commit-time checks. The target, payload, authority window, dependencies, and duplicate state still have to be valid when the write is attempted.

Compound effects

Several actions can each be safe on their own and unsafe together. Limren can delay them, serialize them, require joint approval, or hold the change set until the combined constraint is satisfied.

Core model
Conceptual model

Reality answers back.

Commit records what Limren sent. Verification checks what the external system actually became.

Intended state vs observed state

Intended state

The state the committed effect was expected to create.

Observed state

The state returned by, or independently observed from, the real system after execution.

Verified

If the observed state satisfies the intended effect, the execution can be recorded as verified.

Drift

If reality differs from the intended effect, the mismatch becomes explicit drift. Limren should not silently treat “request accepted” as equivalent to “desired business state achieved.”

Failure mode · Accepted is not verified

An external system can accept a request while the resulting business state still differs from the intended effect. Verification exists to make that mismatch explicit.

Reconciliation

If verification finds drift, Limren must decide what happens next. That can mean a safe retry, a compensating action, human review, or holding dependent work.

Evidence

The decision, commit attempt, observed result, and verification outcome should remain connected in one evidence record.

Build
Architecture guidance

Integration patterns.

Protected mutations must pass through the commit boundary. Agents and applications can read and propose, but they must not bypass Limren to change protected targets.

Target architecture

Protected write rule

Do not give agents independent credentials for protected mutations. The commit worker should be the only component that can send the protected state change.

Read and propose

Reading state and proposing a change do not require write access. The real mutation stays behind one enforceable commit path.

Build
Architecture guidance

Idempotency & duplicate execution.

A retry should not become a second business effect.

Why duplicates happen

Networks retry. Workers restart. Clients time out. Agents replay. Limren must tell a retry of the same action from a genuinely new action.

Commit-time check

The commit path should check whether the same logical mutation has already been applied or is already in flight before it touches the real target.

Failure mode · Replay

A timeout can make a caller retry an action that already succeeded. Without idempotency, that retry can become a second real-world effect.

Example

If a refund action is retried after the caller times out, the retry should resolve to the existing result rather than create a second refund.

The evidence record should make it possible to show that the duplicate was recognized and that no additional protected write was attempted.

Build
Conceptual model

Preconditions & conflict.

The strongest commit is one the target itself can reject if the expected state is no longer true.

Strict

The target enforces a version, ETag, compare-and-set value, transaction condition, or equivalent precondition as part of the write.

Fenced

Exclusive writer control is established through a lease, lock, fencing token, or similar mechanism. This can reduce competing writes when a native target precondition is unavailable.

Non-strict

The system can check immediately before sending, but the target cannot guarantee that nothing changes between the check and the actual write.

AssuranceWhat enforces the final conditionMeaning
STRICTTargetThe write itself is conditional on the expected state.
FENCEDExclusive writer mechanismCompeting writers are prevented or fenced out.
NON-STRICTBest-effort pre-send checkA race can still exist between validation and write.

STALE vs CONFLICT

STALE means Limren detects drift before the write is sent. CONFLICT means the target rejects the attempted write because its enforced precondition no longer holds.

Failure mode · Race at the boundary

A pre-send check can be correct and still lose a race before the target applies the write. Only target-enforced conditions or an effective fencing mechanism close that gap.

Build
Conceptual model

Failures, drift & recovery.

Stopping an unsafe state change is only one failure case. Limren also records what failed, whether anything changed, and what must happen next.

Before send

Examples include expired authority, stale dependencies, invalid payload binding, duplicate execution, or an unmet target precondition. No protected write should be attempted.

Target rejection

A target can reject a conditional write because its version or precondition changed. Limren records this as CONFLICT.

After commit

The external system can accept a request and still end in the wrong state. Verification records that mismatch as drift.

Recovery actions

Recovery can include retrying a safe idempotent operation, producing a compensating change, escalating to an approver, serializing related work, or holding dependent actions until reconciliation completes.

Reference
Public model

Action model.

This example shows the information Limren needs to bind to a proposed state change.

Current documented shape

JSON
{
  "actor": "checkout-agent",
  "action": "restart_service",
  "target": {
    "resource": "checkout-api",
    "environment": "production"
  },
  "evidence": {
    "id": "E-81",
    "observed_version": "81"
  },
  "approval": "OPS-2291"
}

Fields

FieldPurpose
actorThe principal proposing the action.
actionThe requested operation.
targetThe exact resource the action would change.
payloadThe state change Limren would send at commit.
authorityThe approval or authority that permits the action.
dependenciesThe facts that must still match when Limren reaches commit.
Model status

This is a documentation model, not a frozen wire contract. Exact field names become normative only when the public integration contract is published.

Reference
Public model

Decision record.

A decision record states the outcome, why it happened, the versions Limren compared, and whether commit was attempted.

Documented example

JSON
{
  "decision": "HOLD",
  "reason": "DEPENDENCY_STALE",
  "dependency": "dependency-A",
  "expected_version": 81,
  "actual_version": 84,
  "commit_attempted": false
}

Interpretation

The decision was made when dependency-A was version 81. At commit time it was version 84. Limren returned HOLD and did not send the state change.

Reference
Public model

Evidence model.

Evidence records what the action depended on, what Limren decided, whether commit was attempted, and what the target returned.

Minimum useful evidence

  • Principal or actor identity.
  • Authority or approval reference.
  • Target identity.
  • Evidence identifier and observed version/freshness signal.
  • Decision outcome and reason.
  • Whether a real commit was attempted.
  • The observed post-commit state when execution occurs.
Model status

This page describes the evidence model documented by the current product behavior. A final public wire schema should be published only with the stable integration contract.

Why the record should be durable

A later reviewer should be able to reconstruct the decision from the original evidence. Newer state must not overwrite the evidence that was used at the time.

Reference
Conceptual model

State transitions.

Limren tracks proposal, decision, commit, and verification as separate states. An action is not treated as successful just because a request was accepted.

Happy path

Blocked paths

Before commit

Denied, modified, step-up required, held, deferred, stale, duplicate, or otherwise ineligible.

After send

Target conflict, execution failure, or post-commit drift requiring verification and reconciliation.

Withdrawn intent

A proposal can be withdrawn or replaced before commit. A withdrawn intent should not later reappear as an executable mutation.

Reference
Public model

Error model.

Control outcomes such as HOLD are not transport failures. Reason codes explain why an action did not proceed.

Currently demonstrated reason

ReasonMeaningCommit attempted?
DEPENDENCY_STALEA dependency no longer matches the state/version relied on by the decision.No, in the documented HOLD example.

Control outcome vs technical failure

DENY, HOLD, or STEP-UP are valid control outcomes, not necessarily infrastructure errors. A network timeout, target rejection, worker failure, or verification mismatch belongs to a different layer of the model.

Do not over-publish

Additional reason-code enums should be documented when the product contract is stable, not guessed in advance.

Reference
Reference

Glossary.

The shortest definitions of the terms used throughout the Limren control model.

AuthorityPermission that must still be valid for the exact action at commit time.
ClosureWhether the relevant effects and dependencies of a proposal have been accounted for.
CommitThe protected operation that is allowed to change the real target.
Commit assuranceHow strongly the final precondition is enforced: strict, fenced, or non-strict.
ConflictA target-side rejection after send because an enforced precondition no longer holds.
ConstraintA hard limit the proposed effect must not violate.
DependencyA fact or resource that must remain current for the decision to stay valid.
DriftA difference between intended state and the state observed from reality.
EvidenceThe state, version, source, approval, and context used to justify a decision and prove its outcome.
IdempotencyA guarantee that retrying the same logical action does not create another business effect.
IntentA proposal to produce a specific effect on a target.
PayloadThe exact mutation or values that would be committed.
RevalidationThe final check that decision assumptions still hold immediately before commit.
StaleDrift detected before the protected write is sent.
SufficiencyWhether enough evidence exists to justify the commit decision.
TargetThe exact external resource or object that would change.
ValidityWhether a prior decision is still true at the final moment before execution.
VerificationComparing intended effect with observed reality after commit.