review-markdown-comments
Skill1.5k starsChanged 9 days agoMITView on GitHub
Reply to, resolve, or reopen Hubble review comments stored as CriticMarkup in Markdown files. Use when asked to address a Hubble review comment.
1 other project uses a version of this.
Trending
Steady talk.thin dataabout the whole repository
Who's talking about bholmesdev/hubble.md
- @bholmes.dev“If you want to try it, go to hubble.md ⬇️ And if you want to contribute (there's still a lot missing!), …”Bluesky · Jun 23, 2026 · 11 likes
- @bholmes.dev“And yes, I'm aware I worked on this (and related projects) without shipping them. So... no more. This is …”Bluesky · Feb 23, 2026 · 9 likes
- @bholmes.dev“Open source and ready to try yourself! github.com/bholmesdev/hubble.md ⭐”Bluesky · Feb 26, 2026 · 4 likes
- @bholmes.dev“Not quite ready to release this bad boy, but if you're wondering about the markdown editor... I just added …”Bluesky · Mar 31, 2026 · 3 likes
- bholmesdev/hubble-skills“Document supported review comment shapes”GitHub · Oct 21, 2026
The biggest 5 of 7 mentions linking to the repository that our crawl found. Each line is their own headline.
See all 7
Talked about on Bluesky and GitHub (7 times).
On Bluesky · 4
- Jun 23, 2026If you want to try it, go to hubble.md ⬇️ And if you want to contribute (there's still a lot missing!), it's all open source… — @bholmes.dev11 likes and reposts
- Feb 23, 2026And yes, I'm aware I worked on this (and related projects) without shipping them. So... no more. This is fully open source and ready for… — @bholmes.dev9 likes and reposts
- Feb 26, 2026Open source and ready to try yourself! github.com/bholmesdev/hubble.md ⭐ — @bholmes.dev4 likes and reposts
- Mar 31, 2026Not quite ready to release this bad boy, but if you're wondering about the markdown editor... I just added folder support with a sidebar.… — @bholmes.dev3 likes and reposts
On GitHub · 3
- Oct 21, 2026Document supported review comment shapes — bholmesdev/hubble-skills0 reactions · 1 comment
- Sep 14, 2026chore: sync external skills — UNRULYEON/skills0 reactions
- Jul 6, 2026[Package Request]: Hubble.md — microsoft/winget-pkgs0 reactions
Other versions1 project uses a version of this.
Word for word · 1
- bholmesdev/hubble-skills★ 7100% same
Edited · 0
None found.
Wrote their own version · 0
None found.
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 repository26 other files it gives its agents.
- AGENTS.mdAGENTS.md
- .agents/skills/AGENTS.mdAGENTS.md
- .agents/skills/vercel-react-best-practices/AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- changelogSkill
- code-commentsSkill
- create-html-appSkill
- create-prSkill
- doneSkill
- edit-diagramSkill
- embed-html-appSkill
- grill-with-docsSkill
- handoffSkill
- implementationSkill
- merge-riskSkill
- releaseSkill
- review-cycleSkill
- simplifySkill
- taste-reviewSkill
- test-desktop-appSkill
- to-issuesSkill
- triageSkill
- vercel-react-best-practicesSkill
- write-product-specSkill
- write-tech-specSkill
- writing-testsSkill
The file
We split this skill into the rules it gives an agent
4 rules. About 0 are common, 0 are distinctive, and 4 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈0
Distinctive · estimate
This author's own choices. Worth a look.
4
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 30
Always write "v": 1. Escape any -- inside the JSON as \u002d\u002d, since a literal -- terminates the HTML comment early.
- Very specific: line 48
Read the complete file. Locate the requested compact id, such as {#c7}.
- Very specific: line 64
Write the metadata block immediately after the comment's {#cN} marker (see Fragmented anchors).
- Very specific: line 90
Check the surrounding Markdown for accidental changes: inspect git diff -- <file> for a tracked file, or compare the before and after text …
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Review Markdown Comments
Work directly on the Markdown file named by the user.
Comment format
Hubble stores review state in the Markdown body using this portable subset:
{==anchored text==}{>>comment body<<}{#c1}
{++suggested insertion++}
{--suggested deletion--}
{~~original text~>replacement text~~}Thread state may follow a comment anchor as an HTML comment holding raw JSON.
It is not URI-encoded; Hubble parses it with JSON.parse directly, so an
encoded payload fails to parse and renders as literal text in the note:
<!-- hubble-review:{"v":1,"replies":[],"resolved":false}-->Hubble uses v, replies, and resolved; other top-level keys are allowed.
Always write "v": 1. Escape any -- inside the JSON as \u002d\u002d,
since a literal -- terminates the HTML comment early. A reply has this
shape:
{
"id": "r1",
"body": "Agent response",
"author": "agent",
"createdAt": "2026-01-01T00:00:00.000Z"
}Review markers inside inline code or fenced code are literal text, not comments.
Address a comment
- Read the complete file. Locate the requested compact id, such as
{#c7}; if the user gives only anchored text, locate the exact CriticMarkup anchor instead. Confirm the anchored text and comment body match the user's request. If the id or exact anchor is absent or ambiguous, stop and report the ambiguity. - Parse the JSON metadata immediately following that logical comment. If it is absent, start from an empty object. If it is malformed, stop rather than overwrite it.
- Round-trip the metadata: mutate only the reply list and
resolved, then re-serialize the complete object — every other key and every existing reply survives unchanged. Replies are append-only: add a reply with the next unusedrNid,author: "agent", the response body, and the current UTC time as an ISO-8601createdAt. - Set
resolved: trueonly when the user's request has actually been addressed. For an explicit reopen request, setresolved: false. Acknowledgements, tests, questions, and partial work leave itfalse. - Write the metadata block immediately after the comment's
{#cN}marker (see Fragmented anchors). Keep the anchored text byte-for-byte unchanged, along with the comment body, CriticMarkup delimiters, suggested edits, and all unrelated Markdown.
Fragmented anchors
One logical comment id may appear in multiple CriticMarkup fragments. The final fragment is authoritative: keep every marker, keep a single metadata block, and place it after the final fragment — moving it there if it currently follows an earlier fragment. Report the fragmentation if it may affect the user's formatting.
Validation
After editing:
- Re-read the file and confirm the requested id and exact anchored text are still present.
- Parse the metadata after the final fragment and verify it is valid JSON,
the new reply is the final reply, the old replies and other keys
round-tripped, and
resolvedhas the intended value. Confirm the note renders the comment rather than showing the raw block as text. Check that every{==,==},{>>,<<}, and{#you touched belongs to a complete{==…==}{>>…<<}{#cN}span on one line; a stray delimiter means the span will not parse and shows as raw text in the note. - Check the surrounding Markdown for accidental changes: inspect
git diff -- <file>for a tracked file, or compare the before and after text for an ignored/generated file. - Report the reply you left and whether you resolved the comment.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
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.

