ask
Skill1.7k starsChanged 34 days agoMITView on GitHub
Ask the wiki a question, retrieve and synthesize relevant pages, optionally crystallize the answer back into the wiki
We split this skill into the rules it gives an agent
24 rules. 0 are common, 9 are distinctive, and 15 are very specific to this project.
0
Common
Most of the 52 edited versions we read keep these.
9
Distinctive
This author's own choices. Worth a look.
15
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 67
Read wiki/graph/context_brief.md — get compressed snapshot of wiki's current knowledge (ideas, gaps, papers, edges)
- Very specific: line 68
Read wiki/graph/open_questions.md — understand known open questions and knowledge gaps
- Distinctive: line 69
If both are missing, rebuild first:
- Very specific: line 77
Read wiki/index.md, match relevant slugs against question keywords
- Distinctive: line 80
Read full content of selected pages
- Very specific: line 81
If the question involves relationships (e.g.
- Very specific: line 87
Cited: every key statement must include a [[slug]] wikilink pointing to its source page
- Distinctive: line 90
Flag knowledge gaps: if the question touches a known gap in open_questions.md, call it out explicitly
- Very specific: line 91
Cite idea status: when referencing ideas, note their status and novelty_score
- Distinctive: line 92
If the question exceeds the wiki's current knowledge, honestly say so and suggest:
- Distinctive: line 130
Add a graph edge for each cited source page:
- Very specific: line 136
If the answer reveals a new concept: create wiki/concepts/{slug}.md using the CLAUDE.md concept template
- Distinctive: line 139
Add graph edges (concept → papers)
- Very specific: line 143
If the answer extends a finding tied to an existing entity, append a short paragraph (with [[slug]] citations) to the appropriate section:
- Very specific: line 147
Add graph edges from the touched page to the cited papers/concepts/methods (derived_from)
- Distinctive: line 148
Do not create a new entity.
- Distinctive: line 174
Follow-up suggestions (papers recommended for ingestion, related open questions)
- Very specific: line 179
Citations must exist: every [[slug]] must point to a page that actually exists in the wiki
- Very specific: line 180
raw/ is read-only: do not modify files under raw/
- Very specific: line 181
graph/ only via tools: do not hand-edit files under graph/
- Very specific: line 184
Cite idea status: when referencing ideas, always note their status and novelty_score
- Distinctive: line 185
Flag gaps: if the question touches a known gap in open_questions.md, explicitly call it out
- Very specific: line 190
context_brief.md missing: run python3 tools/research_wiki.py rebuild-context-brief wiki/ to rebuild, then retry
- Very specific: line 194
index.md missing: run python3 tools/research_wiki.py init wiki/ to initialize, then retry
“Common” is measured: kept by at least 6 in 10 of the 52 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
/ask
Ask a question to the wiki knowledge base. The LLM reads context_brief.md for global context, retrieves relevant pages, synthesizes an answer with citations. Good answers can be crystallized back into the wiki — written to outputs/, as new concept pages, or appended to an existing idea/method/output note — so exploration compounds like ingestion does.
Inputs
question: natural-language question (e.g. "What is the core difference between LoRA and Adapter?")--crystallize(optional): if specified, crystallize the answer back into the wiki (default: answer only, no write)--format(optional): output format, defaultmarkdown, options:table/timeline/bullets
Outputs
- Always: terminal output of synthesized answer (with
[[slug]]citations) - If crystallize:
wiki/outputs/{query-slug}.md— query result page (default crystallize target)- or
wiki/concepts/{slug}.md— if the answer reveals a new cross-paper concept - or appended to an existing
wiki/ideas/{slug}.md/wiki/methods/{slug}.md/wiki/outputs/{slug}.md— if the answer adds a finding to an existing entity - updated
wiki/graph/edges.jsonl(relationships produced by crystallize) - updated
wiki/index.mdandwiki/log.md
Wiki Interaction
Reads
wiki/graph/context_brief.md— global compressed context (ideas, gaps, failed ideas, papers, edges)wiki/index.md— page catalog for locating relevant pageswiki/graph/open_questions.md— open questions, helps identify whether the question touches known gapswiki/papers/*.md— paper pages relevant to the questionwiki/concepts/*.md— concept pages relevant to the questionwiki/methods/*.md— method pages relevant to the questionwiki/topics/*.md— topic pages relevant to the questionwiki/people/*.md— if the question involves specific researcherswiki/ideas/*.md— if the question involves research ideas or failed ideaswiki/experiments/*.md— if the question involves experiment resultswiki/Summary/*.md— if the question involves domain-wide landscape
Writes (crystallize mode only)
wiki/outputs/{query-slug}.md— CREATE (query result page)wiki/concepts/{slug}.md— CREATE (newly discovered concept) or EDIT (supplement existing concept)wiki/ideas/{slug}.md/wiki/methods/{slug}.md/wiki/outputs/{slug}.md— EDIT (append finding to existing page)wiki/graph/edges.jsonl— APPEND (relationships produced by crystallize)wiki/graph/context_brief.md— REBUILD (if crystallize created new pages)wiki/graph/open_questions.md— REBUILD (if crystallize created new pages)wiki/index.md— EDIT (if crystallize created new pages)wiki/log.md— APPEND
Graph edges created (crystallize only)
output → paper:derived_from(papers cited in the answer)output → concept:derived_from(concepts cited in the answer)output → idea/output → method:derived_from(ideas or methods cited in the answer)concept → paper:supports(if a new concept is generalized from papers)
Workflow
Precondition: confirm working directory is the wiki project root (containing wiki/, raw/, tools/).
Set WIKI_ROOT=wiki/.
Step 1: Load Global Context
- Read
wiki/graph/context_brief.md— get compressed snapshot of wiki's current knowledge (ideas, gaps, papers, edges) - Read
wiki/graph/open_questions.md— understand known open questions and knowledge gaps - If both are missing, rebuild first:
python3 tools/research_wiki.py rebuild-context-brief wiki/ python3 tools/research_wiki.py rebuild-open-questions wiki/
Step 2: Retrieve Relevant Pages
- Read
wiki/index.md, match relevant slugs against question keywords - Extract ideas, methods, and papers semantically related to the question from context_brief.md
- Sort by relevance, select top-K pages (K ≤ 15 to avoid exceeding context window)
- Read full content of selected pages
- If the question involves relationships (e.g. "difference between X and Y"), additionally read edges connecting X and Y from
wiki/graph/edges.jsonl
Step 3: Synthesize Answer
- Synthesize an answer to the user's question based on collected page content
- Answer requirements:
- Cited: every key statement must include a
[[slug]]wikilink pointing to its source page - Structured: organize output according to
--formatparameter (markdown / table / timeline / bullets) - Acknowledge uncertainty: clearly flag "insufficient evidence in wiki" for parts with weak support
- Flag knowledge gaps: if the question touches a known gap in open_questions.md, call it out explicitly
- Cite idea status: when referencing ideas, note their
statusandnovelty_score
- Cited: every key statement must include a
- If the question exceeds the wiki's current knowledge, honestly say so and suggest:
- which papers to ingest to fill the gap
- possible search directions (arXiv keywords, Semantic Scholar queries)
Step 4: Assess Crystallize Value
- Judge whether the answer is worth writing back to the wiki (make a recommendation even if
--crystallizewas not specified) - Signals that crystallize is worthwhile:
- The answer synthesizes information from multiple papers, forming a new cross-paper insight
- The answer reveals a concept not yet explicitly recorded in the wiki
- The answer adds a finding that strengthens an existing idea, method, or output note
- The answer addresses a known gap in open_questions.md
- Signals that crystallize is not worthwhile:
- The answer merely restates the content of a single page
- The question is a simple factual lookup (e.g. "What year was LoRA published?")
- The answer relies primarily on inference rather than wiki evidence
- Append a crystallize recommendation at the end of the answer:
💡 Crystallize recommendation: [worthwhile / not needed] — [reason]
Step 5: Crystallize Back to Wiki (if user confirms or --crystallize was specified)
Choose the crystallize target based on answer content:
Case A — Write to outputs/ (default):
- Generate slug:
python3 tools/research_wiki.py slug "<query-summary>" - Create
wiki/outputs/{query-slug}.md:
Body is the answer content (preserve wikilinks)--- title: "" slug: "" query: "" # original question source_pages: [] # slugs of all pages cited in the answer date_created: YYYY-MM-DD --- - Add a graph edge for each cited source page:
python3 tools/research_wiki.py add-edge wiki/ --from outputs/<slug> --to papers/<source-slug> --type derived_from --evidence "query answer"
Case B — Create new concept:
- If the answer reveals a new concept: create
wiki/concepts/{slug}.mdusing the CLAUDE.md concept template - maturity: emerging
- key_papers: extracted from answer citations
- Add graph edges (concept → papers)
- Append reverse links to relevant paper pages under
## Related
Case C — Append finding to an existing idea, method, or output note:
- If the answer extends a finding tied to an existing entity, append a short paragraph (with
[[slug]]citations) to the appropriate section:wiki/ideas/{slug}.md→## Lessons learnedor## Pilot resultswiki/methods/{slug}.md→## Limitationsor## Tradeoff profilewiki/outputs/{slug}.md→ end of the body
- Add graph edges from the touched page to the cited papers/concepts/methods (
derived_from) - Do not create a new entity; this case only enriches an existing one
Step 6: Update Navigation and Graph (crystallize only)
- index.md: append new page entries under the appropriate category
- log.md:
If not crystallized:python3 tools/research_wiki.py log wiki/ "ask | <question-summary> | crystallized: <target-path>"python3 tools/research_wiki.py log wiki/ "ask | <question-summary> | answer-only" - Rebuild derived graph files (only if crystallize created new pages):
python3 tools/research_wiki.py rebuild-context-brief wiki/ python3 tools/research_wiki.py rebuild-open-questions wiki/
Step 7: Report to User
Output a summary including:
- Number and list of retrieved pages
- Answer (with citations and formatting)
- Knowledge gap annotations (if any)
- Crystallize recommendation or execution result
- Follow-up suggestions (papers recommended for ingestion, related open questions)
Constraints
- No fabrication: answers must be grounded in actual wiki content; do not invent from LLM pre-training knowledge
- Citations must exist: every
[[slug]]must point to a page that actually exists in the wiki - raw/ is read-only: do not modify files under
raw/ - graph/ only via tools: do not hand-edit files under
graph/ - Crystallize requires confirmation: unless the user explicitly specifies
--crystallize, only recommend but do not write - Context limit: retrieve at most 15 pages to stay within context window
- Cite idea status: when referencing ideas, always note their
statusandnovelty_score - Flag gaps: if the question touches a known gap in open_questions.md, explicitly call it out
- outputs/ frontmatter must include query and source_pages: ensures traceability
Error Handling
- context_brief.md missing: run
python3 tools/research_wiki.py rebuild-context-brief wiki/to rebuild, then retry - wiki is empty: inform the user to first run
/initor/ingestto build the knowledge base - no matching pages: honestly report that no relevant content exists in the wiki, suggest search and ingest directions
- crystallize slug conflict: append a numeric suffix (e.g.
query-result-2) - index.md missing: run
python3 tools/research_wiki.py init wiki/to initialize, then retry
Dependencies
Tools(via Bash)
python3 tools/research_wiki.py slug "<title>"— slug generationpython3 tools/research_wiki.py add-edge wiki/ --from <id> --to <id> --type <type> --evidence "<text>"— add graph edgepython3 tools/research_wiki.py rebuild-context-brief wiki/— rebuild compressed contextpython3 tools/research_wiki.py rebuild-open-questions wiki/— rebuild knowledge gap mappython3 tools/research_wiki.py log wiki/ "<message>"— append log entrypython3 tools/research_wiki.py init wiki/— initialize wiki (fallback)
Skills(via Skill tool)
/ingest— referenced when suggesting the user supplement knowledge
Shared References
.claude/skills/shared-references/citation-verification.md(created in Phase 3)
Trending
More talk lately.thin dataabout the whole repository
Who's talking about PKU-DAIR/AutoSci
The biggest 1 of 1 mention linking to the repository that our crawl found. Each line is their own headline.
Other versions66 projects use a version of this.
Word for word · 3
- DAIR-AutoResearch/AutoSci★ 1.7k100% same
- skyllwt/AutoSci★ 1.7k100% same
- skyllwt/OmegaWiki★ 1.7k100% same
Edited · 1
- Lambenthan/empiricalwiki★ 8513% same
Wrote their own version · 62
- Yeachan-Heo/oh-my-claudecode★ 40ksame name
- Yeachan-Heo/oh-my-claude-sisyphus★ 40ksame name
- Yeachan-Heo/oh-my-codex★ 34ksame name
- agenticnotetaking/arscontexta★ 3.5ksame name
- acunniffe/git-ai★ 2.8ksame name
- git-ai-project/git-ai★ 2.8ksame name
- keli-wen/agy-staff★ 780same name
- typv/nest-turbo-starter★ 224same name
- sd0xdev/sd0x-dev-flow★ 192same name
- sd0xdev/sd0x-harness★ 192same name
52 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository30 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- runtime/CLAUDE.mdCLAUDE.md
- checkSkill
- daily-arxivSkill
- discoverSkill
- editSkill
- exp-designSkill
- exp-evalSkill
- exp-pilot-evalSkill
- exp-pilot-runSkill
- exp-runSkill
- exp-statusSkill
- hiera-experimentSkill
- ideateSkill
- ingestSkill
- initSkill
- noveltySkill
- paper-compileSkill
- paper-draftSkill
- paper-planSkill
- posterSkill
- prefillSkill
- rebuttalSkill
- refineSkill
- researchSkill
- resetSkill
- reviewSkill
- setupSkill
- surveySkill
- visualizeSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
Reviews can't be read right now.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

