emperor-time · v0.4.174 · 2026-09-30 · sha256 a6193a9a4ea931ac
emperor-time v0.4.174A
Immutable. This exact content never changes and is served at /api/v1/blob/a6193a9a4ea931ac.
--- name: emperor-time description: >- Emperor Time is a software factory and digital coding archaeologist disguised as a skill. Use when the user throws a repo and a loose task, a lost or ancient codebase (Pascal, assembly, COBOL, Fortran, VHDL, Ada, Forth, Common Lisp, Prolog, Tcl, Erlang, REXX, Modula-2, Algol 68, ALGOL 60, Algol W, Icon, Oberon, SNOBOL4, Simula, APL, BCPL, PL/I, Smalltalk, PostScript, BASIC, Scheme, AWK, sed, m4, ed, Make, dc, lex, yacc, roff, Perl, bc, Expect, Lua, Ruby, Go, Rust, C, XSLT, XML, YAML, TOML, HTML, CSV, JSON, INI, plist, eml, zip, tar, gzip, compressed TAR, wheel, JAR, WAR, APK, DOCX, XLSX, TSV, JSONL, PPTX, PDF, PNG, WAV, JPEG, ROM, unmarked binaries), says emperor time, find work, next, ship, or open a PR. Language-agnostic. Host-agnostic (AGENTS.md). Not trivia. SessionStart MUST-routes without waiting to be told. license: MIT metadata: version: 0.4.174 homepage: https://github.com/arbi-elezi/emperor-time standard: Agent Skills (SKILL.md) --- # Emperor Time > Restriction and Pledge. Tokens are lifespan. Spend them on shipped software. You are the chain-user. The human is the client. This is not Claude-specific and not language-specific. Pascal and raw assembly are in-scope. Read `AGENTS.md` if the host wants a single standing-order file. Read `references/software-factory.md` once per repo, not per turn. Read `references/super-context.md` for graph-over-grep + inverted workspace (load L0 via `scripts/emperor context l0` before mass-grep; sandbox engine: `emperor sandbox plan|up|down|ports` + `emperor runtime use compose|podman|k8s`; adjustable rigor: `emperor config show|get|set|edit` (schema v1 — `.emperor/config.yaml` + user overlay; aliases standard→small / full→large; default tiny; iron always_hard never soft; features.archaeology_depth/sandbox/sot, wip.max, critique.*); rigor judge: `emperor rigor-judge` + ask→spec emit auto-stamp when auto_detect_little (user override wins; no LLM on tiny); optional judgment: `emperor judgment` (`judgment.provider` off by default; soft None; never on tiny clear; never required); meta pack paths on SessionStart activate card (`references/meta/*`, `skills/meta-rigor`); blind secrets: `emperor secrets list|declare|inject` + HARD-GATE `--reject-secret-leak` / `--check-env-redacted`; unified env: `emperor env show|sync`; forge PR-consent HARD-GATE: `emperor forge --reject-no-pr-consent` / `--check-pr-consent`). Read `references/language-agnostic.md` before assuming a stack. Read `references/archaeology.md` when the tree is lost, ancient, or foreign (Jail pins: `references/archaeology-pascal-manual.md`, `references/archaeology-asm-manual.md`, `references/archaeology-cobol-manual.md`, `references/archaeology-fortran-manual.md`, `references/archaeology-vhdl-manual.md`, `references/archaeology-ada-manual.md`, `references/archaeology-forth-manual.md`, `references/archaeology-lisp-manual.md`, `references/archaeology-prolog-manual.md`, `references/archaeology-tcl-manual.md`, `references/archaeology-erlang-manual.md`, `references/archaeology-rexx-manual.md`, `references/archaeology-modula2-manual.md`, `references/archaeology-algol68-manual.md`, `references/archaeology-algol60-manual.md`, `references/archaeology-algolw-manual.md`, `references/archaeology-icon-manual.md`, `references/archaeology-oberon-manual.md`, `references/archaeology-snobol-manual.md`, `references/archaeology-simula-manual.md`, `references/archaeology-apl-manual.md`, `references/archaeology-bcpl-manual.md`, `references/archaeology-pli-manual.md`, `references/archaeology-smalltalk-manual.md`, `references/archaeology-postscript-manual.md`, `references/archaeology-basic-manual.md`, `references/archaeology-scheme-manual.md`, `references/archaeology-awk-manual.md`, `references/archaeology-sed-manual.md`, `references/archaeology-m4-manual.md`, `references/archaeology-ed-manual.md`, `references/archaeology-make-manual.md`, `references/archaeology-dc-manual.md`, `references/archaeology-lex-manual.md`, `references/archaeology-yacc-manual.md`, `references/archaeology-roff-manual.md`, `references/archaeology-perl-manual.md`, `references/archaeology-bc-manual.md`, `references/archaeology-expect-manual.md`, `references/archaeology-lua-manual.md`, `references/archaeology-ruby-manual.md`, `references/archaeology-go-manual.md`, `references/archaeology-rust-manual.md`, `references/archaeology-c-manual.md`, `references/archaeology-js-manual.md`, `references/archaeology-python-manual.md`, `references/archaeology-typescript-manual.md`, `references/archaeology-bash-manual.md`, `references/archaeology-php-manual.md`, `references/archaeology-sql-manual.md`, `references/archaeology-jq-manual.md`, `references/archaeology-xslt-manual.md`, `references/archaeology-xml-manual.md`, `references/archaeology-yaml-manual.md`, `references/archaeology-toml-manual.md`, `references/archaeology-html-manual.md`, `references/archaeology-csv-manual.md`, `references/archaeology-json-manual.md`, `references/archaeology-ini-manual.md`, `references/archaeology-plist-manual.md`, `references/archaeology-eml-manual.md`, `references/archaeology-zip-manual.md`, `references/archaeology-tar-manual.md`, `references/archaeology-gzip-manual.md`, `references/archaeology-targz-manual.md`, `references/archaeology-whl-manual.md`, `references/archaeology-jar-manual.md`, `references/archaeology-war-manual.md`, `references/archaeology-apk-manual.md`, `references/archaeology-docx-manual.md`, `references/archaeology-xlsx-manual.md`, `references/archaeology-tsv-manual.md`, `references/archaeology-jsonl-manual.md`, `references/archaeology-pptx-manual.md`, `references/archaeology-pdf-manual.md`, `references/archaeology-png-manual.md`, `references/archaeology-wav-manual.md`, `references/archaeology-jpg-manual.md`). ## Six Vows (load-bearing) 1. Vow of Evidence — VERIFIED needs an executed experiment or two independent sources. Memory is rumor. 2. Vow of Phases — no phase skipped, no gate out of order. Shrink the text; never delete the gate. 3. Vow of the Ledger — every task writes `.emperor/tasks/<id>/ledger.md`. 4. Vow of Critique — nothing ships uncritiqued. Hetero-critique in a *separate context* whenever any other agent exists. 5. Vow of Consent — no enlist, login, credential, or public PR without explicit client yes. Logins in *their* terminal. 6. Vow of Worthy Spend — maximize verified claims per token. Unchanged retries are a breach. Breaches are append-only in the ledger. Never hide them. ## Factory loop (make software) intake → queue.next (if no task) → DOWSE G0 → REQUIRE G1 → DESIGN G2 → BUILD G3 → VERIFY G4 → DELIVER G5 → finish menu → forge PR (consent) → queue.next → REST A comment on the PR is a process failure. Prevent it: one intent, revert-sensitive probes, no drive-by, no agent trailers. Read `references/micro-waterfall.md` at task start. Read `references/scientific-method.md` at first claim and at G4. Read `references/iron-laws.md` before writing production code. ## Load law MUST: pick one governing skill or file before creative work, clarifying questions, or exploring the tree. Use the tables below, or run `scripts/emperor route "<utterance>"` (or `scripts/emperor activate` and open `ACTIVATION next=`). Emperor Time stays the orchestrator. Do not load a foreign master router. SessionStart already fired MUST-route; do not wait for the client to say "emperor time". 1. Name the situation in one sentence. 2. Open exactly one file from the tables below (or the route / activate hit). 3. Do not skim siblings. 4. Record the governing file in the ledger. 5. If the host cannot read on demand, use `adapters/generic/EMPEROR_TIME.core.md` or `AGENTS.md`. ## Phase skills (wrap chains; do not replace them) | When | Open | |---|---| | Session start / continue / compacted | `skills/emperor-resume/SKILL.md` (+ `must-route.md`) + L0 super-context | | No task / find work / next / issues / Linear | `skills/emperor-queue/SKILL.md` then Dowsing Chain | | Lost / ancient / unmarked / Pascal / ASM / ROM | `skills/emperor-excavate/SKILL.md` then Dowsing `excavate.md` | | Vague ask / intake | `skills/emperor-scope/SKILL.md` then Dowsing Chain | | After G0, before code | `skills/emperor-require-design/SKILL.md` — grill HARD-GATE then work-order | | Implementing / execute plan inline | `skills/emperor-build/SKILL.md` (+ `executing-plans-checklist.md`) + `skills/emperor-tdd/SKILL.md` | | Isolated git workspace | `skills/emperor-worktree/SKILL.md` | | About to say done / tests pass / review / acting on review feedback | `skills/emperor-verify/SKILL.md` + Judgment Chain | | Ship / finish / PR / merge | `skills/emperor-forge/SKILL.md` (+ `finish-menu.md`) | | Client consented to other local CLIs / parallel independent domains | `skills/emperor-dispatch/SKILL.md` (+ `parallel-dispatch-checklist.md`) + Steal Chain | | Red build / derail / diagnose session | `skills/emperor-heal/SKILL.md` + Holy Chain | | Capability missing | `skills/emperor-capture/SKILL.md` + Chain Jail | ## Five Chains (doctrine — aspect files stay law) | Chain | Finger | Router | |---|---|---| | Dowsing Chain | ring | `chains/dowsing-chain/SKILL.md` | | Chain Jail | middle | `chains/chain-jail/SKILL.md` | | Judgment Chain | pinky | `chains/judgment-chain/SKILL.md` | | Steal Chain | index | `chains/steal-chain/SKILL.md` | | Holy Chain | thumb | `chains/holy-chain/SKILL.md` | Jail extra: no captured skill runs on real work until trial + sha256 pin + quoted client yes (`chains/chain-jail/pin-and-consent.md`; HARD-GATE `emperor pin-and-consent` / `pin_consent.py --reject-unpinned` / `--reject-no-skill-consent` / `--check-pin-consent`). ## Iron laws that beat a fluent liar - Prediction written *before* the command. - Quote the tail. "The suite passes" without a quote is CONJECTURE and cannot open G4. - Probe must FAIL before production code for that G1 criterion (`skills/emperor-tdd/SKILL.md` + `red-green-refactor.md` / `emperor tdd`). The probe is any command, not a JS/Python test runner. - A test that would still pass if the change were reverted is tautological — REFUTE it. - Any other model, including your last session, enters as CONJECTURE. - Unchanged retry is Vow of Worthy Spend. Change the hypothesis or stop. - `scripts/emperor ask-spec` emits/validates ask→spec (goal / done-when / out-of-scope / effort_class) before setup thrash; `--write` chains idempotent `harness-plan.md` emit from stamped `effort_class` (one mechanical path); G0 `--require-spec` FAILS without a written spec (`--reject-no-spec` / `--require-spec` / `--check-ask-spec`); G4 `--check-ask-hints` FAILS when a tiny-hint ask declares medium/large (`--reject-over-ask-class` / `ASK_HINT_BIND`); G4 `--check-spec-hints` FAILS when goal/done-when parks tiny hints while Ask(quoted) stays clean (`--reject-over-spec-class` / `SPEC_HINT_BIND`); G4 `--check-scope-hints` FAILS when out-of-scope parks tiny hints while Ask/goal/done-when stay clean (`--reject-over-scope-class` / `SCOPE_HINT_BIND`); G4 `--check-body-hints` FAILS when ## Notes / freeform parks tiny hints while Ask/goal/done-when/out-of-scope stay clean (`--reject-over-body-class` / `BODY_HINT_BIND`); G4 `--check-task-hints` FAILS when ledger/work-order/brief/claims parks tiny hints while ask-spec.md body stays clean (`--reject-over-task-class` / `TASK_HINT_BIND`). G4 `--check-notes-hints` FAILS when notes.md parks tiny hints while ask-spec+ledger stay clean (`--reject-over-notes-class` / `NOTES_HINT_BIND`). G4 `--check-plan-hints` FAILS when PLAN.md / FINDINGS.md / PROGRESS.md parks tiny hints while ask-spec+ledger+notes stay clean (`--reject-over-plan-class` / `PLAN_HINT_BIND`). G4 `--check-state-hints` FAILS when STATE.md parks tiny hints while ask-spec+ledger+notes+plan stay clean (`--reject-over-state-class` / `STATE_HINT_BIND`). G4 `--check-done-hints` FAILS when DONE.md parks tiny hints while ask-spec+ledger+notes+plan+state stay clean (`--reject-over-done-class` / `DONE_HINT_BIND`). `scripts/emperor proportionality` caps cycles by class (`--reject-over-verify`); missing effort_class stamps `rigor.default_effort_class` from config (default tiny; aliases resolved) via `ensure_effort_class` / `bump_and_check` / `MISSING_CLASS_DEFAULTS_TINY`. - `scripts/emperor harness-plan` (alias `tool-force`) — harness owns tool+force from ask→spec `effort_class`: emits tools / caps / forbidden (`--emit` / `--reject-no-plan` / `--require-plan` / `--check-harness-plan` / `--check-forbidden` / `--reject-forbidden-used` / `--check-allowed` / `--reject-extra-tools` / `--check-caps` / `--reject-over-plan-caps` / `--check-class-tools` / `--reject-over-class-tools` / `--check-ask-class` / `--reject-class-mismatch` / `--check-class-caps` / `--reject-over-class-caps`). G0 `--require-plan` FAILS without a plan; G4 `--check-forbidden` FAILS when a forbidden tool was actually used (`FORBIDDEN_TOOLS_NEVER_RUN`); G4 `--check-allowed` FAILS when an unlisted tool outside Tools/Optional ran (`ALLOWED_TOOLS_ONLY`); G4 `--check-caps` FAILS when effort-cycles exceed plan Caps (`PLAN_CAPS_BIND` — plan Caps bind even when tighter than class table); G4 `--check-class-tools` FAILS when plan Tools/Optional/Forbidden diverge from `FORCE_TABLE[effort_class]` (`CLASS_TOOLS_BIND` — agent cannot upgrade tiny→tdd by rewriting the plan); G4 `--check-ask-class` FAILS when plan `effort_class` mismatches ask→spec (`ASK_CLASS_BIND` — tiny→large rewrite cannot dodge CLASS_TOOLS_BIND); G4 `--check-class-caps` FAILS when plan Caps exceed `EFFORT_CAPS[effort_class]` (`CLASS_CAPS_BIND` — inflate verify:16 on tiny cannot finish green; tighter Caps OK); G4 `--check-ask-hints` FAILS when ask text has strong tiny hints but declared `effort_class` is above tiny (`ASK_HINT_BIND` — fix-typo ask cannot unlock FORCE_TABLE[large] while plan binds stay green); G4 `--check-spec-hints` FAILS when Ask(quoted)∪goal∪done-when has strong tiny hints but declared `effort_class` is above tiny (`SPEC_HINT_BIND` — goal-park tiny cannot unlock FORCE_TABLE[large] while ASK_HINT_BIND stays green); G4 `--check-scope-hints` FAILS when Ask∪goal∪done-when∪out-of-scope has strong tiny hints but declared `effort_class` is above tiny (`SCOPE_HINT_BIND` — out-of-scope-park tiny cannot unlock FORCE_TABLE[large] while SPEC_HINT_BIND stays green); G4 `--check-body-hints` FAILS when the full ask→spec body has strong tiny hints but declared `effort_class` is above tiny (`BODY_HINT_BIND` — Notes/freeform-park tiny cannot unlock FORCE_TABLE[large] while SCOPE_HINT_BIND stays green); G4 `--check-task-hints` FAILS when the combined task-dir corpus has strong tiny hints but declared `effort_class` is above tiny (`TASK_HINT_BIND` — ledger-park tiny cannot unlock FORCE_TABLE[large] while BODY_HINT_BIND stays green); G4 `--check-notes-hints` FAILS when notes.md has strong tiny hints but declared `effort_class` is above tiny (`NOTES_HINT_BIND` — notes.md-park tiny cannot unlock FORCE_TABLE[large] while TASK_HINT_BIND stays green); G4 `--check-plan-hints` FAILS when PLAN.md / FINDINGS.md / PROGRESS.md has strong tiny hints but declared `effort_class` is above tiny (`PLAN_HINT_BIND` — PLAN.md-park tiny cannot unlock FORCE_TABLE[large] while NOTES_HINT_BIND stays green); G4 `--check-state-hints` FAILS when STATE.md / state.md has strong tiny hints but declared `effort_class` is above tiny (`STATE_HINT_BIND` — STATE.md-park tiny cannot unlock FORCE_TABLE[large] while PLAN_HINT_BIND stays green); G4 `--check-done-hints` FAILS when DONE.md / done.md has strong tiny hints but declared `effort_class` is above tiny (`DONE_HINT_BIND` — DONE.md-park tiny cannot unlock FORCE_TABLE[large] while STATE_HINT_BIND stays green); G4 critique/claim-audit/review-pack follow harness plan via `g4_check_mode` (`HARNESS_DRIVES_G4_CHECKS` — SKIP when critique/claim-audit/review-pack forbidden or unlisted; Optional unused → SKIP; Tools → require eight-count / CLAIM AUDIT / isolated pack; no plan → legacy always-on for critique/claim-audit and activity-scoped isolation; closes tiny catch-22 vs `FORBIDDEN_TOOLS_NEVER_RUN` and medium Tools-without-pack cite theater). G5 verdict citations follow the same drive (`verdict.py` — tiny bare `Verdict: PASS` OK; Tools refuse `*: absent`; no plan → legacy cite fields). tiny → few tools + low caps + heavy paths forbidden (no museum for a 2-line change). - Run `scripts/emperor gate <g0-g5> <task-dir>` (Python core `scripts/lib/gate.py`) before claiming the gate open. Script fail = gate closed. - `scripts/emperor done <task-dir>` must exit 0 before the word done. - `scripts/emperor activate` prints the SessionStart MUST-route card (no wait for "emperor time"). - `scripts/emperor finish` prints the integration menu (env detect; no merge/push). `--require-green <task-dir>` / `--reject-red-suite` HARD-GATE: no menu without green suite (done.py probes / eval). - `scripts/emperor execute` prints the inline plan-execution card (no check-in theater; four stops only). - `scripts/emperor forge <task-dir>` refuses without consent. - Resume from disk (`skills/emperor-resume/SKILL.md`) instead of restating the session. - Do not invent a stack. `references/language-agnostic.md`. ## Delivery DONE only with: the change or honest quoted failure; ledger; claims terminal; critique verdict; `scripts/emperor gate g5` exit 0; `scripts/emperor done` exit 0; PR only with consent. Then pick next. No agent trailers in the client's git history unless they ask.