Backlog Capture
mvschwarz/openrig
Quickly capture product ideas, feature requests, or insights from meetings and conversations.
Curate the web-capture index. An agent skill from athola/claude-night-market.
$ npx skills add athola/claude-night-market --skill palace-index-curator -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install athola/claude-night-market palace-index-curator --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/athola/claude-night-market.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/memory-palace/skills/palace-index-curator .claude/skills/palace-index-curator && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "palace-index-curator" agent skill from https://github.com/athola/claude-night-market/tree/master/plugins/memory-palace/skills/palace-index-curator into .claude/skills/palace-index-curator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "palace-index-curator", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/athola/claude-night-market/tree/master/plugins/memory-palace/skills/palace-index-curatorType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add athola/claude-night-market --skill palace-index-curator -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install athola/claude-night-market palace-index-curator --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/athola/claude-night-market.git skills-src && mkdir -p .agents/skills && cp -r skills-src/plugins/memory-palace/skills/palace-index-curator .agents/skills/palace-index-curator && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "palace-index-curator" agent skill from https://github.com/athola/claude-night-market/tree/master/plugins/memory-palace/skills/palace-index-curator into .agents/skills/palace-index-curator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "palace-index-curator", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add athola/claude-night-market --skill palace-index-curator -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install athola/claude-night-market palace-index-curator --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/athola/claude-night-market.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/plugins/memory-palace/skills/palace-index-curator .cursor/skills/palace-index-curator && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "palace-index-curator" agent skill from https://github.com/athola/claude-night-market/tree/master/plugins/memory-palace/skills/palace-index-curator into .cursor/skills/palace-index-curator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "palace-index-curator", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/athola/claude-night-market.git --path plugins/memory-palace/skills/palace-index-curator--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add athola/claude-night-market --skill palace-index-curator -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install athola/claude-night-market palace-index-curator --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/athola/claude-night-market.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/plugins/memory-palace/skills/palace-index-curator .gemini/skills/palace-index-curator && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "palace-index-curator" agent skill from https://github.com/athola/claude-night-market/tree/master/plugins/memory-palace/skills/palace-index-curator into .gemini/skills/palace-index-curator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "palace-index-curator", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install athola/claude-night-market palace-index-curatorInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add athola/claude-night-market --skill palace-index-curator -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/athola/claude-night-market.git skills-src && mkdir -p .github/skills && cp -r skills-src/plugins/memory-palace/skills/palace-index-curator .github/skills/palace-index-curator && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "palace-index-curator" agent skill from https://github.com/athola/claude-night-market/tree/master/plugins/memory-palace/skills/palace-index-curator into .github/skills/palace-index-curator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "palace-index-curator", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add athola/claude-night-market --skill palace-index-curator -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install athola/claude-night-market palace-index-curator --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/athola/claude-night-market.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/plugins/memory-palace/skills/palace-index-curator .opencode/skills/palace-index-curator && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "palace-index-curator" agent skill from https://github.com/athola/claude-night-market/tree/master/plugins/memory-palace/skills/palace-index-curator into .opencode/skills/palace-index-curator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "palace-index-curator", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
palace-index-curatorCurate the web-capture index. An agent skill from athola/claude-night-market.
Palace Index Curator is an agent skill from athola/claude-night-market. Curate the web-capture index. Use when the capture backlog grows, captures sit unprocessed at seedling/pending, or to surface stored research during work.
Its SKILL.md is about 2.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `modules/archive-pattern.md`).
The repository describes itself as: 23 Claude Code plugins: TDD enforcement hooks, git/PR workflows, spec-driven development, code review, project lifecycle, fix-from-error, maintenance automation, context… The licence is MIT.
4 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 9f3eb00. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
uvgitFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use uv and git, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Palace Index Curator loads about 2.4k tokens when it runs. Until then it costs about 44 tokens; SKILL.md has 1,167 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from athola/claude-night-market at commit 9f3eb00, republished under its MIT licence (© athola). 1,167 words, ~2,381 tokens.
.claude/skills/palace-index-curator/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.The web-research hooks auto-capture every WebFetch and WebSearch into
hooks/memory-palace-index.yaml, storing each as a markdown file and an
index entry. Captures land at the defaults routing_type: pending,
maturity: seedling, importance_score: 50, and nothing advances them.
Left alone, the index becomes a write-only graveyard: the majority of
entries are never incorporated, analyzed, or surfaced.
This skill drains that backlog and keeps it drained. It wires the
capture index to the corpus tooling the plugin already ships
(decay_model, keyword_index, marginal_value) through three
commands: a read-only report, a dry-run-first promotion engine, and a
SessionStart surfacing hook.
pending
entries the drain held back.pending.knowledge-intake.knowledge-locator.digital-garden-cultivator.uv run python scripts/memory_palace_cli.py index reportReports total entries, the inert ratio, orphaned captures (entries whose backing file is gone), the largest topic clusters by domain, and the top promotion candidates. Writes nothing.
# Dry run: prints promote/archive proposals, writes nothing.
uv run python scripts/memory_palace_cli.py index promote
# Apply: backs up the index under data/backups/, then persists.
uv run python scripts/memory_palace_cli.py index promote --applyEach pending entry is classified into one action:
seedling -> growing.archived rather than promoted, following the
principle that unused captures should drain, not accumulate.pending with no change.Applying is idempotent: promoted and archived entries are no longer
pending, so a second run proposes nothing new. The dry-run diff is
always shown before --apply writes.
Running these by hand is the exception. --apply runs on every commit
from scripts/precommit_palace_maintenance.sh, so the backlog drains
continuously rather than in occasional sweeps. Reach for the commands
above when a commit is blocked, or when you want the dry-run diff before
the hook decides for you.
The commit that carries the index must carry it with zero pending
entries. scripts/check_capture_index_drained.py runs at the end of the
maintenance hook and fails the commit otherwise, and
tests/test_capture_index_artifact.py re-checks the same invariant in
CI so a bypassed hook does not land a backlog.
Two things make that gate reachable rather than a standing block:
hooks/shared/deduplication._stage_index). Without it, pre-commit
reverts the unstaged write before any hook runs, so the drain reads a
tree the fresh capture is missing from and converges on a fixed point
that excludes exactly the entries it exists to process. That is how 47
captures accumulated behind a drain that reported nothing to do.hold survives
it, so a blocked commit means a specific capture needs a person to
score or archive it. The gate names the keys.A SessionStart hook (hooks/index_surfacer.py) names the highest-value
promoted captures at the start of a session. It is disabled by default.
Enable it in memory-palace-config.yaml:
feature_flags:
context_injection: trueThe hook only speaks when promoted entries clear the importance floor, and it exits silently on any error so it can never block a session.
The three steps above all operate on the capture index at
hooks/memory-palace-index.yaml. Retrieval reads a different file:
data/indexes/keyword-index.yaml, built from the staging captures and
consumed by cache_lookup. Curating one does nothing to the other.
That keyword index is derived data and is not tracked in git, so a fresh checkout has none at all. Rebuild it with:
# Report what would be indexed, writing nothing.
uv run python scripts/build_indexes.py --dry-run
# Write data/indexes/keyword-index.yaml.
uv run python scripts/build_indexes.pyThe builder refuses to write an empty index over a populated one. An
empty corpus is reported with "wrote": false and any existing index
is left untouched. Writing entries: {} over real data is how the
corpus went dark in 1.5.0, and it stayed dark because the regeneration
script named in that stub file had never been written.
A capture whose frontmatter will not parse contributes nothing to the keyword index. Body extraction is gated on that parse, so the whole document drops out rather than just its topic, and the drain above reports nothing wrong because the index entry itself looks ordinary.
The usual cause is a page title or search query holding a double quote, which closed the YAML scalar early when the capture was written. The capture hooks escape their scalars now, so this reaches captures written before that fix and no others.
# Report which captures cannot be parsed, writing nothing.
uv run python scripts/repair_capture_frontmatter.py
# Re-quote them, backing the originals up under data/backups/.
uv run python scripts/repair_capture_frontmatter.py --applyThe repair rewrites the broken scalar and nothing else, and refuses any file it cannot re-parse afterward: turning an invisible capture into a subtly wrong one is worse than leaving it alone. Rebuild the keyword index once it has run, since retrieval reads the separate artifact described above.
cache_lookup / keyword_index), and
embeddings are not required at the current corpus scale. BM25 is the
workhorse up to ~5000 documents. Embeddings add value only for
vocabulary-mismatch discovery.content_hash) then MinHash with k-shingling for near-duplicates
(Broder, 1997). SimHash is preferable only at tens of thousands of
documents.relevance = w1 * centrality + w2 * decay(t) + w3 * usage. The plugin ships all three terms (graph_analyzer
PageRank, decay_model, usage_tracker).Triage decides whether a single capture drains or accumulates. When a whole body of work finishes, freeze it behind an index instead of deleting it or leaving it in the active listing.
See modules/archive-pattern.md for the structure, the closing-note
requirement, and the two discoverability layers.
build_indexes.py --dry-run reports a non-zero entry count and
leaves data/indexes/keyword-index.yaml byte-identical.build_indexes.py against an empty corpus reports "wrote": false and leaves an existing populated index untouched.index report runs and prints the inert ratio and orphan count
for the live index.index promote (no flag) prints proposals and writes nothing
(the index file is byte-identical afterward).index promote --apply creates a timestamped backup under
data/backups/ before persisting, and a re-run proposes nothing.context_injection: true, a SessionStart event surfaces the
top promoted captures, and with the flag off it stays silent.check_capture_index_drained.py exits 0 against the committed
index and exits 1 naming the keys when one is left pending.repair_capture_frontmatter.py reports zero repairable
captures against the committed corpus, and refuses a file it
cannot re-parse after repair.update_index appears in git diff --cached
without anyone staging it by hand.© athola, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file in plugins/memory-palace/skills/palace-index-curator of athola/claude-night-market.
Open the folder on GitHubat commit 9f3eb00
Palace Index Curator next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Palace Index Curator this skillathola/claude-night-market | 341 | — | ~2.4k | Automated safety check: Pass | MIT | |
| Backlog Capturemvschwarz/openrig | 6.8k | — | ~507 | Automated safety check: Pass | Apache-2.0 | |
| Indexabilitythedaviddias/Front-End-Checklist | 74k | — | ~814 | Automated safety check: Pass | MIT | |
| Curating Memory Palaceletta-ai/letta-code | 3.6k | — | ~3.2k | Automated safety check: Pass | Apache-2.0 | |
| Capturealirezarezvani/claude-skills | 28k | 1 repos | ~2.8k | Automated safety check: Pass | MIT | |
| Indexability Conflictsthedaviddias/Front-End-Checklist | 74k | — | ~876 | Automated safety check: Pass | MIT |
mvschwarz/openrig
Quickly capture product ideas, feature requests, or insights from meetings and conversations.
thedaviddias/Front-End-Checklist
A skill your agent uses when auditing a site for accidental noindex directives, investigating why important pages are not appearing in Google Search, or reviewing CMS settings that control indexing…
letta-ai/letta-code
Rules for the Memory Palace (palace/), the view on your Memory page in the Letta dashboard that shows the user where things stand, what you could do next, and how to make you more useful.
alirezarezvani/claude-skills
Captures and organizes chaotic brain dumps into a structured, actionable system with zero information loss.
thedaviddias/Front-End-Checklist
A skill your agent uses when auditing a site for indexability issues, investigating why pages appear in Google's index that should be excluded (or vice versa), or reviewing robots.txt and meta…
paperclipai/paperclip
A skill your agent uses when an LLM Wiki operation issue requests an index refresh.
athola/claude-night-market
Run and interpret repo diagnostic scripts (ratchets, validators, token stats).
athola/claude-night-market
Evaluate Claude skill quality through auditing. An agent skill from athola/claude-night-market.
athola/claude-night-market
Coordinates Claude agent teams via filesystem protocol. An agent skill from athola/claude-night-market.
athola/claude-night-market
Delegates execution to eight CLIs (Gemini, Qwen, MiniMax, GLM, Muse, Codex, OpenCode, Glimmer).
athola/claude-night-market
Guide minimal code via a decision ladder with full safety, edge, and negative-case coverage.
athola/claude-night-market
Build a project skill library in .claude/skills/ via discovery, parallel authoring, and review.
Curate the web-capture index. An agent skill from athola/claude-night-market. Palace Index Curator is an agent skill from athola/claude-night-market. Curate the web-capture index.
Palace Index Curator fits situations like: the capture backlog grows; captures sit unprocessed at seedling/pending; surface stored research during work.
Run `npx skills add athola/claude-night-market --skill palace-index-curator -a claude-code`. Or copy the skill folder (plugins/memory-palace/skills/palace-index-curator in athola/claude-night-market) into .claude/skills/palace-index-curator in your project. Claude Code loads it when a task matches its description.
Run `npx skills add athola/claude-night-market --skill palace-index-curator -a codex`. Or copy the skill folder (plugins/memory-palace/skills/palace-index-curator in athola/claude-night-market) into .agents/skills/palace-index-curator in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add athola/claude-night-market --skill palace-index-curator -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/palace-index-curator, .gemini/skills/palace-index-curator, .github/skills/palace-index-curator and .opencode/skills/palace-index-curator in your project.
Going by SKILL.md and its folder, Palace Index Curator needs the command-line tools its instructions call (uv and git). Our summary lists: Python 3.
SKILL.md contains no URLs. Its commands use uv and git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Palace Index Curator is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.4k tokens (SKILL.md is roughly 9.5k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Palace Index Curator: Backlog Capture (mvschwarz/openrig, 6.8k stars), Indexability (thedaviddias/Front-End-Checklist, 74k stars), Curating Memory Palace (letta-ai/letta-code, 3.6k stars) and Capture (alirezarezvani/claude-skills, 28k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
athola (a GitHub user) maintains it in athola/claude-night-market, which has 341 GitHub stars. The repository holds 152 skills in this directory. The repository was last updated on October 9, 2026.
Source: athola/claude-night-market on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.