Code Review Graph Builder
tirth8205/code-review-graph
Builds or incrementally updates the code-review knowledge graph for a repository and reports whether the build succeeded, partly or failed.
Run an incremental Hypatia graph-consolidation pass at a work-period boundary, like sleep-time knowledge organization.
$ npx skills add MarchLiu/hypatia --skill hypatia-dream -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install MarchLiu/hypatia hypatia-dream --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/MarchLiu/hypatia.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/hypatia-dream .claude/skills/hypatia-dream && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "hypatia-dream" agent skill from https://github.com/MarchLiu/hypatia/tree/main/skills/hypatia-dream into .claude/skills/hypatia-dream/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "hypatia-dream", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/MarchLiu/hypatia/tree/main/skills/hypatia-dreamType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add MarchLiu/hypatia --skill hypatia-dream -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install MarchLiu/hypatia hypatia-dream --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/MarchLiu/hypatia.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/hypatia-dream .agents/skills/hypatia-dream && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "hypatia-dream" agent skill from https://github.com/MarchLiu/hypatia/tree/main/skills/hypatia-dream into .agents/skills/hypatia-dream/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "hypatia-dream", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add MarchLiu/hypatia --skill hypatia-dream -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install MarchLiu/hypatia hypatia-dream --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/MarchLiu/hypatia.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/hypatia-dream .cursor/skills/hypatia-dream && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "hypatia-dream" agent skill from https://github.com/MarchLiu/hypatia/tree/main/skills/hypatia-dream into .cursor/skills/hypatia-dream/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "hypatia-dream", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/MarchLiu/hypatia.git --path skills/hypatia-dream--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add MarchLiu/hypatia --skill hypatia-dream -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install MarchLiu/hypatia hypatia-dream --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/MarchLiu/hypatia.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/hypatia-dream .gemini/skills/hypatia-dream && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "hypatia-dream" agent skill from https://github.com/MarchLiu/hypatia/tree/main/skills/hypatia-dream into .gemini/skills/hypatia-dream/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "hypatia-dream", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install MarchLiu/hypatia hypatia-dreamInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add MarchLiu/hypatia --skill hypatia-dream -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/MarchLiu/hypatia.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/hypatia-dream .github/skills/hypatia-dream && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "hypatia-dream" agent skill from https://github.com/MarchLiu/hypatia/tree/main/skills/hypatia-dream into .github/skills/hypatia-dream/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "hypatia-dream", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add MarchLiu/hypatia --skill hypatia-dream -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install MarchLiu/hypatia hypatia-dream --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/MarchLiu/hypatia.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/hypatia-dream .opencode/skills/hypatia-dream && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "hypatia-dream" agent skill from https://github.com/MarchLiu/hypatia/tree/main/skills/hypatia-dream into .opencode/skills/hypatia-dream/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "hypatia-dream", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
hypatia-dreamRun an incremental Hypatia graph-consolidation pass at a work-period boundary, like sleep-time knowledge organization.
Hypatia Dream is an agent skill from MarchLiu/hypatia. Run an incremental Hypatia graph-consolidation pass at a work-period boundary, like sleep-time knowledge organization. Trigger only for an explicit batch closeout or dream-time review, not ordinary knowledge CRUD, a one-off triple, or a lookup. Without an explicit --mode, these mean apply: '下班了', '收工了', '今天先到这', '本阶段结束', '阶段性收尾', '做个好梦', '睡前整理一下', 'done for the day', 'wrapping up', 'call it a night'. These mean report-only: '先整理看看', '做个梦看看', '睡前审阅一下', '看看知识之间的关系', '只出报告', '先别修改', 'just show me first', 'do not…
Its SKILL.md is about 4.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `evals/evals.json`).
The repository describes itself as: "We can wander through the stacks of the Library of Alexandria, imagining the scrolls and the knowledge they contain. Its destruction is a warning: all we have is…. The licence is MIT.
5 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit d32f94e. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
BashReadGrepGlobFrom allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
justFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Hypatia Dream loads about 4.4k tokens when it runs. Until then it costs about 158 tokens; SKILL.md has 2,163 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
allowed-tools: Bash, Read, Grep, GlobAutomated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from MarchLiu/hypatia at commit d32f94e, republished under its MIT licence (© MarchLiu). 2,163 words, ~4,434 tokens.
.claude/skills/hypatia-dream/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Perform an incremental, relationship-focused consolidation pass over one Hypatia shelf. The purpose is to make the graph more coherent after new knowledge arrives, not to summarize, rewrite, delete, or otherwise curate the knowledge nodes themselves.
Treat the graph as a personal knowledge base: inspect its whole available relationship topology rather than imposing a small relationship window. Keep the analysis disciplined by treating Statement triples as the primary evidence. Knowledge bodies may clarify entity identity or resolve an apparent contradiction, but they are not a license to invent weak associations.
Trigger this skill only for a deliberate batch consolidation at a work-period boundary or an explicitly requested dream-time review. Do not trigger it for ordinary knowledge CRUD, a direct one-off triple request, an entity lookup, a relationship query, or automatic conversation-memory extraction; those belong to hypatia or hypatia-memory.
Interpret the optional shelf name from the request; use default when it is omitted.
Resolve the mode in this order:
--mode report or --mode apply always wins.apply: 下班了, 收工了, 今天先到这, 本阶段结束, 阶段性收尾, 做个好梦, 睡前整理一下, done for the day, wrapping up, and call it a night.report: 先整理看看, 做个梦看看, 睡前审阅一下, 看看知识之间的关系, 只出报告, 先别修改, just show me first, and do not change anything yet.apply.report.The modes have these effects:
report reads the shelf and returns a structured report. It creates no state marker and changes no knowledge or statement.apply may add a missing statement or replace an explicitly contradicted statement. It never creates, edits, or deletes a regular Knowledge entry.Before every Hypatia CLI command, briefly state the goal, the exact command, why that query or mutation is appropriate, and the expected result. Use one-shot commands only; do not use hypatia repl.
Use the actual Statement fields and CLI terminology: head, relation, and tail. Do not describe them as fields named subject, predicate, or object in commands or reports.
Prefer the relationship vocabulary already established by Hypatia's semantic-memory design:
is_a for a clear category relationship.refines for a more precise form of an existing concept.extends for an addition that builds on an existing concept.supersedes for an explicit replacement of an older concept or decision.derivedFrom for a clear provenance relationship.Preserve existing predicate spellings. belongTo and summary are operational relationships maintained by the memory system; do not reinterpret, delete, replace, or add semantic links to their message/session/summary endpoints. Likewise, do not reorganize archive metadata relationships such as is_a archive.
Do not use a vague catch-all relationship such as related_to merely because two entries share words or a topic. Omit uncertain candidates.
hypatia on PATH, ./target/debug/hypatia, then ./target/release/hypatia. Stop and report a concrete blocker if none exists.SHELF to the requested shelf or default, then confirm that shelf is connected before doing anything else:hypatia listEvery Hypatia command fails when the target shelf is not connected, and the whole CLI fails at startup when any registered shelf uses the legacy DuckDB layout. Both are blockers to report, not conditions to work around.
date -u '+%Y-%m-%d %H:%M:%S'SQLite's 'now' is UTC, so this is the same clock Hypatia stamps with. Hypatia writes created_at as %Y-%m-%d %H:%M:%f, so stored values carry milliseconds (2026-09-02 08:50:08.790) and compare as TEXT. A second-resolution boundary is therefore slightly conservative, deliberately so: created_at <= "2026-09-02 08:50:08" excludes 2026-09-02 08:50:08.790, and because the watermark is written at the same resolution, the next run's created_at > "2026-09-02 08:50:08" picks that row back up. Do not pad the boundary with .999 and do not truncate stored values to close the apparent gap — either one reintroduces a real gap.
hypatia query '{"$knowledge":[["$contains","tags","hypatia-dream-run"]],"limit":1}' -s "<SHELF>"Query results are ordered by created_at DESC, so limit:1 returns the most recent marker. A marker is a system-tagged Knowledge entry created by this skill after a successful apply. Its content contains a processed_through timestamp. Read that value, not the marker entry's created_at: a run can create statements after its snapshot begins, and using the marker creation time could skip concurrent new information.
processed_through < created_at <= run_started_at.report mode must not advance this watermark. This lets a later apply reconsider the same proposed changes. Only a completed apply writes a marker.
Retrieve the complete pre-snapshot relationship graph. Use a large, explicit limit because the shelf is personal and the user requested no relationship-range cap:
hypatia query '{"$statement":[["$lte","created_at","<RUN_STARTED_AT>"]],"limit":10000}' -s "<SHELF>"Retrieve the newly created triples with the collection interval. For a first pass, omit the lower-bound condition:
hypatia query '{"$statement":[["$and",["$gt","created_at","<BASELINE>"],["$lte","created_at","<RUN_STARTED_AT>"]]],"limit":10000}' -s "<SHELF>"Also retrieve new Knowledge entries from the same interval. Exclude internal log, session, summary, and dream-marker entries by tag. For a first pass, omit the lower-bound condition:
hypatia query '{"$knowledge":[["$and",["$gt","created_at","<BASELINE>"],["$lte","created_at","<RUN_STARTED_AT>"],["$not",["$or",["$contains","tags","message"],["$contains","tags","session"],["$contains","tags","summary"],["$contains","tags","hypatia-dream-run"]]]]],"limit":10000}' -s "<SHELF>"limit is a hard cap, not a promise. Compare the returned row count with the limit for each of the three queries above. If they are equal, the result was truncated by ORDER BY created_at DESC and the graph in hand is incomplete. Stop, report the truncation as a blocker, and apply nothing: a relation can only be judged contradicted, duplicate, or missing against the whole graph, and a truncated read would let this skill "correct" a relationship whose supporting evidence was simply cut off.
The new Knowledge set can include an unlinked node. It is eligible for one well-supported relationship to an older graph node, but only after its body and the prospective target's body have been read for disambiguation. Do not manufacture a relation solely to make an isolated node connected.
For each potentially affected node, fetch its Knowledge entry by exact name and inspect its one-hop incident triples from the full graph. Read only the bodies needed to explain an entity match, source lineage, category, refinement, extension, supersession, or direct contradiction. Never use conversation text, session summaries, or system markers as semantic evidence.
Work from the newly added triples and eligible new Knowledge nodes toward the full existing graph. For every candidate, identify:
(head, relation, tail) form.Classify each outcome as exactly one of these:
supersedes when the old idea remains historically useful; delete and replace only when the old relation itself is false.A candidate must be high confidence before it may be applied. Similarity, shared tags, or lexical overlap alone are never high confidence.
Before a replacement, inspect the old statement's content, tr_start, and tr_end. A query result omits NULL columns entirely, so an absent tr_start or tr_end key means the statement has no temporal bound — not that the information is unavailable.
statement-create accepts only --data, --synonyms, and --scopes. It cannot set tags, cannot set format, cannot set figures, and cannot recreate a temporal bound. Report instead of replacing whenever the source statement has any of these:
tr_start or tr_end;content.tags;content.format other than markdown;content.figures.Otherwise the statement is eligible, and the replacement must carry over content.data, positional content.synonyms, and content.scopes from the source.
In report mode, stop after producing the report. Do not write a marker.
In apply mode, execute this sequence only after the analysis identifies high-confidence changes:
triple primary key:hypatia query '{"$statement":[["$triple","<HEAD>","<RELATION>","<TAIL>"]],"limit":1}' -s "<SHELF>"Skip a stale plan, an addition that already exists, and a replacement whose source triple no longer matches the reviewed evidence.
A replacement whose new triple already exists needs one more check, because statement-create never overwrites an existing triple. Compare that triple's data, synonyms, and scopes with the source triple's. Treat an absent field and an empty list or object as equal, and compare scopes as a set.
target already exists with different metadata; a person must decide, do not delete the source, and leave both triples out of step 5's verification.export creates the destination directory itself, so do not pre-create it, and pass the shelf name as the first argument:hypatia export "<SHELF>" "<BACKUP_DIR>"hypatia statement-create "<HEAD>" "<RELATION>" "<TAIL>" -s "<SHELF>"statement-create is idempotent. Creating a triple that already exists exits 0 and prints Statement already exists: (<HEAD>, <RELATION>, <TAIL>) instead of Created statement: ..., and leaves the stored triple and its metadata unchanged. That means the relationship is already recorded: count it as skipped and continue. It is not a run failure.
head, relation, and tail, so the two triples have different primary keys and can coexist for the moment in between. This ordering has no window in which the old relationship is already gone and the new one does not yet exist. Never delete first. For a delete-only replacement from step 1, skip the create and run only the statement-delete.hypatia statement-create "<NEW_HEAD>" "<NEW_RELATION>" "<NEW_TAIL>" \
-d "<SOURCE_DATA>" --synonyms '<SOURCE_SYNONYMS_JSON>' --scopes "<SOURCE_SCOPES>" -s "<SHELF>"
hypatia statement-delete "<OLD_HEAD>" "<OLD_RELATION>" "<OLD_TAIL>" -s "<SHELF>"Carry the source metadata across exactly, and omit any flag whose source value is empty — --synonyms "" is a hard parse error, not an empty value. --synonyms takes the positional form {"head":[...],"relation":[...],"tail":[...]}. --scopes is comma-separated and a trailing comma means global scope, so source scopes ["project-a",""] are reproduced as --scopes "project-a," and [""] as --scopes ",".
If the create fails, nothing has been lost: report it and leave the source triple untouched. If the create prints Statement already exists, the new triple appeared after step 1's re-query and may not carry the source metadata. Do not delete the source yet: apply step 1's already-exists check to it now. If the create succeeds but the delete fails, stop and report both triples as present — the graph is consistent but now carries a duplicate relationship, and a person must decide.
$triple form. For a delete-only replacement, also re-query its target: it must still come back. A created triple must come back; a removed triple must return No results found. Note that statement-delete exits non-zero with not found when the triple is already gone; that is an already-applied removal rather than a failure, but confirm it by query before continuing. If any verification fails, stop, report the partial outcome and the backup location, and do not create a watermark.After all intended changes verify, write one run marker in the same shelf:
hypatia knowledge-create "hypatia-dream-run-<UTC_COMPACT_TIMESTAMP>" \
-d "schema: 1
mode: apply
processed_through: <RUN_STARTED_AT>
added: <COUNT>
replaced: <COUNT>
report: Hypatia Dream completed successfully" \
-t "system,hypatia-dream-run" \
-s "<SHELF>"The marker is operational metadata, not semantic knowledge. Never attach a Statement triple to it or use it as relationship evidence.
A marker is still an ordinary Knowledge entry: it is full-text indexed and vector-embedded like any other, so it will surface in the user's own hypatia search and hypatia similar results. Keep the body to the fields above for that reason — never store report prose, analysis, or candidate lists in it. This skill never deletes an old marker; only the most recent one is ever read.
If no high-confidence graph changes exist, apply may still write the marker after reporting a verified no-op. This records that the interval has been reviewed without falsely claiming a graph mutation.
Return the report in this structure, in the user's language:
# Hypatia Dream Report
## Scope
- Shelf: `<name>`
- Mode: `report` or `apply`
- Baseline: first pass, or `<processed_through>`
- Snapshot boundary: `<run_started_at>`
- Reviewed: `<new knowledge count>` Knowledge entries and `<new statement count>` new triples against `<total statement count>` existing triples
- Graph read: `<returned row count>` of `<limit>` rows, complete or truncated
## Relationship Findings
### Add
- `(head, relation, tail)` [high confidence]
Evidence: ...
Existing context: ...
### Replace
- `(old head, old relation, old tail)` -> `(new head, new relation, new tail)` [high confidence]
Evidence: ...
Rationale: ...
### No Change
- Item: ...
Reason: duplicate, insufficient evidence, protected system relation, metadata/temporal safety restriction, or target already exists with different metadata.
## Outcome
- Planned or applied additions: `<count>`
- Planned or applied replacements: `<count>`
- Skipped candidates: `<count>`
- Backup: `<path>` or `not needed`
- Watermark: `<processed_through>` written only after a verified `apply`, otherwise `unchanged`Be concise but include every command that changed state and every exact triple it affected. Do not claim a relationship was corrected unless its post-mutation query verified the result.
© MarchLiu, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file in skills/hypatia-dream of MarchLiu/hypatia.
Open the folder on GitHubat commit d32f94e
Hypatia Dream next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Hypatia Dream this skillMarchLiu/hypatia | 239 | — | ~4.4k | Automated safety check: Notes | MIT | |
| Code Review Graph Buildertirth8205/code-review-graph | 32k | — | ~295 | Automated safety check: Pass | MIT | |
| Graphagenticnotetaking/arscontexta | 3.5k | — | ~4.9k | Automated safety check: Notes | MIT | |
| Bigquery Graphgoogle/adk-python | 22k | — | ~4.8k | Automated safety check: Pass | Apache-2.0 | |
| Mini Context Graphgithub/awesome-copilot | 40k | 1 repos | ~2k | Automated safety check: Pass | MIT | |
| Graphatopile/atopile | 4k | — | ~952 | Automated safety check: Pass | MIT |
tirth8205/code-review-graph
Builds or incrementally updates the code-review knowledge graph for a repository and reports whether the build succeeded, partly or failed.
agenticnotetaking/arscontexta
Interactive knowledge graph analysis. An agent skill from agenticnotetaking/arscontexta.
google/adk-python
Skill for Graph Query Language (GQL) or SQL/PGQ queries against a property graph.
github/awesome-copilot
A persistent, compounding knowledge base combining Karpathy's LLM Wiki pattern with a structured knowledge graph.
atopile/atopile
How the Zig-backed instance graph works (GraphView/NodeReference/EdgeReference), the real Python API surface, and the invariants around allocation, attributes, and cleanup.
affaan-m/ECC
Weighted social-graph ranking for warm intro discovery, bridge scoring, and network gap analysis across X and LinkedIn.
MarchLiu/hypatia
Interact with the Hypatia AI memory system using natural language.
MarchLiu/hypatia
Automatic memory extraction and management for hypatia knowledge graph
Run an incremental Hypatia graph-consolidation pass at a work-period boundary, like sleep-time knowledge organization. Hypatia Dream is an agent skill from MarchLiu/hypatia. Run an incremental Hypatia graph-consolidation pass at a work-period boundary, like sleep-time knowledge organization.
Hypatia Dream fits situations like: ly for an explicit batch closeout; dream-time review; not ordinary knowledge CRUD; A one-off triple.
Run `npx skills add MarchLiu/hypatia --skill hypatia-dream -a claude-code`. Or copy the skill folder (skills/hypatia-dream in MarchLiu/hypatia) into .claude/skills/hypatia-dream in your project. Claude Code loads it when a task matches its description.
Run `npx skills add MarchLiu/hypatia --skill hypatia-dream -a codex`. Or copy the skill folder (skills/hypatia-dream in MarchLiu/hypatia) into .agents/skills/hypatia-dream in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add MarchLiu/hypatia --skill hypatia-dream -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/hypatia-dream, .gemini/skills/hypatia-dream, .github/skills/hypatia-dream and .opencode/skills/hypatia-dream in your project.
Going by SKILL.md and its folder, Hypatia Dream needs the command-line tools its instructions call (just). Its frontmatter pre-approves these tools: Bash, Read, Grep, Glob.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Hypatia Dream is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.4k tokens (SKILL.md is roughly 18k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Hypatia Dream: Code Review Graph Builder (tirth8205/code-review-graph, 32k stars), Graph (agenticnotetaking/arscontexta, 3.5k stars), Bigquery Graph (google/adk-python, 22k stars) and Mini Context Graph (github/awesome-copilot, 40k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
MarchLiu (a GitHub user) maintains it in MarchLiu/hypatia, which has 239 GitHub stars. The repository holds 3 skills in this directory. The repository was last updated on September 29, 2026.
Source: MarchLiu/hypatia on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.