A local workbook of what happened, what followed, and who owns each row.
Author: Aziel Eliab
python -m venv .venv && source .venv/bin/activate && pip install -e .employeelock ui- Open http://127.0.0.1:8871/ and add a row.
Check the install with employeelock doctor. Add --json when a program should read the result.
Version: 0.1.0 · License: Apache-2.0 · Date: 2 September 2026
Spec: employeelock-v0
Paper: EL-WP-0.1 — docs/whitepaper.md · DOI 10.5281/zenodo.22257493
Name the event. Name who owns the record. Keep leftover blame blank if it is blank. Chain the row.
Forks are welcome and always allowed.
THIS IS: workbook (COVER, LOG, EVIDENCE, CHAIN, OWNERS, DASH, LISTS) + CLI (init/append/import/verify) + linear hash chain + countermeasure against unowned/renamed rows.
THIS IS NOT: UL or a BAL issue paper; FoldLock; TemporalLock (borrows ethic, different product); court filing / exhibit stickerer / counsel; truth score / consensus / token; remote uploader / anonymous relay; a charge sheet against a named living person.
Demo rows are generic format proof (records desk / unnamed prior process), not case facts. Do not put a legal name or home location in the template.
curl -fsSL https://employeelock-download-tracker.vibelock.workers.dev/install.sh | bashThe script curls the counted tarball from this project's Worker
(/download, User-Agent Mozilla/5.0), extracts, makes a venv, and
pip install -e .. Then run employeelock ui.
Same three steps as Start. For tests, install the dev extra: pip install -e ".[dev]".
The page at http://127.0.0.1:8871/ stays on this computer. No CDN, no telemetry.
This is the counted download. GitHub releases exist as a mirror. The Worker serves the gzip itself (HTTP 200, no 302 to GitHub).
Direct tarball (also counted): employeelock-0.1.0.tar.gz
- Live count JSON: https://employeelock-download-tracker.vibelock.workers.dev/stats
- OpenAPI: https://employeelock-download-tracker.vibelock.workers.dev/openapi.json
- Suite mesh proxy: https://employeelock-download-tracker.vibelock.workers.dev/v1/mesh — default OFF; QNM live / locked / isolated; QNS-CD-1.0 photon QNS1 cross-map (not a Softwares-tab product; no public qnsd proxy)
- GitHub: https://github.com/AzielEliab/employeelock
Isolated counter: Worker employeelock-download-tracker, KV EMPLOYEELOCK_DOWNLOADS. Not mixed with any other product. /v1 does not increment downloads.
python3 employeelock.py init WORKBOOK.xlsx
python3 employeelock.py append WORKBOOK.xlsx \
--event TEXT --result TEXT --blame TEXT --owner TEXT \
--short TEXT --long TEXT [--renamed-from TEXT] [--cites HASH] \
[--confidence 0.7] [--observer operator] [--exhibit Y|N|maybe]
python3 employeelock.py import WORKBOOK.xlsx FILE [FILE ...] \
--event TEXT --result TEXT --blame TEXT --owner TEXT \
--short TEXT --long TEXT [--kind KIND] [--note TEXT]
python3 employeelock.py verify WORKBOOK.xlsx
employeelock ui
employeelock doctorPeople get short sentences. Programs pass --json.
verify --json prints {ok, rows, errors, missing_files, unowned}. Exit 0 if
the chain hashes. Missing files are reported and do not by themselves
fail ok.
v0 has no --copy-to. The workbook does not embed media.
Each LOG row is SHA-256 of canonical UTF-8 JSON (sorted keys, compact
separators). confidence is forced to six decimal places. Genesis
prev_hash is 64 ASCII zeros. Hashed fields only:
entry_id, timestamp, event, result, blame_placed, owner_named, renamed_from, outcome_short, outcome_long, evidence_ids, confidence, observer, file_sha256s, prev_hash
Blank owner_named → formula flag UNOWNED. Filled renamed_from →
RENAMED. Path B: the CLI appends; it never rewrites hashed cells.
A later long outcome is a new row that cites the old row_hash.
Unowned Lattice (UL / BAL) is the issue cluster this tool is built to fight. This product is not filed under UL-CAT and does not replace BAL papers.
employeelock ui prints Open http://127.0.0.1:8871/ and serves the page on this computer.
The first screen asks for the row and offers Add row. Verify and Doctor sit beside it. New workbook, sample rows, file import, export, and JSON live under Advanced. About holds the longer scope note. Counts show events, UNOWNED, RENAMED, and chain OK. The page follows the system light or dark setting.
Flutter sources: mobile/. Application id
com.azieeliab.employeelock. Offline. No analytics. Light and dark follow the system, with a gold focus. The phone app lives in this repo.
cd mobile
flutter create --org com.azieeliab --project-name employeelock .
flutter pub get
flutter runThe Worker hosts a stateless preview API. It never stores xlsx.
GET /v1/healthGET /v1/skill— skill markdown (not counted)GET /v1/mesh— PROXY suite mesh status (default OFF; QNM live|locked|isolated; QNS-CD-1.0 photon QNS1 packet transfer cross-map)POST /v1/append-preview— hash a proposed row without writing a filePOST /v1/verify-canonical— recompute hash of posted canonical- OpenAPI:
/openapi.json - MCP: catalog
https://aziel-runtime.vibelock.workers.dev/mcpand this Worker/mcp. Suite mesh/v1/mesh/*PROXY viaAZIEL_RUNTIME(default OFF; QNM-BUILD-1.0 live|locked|isolated; QNS-CD-1.0 photon QNS1 packet transfer cross-map; no Node Gate; no public qnsd proxy). Catalog MCPmesh_*+ FragGateslug=mesh. Hub cite / Worker mesh cross-map only — not a Softwares-tab product. Local qnsd is coded in qnm-node. Runtime cites + catalog field live in aziel-runtime. AZInterface has pair custody.
Banner: not a court, not UL, not a truth score.
Works with ChatGPT (GPT Actions / OpenAI), Grok (xAI), Venice, Claude (Anthropic), Cursor (MCP), Glama (MCP), Perplexity, Microsoft Copilot / Bing, Google Gemini / Vertex, Mistral, Meta AI, Apple Intelligence surfaces, Amazon Q tooling, DuckAssist, You.com, Cohere, and other MCP/OpenAPI-capable assistants.
Import OpenAPI or MCP. This repo also ships SKILL.md so an assistant can log or verify a row.
- Skill (repo):
SKILL.md - Skill (live markdown, not counted): GET /v1/skill
- Worker OpenAPI: https://employeelock-download-tracker.vibelock.workers.dev/openapi.json
- Catalog OpenAPI: https://aziel-runtime.vibelock.workers.dev/openapi.json
- MCP:
POST https://aziel-runtime.vibelock.workers.dev/mcp
Send User-Agent: Mozilla/5.0. Hosted never stores xlsx. Kid-plain fields: event, result, blame, owner, short, long.
Counted download (same Worker, gzip HTTP 200, no 302): employeelock-0.1.0.tar.gz
See docs/whitepaper.md (EL-WP-0.1).
- Paper (PDF): EmployeeLock_EL-WP-0.1.pdf
- DOI: https://doi.org/10.5281/zenodo.22257493
- Zenodo record: https://zenodo.org/records/22257493
- License: Apache-2.0. Creator: Eliab, Aziel.
| Sibling | Boundary |
|---|---|
| FoldLock | Compress / decompress. EmployeeLock may index a .fld as a file. It does not fold. |
| TemporalLock | Time receipts. EmployeeLock is a row chain about events and owners. |
| ForgeReceipts | Packaging. A verified workbook can be a payload. |
| GodLock | Public ABAD node. Not this sheet. |
| UL / BAL | Issue papers stay issue papers. EmployeeLock cites the cluster and refuses to be filed as UL. |
python -m pytest -qCovers genesis hash, second-row link, blank owner → UNOWNED, renamed_from → RENAMED, verify catching an edited event, missing file reported, import hashing file bytes.
Works with ChatGPT (GPT Actions / OpenAI), Grok (xAI), Venice, Claude (Anthropic), Cursor (MCP), Glama (MCP), Perplexity, Microsoft Copilot / Bing, Google Gemini / Vertex, Mistral, Meta AI, Apple Intelligence surfaces, Amazon Q tooling, DuckAssist, You.com, Cohere, and other MCP/OpenAPI-capable assistants.
Catalog OpenAPI: https://aziel-runtime.vibelock.workers.dev/openapi.json
Catalog MCP: POST https://aziel-runtime.vibelock.workers.dev/mcp
This Worker skill: https://employeelock-download-tracker.vibelock.workers.dev/v1/skill
This Worker OpenAPI: https://employeelock-download-tracker.vibelock.workers.dev/openapi.json
- ChatGPT (GPT Actions / OpenAI) — GPT Actions (no auth): import the catalog or Worker OpenAPI.
- Grok (xAI) — custom tool / OpenAPI / MCP remote.
- Venice — HTTP tools / OpenAPI.
- Claude (Anthropic) — MCP or OpenAPI tools.
- Cursor (MCP) and Glama (MCP) — catalog MCP.
- Perplexity, Microsoft Copilot / Bing, Google Gemini / Vertex, Mistral, Meta AI, Apple Intelligence surfaces, Amazon Q tooling, DuckAssist, You.com, Cohere, and other MCP/OpenAPI-capable assistants — same OpenAPI or MCP endpoint.
Always send User-Agent: Mozilla/5.0.
Aziel Eliab. EmployeeLock. https://github.com/AzielEliab/employeelock. https://employeelock-download-tracker.vibelock.workers.dev. https://doi.org/10.5281/zenodo.22257493.
- Catalog: https://aziel-runtime.vibelock.workers.dev/
- Worker homepage: https://employeelock-download-tracker.vibelock.workers.dev/
- Counted download (gzip HTTP 200, no 302): https://employeelock-download-tracker.vibelock.workers.dev/download
- GitHub: https://github.com/AzielEliab/employeelock
- Citation JSON: https://employeelock-download-tracker.vibelock.workers.dev/cite.json
- DOI: https://doi.org/10.5281/zenodo.22257493