Track and surface sub-agent dispatch calibration ratios. Extract from JSONL transcript or read existing ledger. Per-agent clean/blocked/errored/partial trends.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Canonical seven-leg nightly close-parity protocol. Eleven independently evidenced checkpoints cover synthesis, reconciliation, context hygiene, sweeps, heat, digest, runtime health, cognitive state, ledger capture/review, and vault sync.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
실행 점수 미검증
설치 방법 보기설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.
NIGHTLY_LOCAL_PROTOCOL: close-parity-v2-7L-11C
/nightly-close-parity is the public fire verb for this seven-leg framework. It first proves that this
project-local protocol is the one being loaded. Do not fall back to another
same-name skill or an installed cache.
The seven legs contain eleven independently recorded checkpoints:
| Leg | Checkpoints |
|---|---|
| A - Dream | dream |
| B - Reconcile and context | reconcile, context-hygiene |
| C - Sweep and heat | sweep-now, heat-index |
| D - Digest | digest |
| E - Runtime health | system-check, cognitive-runtime |
| F - Measurement ledgers | ledger-capture, ledger-review |
| G - Vault sync | vault-sync |
Every checkpoint is recorded through daemons/nightly-pass.mjs. A failed
checkpoint immediately writes a named event to the append-only
NIGHTLY_ALERTS.jsonl ledger, writes the same bounded alert to stderr, and
leaves it active for the next SessionStart hook. Local delivery is the complete
default channel; no external coordination service is required.
Run from the aigent-OS root. The normal operational memory root is
vault/memory; the daemon also supports the documented memory fallback used
by minimal forks and honors AIGENT_STATE_HOME_DIR for isolated probes.
One time zone is used for pass dating, alert scopes, ledger review, and
freshness. Configure it with AIGENT_NIGHTLY_TIME_ZONE; the documented default
is America/Los_Angeles. Configure the post-fire cutoff with
AIGENT_NIGHTLY_CUTOFF_HOUR; the default is 4. A CLI --time-zone or
--cutoff-hour override must be threaded through the whole invocation. The
controller stores both values in pass state so a later checkpoint cannot drift
to a different date policy.
Tests and scheduled invocations must set the root, state-home, time zone, and cutoff explicitly. Ambient values must never decide which memory tree a proof mutates.
Prove the route, then begin:
node daemons/nightly-route-check.mjs --root <aigent-root>
node daemons/nightly-pass.mjs begin --root <aigent-root> [--date YYYY-MM-DD] [--replace]
Begin requires both canonical inputs to exist and be readable:
vault/memory/MEMORY_CANDIDATES.mdvault/memory/runtime/NIGHTLY_CAPTURE_CANDIDATES.jsonlThe exact prefix may be memory/ only when the root uses the documented
fallback layout. Missing input is a failed invocation, never an empty or skip
claim.
--replace is recovery-only. It abandons an interrupted status=running pass
with a named alert before starting a new pass. It never overwrites completed
evidence.
After each checkpoint:
node daemons/nightly-pass.mjs record --root <aigent-root> \
--checkpoint <name> --status <pass|skipped|fail> --exit-code <integer> \
--artifact <file:PATH|git:FULL-40-CHAR-SHA|stdout:CHECKPOINT@exit=N|none:ALLOWLISTED-REASON> \
--detail "<bounded factual detail>"
A git: artifact must be the full 40-character commit id, copied verbatim
from git rev-parse HEAD; a short id is refused.
Any nonzero exit, missing/stale/noncanonical artifact, illegal skip, or explicit
failure becomes fail and raises
NIGHTLY:LEG_FAIL:<checkpoint>. A duplicate record is refused, preserves the
first evidence, raises NIGHTLY:DUPLICATE_CHECKPOINT:<checkpoint>, and makes
finish red. Only sweep-now and digest may be skipped under their exact
predicates. Continue collecting other safe evidence after a failure.
Finish:
node daemons/nightly-pass.mjs finish --root <aigent-root>
A missing checkpoint raises NIGHTLY:INCOMPLETE_PASS. The terminal block is
green only when all eleven checkpoint rows are present once, every validator
receipt is nonempty, no row failed, and terminal status: PASS is written.
Terminal status: FAIL is always red.
The controller captures pre-fire Dream, cognitive, and ledger snapshots at
begin. It independently re-runs each known postcondition and stores bounded
literal output in the checkpoint's validator field.
| Checkpoint | Accepted green artifact |
|---|---|
| dream | canonical file: path to DREAM_LOG.md |
| reconcile | stdout:reconcile@exit=0 |
| context-hygiene | stdout:context-hygiene@exit=0 |
| sweep-now | canonical file: path to SWEEP_LOG.md |
| heat-index | canonical file: path to HEAT_INDEX.json |
| digest | canonical MEMORY_CANDIDATES.md file, or none:no-staged-candidates when re-parsing proves zero |
| system-check | stdout:system-check@exit=0 |
| cognitive-runtime | stdout:cognitive-runtime@exit=0 |
| ledger-capture | canonical candidate file/stdout, or none:no-ledger-candidates when the begin snapshot proves no append |
| ledger-review | stdout:ledger-review@exit=0 |
| vault-sync | current git:<HEAD>, or none:nothing-to-commit after a clean-tree predicate |
A checkpoint may not certify itself by echoing an artifact string. File paths
must remain inside the selected root and resolve to the canonical product.
Stdout receipts cause the deterministic daemon to run again. none: reasons
are allowlisted and reproduced from live state.
proposed; only an exact operator decision can
approve them.Execute skills/dream/SKILL.md directly. The leg runs on every fire and appends
one canonical dated synthesis, including an explicit zero-lesson result when
there is no new signal.
PASS requires:
status: proposed;Record the canonical Dream file. The controller runs
DREAM_CONTRACT PASS; serialization errors, self-approval, legacy paths, or a
missing dated entry are failures.
reconcileRun:
node daemons/nightly-reconcile.mjs --root <aigent-root> --as-of <pass-date>
The daemon computes an exact seven-calendar-day attention window from explicit
Tier-1 intended shares. Missing intended shares return the named failure
intended-share-input-absent; the leg must not invent percentages or call the
absence a skip. Record stdout:reconcile@exit=<literal-exit>.
context-hygieneExecute skills/context-hygiene/SKILL.md. It archives old dated Session Log
blocks before removal, keeps the documented five-entry newest-first live
window, and requires one operating-mode heading plus one to five priorities
under Tier 1-3 headings. It refuses ambiguous content and uses pre-write
SHA-256 compare-and-swap.
Run the read-only checker after any edit:
node daemons/nightly-context-hygiene.mjs --root <aigent-root>
Only CONTEXT_HYGIENE PASS is green. Record
stdout:context-hygiene@exit=<literal-exit>.
sweep-nowReuse skills/sweep-now/SKILL.md. Preserve its seven-day cadence:
### YYYY-MM-DD SWEEP_LOG.md header is within
cadence;A cadence skip records status=skipped exit=0 with the canonical sweep-log
file. Missing or unparseable cadence evidence is failure.
heat-indexAlways run:
node daemons/memory-heat/compute-heat.js
The daemon atomically replaces HEAT_INDEX.json. Re-read it and require valid
JSON, a current parseable generated_at, an array hot_top_20, and a
nonnegative integer total_notes. A fresh mtime with stale content is red.
Read the canonical MEMORY_CANDIDATES.md table and count exact
status=staged rows by type. Do not promote, skip, supersede, or simulate an
operator answer.
status=skipped exit=0 artifact=none:no-staged-candidates.status=pass exit=0 with the canonical file. The controller
re-parses it and records the derived count.system-checkRun bash daemons/system-check.sh from the aigent-OS root with explicit
AIGENT_ROOT, vault, time-zone, and cutoff values. Record
stdout:system-check@exit=<literal-exit>. A nonzero result is a failed
checkpoint, but later safe legs still run.
cognitive-runtimeExecute skills/cognitive-update/SKILL.md. It may touch only GOAL_STACK.json,
BELIEF_STATE.jsonl, SELF_MODEL.json, and PROCEDURES.jsonl. Zero qualifying
updates are valid when the skipped count and sources are recorded.
The controller derives append-only suffixes, id allocation, and alias deltas
from its begin snapshot. Record
stdout:cognitive-runtime@exit=<literal-exit>.
ledger-captureExecute skills/nightly-ledger-capture/SKILL.md. Local capsules, the canonical
Session Log, explicitly referenced Git evidence, and existing ledgers are
discovery inputs. A source cannot verify its own confident claim.
Judgment-bearing proposals append through the sole writer to:
vault/memory/runtime/NIGHTLY_CAPTURE_CANDIDATES.jsonl
Direct ledger mutation is legal only through an existing ledger owner after a green allowlisted executable predicate with structured arguments, observed result, literal exit, artifact, and receipt hash. Exact already-given decision outcomes use the dedicated compare-and-swap writer only when matching is unique, due, and replay-safe.
ledger-reviewRun daemons/nightly-ledger-review.mjs. Count open honesty/trust items older
than seven days, executable resolution candidates, and repeated failure
classes. Stage any judgment-bearing resolution or doctrine proposal. On Friday
the literal FRIDAY_MEASUREMENT line implements the weekly measurement.
Record stdout:ledger-review@exit=<literal-exit> even when every count is zero.
Run last using the existing daemons/vault-sync.mjs boundary and the
repository's configured authority:
git status --porcelain and name every untracked path.git:<HEAD>, or record
none:nothing-to-commit only when a fresh clean-tree check reproduces it.If durable evidence cannot be committed after finish, run
nightly-pass.mjs evidence-fail with the literal failure. After a verified
retry, run evidence-success --sha <commit> to resolve only that run's alert.
Never force-push, rewrite history, switch branches, resolve divergence, or
claim delivery without readback.
daemons/nightly-watchdog.mjs reads the actual maximum dated Nightly Log
header outside fenced examples. File mtime is ignored. It applies the same
configured time zone and post-fire cutoff, then verifies the selected block:
status: PASS;PASS terminal status.Red raises one of two distinct alerts, because "the pass never ran" and "the pass ran and failed" are different conditions and must not report as the same thing:
NIGHTLY:NO_FIRE — no block, a stale block, or a structurally incomplete
one. The pass did not complete.NIGHTLY:PASS_FAILED — a structurally complete block whose terminal
status is FAIL, naming the failed checkpoints. The pass ran every checkpoint
and reported its failures honestly. Raising this also resolves any stale
no-fire, so the ledger never carries both claims at once.Either way the result is red — a failing nightly never reads green. The active alert is visible at SessionStart even if no optional integration exists, and the boot renderer interpolates the alert code rather than filtering on it, so a new code surfaces without a change there. Green resolves only the no-fire alert.
Nightly produces lessons, Dream proposals, staged ledger candidates, and
pressure signals. skills/meta-improve-vault/SKILL.md may consume only a Dream
proposal that carries exact operator approval. The flow is:
propose -> operator review -> approved -> independently reviewed implementation
Nothing auto-applies, auto-promotes, auto-approves, or self-merges.
아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.
로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.
아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.
Track and surface sub-agent dispatch calibration ratios. Extract from JSONL transcript or read existing ledger. Per-agent clean/blocked/errored/partial trends.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Compose the AIgent's body state by reading existing signals. Lazy compute. Never polled. Reports the five pressures + recommended reflex.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Generate a structured delegation brief for any task
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Quarterly skill that walks the skill-index against the actual SKILL.md files on disk, reports drift (skills indexed that no longer exist, skills on disk that aren't enrolled, skills whose descriptions have changed since enrollment). Hardens the auto-enrollment pipeline against silent rot.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
When a [CADDY] hint fires and the principal is confused why, /caddy-explain walks the scoring transparently — which trigger matched, what points it earned, what the threshold was, what other skills were close. Pairs with the legibility thesis. Caddy's decisions should be inspectable on demand.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Enroll a skill into Caddy's index so it can be surfaced when the right prompt arrives. Use when a new skill is created, copied in, or when a skill needs updated triggers. Usage — "/caddy-enroll <path to SKILL.md>".
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.