Agent skill

Refresh Index

by luongnv89 in luongnv89/asm

Sync every enabled repo in the curated skill index and open a confirmation-gated PR.

MITAuto-check: notesAgent Workflows

Install Refresh Index

skills CLI
$ npx skills add luongnv89/asm --skill refresh-index -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install luongnv89/asm refresh-index --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/luongnv89/asm.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/refresh-index .claude/skills/refresh-index && rm -rf skills-src

Use ~/.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/

Facts

Skill name
refresh-index
GitHub stars
954
Token cost
~3.4k tokens
SKILL.md length
1,508 words
Files
8 (incl. references)
Skills in repo
7
Repo updated
First seen
Licence
MIT

At a glance

Sync every enabled repo in the curated skill index and open a confirmation-gated PR.

  • Works in 8 steps: Enumerate the index → Snapshot pre-run skill counts → Run npm run preindex → …
  • Refreshing already-indexed sources
  • SKILL.md covers When to Use, Repo Sync Before Edits…, Prerequisites and Pipeline, plus 8 more sections
  • Calls git, jq and npm

What it does

Refresh Index is an agent skill from luongnv89/asm. Sync every enabled repo in the curated skill index and open a confirmation-gated PR. Use when refreshing already-indexed sources. Don't use for adding new repos, improving a single skill, or installing skills locally.

Its SKILL.md is about 3.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 9 other files, including reference files (for example `evals/evals.json`, `references/classify.md` and `references/commit-and-pr.md`). Compatibility notes: Claude Code

It sits in Agent Workflows. It works with npm. The repository describes itself as: The universal skill manager for AI coding agents. The licence is MIT.

When your agent uses it

  • Refreshing already-indexed sources
  • Adding new repos
  • Improving a single skill
  • Installing skills locally

Example prompts

  • “/refresh-index”

Requirements

  • Node.js
  • Compatibility (from SKILL.md): Claude Code
  • Pre-approved tools (allowed-tools): Bash, Read, Write, Edit, Grep, Glob

Workflow steps

8 steps, taken from the step headings in SKILL.md.

  1. Enumerate the index
  2. Snapshot pre-run skill counts
  3. Run npm run preindex
  4. Classify each repo
  5. Rebuild the website catalog (verification only)
  6. Detect unexpected diff scope
  7. Print the four-bucket summary
  8. Confirmation gate, commit, and PR

What it can do on your machine

Read from SKILL.md and the folder at commit a01a183. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Bash
    • Read
    • Write
    • Edit
    • Grep
    • Glob

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • git
    • jq
    • npm
    • gh
    • npx

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use git, npm, gh and npx, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

  • Compatibility

    Claude Code

    From compatibility in the SKILL.md frontmatter.

Context cost

Refresh Index loads about 3.4k tokens when it runs, and up to ~6.1k if it reads all its reference files. Until then it costs about 58 tokens; SKILL.md has 1,508 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~58
When it runs · the whole SKILL.md, loaded when a task matches
~3.4k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~6.1k

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.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NotePre-approves every shell command (allowed-tools: Bash)SKILL.md
    allowed-tools: Bash, Read, Write, Edit, Grep, Glob

Automated 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.

SKILL.md

The full file from luongnv89/asm at commit a01a183, republished under its MIT licence (© luongnv89). 1,508 words, ~3,354 tokens.

