技能创建器
skill-creator
创建、改进和评估自定义技能,把专业流程转化为可重复使用的 AI 能力。
bggg-data-x【数据与研究】Collect auditable public X/Twitter posts by controlling the user's already logged-in Chrome, searching X's rendered web interface, scrolling visible results, and extracting original post text and metadata from DOM into normalized JSONL. Use for VOC research, social listening, multilingual keyword discovery, competitor monitoring, or historical search…
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
Collect public X posts from the visible, rendered search timeline in the user's logged-in Chrome. Preserve one source package per query, then normalize locally.
bggg VOC 系列 skill(bggg-data-amazon / bggg-data-reddit / bggg-data-x / bggg-voc-report / industry-orchestrator)共用一个项目文件夹,让多平台数据规整到同一处、下游分析零改路径。开工先确定项目根目录 <project>(用户指定,或新建 voc-<产品或主题slug>/),并从 <project> 根目录执行本 skill 的全部命令(下文相对路径都基于它):
<project>/
PROJECT.md # 研究简报 + 决策日志(编排 skill 维护;单独使用可省)
config/ # 采集目标:amazon_targets.tsv / reddit_queries.tsv / x_queries.tsv / keywords.txt
work/<platform>/… # 各平台原始证据、attempt 日志、request plan、manifest
data/raw/ # 各平台规范化 JSONL(统一行契约,分析共用层)
data/clean|coded/ # 下游清洗与编码(industry-orchestrator 维护)
output/ # 报告与交付物(bggg-voc-report 写 output/report/)
本 skill 的落点:config/x_queries.tsv → work/x/(request plan、逐查询 source package)→ data/raw/x_multi_<date>.jsonl。
query lang round max_rows sort
sample-ingredient lang:en EN 1 250 latest
ボリュフィリン JP 1 200 latest
Build a deterministic plan:
python3 scripts/build_query_plan.py \
--queries config/x_queries.tsv \
--output work/x/request_plan.json
Use the Chrome plugin and follow its control skill. Select the user's Chrome explicitly, read its complete browser documentation, and reuse the browser binding. Never inspect or export cookies, local storage, profiles, passwords, or session stores.
Open the first planned search URL. Confirm from visible page state that X is signed in and the search timeline is available. If sign-in blocks the page, ask the user to sign in in Chrome; do not switch browser or bypass authentication.
For each query, collect only rendered cards from the visible DOM. Follow references/chrome_collection.md for the exact selectors, extraction function, scroll loop, checkpointing, and failure handling.
Save one unmodified query package immediately after each query:
work/x/source_json/001_EN.json
work/x/source_json/002_JP.json
Do not postpone all writes until the end of the run.
python3 scripts/normalize_x_dom.py \
--inputs work/x/source_json/*.json \
--output data/raw/x_multi_2026-07-26.jsonl \
--summary work/x/normalize_summary.json \
--keywords keywords.txt
Use these selectors only against rendered page content:
post card article[data-testid="tweet"]
post text [data-testid="tweetText"]
author block [data-testid="User-Name"]
canonical link time[datetime] inside a[href*="/status/"]
timestamp time[datetime]
engagement [role="group"][aria-label]
Validate the contract on the first query before scaling. If any required selector returns zero while the visible timeline contains posts, stop and inspect the current DOM rather than emitting empty success files.
text_raw, Tweet ID, canonical URL, timestamp, author handle, engagement label, query, language hint, and collection time.latest versus top, query syntax, date bounds, caps, and stopping reason.If the logged-in Chrome session is unavailable or X blocks search, preserve the query plan and failure log. Do not substitute Tavily or search-engine snippets for original post text. Such tools may discover candidate URLs, but every quote must be revalidated against the original X page before entering the corpus.
scripts/build_query_plan.py: validate queries and build encoded X search URLs.scripts/normalize_x_dom.py: merge per-query packages, parse engagement, deduplicate, and emit normalized JSONL.references/chrome_collection.md: Chrome extraction loop and checkpoint contract.references/schema.md: source-package and normalized-row schemas.