| name | x-signal-material-vault |
| description | Research recent market and user-demand signals for creating content on X (Twitter) with selectable 1-day, 3-day, 7-day, or 30-day windows. Use when the user asks for X选题、热点素材、真实用户需求、市场信号、账号观察、每日/每周/月度内容库, or wants cited material cards saved as Markdown. |
X Signal Material Vault
Turn recent evidence into X-ready writing material. Optimize for freshness, real user language, and traceable sources instead of generic news summaries.
Resolve The Request
Determine these inputs from the request:
topic: market, product, person, account list, or question to research.
window: auto, 1d, 3d, 7d, or 30d.
mode: daily, weekly, or monthly.
count: desired number of material cards.
destination: inline response or local material-vault path.
Use these defaults:
| Input | Default |
|---|
| window | 1d for daily mode, 7d only when weekly is explicit, 30d only when monthly or recent 30 days is explicit |
| mode | daily |
| count | 8 for daily, 10 for weekly, 12 for monthly |
| timezone | current user or runtime timezone |
| destination | inline response |
If the request says daily/每日/今天/最近一天/过去 24 小时/today's latest, use 1d. If it says weekly/本周, use 7d. If it says monthly/月度/最近 30 天, use 30d. Respect an explicit window and do not expand it unless the user requests expansion.
For an explicitly requested auto window, search in this order:
- Search the rolling last 1 day.
- Expand to 3 days only when fewer than five credible cards remain after deduplication.
- Stop at 3 days. Use 7 days only when the user explicitly asks for
7d, recent 7 days, weekly review, or trend confirmation.
- Use 30 days only when the user explicitly asks for
30d, recent 30 days, monthly material, or a durable archive.
- Label every card with the window that supplied its evidence. Never describe 3-day, 7-day, or 30-day evidence as a 1-day signal.
Ask one concise question only when no topic, account list, or usable watchlist exists. Otherwise proceed.
Source Cadence
Apply a source-specific cadence instead of treating every platform as equally fresh.
Daily Sources: 1d
Check these sources every daily run and surface the hottest evidence first:
- X / Twitter;
- YouTube;
- GitHub;
- Hacker News;
- Reddit;
- Threads, the Meta platform. Treat user spellings such as
thrise or T-H-R-E-A-D-IS as Threads.
For daily output, prioritize high-signal posts, videos, releases, issues, discussions, and user reactions from these six sources. Sort by freshness, evidence strength, verified engagement, and usefulness for an X post. Do not fill the daily list with routine updates.
Weekly Sources: 7d
Process these sources in the weekly review, together with the daily sources aggregated over 7 days:
- Digg;
- arXiv;
- Techmeme;
- LinkedIn;
- StockTwits;
- Pinterest;
- Bluesky;
- Perplexity;
- general Web search and other secondary context.
Do not silently present a weekly-only source as a same-day signal. Label it 7d and keep it out of the daily hot list unless the user explicitly requests it. A thin daily run may expand from 1d to 3d, but it must not expand to 7d without explicit user instruction.
Monthly Archive: 30d
Use all available sources for monthly durable themes, recurring user needs, product adoption, and long-term narratives. A monthly archive is not a breaking-news feed.
Cadence Output
In the coverage block, state:
- daily sources checked with a
1d window;
- weekly-only sources deferred or checked with a
7d window;
- whether a
30d archive was requested.
Research Current Evidence
Browse for every run. Do not answer a recent-signal request from memory.
- Compute and state the exact start and end dates before searching.
- Build queries for announcements, adoption, complaints, alternatives, pricing, failures, workarounds, buying intent, and repeated questions.
- Prefer direct X posts and replies when accessible. Supplement them with primary product sources and user discussions.
- Open the underlying source. Do not treat a search-result snippet as final evidence when the page is accessible.
- Record the source publication date and distinguish it from the date an older page was indexed or updated.
- Deduplicate repeated reporting, syndicated articles, reposts, and multiple pages describing the same event.
- Separate observed facts from the inferred user need and proposed X angle.
Read research-protocol.md before conducting research. Follow its source tiers, scoring model, and confidence rules.
If direct X access is unavailable, say Direct X coverage: unavailable and use accessible user-signal sources. Never imply that X itself was searched when only web-indexed mentions or secondary reports were available.
Select Material
Keep a candidate only when it offers at least one of these:
- a repeated pain point or workaround;
- visible demand, switching intent, or willingness to pay;
- meaningful product adoption or rejection;
- a contested opinion with evidence on both sides;
- a practical lesson, case study, or tutorial opportunity;
- a market change with a clear consequence for the target audience.
Reject generic announcements with no user reaction, unsupported predictions, recycled claims, and engagement numbers that cannot be verified.
Rank candidates using the 11-point model in references/research-protocol.md. Use the score to order cards, not as a substitute for judgment.
Produce The Brief
Start every response with a coverage block:
Topic: ...
Mode: daily / weekly / monthly
Requested window: auto / 1d / 3d / 7d / 30d
Evidence range: YYYY-MM-DD to YYYY-MM-DD
Direct X coverage: available / partial / unavailable
Sources searched: ...
Cadence: daily source group / weekly source group / monthly archive
Expansion used: none / 1d -> 3d
30d mode: explicit only / not requested
Then produce:
最值得写的 3 个选题
素材卡
继续观察
证据不足或不建议写
Each material card must contain:
- title;
- evidence window;
- signal type;
- signal score;
- dated source links;
- observed evidence;
- inferred user need;
- X writing angle;
- one original hook;
- confidence label;
- save bucket.
Use Chinese by default for Chinese requests. Paraphrase source content and keep quotations brief.
Read output-contract.md when saving files or when the user requests structured output.
Save The Material Vault
Save only when the user asks for local files or provides a destination.
Create a JSON run file matching references/output-contract.md, then validate and render it with the bundled script:
python3 scripts/material_vault.py validate --input RUN.json
python3 scripts/material_vault.py render --input RUN.json
python3 scripts/material_vault.py save --input RUN.json --vault MATERIAL_VAULT
Resolve scripts/material_vault.py relative to this SKILL.md, not relative to the user's current directory.
The save command writes one of:
material-vault/daily/YYYY-MM-DD.md
material-vault/weekly/YYYY-Www.md
material-vault/monthly/YYYY-MM.md
Do not overwrite an existing period file unless the user explicitly approves replacement. Report the final path after saving.
Quality Gate
Before returning the result, verify:
- every material card has at least one openable source URL;
- every source date falls inside the card's stated window;
Hot cards have corroboration from at least two independent sources;
- facts, inference, and writing advice are distinguishable;
- duplicate events appear only once;
- any source-access limitation is visible near the top;
- fewer cards are returned instead of filling the quota with weak material.