一键导入
vault-x-bookmarks
Use when X bookmarks need to be captured into raw/sources or existing X bookmark source records need relevance triage
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Use when X bookmarks need to be captured into raw/sources or existing X bookmark source records need relevance triage
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Run a marketing/positioning pass on an open source repo's README and public-facing docs so a developer landing on it for the first time immediately understands what it is, why it exists, and how to use it. Use this whenever the user wants to improve a repo's README, write launch copy for an OSS project, sharpen positioning ("does this README explain what the project does"), prep a repo for a Show HN / Hacker News / Product Hunt / Twitter launch, or asks for an "OSS marketing pass," "README audit," or similar. This is about clarity and conversion (visitor → user → star), not contribution mechanics — for CONTRIBUTING.md, issue templates, CODEOWNERS, or governance docs, that's a different concern.
Audit and prepare a GitHub repo for open source release, with a focus on developer experience (DevEx) — the things that determine whether a stranger can go from "found this repo" to "opened a PR" without friction. Use this whenever the user wants to open-source a repo, make a private repo public, do a "pre-launch checklist" or "OSS readiness audit," improve their README/CONTRIBUTING/issue templates, or asks something like "is this repo ready for people to use/contribute to." Also trigger for narrower asks that are really pieces of this — "write a CONTRIBUTING.md," "set up issue templates," "add a CODEOWNERS file" — since those are almost always better done as part of the full readiness pass rather than in isolation.
Design, build, or review command-line interfaces using the Command Line Interface Guidelines from clig.dev. Use this skill whenever the user is creating a new CLI, adding commands/subcommands/flags, designing help text, choosing stdout/stderr/exit-code behavior, adding JSON or plain output modes, improving error messages, making destructive operations safer, or asking whether a CLI feels good, scriptable, discoverable, or Unix-friendly.
Collapse semantically overlapping notes, ideas, and project docs into clearer canonical surfaces while preserving distinct claims, decisions, examples, and source provenance.
Maintain canonical concept pages and surface recurring themes
Hygiene pass over active notes, ideas, and projects
| name | vault-x-bookmarks |
| description | Use when X bookmarks need to be captured into raw/sources or existing X bookmark source records need relevance triage |
Use this skill in one of two modes:
raw/sources/.raw/sources/
using LLM judgment, deleting only records that are clearly irrelevant or too
thin to be useful.This is source-first: the helper writes external source records, records
captured bookmark IDs in raw/state/x-bookmarks/, and leaves organization to a
follow-up vault-ingest run.
Run prune mode after capture and before vault-ingest whenever a batch contains
X bookmarks. Capture mode intentionally does not decide source value; prune mode
is the LLM judgment step that keeps thin bookmark pointers from entering the
curated vault.
When a bookmarked post contains an X Article, the helper requests the article
post field and includes the article title, preview, body text, and article
entity links in the source record.
When a bookmarked post links to external non-X content, the helper may fetch the direct linked page and include readable text in the source record. This is strictly one level deep: fetch URLs surfaced by the bookmark payload, but do not follow or recursively crawl links found inside fetched pages.
tsx and dotenv.npm i from this skill directory before running capture mode so the
bundled TypeScript helper's dependencies are installed.xurl CLI tool installed and
authenticated with OAuth 2.0.Run from this skill directory:
npm i
npx tsx scripts/x-bookmarks.ts [--limit N] [--max-pages N] [--head-pages N] [--path PATH]
--limit N (default: 15, range: 1..100): maximum selected bookmarks to
evaluate and capture in one run.--max-pages N (default: 10, range: 1..100): maximum bookmark pages to
fetch across the head scan and catch-up scan.--head-pages N (default: 2, range: 1..100): newest bookmark pages to
scan before resuming backlog pagination.--path PATH (default: current working directory): vault root containing
raw/sources/ and raw/state/x-bookmarks/.Capture mode has no report mode. The helper is apply-only and bounded by
--limit. It writes source records, appends reviewed/run state, and updates the
catch-up checkpoint after successful runs.
Install xurl, authenticate it with OAuth 2.0 for the X account whose bookmarks
should be captured, and verify it before running the helper:
xurl auth apps add vault-x-bookmarks --client-id <YOUR_CLIENT_ID> --client-secret <YOUR_CLIENT_SECRET>
xurl auth oauth2 --app vault-x-bookmarks
xurl default # to set the default authenticated app for later `xurl` commands
xurl auth status
xurl whoami
Required scopes:
bookmark.readtweet.readusers.readoffline.accessDo not use an app-only bearer token. The helper resolves the authenticated user
through xurl whoami; do not pass a manual user ID.
raw/state/x-bookmarks/reviewed.jsonl.xurl --auth oauth2.--head-pages first so newly saved bookmarks are found
even after backlog has been processed.--limit, continue from
the saved catch-up pagination token until --max-pages or --limit is
reached.--limit stops mid-page, save the
token for that same page.--limit.raw/sources/ as markdown tagged
external, including X Article text and direct external linked-page text
when available.reviewed.jsonl.runs.jsonl and update checkpoint.json only
after reviewed entries are durable.Never mutate X bookmarks. Never route captured files directly into permanent vault folders.
Capture every selected bookmark. Do not apply regex scoring, string scoring, or filtering; the user's bookmark action is the relevance signal. Manually delete unwanted source records after a run.
Use prune mode when raw/sources/ contains captured X bookmark records that may
not be worth keeping. This is an LLM judgment workflow, not a regex or scoring
workflow.
Before judging records, read the calibration examples:
resources/good-quality-bookmarks.mdresources/low-quality-bookmarks.mdDefault to report mode unless the user explicitly asks to apply deletion. In
report mode, list each candidate and the keep/delete decision with concise
reasoning. In apply mode, delete only the source files that are clearly
discardable and append one log.md entry.
raw/sources/.
Use raw/state/x-bookmarks/reviewed.jsonl as the source of truth: read each
source_record_path, keep paths that still exist under raw/sources/, and
ignore records that have already been routed, archived, or deleted.raw/state/x-bookmarks/reviewed.jsonl, runs.jsonl, or checkpoint.json.The state files intentionally continue to mark deleted bookmarks as reviewed so future capture runs do not refetch unhelpful bookmarks.
Do not use regex, string scoring, keyword scoring, or mechanical thresholds to decide deletion. Read the source record and judge whether it contains durable value for the vault.
Treat article/link sections as evidence, not automatic keep/delete switches. A short post with a useful captured article can be high value. A long post can be low value when it only points to missing media, a missing thread, or a stronger canonical source already in the vault.
Delete only when the bookmark is clearly low-value, such as:
## Article or ## Linked Content section provides meaningful substanceKeep when there is plausible future value, such as:
Return:
log.md entry appended when apply mode deletes filesThe command prints a JSON summary with the authenticated X user ID, pages fetched, evaluated and captured counts, created source paths, state files updated, and errors or partial failures.
Regular run:
npx tsx scripts/x-bookmarks.ts --limit 15
Catch up more backlog in one run:
npx tsx scripts/x-bookmarks.ts --limit 75 --max-pages 25 --head-pages 2
Override the vault path:
npx tsx scripts/x-bookmarks.ts --path /path/to/vault --limit 20