raw-article-filename-policy
Naming convention for raw article files in wiki/raw/articles/ — always use the actual publication date, not the date of ingestion.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Naming convention for raw article files in wiki/raw/articles/ — always use the actual publication date, not the date of ingestion.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
Comprehensive wiki health checking, maintenance, and remediation — duplicate detection, entity dedup/disambiguation, link auditing/fixing, page splitting, source-linking lint, wikilink remediation, tag taxonomy audit and normalization, pre-commit enforcement, language enforcement (JP→EN bulk translation, detection regex, cron-assisted migration), and decision-matrix-driven cleanup.
Comprehensive wiki maintenance: daily structural health checks (index reconciliation, log separator fixes, pipeline watchdog alerts), comparison page updates (adding items to multi-section comparison tables), and page relocation (moving/renaming pages while maintaining link integrity).
Pre-flight checklist and procedures for archiving, deleting, or migrating Hermes skills. Prevents accidental removal of cron-referenced skills. Covers the 3-layer skill structure and config.yaml management. Includes skill inventory management, promotion workflows, and archival conventions.
Karpathy's LLM Wiki: build/query interlinked markdown KB.
Deep analysis of blog authors' recent thoughts, philosophy, and positions. Goes beyond entity page creation to extract cited ideological positions, track thought evolution, and enable ongoing RSS monitoring for thought updates.
Query the blogwatcher-cli SQLite database for RSS scan results. Use pre-verified column names and query templates to avoid errors.
| name | raw-article-filename-policy |
| description | Naming convention for raw article files in wiki/raw/articles/ — always use the actual publication date, not the date of ingestion. |
| trigger | When saving a raw article to wiki/raw/articles/ — before writing any article file, determine the real publication date and construct the filename accordingly. |
wiki/raw/papers/)Filename = {YYYY-MM-DD}_{arxiv-id}_{short-title}.md
Where:
YYYY-MM-DD = the publication date (or first arXiv submission date if exact date unknown)arxiv-id = arXiv ID without version suffix (e.g., 2512.24601, NOT 2512.24601v2)short-title = 2-5 hyphenated keywords (lowercase, 40 chars max)For non-arXiv papers (conference proceedings, tech reports without arXiv IDs):
{YYYY-MM-DD}_{source}_{short-title}.mdsource = acl, emnlp, neurips, icml, meta, deepseek, etc.Before saving ANY new paper to wiki/raw/papers/, run:
python3 scripts/papers_index.py --check <arxiv-url-or-id>
If it returns DUPLICATE, DO NOT create a new file — update the existing one instead.
If you create a new file, register it: python3 scripts/papers_index.py --add <filename> <url>
The index is at wiki/raw/papers/.papers_index.json and maps identifiers to canonical filenames.
Full pipeline reference: references/papers_index_workflow.md — step-by-step from date discovery through commit/push.
| Paper | Source Date | Filename |
|---|---|---|
| Recursive Language Models (arXiv:2512.24601) | 2025-12-31 | 2025-12-31_2512.24601_recursive-language-models.md |
| DeepSeek-V3 (arXiv:2412.19437) | 2024-12-27 | 2024-12-27_2412.19437_deepseek-v3-technical-report.md |
| GEPA (arXiv:2507.19457) | 2025-07-25 | 2025-07-25_2507.19457_gepa-reflective-prompt-evolution.md |
| DeepSeek-V4 (HuggingFace) | 2026-04-xx | 2026-04-xx_deepseek-v4-technical-report.md |
wiki/raw/transcripts/)Filename = {YYYY-MM-DD}_{source-slug}_{content-slug}-lecture.md
Same date and source-slug rules as articles. Add -lecture suffix to distinguish from the companion slides article.
type: transcript, include date (lecture date) and date_ingestedrelated_article: pointing to the companion slides article wikilink path2026-06-02_softwaredoug_cheat-at-search-long-running-search-lecture.md
articles/2026-06-02_softwaredoug_cheat-at-search-long-running-search.mdwiki/raw/articles/ PolicyFilename = {YYYY-MM-DD}_{source-slug}_{content-slug}.md
Where:
YYYY-MM-DD = the ACTUAL publication date of the article (verified from the source, NOT today's date)source-slug = abbreviated domain or source name (lowercase, no dots: interconnects, pelayoarbues, simonwillison, arxiv, anthropic)content-slug = 2-5 word descriptive title (lowercase, hyphenated, 30 chars max)wiki/raw/transcripts/)Filename = {YYYY-MM-DD}_{source-slug}_{content-slug}.md (same pattern as articles)
Where:
YYYY-MM-DD = the lecture/presentation date (not ingestion date)source-slug = author handle (e.g., softwaredoug)content-slug = descriptive slugtype: transcript in frontmatterwiki-entity-enrichment-from-article → references/transcript-ingestion.md for full workflow| Article | Source Date | Filename |
|---|---|---|
| Nathan Lambert on synthetic data (interconnects.ai) | 2023-11-29 | 2023-11-29_interconnects-llm-synthetic-data.md |
| Pelayo Arbués on dataset engineers (pelayoarbues.com) | 2025-01-16 | 2025-01-16_pelayoarbues-dataset-engineer.md |
| Megadocs synthetic pretraining (arXiv) | 2026-03-19 | 2026-03-19_megadocs-synthetic-pretraining.md |
| Khairallah context engineering course (X Article) | 2026-05-10 | 2026-05-10_engkhairallah_context-engineering-master-course.md |
For X Article and X Note Tweet raw articles:
source-slug = the X handle without @ (e.g., eng_khairallah1 → engkhairallah1), underscores strippeddate = created_at from the parent tweet's API responsetype: x_article or type: x_note_tweet2026-05-10_engkhairallah_context-engineering-master-course.md<meta property="article:published_time">, <time datetime="...">, JSON-LD datePublished/2024/01/15/title)<pubDate> or <dc:date> in the feed XMLdatePublished from JSON-LD SocialMediaPosting — see references/linkedin-date-extraction.md.import urllib.request, re
url = "https://example.com/article"
resp = urllib.request.urlopen(url, timeout=10)
html = resp.read().decode("utf-8")
# Check meta tags
for m in re.finditer(r'<meta[^>]*property=["\']article:published_time["\'][^>]*content=["\']([^"\']+)["\']', html):
print("Meta published:", m.group(1)) # 2023-11-29T...
# Check time tags
for m in re.finditer(r'<time[^>]*datetime=["\']([^"\']+)["\']', html):
print("Datetime attr:", m.group(1))
# Check JSON-LD
for m in re.finditer(r'"datePublished"\s*:\s*"([^"]+)"', html):
print("JSON-LD datePublished:", m.group(1))
When a raw article filename needs correction (wrong date, typo, etc.), follow this reference-update pattern. See references/raw-article-rename-workflow.md for the full checklist.
Quick version:
search_files for the old filename across wiki/ to find ALL referencesterminal mv to rename the filedate, etc.) via patchindex.md, log.md, entities/, concepts/, raw/transcripts/log.mdUser preference: When correcting dates or metadata, the user expects a thorough reference update — not just the frontmatter, but all wikilinks, index entries, log entries, and cross-references in related pages.
source-slug should come from the verified domain (together-ai, google-developers), not from the potentially inaccurate blogwatcher URL path.date_ingested: YYYY-MM-DD in the YAML frontmatter (not date or date_published) to distinguish it from a verified publication date._updated-{YYYY-MM-DD} suffix if the update was substantial.YYYY-MM-DD_unknown_{slug}.md and add a date_unknown: true frontmatter flag.wiki/raw/articles/ is exclusively for externally-sourced finalized article scrapes ingested from newsletters, RSS, web, etc. Original blog posts (Hermes-authored content, user-requested essays) go to blog/ at the repo root (~/ai-topics/blog/). Do NOT write original blog posts into wiki/raw/articles/. The blog/ directory uses a simpler naming convention: {YYYY-MM-DD}_{author}_{short-slug}.md.