From you-read-i-read
Use when listing the to-read queue or any paper subset, editing paper metadata (status, labels, one-liner), changing read/archive status outside a /read session, viewing tracked groups/topics, syncing the data repo to git, or running first-run setup. Triggers include "/todo", "/list", "/done", "/archive", "/sync", "show my queue", "what am I tracking?", "remove this paper", "I finished reading X", "mark X read", "archive that paper", "push my data", "skip this one not going to read it".
npx claudepluginhub zhangzhuosjtu/youreadiread --plugin you-read-i-readThis skill uses the workspace's default tool permissions.
Listing, editing, status changes, syncing, and first-run setup for You Read,
Guides Next.js Cache Components and Partial Prerendering (PPR): 'use cache' directives, cacheLife(), cacheTag(), revalidateTag() for caching, invalidation, static/dynamic optimization. Auto-activates on cacheComponents: true.
Guides building MCP servers enabling LLMs to interact with external services via tools. Covers best practices, TypeScript/Node (MCP SDK), Python (FastMCP).
Share bugs, ideas, or general feedback.
Listing, editing, status changes, syncing, and first-run setup for You Read,
I Read. All edits go through scripts/manage_data.py. Personal state lives
at ~/.you-read-i-read/data/.
manage_data.py. Never edit papers/index.json / tracking/*.yaml /
preferences/* by hand./sync never pushes without confirmation unless
data_repo.auto_push: true in ~/.you-read-i-read/config.yaml./done and /archive always confirm the matched paper before flipping
status when invoked with a query. Id form may flip immediately;
user must see the title first.Triggered by /sync init or auto-detected when any data-touching command
runs and user state is missing.
~/.you-read-i-read/config.yaml missing OR data_repo.path
doesn't exist OR papers/index.json missing.defaults/config.yaml → ~/.you-read-i-read/config.yaml if
absent.data_repo.remote (e.g.
git@github.com:ZhangZhuoSJTU/you-read-i-read-data.git). Validate basic
shape. Write back to user config.gh repo create --private if the remote doesn't yet exist
(skip if gh not on PATH).papers/index.json: {}, tracking/groups.yaml: {groups: []},
tracking/topics.yaml: {topics: []},
tracking/state.json: {groups: {}, topics: {}},
preferences/signals.jsonl: "", preferences/taxonomy.yaml: ""..gitignore by copying the plugin's
defaults/data-repo-gitignore to ~/.you-read-i-read/data/.gitignore.
This excludes tracking/sessions/ (auth state) and the usual Python /
OS noise.git -C ~/.you-read-i-read/data init
if needed; first commit; ask before pushing./todo [<query>] — to-read queue, ranked.
manage_data.py paper-list --status to-read --sort relevance --limit 25
Append --query "<query>" if non-empty. Render as compact table:
id | title | one-liner | tags | added.
/list [filters] — general browser. Pass user's flags through to
paper-list. Supported: --status, --tag (repeatable), --author,
--since YYYY-MM-DD, --query, --sort {added,relevance,read_at},
--limit. Default --status any --sort added --limit 50.
/done [<id> | <query>]^(arxiv|s2|doi|url)-):
manage_data.py paper-update <id> --status read
manage_data.py signal-log --event read_finished --paper-id <id>
to-read + reading:
manage_data.py paper-list --query "<q>" # filter to to-read|reading client-side
Show top matches, confirm, then run the id form./archive [<id> | <query>]Same shape, but --status archived and
signal-log --event archived_without_reading. Optionally ask for a reason;
pass --field reason="..." so the preference model learns why.
/sync)git -C ~/.you-read-i-read/data status --short. If clean, tell user; stop.git -C ... diff --stat. Show.update: <N> new papers, <M> summaries, <K> tracking changes).data_repo.auto_push: true./sync status shows adapter health + Apify spend (read
tracking/apify-spend.yaml + last-success per source from recent signals).
papers/index.json by hand — schema drifts. Always
manage_data.py.read_finished / archived_without_reading signal
on /done / /archive.