计划执行与检查节点
executing-plans
按既定实施计划完成工作,保持过程检查和反馈。
lov-search-twitter【效率与协作】搜索并恢复公开 X/Twitter 帖子的逐字正文、原帖链接与截图证据,区分现存原帖、归档、嵌入卡片、媒体引文和未恢复项;适用于“找这人的推特原文”“汇总 X 全文”与 “recover deleted tweets”。
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
把人物、账号、关键词、X 链接、status ID 或截图整理成可核验的原帖索引与逐字正文汇总。正文必须来自可定位证据;搜索摘要、媒体转述和 OCR 不得冒充原文。
lov-media-crawler。lov-fact-check。Every generated Skill is connected to the shared user-profile/v1 contract in
skill.yaml. Read the shared user, brand, workspace, preferences, and this
Skill's skills.<skill_id> namespace at the start of every run. Keep the source
portable: resolved personal values belong in the shared profile, never here.
When the user directly states a durable output-language, evidence-format, or
workspace preference, persist it through scripts/profile_store.py and report
the saved profile path. Put Skill-specific values under records.<field>; use
user.<field> for shared values. Never persist cookies, tokens, proxy secrets,
or browser sessions. See references/user-profile.md for the complete contract.
Read references/skill-composition.md before deciding whether to invoke or
extend an adjacent capability. Sibling Skills are optional artifact handoffs,
not hidden runtime dependencies.
Read references/evidence-model.md before searching. Every claimed post must
have a status ID or an explicit identity_unresolved marker, a source URL, a
retrieval time, a provenance tier, and the preserved text or image hash.
The normal output class is verbatim:
You MUST follow these steps in order.
SKILL_DIR if provided; otherwise infer the installed Skill directory.$SKILL_DIR/scripts/search_twitter.py,
$SKILL_DIR/references/evidence-model.md, and
$SKILL_DIR/references/discovery-playbook.md before work.Record the requested person, known/current/former handles, time range, languages, expected deliverable, and whether the user means:
Do not ask for a technical implementation choice. If the user says “全文” but does not provide account authorization, use best-effort public discovery and state that account-history completeness cannot be proven.
Use at least two discovery paths from references/discovery-playbook.md:
x.com/.../status/..., twitter.com/.../status/..., and t.co;Extract candidate URLs/IDs from saved text without network access:
python3 "$SKILL_DIR/scripts/search_twitter.py" discover \
--input search-results.txt --pretty > candidates.json
Maintain an inventory row for every candidate. Do not discard unavailable or duplicate-looking IDs until URL, timestamp, and text relationships are checked.
For each handle/status ID, query both public renderers concurrently, then fall back to exact Wayback captures and optionally Common Crawl:
python3 "$SKILL_DIR/scripts/search_twitter.py" recover HANDLE \
--ids-file ids.txt --common-crawl --pretty > recovered.json
FxTwitter and VXTwitter agreement is a two-renderer-match, useful for detecting
truncation or extraction errors. It is not proof that two independent authors
published the same text. Prefer the longest exact variant only when normalized
texts differ solely by URL expansion or presentation whitespace; otherwise keep
both variants and mark conflict.
For every screenshot, save the original bytes before cropping or annotating. Record source page URL, capture time, SHA-256, visible account/status clues, and whether it is an X card, repost screenshot, or ordinary media article. Register the file deterministically:
python3 "$SKILL_DIR/scripts/search_twitter.py" evidence screenshot.png \
--kind screenshot_copy --source-url SOURCE_URL \
--ocr-file screenshot.ocr.txt --pretty > screenshot-evidence.json
OCR is a derived transcription. Preserve it separately from verbatim_text,
and mark ambiguous characters. A crop may improve readability but must refer to
the hash of its uncropped parent when available.
Assign exactly one primary provenance tier from references/evidence-model.md.
Use the strongest evidence actually observed, retain weaker corroboration, and
keep conflicts visible. Never promote a search snippet, translation, or media
paraphrase to live_original or archived_original.
Produce:
Label 原文, OCR 转写, 媒体引文, 摘要, 翻译, and 编辑说明 separately.
When a user asks for original text, a summary is not a substitute.
python3 -m unittest discover -s "$SKILL_DIR/tests" -v
python3 "$SKILL_DIR/scripts/validate_skill.py" "$SKILL_DIR"
Report remaining gaps and access limitations with the finished files.
twscrape or an X
session, explain why and obtain explicit authorization before using it.scripts/search_twitter.py.twscrape only after explicit authorization for account enumeration.