diff --git a/.github/workflows/identity.yml b/.github/workflows/identity.yml index 98b34b3..4fd5705 100644 --- a/.github/workflows/identity.yml +++ b/.github/workflows/identity.yml @@ -2,22 +2,20 @@ name: Identity on: push: - branches: [main] pull_request: - branches: [main] - workflow_dispatch: {} - -env: - LC_ALL: C - TZ: UTC jobs: - identity: + verify: runs-on: ubuntu-latest steps: - - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 - - name: Identity marker + - uses: actions/checkout@v4 + + - name: Verify README identity (PRIM-003) shell: bash run: | set -euo pipefail - echo "identity: ok" + grep -q "^# KAIROCLASP$" README.md || { echo "FAIL: title missing"; exit 1; } + grep -q "^Primitive ID: PRIM-003" README.md || { echo "FAIL: PRIM-003 not found"; exit 1; } + grep -q "^Package: @verifrax/kairoclasp" README.md || { echo "FAIL: package line missing"; exit 1; } + grep -q "^Binary: kairoclasp" README.md || { echo "FAIL: binary line missing"; exit 1; } + echo "PASS: PRIM-003 identity verified" diff --git a/.npmignore b/.npmignore new file mode 100644 index 0000000..584eee7 --- /dev/null +++ b/.npmignore @@ -0,0 +1,6 @@ +* +!kairoclasp.sh +!README.md +!LICENSE +!VERSION +!package.json diff --git a/README.md b/README.md index 255f8c8..93de50a 100644 --- a/README.md +++ b/README.md @@ -1,206 +1,147 @@ -PRIM-008 -KAIROCLASP -Temporal finality +# KAIROCLASP -STATUS: REGISTERED -REGISTRY: https://speedkit.eu -SNAPSHOT: https://speedkit.eu/REGISTRY_SNAPSHOT.json -``` +Primitive ID: PRIM-003 +Package: @verifrax/kairoclasp +Binary: kairoclasp -Registered artifact. Identity governed by SPEEDKIT registry. - -STATUS: FINAL +Verifrax primitive — time boundary primitive for deterministic irreversible systems. --- -**KAIROCLASP v0.0.0** is a temporal finality primitive. - -It does not decide. -It does not verify. -It does not witness. -It does not execute. -It does not judge. -It does not enforce custody. +## Status -It **locks time**. +Current release status: pre-stable primitive release line. -KAIROCLASP exists to bind an action, claim, or state to a moment that cannot be replayed, deferred, or reinterpreted later. +Canonical release target: ---- +package version: 0.1.0 +tag: v0.1.0 -## Philosophy +KAIROCLASP is part of the Verifrax primitive layer and follows the canonical primitive governance, naming, version, and packaging rules. -Many failures are not about *what* happened. -They are about *when* it is claimed to have happened. +--- -Deadlines slip. -Timelines are rewritten. -Moments are retroactively reframed. +## Purpose -KAIROCLASP exists to answer one question only: +KAIROCLASP fixes deterministic temporal boundary after origin and custody are already established. -> **Is this moment still valid, or has it expired?** +Once an artifact has a stable origin and preserved custody, time must become bounded in a way that downstream primitives can evaluate without ambiguity. KAIROCLASP exists to make that temporal boundary explicit, deterministic, and non-drifting. -Once time is clasped, the window closes. +It does not establish origin. It does not preserve custody. It does not verify correctness. It does not witness, judge, or terminate. Its role is narrower: fix temporal boundary conditions for downstream interpretation. --- -## What KAIROCLASP Is - -KAIROCLASP is a **temporal boundary primitive**. - -It binds: +## What This Primitive Does -* Declared UTC time (via `stdin`) -* Repository identity -* Commit context -* Evaluation timestamp - -Into a single, irreversible temporal record. - -The result is **temporal finality**. +- binds an artifact to a deterministic time-boundary surface +- preserves explicit temporal boundary conditions for downstream primitives +- emits time-bound output suitable for later verification and judgment --- -## What It Is Not - -* Not a scheduler -* Not a cron system -* Not a deadline manager -* Not a clock source -* Not a validator -* Not a judge +## What This Primitive Does Not Do -KAIROCLASP does not manage time. -It **eliminates ambiguity about time**. +- does not establish first origin +- does not preserve custody continuity +- does not verify correctness +- does not witness or attest +- does not judge validity +- does not terminate lifecycle --- -## Behavior +## Behavioral Contract -* Consumes temporal declarations exclusively via `stdin` -* Refuses silent invocation -* Requires an explicit ISO‑8601 UTC timestamp -* Allows sealing exactly once per repository -* Appends a single irreversible record to a temporal ledger -* Emits exactly one verdict -* Exits immediately after evaluation +Invocation model: -No retries. -No flags. -No configuration. - ---- +executable: kairoclasp +package: @verifrax/kairoclasp +runtime: CLI-first -## Verdicts +The primitive operates on an artifact whose origin and custody surfaces are already fixed. -KAIROCLASP emits exactly one of the following: +If temporal boundary conditions are absent, ambiguous, or non-deterministic, KAIROCLASP must not fabricate a stable time state. -* `CLASPED` — the declared moment is valid and has been irreversibly locked -* `EXPIRED` — a temporal clasp already exists and cannot be repeated -* `DENIED` — the time declaration is missing, malformed, ambiguous, or refers to a future moment +Exit codes: -The verdict concerns **temporal validity**, not correctness. +0 — time boundary fixed successfully +non-zero — invocation failed or contract violated --- ## Usage -KAIROCLASP is never run casually. -It is invoked only when timing matters irreversibly. +Install: -```sh - | ./kairoclasp.sh -``` +npm install -g @verifrax/kairoclasp -### Example +Execute: -```sh -echo "2026-01-18T11:30:00Z" | ./kairoclasp.sh -``` +kairoclasp artifact.json -If the moment is valid and unclasped: +stdin example: -```text -CLASPED -``` - -If a clasp already exists: - -```text -EXPIRED -``` - -If the timestamp is invalid or in the future: - -```text -DENIED -``` +cat artifact.json | kairoclasp --- -## Contract +## Determinism Guarantees -Once time is clasped: +For identical canonical input, KAIROCLASP must produce identical time-boundary output. -* The moment cannot be reused -* Later reinterpretation is invalid -* Deadlines become enforceable facts -* Disputes shift from timing to responsibility +No hidden environmental state may influence the result. -KAIROCLASP guarantees **no temporal ambiguity**. +KAIROCLASP assumes an already-bounded origin and custody surface and does not substitute for those earlier primitives or for downstream verification and judgment. --- -## Relationship to Other Artifacts +## Security Model -* **GUILLOTINE** — executes -* **IRREVOCULL** — judges -* **ATTESTORIUM** — witnesses -* **VALIDEXOR** — verifies -* **LIMENWARD** — guards transitions -* **ORIGINSEAL** — seals origin -* **ARCHICUSTOS** — guards custody -* **KAIROCLASP** — locks time +KAIROCLASP protects against ambiguity in temporal boundary assignment. -Each artifact covers exactly one irreversible dimension. -None overlap. +Its security value is to prevent silent drift in the time-bound interpretation of an artifact after origin and custody are fixed. It does not guarantee correctness, attestation, or irreversible judgment. --- -## Warning - -Time creates accountability. +## Relationship to Other Primitives -Invoking KAIROCLASP declares: +Canonical primitive order: -* "This moment matters" -* "Delay is no longer acceptable" -* "I accept the consequences of now" +1 originseal +2 archicustos +3 kairoclasp +4 limenward +5 validexor +6 attestorium +7 irrevocull +8 guillotine -There is no appeal after time. +Repositories: ---- - -## About - -KAIROCLASP is a minimal, deterministic temporal finality primitive for irreversible systems. - -If timing does not matter, do not use it. -If it does, nothing else is sufficient. +https://github.com/Verifrax/originseal +https://github.com/Verifrax/archicustos +https://github.com/Verifrax/kairoclasp +https://github.com/Verifrax/limenward +https://github.com/Verifrax/validexor +https://github.com/Verifrax/attestorium +https://github.com/Verifrax/irrevocull +https://github.com/Verifrax/guillotine --- -## Responsibility Boundary +## Installation -This software is provided under the MIT License. +npm install -g @verifrax/kairoclasp -The MIT License permits use, copying, modification, and redistribution of the code, but it does not provide assurance, certification, audit defense, operational guarantees, or liability coverage. +command -v kairoclasp -Use of this software in environments where failure, compliance, legal exposure, or irreversible decisions matter requires an accountable party. +Repository: +- GitHub: https://github.com/Verifrax/kairoclasp +- Package: @verifrax/kairoclasp +- Binary: kairoclasp -The original maintainer is available for assurance, adaptation, and responsibility when such accountability is required. +--- -Contact: contact@speedkit.eu +## License -Authoritative signed records are issued separately and are not produced by the software. +MIT diff --git a/package.json b/package.json new file mode 100644 index 0000000..0e1c004 --- /dev/null +++ b/package.json @@ -0,0 +1,26 @@ +{ + "name": "@verifrax/kairoclasp", + "version": "0.1.0", + "description": "Verifrax primitive — time boundary primitive for deterministic irreversible systems.", + "license": "MIT", + "repository": { + "type": "git", + "url": "git+https://github.com/Verifrax/kairoclasp.git" + }, + "homepage": "https://github.com/Verifrax/kairoclasp#readme", + "bugs": { + "url": "https://github.com/Verifrax/kairoclasp/issues" + }, + "bin": { + "kairoclasp": "kairoclasp.sh" + }, + "files": [ + "kairoclasp.sh", + "README.md", + "LICENSE", + "VERSION" + ], + "publishConfig": { + "access": "public" + } +}