Download SKILL.mdSave it as .claude/skills/refresh-index/SKILL.md (or your agent's skills folder). This skill also uses 7 other files; get the full folder from GitHub.
name
refresh-index
description
Sync every enabled repo in the curated skill index and open a confirmation-gated PR. Use when refreshing already-indexed sources. Don't use for adding new repos, improving a single skill, or installing skills locally.
allowed-tools
Bash, Read, Write, Edit, Grep, Glob
compatibility
Claude Code
license
MIT
effort
high
metadata.version
1.3.0
metadata.author
luongnv89

Refresh Index

Re-ingest every enabled repository in data/skill-index-resources.json so data/skill-index/{owner}_{repo}.json matches upstream. Classify each repo as updated / unchanged / failed / skipped, verify the catalog rebuilds, then open one data-only PR after explicit confirmation.

This is the inverse of skill-index-updater (that skill adds repos). Keep SKILL.md as the spine and load step detail from references/ so the agent's context budget stays small.

When to Use

  • User asks to "refresh the index", "update the indexed skills", "sync the catalog", "re-ingest all repos", or "batch-maintain the skill index"
  • A scheduled refresh is due, or a release needs current upstream skill metadata

Do not trigger for: adding a new repository (skill-index-updater), authoring or improving a single skill (skill-creator), opening an upstream PR (skill-upstream-pr), or installing/updating skills on the local machine (asm install, asm update).

Repo Sync Before Edits (mandatory)

Before re-ingesting anything, pull the latest remote branch:

bash
branch="$(git rev-parse --abbrev-ref HEAD)"
dirty=0
if [ -n "$(git status --porcelain)" ]; then
  git stash push -u -m "pre-refresh-index: ${branch}"
  dirty=1
fi
git fetch origin
git pull --rebase origin "$branch"
if [ "$dirty" -eq 1 ]; then
  git stash pop || {
    echo "✗ Stash pop failed — recover with: git stash list && git stash show -p stash@{0}"
    exit 1
  }
fi

If origin is missing or rebase conflicts occur, stop and ask the user before continuing. Never silently overwrite local edits to data/skill-index/ or data/skill-index-resources.json.

Prerequisites

Verify each before any ingest. Stop and tell the user if any fails.

  • node on PATH (command -v node) — Node >= 22 per package.json engines
  • npm on PATH (command -v npm) — required by npm run preindex; the ingester evaluates skills in-process, so no asm binary is needed
  • gh on PATH and authenticated (gh auth status) — required for PR creation
  • git on PATH and inside the ASM repo working tree (git rev-parse --show-toplevel)
  • Network access to github.com (each ingest clones the upstream repo)

Pipeline

Follow these steps in order. Each step has a verification check — do not proceed if the check fails. Long scripts and templates live in references/; read the linked file when you reach that step.

Many agent hosts start each command in a fresh shell. Start every code block with ROOT="$(git rev-parse --show-toplevel)"; RES="$ROOT/data/skill-index-resources.json" instead of relying on variables from an earlier step.

Step 1: Enumerate the index

Read data/skill-index-resources.json and split entries, keyed on the source string (github:owner/repo) because that is the identifier preindex echoes:

bash
ROOT="$(git rev-parse --show-toplevel)"
RES="$ROOT/data/skill-index-resources.json"
jq -r '.repos[] | select(.enabled == true)  | .source' "$RES"
jq -r '.repos[] | select(.enabled == false) | .source' "$RES"
jq -r '.repos[] | select(.enabled == true) | "\(.source)\t\(.owner)_\(.repo)"' "$RES"
jq empty "$ROOT"/data/skill-index/*.json   # exits non-zero if any file is invalid
git -C "$ROOT" status --porcelain -- website/ data/
  • enabled[] — "enabled": true. These will be refreshed.
  • disabled[] — "enabled": false. These land in skipped with reason "disabled in skill-index-resources.json". The list may be empty; then W = 0.

Verification: enabled[] is non-empty, every per-repo JSON parses, and git status --porcelain -- website/ data/ prints nothing. If any check fails, stop. A clean website/ is what lets Step 5 restore the tracked files build-catalog rewrites.

Step 2: Snapshot pre-run skill counts

Record current skillCount for each enabled repo so Step 7 can report deltas. Run the loop in references/snapshot.md. Missing index file → pre-count 0.

Step 3: Run npm run preindex

Re-ingest every enabled repo. Capture stdout and the exit code — preindex exits 1 if any repo fails, but do not abort. Partial results still classify.

preindex writes each ingest to getIndexDir() before copying it into data/skill-index/. Without an override that is the user's real ~/.config/agent-skill-manager/skill-index/, a change no git diff shows. Always set ASM_CONFIG_DIR to a scratch directory:

bash
ROOT="$(git rev-parse --show-toplevel)"
mkdir -p /tmp/refresh-index/asm-config
LOG="/tmp/refresh-index/preindex.log"
cd "$ROOT"
ASM_CONFIG_DIR=/tmp/refresh-index/asm-config npm run preindex > "$LOG" 2>&1
PREINDEX_EXIT=$?
cat "$LOG"

preindex clones every enabled repo in sequence and can run for many minutes. If the host's command timeout is shorter, run the command in the background and wait until the log ends with the Done: N succeeded, M failed line; then read the exit code.

Verification: the log exists and contains one line per enabled repo: {source} ... {N} skills or {source} ... FAILED: {error}. If the log is empty or no line matches, stop — that is environmental, not a per-repo failure.

Step 4: Classify each repo

Match each {source} log line to data/skill-index/{owner}_{repo}.json in git status --porcelain (which also lists new, untracked index files). Every ingest rewrites timestamps, so "changed" means changed after the timestamps are stripped. Read references/classify.md for the comparison and the four-row signal table. Capture post-run skillCount; failed repos keep the pre-count.

Step 5: Rebuild the website catalog (verification only)

Confirm the refreshed index is structurally valid. website/catalog.json is gitignored — never stage it.

bash
cd "$ROOT"
npx tsx scripts/build-catalog.ts
jq empty website/catalog.json
git restore -- website/ data/repo-stars.json

Verification: the first two commands exit 0. If either fails, stop — the data files are internally inconsistent and the PR must not land. build-catalog also rewrites tracked outputs (website/*-stats.json, website/robots.txt, and data/repo-stars.json on any networked run) with fresh values; git restore -- website/ data/repo-stars.json reverts them. That is safe only because Step 1 confirmed website/ and data/ were clean. It does not touch the gitignored website/catalog.json.

Step 6: Detect unexpected diff scope

Confirm the only files that changed are under data/skill-index/ (and data/skill-index-resources.json only if the user explicitly bumped updatedAt):

bash
UNEXPECTED=$(git status --porcelain | cut -c4- \
  | grep -v -E '^data/skill-index/' \
  | grep -v -E '^data/skill-index-resources\.json$' \
  || true)
if [ -n "$UNEXPECTED" ]; then
  echo "⚠ Unexpected files in diff:"
  printf '%s\n' "$UNEXPECTED"
fi

npm run preindex does not modify data/skill-index-resources.json. If unexpected files appear, stop. Do not commit a mixed change.

Step 7: Print the four-bucket summary

Render the markdown in references/summary-template.md. If X + Y + Z + W does not equal len(enabled) + len(disabled), stop and re-check Step 4.

Step 8: Confirmation gate, commit, and PR

Do not proceed without explicit user confirmation (yes only). Never commit on main: if the current branch is main, create chore/refresh-index-<YYYYMMDD> first. Read references/commit-and-pr.md for the branch step, the diff-stat prompt, conventional-commit message, and gh pr create body. Stage only data/skill-index/ (plus the resources file if intentionally modified). Never stage website/catalog.json.

Verification: gh pr view --json url returns the new PR URL. Print it back to the user.

Show full SKILL.md (656 more words)Show less

Final output

End the run with the Step 7 summary, preceded by a short header the user can read without scrolling (template in references/summary-template.md):

  1. Result — first line: PR opened, stopped before commit (declined gate or empty diff), or blocked at Step N with the reason.
  2. Evidence — the checks that ran and their results: preindex exit code, build-catalog exit, diff-scope check, and the PR URL.
  3. Uncertainty — build-catalog proves the index is structurally valid, not that every upstream skill installs. Failed repos keep their old index data. Name any repo whose bucket was inferred from a missing log line.
  4. Decision — what the user must still do: review and merge the PR, or re-run after fixing the named failure. Approval to commit was the Step 8 yes; no other approval is needed.

Step Completion Reports

Emit a compact status block after each step:

◆ Step N — [step name]
··································································
  [check 1]:         √ pass
  [check 2]:         × fail — [reason]
  Result:            PASS | FAIL | PARTIAL

Use √ for pass, × for fail, — for context. Checks per step:

  • Repo sync — branch up to date, stash restored (if dirty)
  • Step 1 — enabled[] non-empty, per-repo JSON parseable, website/ and data/ clean
  • Step 2 — snapshot written
  • Step 3 — log exists, one line per enabled source
  • Step 4 — every repo in exactly one bucket, totals add up
  • Step 5 — build-catalog exit 0, catalog.json valid JSON
  • Step 6 — diff scope contained
  • Step 7 — summary printed, X+Y+Z+W matches list sizes
  • Step 8 — user confirmed yes, PR URL returned (skip this block if the user declined)

Expected Output

On a successful run, verify all of the following:

  1. Repo synced — branch is up to date with origin; any local edits were stashed and restored cleanly.
  2. npm run preindex completed — exit code captured; per-repo lines visible in the log.
  3. Every repo bucketed — every enabled repo lands in exactly one of updated / unchanged / failed, and every disabled repo (if any) lands in skipped. Totals add up.
  4. npx tsx scripts/build-catalog.ts succeeded — website/catalog.json rebuilt and is valid JSON. Not staged.
  5. Diff scope contained — only data/skill-index/*.json (and optionally data/skill-index-resources.json if explicitly refreshed) appear in git diff.
  6. User confirmed — explicit yes recorded before commit + push.
  7. PR opened — conventional-commit title (chore(index): refresh indexed skill sources), body filled from the Step 8 template, URL returned to the user.

If any of items 1–5 fails, stop before the Step 8 confirmation gate: no commit, no push, no PR.

Acceptance Criteria

  • Exactly the files under data/skill-index/ (and optionally data/skill-index-resources.json) are staged
  • website/catalog.json was rebuilt as a check and was not staged
  • preindex ran with ASM_CONFIG_DIR pointing under /tmp/refresh-index/
  • Four-bucket totals equal len(enabled) + len(disabled)
  • Commit message matches the template in references/commit-and-pr.md
  • gh pr view --json url returns a URL

When reviewing a run's output (by eval or by a human), also check that a reader can:

  • Find the main result — the first line states PR opened, stopped before commit, or blocked.
  • Separate facts from assumptions — observed exit codes and diffs are distinct from the stated limits of build-catalog.
  • Trace claims — each bucket entry maps to a preindex.log line or a git diff file; the PR claim maps to the returned URL.
  • See the next decision — review/merge, or the fix to apply before re-running.

An agent's own review cannot confirm human understanding. A reviewer who received no human feedback records understanding as unconfirmed.

Example

Given 2 enabled repos (one gained a skill) and 1 disabled repo, the expected output summary looks like:

## Refresh summary — 3 repos processed

### ✓ Updated (1)
| Repo | Before | After | Δ |
|------|--------|-------|---|
| anthropics/skills | 14 | 15 | +1 |

### · Unchanged (1)
| Repo | Skills |
|------|--------|
| obra/superpowers | 22 |

### ○ Skipped (1)
| Repo | Reason |
|------|--------|
| owner3/repo3 | disabled in skill-index-resources.json |

Edge Cases

Read references/edge-cases.md for the full list (empty enabled set, unreachable upstream, empty ingest, catalog rebuild failure, declined confirmation, unauthenticated gh). Handle those without crashing; never git checkout -- files the user did not stage.

Cleanup

After the PR is opened (or the pipeline aborts), remove temporary artifacts:

bash
rm -rf /tmp/refresh-index

Leave the working tree as the user left it. Do not git checkout anything they did not stage.

References

  • references/snapshot.md — Step 2 skill-count snapshot loop
  • references/classify.md — Step 4 signal table (updated / unchanged / failed / skipped)
  • references/summary-template.md — Step 7 four-bucket markdown
  • references/commit-and-pr.md — Step 8 confirmation, commit, and PR commands
  • references/edge-cases.md — edge cases and error handling

© luongnv89, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 7 other files (references) in skills/refresh-index of luongnv89/asm.

  • SKILL.md
  • LICENSE.txt
  • evals/evals.json
  • references/classify.md
  • references/commit-and-pr.md
  • references/edge-cases.md
  • references/snapshot.md
  • references/summary-template.md

Open the folder on GitHubat commit a01a183

Compare with similar skills

Refresh Index 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.

Refresh Index compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Refresh Index this skillluongnv89/asm954—~3.4kAutomated safety check: NotesMIT
MCP Server BuildershareAI-lab/learn-claude-code78k5 repos~1.2kAutomated safety check: PassMIT
CodeGraph Agent Evalcolbymchenry/codegraph74k—~950Automated safety check: PassMIT
Mem0 CLI Memory Commandsmem0ai/mem067k—~2kAutomated safety check: NotesApache-2.0
Orca Run Replayiflytek/skillhub5.2k4 repos~3kAutomated safety check: PassApache-2.0
Helmor Bump Vendorsdohooo/helmor1.3k—~2.1kAutomated safety check: PassApache-2.0

Similar skills

  • MCP Server Builder

    shareAI-lab/learn-claude-code

    Walks through building MCP servers in Python or TypeScript that expose tools, resources and prompts to Claude, with templates, registration and testing.

    78k GitHub starsUsed in 5 repos~1.2k tokens
    Agent WorkflowsAuto-check passed
  • CodeGraph Agent Eval

    colbymchenry/codegraph

    Benchmarks how much CodeGraph helps a coding agent on a real repository, comparing runs with and without it for a chosen local or published version.

    74k GitHub stars~950 tokensUpdated yesterday
    Agent WorkflowsAuto-check passed
  • Adds, searches, lists, updates and deletes memories on the Mem0 platform from the terminal with the mem0 command, including a JSON mode built for agents.

    67k GitHub stars~2k tokensUpdated today
    Agent WorkflowsAuto-check: notes
  • Orca Run Replay

    iflytek/skillhub

    Answers questions about a past agent run from its recording, using causal graphs and replay, instead of reconstructing events from memory.

    5.2k GitHub starsUsed in 4 repos~3k tokens
    Agent WorkflowsAuto-check passed
  • Helmor Bump Vendors

    dohooo/helmor

    Bump or upgrade the pinned versions of Helmor's bundled agent CLIs, SDKs, and supporting binaries — Claude Code + claude-agent-sdk (lockstep), Codex, Cursor SDK, OpenCode, Kimi, Pi, and gh / glab /…

    1.3k GitHub stars~2.1k tokensUpdated 1 mo ago
    Agent WorkflowsAuto-check passed
  • Paseo Help

    getpaseo/paseo

    Answers questions about the Paseo app, such as setup, providers, connectivity, updates and logs, by checking the current public docs and working out which daemon is involved.

    20k GitHub stars~1.6k tokensUpdated today
    Agent WorkflowsAuto-check passed

More from luongnv89/asm

  • Skill Shortener

    luongnv89/asm

    Refactor a too-long SKILL.md by progressive disclosure: measure token cost, classify every section KEEP/CUT/MOVE, shorten the body into references/ and scripts/, verify nothing was lost.

    954 GitHub stars~3.8k tokensUpdated 3 days ago
    Auto-check: notes
  • Skill Creator

    luongnv89/asm

    Create a skill or bring an existing one up to the same standard (validate + asm eval fix loop); run evals, tune triggering.

    954 GitHub stars~5.3k tokensUpdated 3 days ago
    Auto-check passed
  • Find Me Skills

    luongnv89/asm

    Find Agent Skills for a goal the user cannot name yet, then export an installable bundle.

    954 GitHub stars~2.8k tokensUpdated 3 days ago
    Auto-check passed
  • Skill Index Updater

    luongnv89/asm

    Add GitHub skill repos to the ASM index: clone, audit, eval, regenerate index, rebuild catalog, open PR.

    954 GitHub stars~4.3k tokensUpdated 3 days ago
    Auto-check: notes
  • Install an improved variant of one named skill: resolve it by local path, repo, or name, run skill-creator's retrofit on a throwaway copy, then install the improved result.

    954 GitHub stars~3.3k tokensUpdated 3 days ago
    Auto-check: notes
  • Skill Upstream PR

    luongnv89/asm

    Improve an open-source GitHub skill and open a friendly suggestion PR upstream: fork, run skill-creator's retrofit, attach asm eval before/after metrics.

    954 GitHub stars~2.4k tokensUpdated 3 days ago
    Auto-check: notes

Works with

Categories

Questions about Refresh Index

What does Refresh Index do?

Sync every enabled repo in the curated skill index and open a confirmation-gated PR. Refresh Index is an agent skill from luongnv89/asm. Sync every enabled repo in the curated skill index and open a confirmation-gated PR.

When should I use Refresh Index?

Refresh Index fits situations like: refreshing already-indexed sources; adding new repos; improving a single skill; installing skills locally.

How do I install Refresh Index in Claude Code?

Run `npx skills add luongnv89/asm --skill refresh-index -a claude-code`. Or copy the skill folder (skills/refresh-index in luongnv89/asm) into .claude/skills/refresh-index in your project. Claude Code loads it when a task matches its description.

How do I install Refresh Index in Codex?

Run `npx skills add luongnv89/asm --skill refresh-index -a codex`. Or copy the skill folder (skills/refresh-index in luongnv89/asm) into .agents/skills/refresh-index in your project. Codex loads it when a task matches its description.

Can I use Refresh Index in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add luongnv89/asm --skill refresh-index -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/refresh-index, .gemini/skills/refresh-index, .github/skills/refresh-index and .opencode/skills/refresh-index in your project.

What does Refresh Index need to run?

Going by SKILL.md and its folder, Refresh Index needs the command-line tools its instructions call (git, jq, npm, gh and npx). Our summary lists: Node.js. Its frontmatter pre-approves these tools: Bash, Read, Write, Edit, Grep, Glob. Compatibility (from SKILL.md): Claude Code.

Does Refresh Index access the network?

SKILL.md contains no URLs. Its commands use git, npm, gh and npx, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Refresh Index safe to install?

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.

What licence does Refresh Index use?

Refresh Index is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Refresh Index use?

About 3.4k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 2.7k tokens, read only when the agent opens those files.

What are the alternatives to Refresh Index?

Skills that share tags, products or a category with Refresh Index: MCP Server Builder (shareAI-lab/learn-claude-code, 78k stars), CodeGraph Agent Eval (colbymchenry/codegraph, 74k stars), Mem0 CLI Memory Commands (mem0ai/mem0, 67k stars) and Orca Run Replay (iflytek/skillhub, 5.2k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Refresh Index?

luongnv89 (a GitHub user) maintains it in luongnv89/asm, which has 954 GitHub stars. The repository holds 7 skills in this directory. The repository was last updated on October 6, 2026.

Source: luongnv89/asm on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.