claude-code-plugin-ref…
Explain plugin, skill, command, agent, and hook mechanics used here. Use when authoring or debugging plugins. Do not use for ops; use night-market-operations.
Sweep plugins, skills, agents, commands, and hooks after a model release or Claude Code version bump. Use when upstream ships. Do not use for routine edits; use night-market-change-control.
$ npx -y skills add athola/claude-night-market --skill night-market-model-and-harness-updates --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/night-market-model-and-harness-updatesContext preview
The summary Claude sees to decide when to auto-load this skill.
Sweep plugins, skills, agents, commands, and hooks after a model release or Claude Code version bump. Use when upstream ships. Do not use for routine edits; use night-market-change-control.
name: night-market-model-and-harness-updates description: 'Sweep plugins, skills, agents, commands, and hooks after a model release or Claude Code version bump. Use when upstream ships. Do not use for routine edits; use night-market-change-control.'
When Anthropic ships a model or Claude Code ships a version, the pins scattered through this repo rot silently. This skill runs the sweep that finds the rot, researches what actually changed, applies the updates, and records where upstream stood so the next run reports only the new delta.
The watermark is the point. Without it every audit restarts from zero and re-derives the same answer by hand. `.claude/upstream-baseline.json` holds the last recorded upstream state, and each run diffs against it.
| Trigger | Signal | |---------|--------| | Model release | A tier or model ID ships that the ledger does not record | | Harness release | `claude --version` differs from the ledger | | Scheduled check | Monthly, to catch a release nobody noticed |
Run them in order. Each one gates the next.
# 1. Detect. Deterministic, no model in the loop. python3 scripts/check_upstream_drift.py # 2. Research what changed (only when step 1 reports drift). # Release notes and model cards are mandatory sources. # 3. Map findings onto asset classes. # 4. Sweep the implicated classes. # 5. Prove, then record the new watermark. python3 scripts/check_upstream_drift.py && \ python3 scripts/check_agent_model_matrix.py
Step 5 runs before the ledger is written, never after. Recording a migration that has not passed its proof is the failure the ledger exists to prevent.
Harness drift is fully deterministic: the installed binary reports its own version. Model drift is not. No local command enumerates the current roster, so the ledger holds the last known roster and research establishes the current one. The skill states this split rather than pretending both halves are automatic.
The detector reports four classes:
| Class | Meaning | |-------|---------| | `harness` | Installed version differs from the ledger | | `vocabulary` | A gate's frozen set omits a value the ledger records | | `dated_ids` | Dated model IDs above the recorded ratchet | | `unknown_tier` | Frontmatter names a tier absent from the roster |
The `vocabulary` class is the one that earns this skill. `VALID_MODELS` in `scripts/check_agent_model_matrix.py` is a hard gate that rejects any agent pinning an unlisted tier. When Fable shipped and that set was not widened, the guard whose job was to prevent model rot had itself rotted, and no agent in the repo could pin the new tier. The detector now fails on that condition instead of waiting for someone to trip over it.
Load only what the run needs.
| Module | Load when | |--------|-----------| | `modules/drift-detection.md` | Always, at step 1 | | `modules/research-protocol.md` | Step 1 reported drift | | `modules/asset-sweep.md` | Research produced findings to apply | | `modules/verification.md` | Before writing the ledger |
breaks agents that currently pass.
`check_agent_model_matrix.py` enforces this and the policy stands. A new tier widens the vocabulary. It does not reverse the rule.
reason recorded in the migration report.
The detector skips them and so does the sweep.
notes plus the model card were both consulted.
`docs/migrations/`. The directory is gitignored, so the report is a local working artifact. Route durable content out of it before you finish: findings to `docs/knowledge-corpus/`, open items to `docs/backlog/queue.md`, state to the ledger.
model roster, and `last_migration`, with the previous entry appended to `history`.
recorded in the report as deliberately skipped.
A plugin marketplace for Claude Code. Install only the plugins you need to run git workflows, code review, spec-driven development, and autonomous agents from inside your Claude Code session.
Explain plugin, skill, command, agent, and hook mechanics used here. Use when authoring or debugging plugins. Do not use for ops; use night-market-operations.
States load-bearing decisions, invariants, and weak points. Use when judging a design change. Do not use for gating; use night-market-change-control.
Rebuild the dev environment: uv, Python tiers, pins, traps. Use when onboarding or toolchain breaks. Do not use for daily commands; use night-market-operations.
Classify, gate, and review changes. Use when landing a PR, releasing, or amending rules. Do not use for failure triage; use night-market-debugging-playbook.
Search and record project memory (Discussions, journal, ADRs). Use before re-investigating anything. Do not use for settled battles; see failure-archaeology.
Bind loop 'done' to unfakeable gates. Use to harden egregore/herald loops or promote completion_integrity. Not for QA gates; use night-market-validation-and-qa.