ソース情報
- リポジトリ
- QianJinGuo/wiki
- ソースの最終更新活動
- 2026年8月15日 08:44
- 検出された SKILL.md の言語
- 英語
- スター
- 1
- フォーク
- 1
インストール方法
デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。
ソースファイルを確認
インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。
メニュー
デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。
インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。
SOC 職業分類に基づく
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
直接コマンドでは確認用 Prompt が省略されます。実行前にソースを確認してください。
npx skills add https://github.com/QianJinGuo/wiki --skill wiki-entity-metadata-extractionコマンドは1行のまま表示されます。コピー前に横へスクロールして全体を確認してください。
ローカルで確認しますか?SkillsMP が現在取得できるファイルをダウンロードできます。
SKILL.md を表示中
精选高价值 RSS feeds 扫描,输出到 raw/rss-inbox/ 暂存区。只保留有独立知识深度的 feed(非 digest 类),不再自动入库。包含 rss-inbox-curl-recovery.py 绕过 blogwatcher read-state 漏抓的兜底。
Meta-orchestrator that wires web-content-reviewer, llm-wiki, and wiki-evolver into a single four-phase knowledge pipeline (Triage → Gate → Store → Evolve). Use as the single entry point for all knowledge base operations. Includes a 6-URL-validated user-pasted WeChat URL fast path, three-axis dedup decision matrix (NEW/MERGE/DEDUP), orphan-raw detection protocol, and sibling-subagent race V7 evidence, and a two-variant V6 mid-write fix for matching vs different-slug duplicates.
从 Gmail 中提取 TLDR AI 等 newsletter 的链接,写入 raw/email-inbox/candidates.md,供后续 inbox-screener 评分。只做链接不做评分,与 inbox-screener 配合使用。
| name | wiki-entity-metadata-extraction |
| description | Use when extracting wiki entity vxc scores and dates. |
| category | wiki |
Extract per-entity metadata — title, vxc score, publish date, rating — for newly-committed wiki entities, reliably across CJK filenames, multi-source entities, multi-entity commits, and batch windows. This is the extraction engine behind status reports (wiki-inbox-scan-v2 cron), audits, and quality passes.
title | vxc | publish_date for entities added in a time window.CJK-safe new-file list (never plain git log | grep entities/ — octal-quoted CJK lines get dropped):
git log --since="24 hours ago" --diff-filter=A --name-only -z --format= -- 'entities/*.md' | tr '\0' '\n' | grep '^entities/'
-z --format= yields a pure NUL-separated filename stream; no core.quotepath needed.
Read log.md WHOLE, never grep-filtered by date pattern. Score facts live in continuation lines that contain no date: the - 高价值:... line and - N 篇 domain-reject 入档:... line sit under a dated ## header but themselves have no date. grep "2026-08-1[34]" log.md returns 29 lines and silently drops both score-bearing lines → 0 score facts. Open the file with Python open(..., encoding='utf-8', errors='replace') and iterate every line. (read_file misdetects log.md as binary — same workaround family.)
Per entity, parse frontmatter: title, created, rating, and sources: — which may be inline array (sources: [raw/articles/slug]), block list (sources:\n - raw/articles/a\n - raw/articles/b), carry .md suffix, or full raw/articles/ prefix. Normalize each to a bare slug with a two-pass resolver: first try same-line inline-array regex ^sources:\s*(.+)$, then a dedicated block-list regex ^sources:\s*\n\s*-\s*(raw/articles/[^\s\]]+) — then strip, in order: sources: prefix, - list marker, leading [, raw/articles/ prefix, trailing ], trailing .md. (All four traps below are verified: each stripping step is mandatory, in that order.)
vxc priority chain (stop at first hit):
vxc=NN, or (vxc=NN) in parens, or NEW(NN)/RAW(NN)/MERGE(NN) without vxc= — all are that entity's score. Regex: v[×x]c=(\d+) or (?:NEW|RAW|MERGE|SUPP)[((](\d+).(prompt-to-harness vxc=72 / handroid vxc=56 / file-upload-multimodal vxc=49)): match each name (vxc=|NEW[(]) pair against the entity basename norm — re.sub(r'[^0-9a-z\u4e00-\u9fff]','',name.lower()) containment. Never blind-grab the first vxc= in the subject.vxc 49-81) and log.md only summarizes (11 passing (vxc 49-81)), the per-article scores live in the batch run's own /tmp files. Try in order: ingest-list.json (the ingest ledger: list of dicts {slug, fname, vxc, url} — key by fname; matched 22/27 entities directly on the 2026-08-15 round), then score_results_MMDD.json (API LLM output: [{fname, title, value, confidence, stars, vxc, reason}]) and reuse-scores.json (reused rss-feed-scan saved scores: [[source, fname, vxc, stars], ...]). If both jsons miss an entity, the batch log.md 新入档 URL(评分一次…) block lists per-URL (vxc=NN INGEST) lines — last-resort recovery (recovered voiceeq 56 when ingest-list/reuse both lacked it). Resolve each entity's sources: raw slug and key by exact fname — no normalization needed. Verified 39/39 coverage on a 25-NEW + 14-single-entity window (2026-08-15). The batch log line 复用 rss-feed-scan 已存分数 N 篇 is the tell that reuse-scores.json exists. Details: references/batch-tmp-artifact-score-recovery.md.^(?:vxc|score_vc):\s*(\d+) (often absent).Publish date priority: raw frontmatter ^(?:source_published|publish_date|publish_time|published): → entity frontmatter publish_date: (verified: AML entity carries a real publish_date: 2026-08-12 while its raw has none) → body ^Published Time: → entity created: with ~ prefix (ingestion date, not original).
Report coverage: print VXC_COVERAGE=N/M — a low ratio tells you the batch window has unscored entities (normal for 39+-entity recovery rounds where log.md only records the top 5 in the 高价值 line).
高价值 and domain-reject continuation lines carry no date. Always read the whole file.高价值: prefix contaminates the norm key → 高价值重新审视交叉熵lmloss fails containment. Strip the prefix (re.sub(r'^.*?高价值[::、]?\s*', '', line)) before regex-extracting pairs.entities/memory-for-llms-tsinghua-taxonomy-2026 has sources: with TWO raws: first raw (paper) has no score in log.md, second raw (mozhi reprint) matched RAW-tier vxc=35 — but the entity is NEW vxc=64. Same for stealing-reasoning-traces-proprietary-llm-apis (raw 30 vs entity 64). Match the entity's own basename against entry facts before any raw slug; a raw-tier score is the wrong answer for a NEW entity.%h vs %H hash mismatch silently breaks single-entity detection. Building the per-commit file-count map with --format=%H (full hash) but comparing against %h (short hash) from the subject line → every lookup misses → is_single always True → the FIRST vxc= in a multi-entity subject is assigned to every entity (handroid got 72 instead of 56; file-upload 72 instead of 49). Use %h in BOTH the map key and the comparison.(vxc=56, NEW entity) (parens, after CJK text), — vxc=64 NEW entity + raw, InstEmb NEW(64). The vxc= regex alone misses NEW(64) style.600倍加速视频生成 (56) vs entity title 600 倍加速 720p 视频实时生成 — 单卡 14B 模型推理优化; Linux内核漏洞 (64) vs 科维斯 AI(Corvus AI)— TencentOS 内核漏洞研究智能体首秀. Known-upgrade map (log.md 2026-08-13 domain-reject line → 08-14 expand/rescue entities): 600倍加速视频生成→video-generation-600x-acceleration-single-gpu-2026 (56), Linux内核漏洞→corvus-ai-tencentos-kernel-vulnerability-agent-2026 (64), COVERT→covert-vlmaas-covariant-obfuscation-eccv-2026 (56), Handroid→handroid-* (56, also in commit subject). Report these as vxc=NN (reject-line proxy).scripts/extract_new_entities.py — the full validated extraction script (v5, 2026-08-14). Usage: python3 extract_new_entities.py [--since "24 hours ago"]. Prints TOTAL_NEW, VXC_COVERAGE, and a TSV sorted by vxc desc. Run from the wiki root (cd ~/wiki first — the script chdirs itself, but git must run inside the repo).OVERRIDES dict at the top for reject-line proxy scores (verified mappings only — see pitfalls).references/batch-tmp-artifact-score-recovery.md — includes the exact fname-keyed lookup snippet and artifact schema inventory.v[×x]c[=:]\s*(\d+)## [date] TYPE | title | slug | vxc=NN): match the entity's own basename slug FIRST, then each raw slug. Entity-slug-first is critical for multi-source entities (see pitfalls).高价值 line: strip the 高价值: prefix, then match each title (vxc=NN).domain-reject 入档 line: proxy scores for entities later upgraded from domain-rejected articles. Titles here are compressed — containment usually fails; use the known-upgrade map (see pitfalls).腾讯Omega AI BI (vxc=72) in the 高价值 line never containment-matches the entity title 腾讯Omega:下一代"AI BI"的答案? (norm interleaves 下一代 between Omega and AI BI). When the 高价值 line names an entity your matcher missed, take the log.md value directly.python3 -c containing certain string ops got blocked with a bogus "cannot restart or stop the gateway" error, and a heredoc python3 - <<'EOF' was blocked the same way. Cron-safe path is always write_file /tmp/extract.py + python3 /tmp/extract.py — never inline one-liners, never heredocs, never pipe into a second interpreter.write_file /tmp/extract.py can return a warning "modified by sibling subagent" — parallel cron runs share /tmp and both pick the same generic name, so the other run's script gets overwritten (or yours does). Use a job-unique suffix: /tmp/extract-<job>-<MMDD>-<HHMMSS>.py (verified 2026-08-15: mv to a timestamped name before running). Memory rule: 写/tmp 用 job 唯一后缀.sources: resolver — leading [ and - marker traps (verified 2026-08-14, 59-entity window): a naive resolver that strips sources:/raw/articles//.md but NOT the leading [ builds raw/articles/[raw/articles/slug.md → every raw lookup silently misses → all vxc/date render — while titles look fine (all-— table with valid titles is the signature). Worse, the same-line regex ^sources:\s*(.+)$ with \s* GREEDILY CROSSES THE NEWLINE into block-list items, capturing - raw/articles/slug including the - list marker — which then fails the startswith('raw/articles/') check unless you also strip ^-\s+. Mandatory strip order: sources: prefix → - marker → leading [ → raw/articles/ prefix → trailing ] → trailing .md. Two-pass (inline regex, then block-list regex) plus all six strips fixed 59/59.ingested: in the frontmatter (verified 2026-08-14): a fallback like re.search(r'(20\d{2}[-/.]\d{1,2}[-/.]\d{1,2})', content[:3000]) — where content[:3000] INCLUDES the YAML frontmatter — matches ingested: 2026-08-13 instead of a real publish date. Signature: every raw in a batch reports the SAME date, equal to the ingest date (e.g. all 2026-08-13/14). Fix: extract source_published|publish_date|publish_time|published keys from raw frontmatter FIRST (55/59 raws in the observed window carry a real one); only then run a body fallback that starts AFTER the closing ---. Don't conclude raws lack dates until you've grepped all four frontmatter keys..md suffix (verified 2026-08-14): copying git log -z output into a Python list by hand produced 端到端交付20像工业流水线一样的生产和交付任务.md when the real file is ...需求.md → FileNotFoundError-style miss, and the entity's title rendered as 端到端交付20...任务.md (basename fallback, .md still attached). If a title ends in .md, the entity file wasn't found — flag it. Generate the file list inside the extraction script via subprocess git log (or os.path.isfile-verify every entry) instead of hand-copying CJK names.7f1ed21fe wiki-inbox-scan: 25 NEW entities + 3 MERGE ... vxc 49-81 gave no per-entity vxc, and log.md only said 11 passing (vxc 49-81) — yet all 25 scores were in /tmp/score_results_0815.json (API-scored 15 candidates: 8 NEW entities + 3 merges, with 4 rejects listed too) and /tmp/reuse-scores.json (73 reused saved scores, 17 of which became NEW entities). The rejects' scores (baseten 27 / 最有意思ai音乐 35 / 根治ai音乐 32 / 苦等两年chatgpt 48) confirmed which candidates did NOT become entities. Match by raw fname; the batch's raw files sit on disk with source_published intact, so dates come along for free. Always spot-verify a surprising top score straight from the json (v=9 c=9 s=5 confirmed 腾讯PCG 81) — do not trust the assembled table blindly.score_results_*.json vs reuse-scores.json vs candidates.json schemas differ: API output is a list of dicts with vxc; reuse-scores is [source, fname, vxc, stars] tuples with NO reason/title; candidates.json is fname+source ONLY (no scores — it's the pre-scoring candidate list). classify-results.json holds premove/genuinely_new splits. Build one fname → (vxc, source) index from the first two and ignore the others for scoring. (Full inventory: references/batch-tmp-artifact-score-recovery.md.)