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.
Contract for the project decision journal (tradeoffs and lessons-learned logs). Use when recording a decision, tradeoff, or lesson, or building a consumer hook.
$ npx -y skills add athola/claude-night-market --skill decision-journal --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/decision-journalContext preview
The summary Claude sees to decide when to auto-load this skill.
Contract for the project decision journal (tradeoffs and lessons-learned logs). Use when recording a decision, tradeoff, or lesson, or building a consumer hook.
name: decision-journal description: Contract for the project decision journal (tradeoffs and lessons-learned logs). Use when recording a decision, tradeoff, or lesson, or building a consumer hook. alwaysApply: false model_hint: standard
what was chosen, what was rejected, what was sacrificed.
record the lesson.
`docs/adr/`; reference its number from a journal entry instead of duplicating it.
This is a convention and a helper rather than a hard runtime dependency. Consumers degrade gracefully when leyline is absent (see Fallback).
AI-assisted work tends to narrate tool output ("the agent built X") and lose the human reasoning: the decision, the road not taken, and the honest rework nobody mentions. Two append-only logs, co-located with the code, fix that:
framed blamelessly.
Both files live in `docs/` (co-location is the strongest anti-staleness lever). Each is a single append-only running log with a scannable `## Active index` at the top and an `## Archive` section at the bottom.
1. Append-only. An accepted entry is never edited or deleted; only its `Status` changes. 2. Supersede, do not overwrite. A reversal adds a new entry, flips the old entry's status to `superseded-by: <new-id>`, and links both ways. 3. Stable IDs (`TR-001`, `LL-001`) so links from PRs, commits, and code never break. 4. Every entry links back to its PR, commit, or issue.
Status vocabularies:
When a workflow reaches a decision or lesson point:
1. Draft the entry from the live context of the phase (the options weighed, what was given up, the failure and its root cause). 2. Show the draft to the human and let them confirm or edit. 3. Append it. Tradeoffs start `proposed`; lessons start `open`.
Do not auto-write without the confirm step. The point is to capture the human reasoning, not to generate noise.
Run the helper from leyline:
python3 ${LEYLINE}/scripts/journal_append.py <tradeoffs|lessons> \ --project-root <repo-root> \ --title "<short title>" \ [--phase <phase>] [--status <status>] \ [--field key=value ...] \ [--json '<full field object>'] \ [--supersedes TR-NNN] \ [--dry-run]
The helper assigns the next ID, renders the template, inserts the entry above the `## Archive` marker, updates the active index, and (with `--supersedes`) flips the prior entry's status and adds backlinks. It is idempotent: appending an entry whose substantive fields already appear is a no-op.
`title` (required), `context`, `drivers` (list), `options` (list of `{name, pros, cons, chosen}`), `decision`, `ystatement`, `consequences_positive`, `consequences_negative`, `phase`, `deciders`, `links`. Prefer `--json` for the list-valued fields. `status` and `date` are auto-set (`proposed` / today) but can be overridden.
`title` (required), `what_happened`, `what_went_well`, `what_didnt_work`, `root_cause`, `action`, `category`, `owner`, `phase`, `links`. `status` and `date` are auto-set (`open` / today) but can be overridden.
The entry template ships inside each scaffolded file as an HTML-comment footer (`<!-- ENTRY TEMPLATE ... -->`). When the helper is unavailable, a consumer (or a human) copies that block into the section above `## Archive`, assigns the next sequential ID, fills it in, and adds an index row by hand. The fallback template covers the same core sections as the canonical one so entries stay consistent across the two paths.
Each workflow adds one block at its natural endpoint:
Record to the decision journal (draft + confirm):
drafting fields from this phase's context; show the draft; append on confirm.
using the footer ENTRY TEMPLATE; assign the next sequential ID.
python3 ${LEYLINE}/scripts/journal_append.py tradeoffs \ --title "Compliance check" --field context="verify" --dry-run
Must print a rendered entry containing `## TR-001:` and write nothing.
`## Active index` and an `## Archive` section.
adds bidirectional links; the old entry is not deleted.
from the in-file ENTRY TEMPLATE.
The last criterion holds even for consumers that name `leyline` in their `dependencies`. That field is marketplace metadata; no installer acts on it, so `spec-kit` or `imbue` can be installed without leyline present. The fallback is the guard at that boundary, not leftover code. See `docs/metadata.md`, "What `dependencies` Does Not Mean".
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.