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.
Chronicles settled battles, reverts, and dead ends. Use when a fix echoes a past failure. Do not use for live triage; use night-market-debugging-playbook.
$ npx -y skills add athola/claude-night-market --skill night-market-failure-archaeology --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/night-market-failure-archaeologyContext preview
The summary Claude sees to decide when to auto-load this skill.
Chronicles settled battles, reverts, and dead ends. Use when a fix echoes a past failure. Do not use for live triage; use night-market-debugging-playbook.
name: night-market-failure-archaeology description: Chronicles settled battles, reverts, and dead ends. Use when a fix echoes a past failure. Do not use for live triage; use night-market-debugging-playbook.
This is a reference document, not a runbook. It records every major investigation, dead end, rejected fix, and revert in this repo as symptom, root cause, evidence, status, and lesson, so nobody re-fights a settled battle. For triage of a failure happening right now, use `night-market-debugging-playbook`. Come here when a proposed change smells like something the repo already tried and rejected.
Jargon used below:
floor), while the rest of the repo requires Python 3.12. Enforced by `.github/workflows/python39-compat.yml`.
and a note in the collective memory, not a hunch.
1. Before implementing, scan the battle titles and the recurring-class table for anything resembling your plan. 2. If a battle matches, read its lesson. Follow it, or write down why this time is different before overriding it. 3. Verify any hash you rely on: `git log --format='%h %s' -1 <hash>`. 4. When your own battle settles, add an entry (format at the bottom).
sanctum, and spec-kit looked like textbook duplication.
`scripts/tasks_manager.py` (1,169 lines deleted across 6 files) broke plugin self-containment. Plugins are independent deployables that run from a Claude Code cache directory, so they cannot import from the repo root.
same day), `d89a55c7` (differentiated per-plugin copies). All three copies exist today under `plugins/<p>/scripts/tasks_manager.py`. `docs/dependency-audit.md` tracks cross-plugin deps and fallbacks.
"helpfully" re-consolidate duplicated plugin scripts.
with no consumer demanding it.
(revert, 2026-02-11, restores `.cclsp.json`).
See also `.claude/rules/shared-utility-consumer-rule.md`.
import graph to decide what was dead.
Python imports. 28 actively referenced scripts plus 18 companion test files were classified dead and deleted.
scripts and 18 tests), `b5f08bf7` (CI repair: dead docs workflow, missing capabilities entries), `d6c128f5` and `01a13e70` (further repair and governance follow-ups). Recovery point was branch `backup/unbloat-20260328`.
(skills, commands, agents), never imports alone. Always take a `backup/unbloat-<date>` branch first.
hiding 73 real violations.
all 73 at source. The commit body cites issue #296 as the anti-bulk-ignore policy anchor.
suppress per line with a stated reason.
`datetime.UTC` is a 3.11+ alias. On PR #511 this was the sole failing check, with three cascade failures rooted in one ImportError.
`timezone.utc` back to `datetime.UTC`, silently re-breaking the fix. The linter was fighting the fix.
`b0049fde` (abstract), `709dafc9` (attune).
an AST-scanning test (`plugins/leyline/tests/test_python39_compat.py`) fails CI on any reintroduction, root ruff config extend-ignores UP017, and the surviving per-line pyupgrade suppression markers each carry a stated reason.
holds the line. A fix commit alone will be reverted by tooling.
ModuleNotFoundError.
(yaml, anthropic) that the bare host interpreter running hooks does not have.
`9bfc0a7a` (defer anthropic import to function scope). Regression tests block re-imports with a `sys.meta_path` blocker (`plugins/gauntlet/tests/unit/test_challenges.py`).
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.