Configuring Horizon
coollabsio/coolify
A skill your agent uses whenever the user mentions Horizon by name in a Laravel context.
Mint a walkthrough for the PR this session just implemented: a set of numbered stops a reviewer opens in the live dev server, each one marking an element on screen with what changed and what to check.
$ npx skills add lablup/backend.ai-webui --skill walkthrough -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install lablup/backend.ai-webui walkthrough --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/lablup/backend.ai-webui.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/walkthrough .claude/skills/walkthrough && 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 "walkthrough" agent skill from https://github.com/lablup/backend.ai-webui/tree/main/.claude/skills/walkthrough into .claude/skills/walkthrough/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "walkthrough", 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/lablup/backend.ai-webui/tree/main/.claude/skills/walkthroughType 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 lablup/backend.ai-webui --skill walkthrough -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install lablup/backend.ai-webui walkthrough --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/lablup/backend.ai-webui.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/walkthrough .agents/skills/walkthrough && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "walkthrough" agent skill from https://github.com/lablup/backend.ai-webui/tree/main/.claude/skills/walkthrough into .agents/skills/walkthrough/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "walkthrough", 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 lablup/backend.ai-webui --skill walkthrough -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install lablup/backend.ai-webui walkthrough --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/lablup/backend.ai-webui.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/walkthrough .cursor/skills/walkthrough && 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 "walkthrough" agent skill from https://github.com/lablup/backend.ai-webui/tree/main/.claude/skills/walkthrough into .cursor/skills/walkthrough/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "walkthrough", 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/lablup/backend.ai-webui.git --path .claude/skills/walkthrough--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 lablup/backend.ai-webui --skill walkthrough -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install lablup/backend.ai-webui walkthrough --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/lablup/backend.ai-webui.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/walkthrough .gemini/skills/walkthrough && 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 "walkthrough" agent skill from https://github.com/lablup/backend.ai-webui/tree/main/.claude/skills/walkthrough into .gemini/skills/walkthrough/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "walkthrough", 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 lablup/backend.ai-webui walkthroughInstalls 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 lablup/backend.ai-webui --skill walkthrough -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/lablup/backend.ai-webui.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/walkthrough .github/skills/walkthrough && 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 "walkthrough" agent skill from https://github.com/lablup/backend.ai-webui/tree/main/.claude/skills/walkthrough into .github/skills/walkthrough/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "walkthrough", 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 lablup/backend.ai-webui --skill walkthrough -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install lablup/backend.ai-webui walkthrough --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/lablup/backend.ai-webui.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/walkthrough .opencode/skills/walkthrough && 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 "walkthrough" agent skill from https://github.com/lablup/backend.ai-webui/tree/main/.claude/skills/walkthrough into .opencode/skills/walkthrough/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "walkthrough", 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.
walkthroughMint a walkthrough for the PR this session just implemented: a set of numbered stops a reviewer opens in the live dev server, each one marking an element on screen with what changed and what to check.
Walkthrough is an agent skill from lablup/backend.ai-webui. Mint a walkthrough for the PR this session just implemented: a set of numbered stops a reviewer opens in the live dev server, each one marking an element on screen with what changed and what to check. Decide first whether the PR needs one (section 0); when it does, run it as the LAST step of the implementation workflow, after the dev-server skill has advertised the PR's server — and on demand for any PR by number, booting a dev server for its branch when none is live. Trigger on "walkthrough 만들어줘", "make a…
Its SKILL.md is about 4.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 8 other files, including scripts (for example `scripts/comment.sh` and `scripts/test-comment.sh`).
It sits in Backend & APIs. The repository describes itself as: Backend.AI Web UI for web / desktop app (Windows/Linux/macOS). Backend.AI Web UI provides a convenient environment for users, while allowing various commands to be executed… The licence is LGPL-3.0.
11 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit d6afd57. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 7 files in scripts/ (JavaScript and Shell), which the agent can run.
Shell commands in SKILL.md call:
nodebashgitpnpmghFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git, pnpm and gh, which can reach the network depending on how they are called.
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.
Walkthrough loads about 4.9k tokens when it runs. Until then it costs about 235 tokens; SKILL.md has 2,553 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.
ion's named test server, then the shell/`.env` value,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); the scripts in this folder are not scanned.
The full file from lablup/backend.ai-webui at commit d6afd57, republished under its LGPL-3.0 licence (© lablup). 2,553 words, ~4,940 tokens.
.claude/skills/walkthrough/SKILL.md (or your agent's skills folder). This skill also uses 7 other files; get the full folder from GitHub.A walkthrough is the reviewer's guided tour of a PR: one #bai=v3 set link
that opens the dev server on the first stop and walks the rest. Each stop is a
pin the implementing session authored, carrying the FR-3949 stop fields —
ch (what changed), ck (what to check), old/new, type, kind, code
and the via steps (clicks, typing, a select) that reveal it.
You write the stop manifest; scripts/mint.mjs does the mechanical half (log
in, replay, mint, verify, link) and scripts/comment.sh posts it.
Decide from the diff and the PR body before booting a server or reading on. A skip ends here; name it in the final message with its one-line reason.
Mint one only when a reviewer holding the PR body would otherwise have to hunt for the change or set up a state to see it:
Skip it when:
Where to look: <page> › <element> in the PR body instead; the dev server
still boots.Between a one-stop walkthrough and one line in the PR body, the line wins.
An explicit request (section 1a) overrides the one-spot skip, not the nothing-on-screen one.
dev-server has
advertised the PR's server (the boot record exists and the PR carries the
dev-server comment). The walkthrough is about the diff, so it runs on the
branch you implemented, for that branch's PR only — lower layers of a stack
got theirs on their own turn./walkthrough 9751, "PR #9751에 walkthrough
달아줘" — for a PR this session did not implement, from any checkout. The
steps are section 1a; mint.mjs --pr <n> does the resolution.The branch path assumes the session is on the PR's branch with the diff in its head. Given only a number, get both first:
mint.mjs --pr <n> --dry-run needs no manifest
and answers in one line (section 6): the live server that serves the PR, or
exit 3. It refuses a PR that is not open, so that check is not yours.headRefName with the dev-server skill,
from a checkout at the PR head: reuse a worktree already on that branch
only when this session made it or it is clean; otherwise
git worktree add .claude/worktrees/<KEY> origin/<headRefName> (where
EnterWorktree and fw:cleanup-worktrees keep them) and pnpm install
there. Say before booting that advertise.sh will comment the server's
URL on a PR this session did not implement. When the backend is
unreachable, that is a preflight failure here as everywhere: one line,
no walkthrough. Re-run the dry run once the record exists.mint.mjs accepts
that (it says so on stderr) and the stops are verified against that
build. Only a server whose commit does not contain the PR head is refused.gh pr diff <n> --name-only, and read only the UI files it lists. Sections 3–5
apply unchanged.--pr <n> (section 6) and comment.sh … --pr <n> (section 7).
The report's pr and sha come from GitHub, not from the current branch.Stop and say why, in one line, if any of these does not hold. A preflight failure produces no comment and no walkthrough, not a partial one.
| Check | How |
|---|---|
| The box has joined the dev gateway | ~/.config/fw/dev-gw.json exists |
| A live server for the PR | the boot record mint.mjs resolves (section 6): this branch's, or with --pr the one that serves the PR |
| The server is routable | the record's url answers a 2xx with X-Portless: 1 |
| The server has guided mode | /__review/guided.js answers 200; an older overlay (a branch that predates FR-3950) draws a stop as a bare pin without its notes, so mint.mjs exits 3 and says to rebase onto a main that includes it |
| The app shell survives login | mint.mjs checks it and exits 3 |
The set link goes in a public PR comment, so an unroutable server is a
preflight failure, not a reason to fall back to the record's localUrl — the
same refusal advertise.sh makes.
The last check is the one that actually bites, and it is about the backend,
not the server. Resolve the endpoint the way the dev-server skill does
(its section 2c: the PR description's named test server, then the shell/.env value,
then config.toml) and pass it as --endpoint; then verify the app shell
survives login — mint.mjs does, and exits 3 with one line when it does not.
A shell that dies leaves nothing to mint against. The symptom to recognize is
a backend whose schema the build is ahead of: the shell renders
An error has occurred and the console carries
Cannot query field "scopes" on type "Role".
A JSON file — {"stops": [...]} or a bare array — one object per stop:
{
"stops": [
{
"route": "/data",
"find": { "text": "Create Folder" },
"type": "modified",
"kind": "button",
"ch": "The upload button moved from every row into the card header.",
"ck": "A \"Create Folder\" button shows at the top right, above the list.",
"old": "⬆ icon on every row",
"new": "\"Create Folder\" in the header",
"code": [{ "path": "react/src/pages/VFolderListPage.tsx", "line": 120 }]
},
{
"route": "/data",
"via": [{ "click": { "text": "Create Folder" } }],
"find": { "testid": "model-usage-mode" },
"type": "added",
"kind": "radio",
"ch": "The folder create modal gained a Models usage-mode radio.",
"ck": "The modal's usage mode shows a \"Models\" choice.",
"code": [
{
"path": "react/src/components/FolderCreateModal.tsx",
"line": 88,
"to": 104
}
],
"lng": "en",
"i18n": {
"ko": {
"ch": "폴더 생성 모달에 Models 사용 모드 라디오가 추가됐습니다.",
"ck": "모달의 사용 모드에 \"모델\" 선택지가 보여야 합니다."
}
}
}
]
}route — origin-relative, below the project scope (/data, not
/project/<name>/data). mint.mjs prepends the base the app lands on.
A page outside the project scope — the admin pages under /admin/… —
says "scope": "app" and is opened as written.
via — the steps that reveal the element, replayed in order. At most 8,
each exactly one of:
{"click": {"text": "…"}} (exact visible text) or {"click": {"tid": "…"}};{"fill": {"label": "…", "value": "…", "enter": 1}} — type value into
the field its label, aria-label or placeholder names (or "tid", on the
field or on a wrapper holding only it); enter: 1 presses Enter after;{"select": {"label": "…", "option": "…"}} — open the select (or
"tid") and choose the option with that text.A fill value is published in the PR comment's link, so the manifest
refuses one aimed at a password / secret / token / key field. Prefer a
route query over a fill when the page keeps the state in the URL (list
filters, sort, tabs): the reader lands on it with nothing to do. In an
i18n entry, a step lends the reader-language text / label / option
and the base keeps the testid; write the whole step, value included.
find — {"testid": "…"} (preferred), {"text": "…"} on a control, or
{"selector": "…"} (a CSS selector, optionally with "text" to pick the
node whose text matches — an SVG label, a table cell).
label — optional; without it the comment's head is
Page › testid › tag "text", derived from the anchor.
lng / i18n — always "lng": "en" with exactly one i18n entry, ko
(section 5); manifest.mjs refuses any other. Each extra language would add a
replay per stop at mint time. The ko entry needs ch and ck; old,
new and via fall back to the English ones when it omits them.
Capture inside a [role=dialog] sets dlg: 1 on its own — do not write it.
scripts/manifest.mjs validates the file before a browser starts and reports
every problem at once; the caps mirror the overlay's stop-guard.ts.
ch ("…, in all three lists").comment.sh describe --not-shown), never into the manifest.ch — what changed and how, past tense, one or two sentences, naming
the previous state when there was one. ≤ 280 chars.ck — one outcome the reader can verify by looking or with one click
("… shows …"). ≤ 280 chars.ck states the condition that produces the new behaviour, as value →
what shows: A folder whose mount permission is "none" shows "Not mountable"; "ro" shows "Read only". When the connected backend cannot produce that value yet (the
feature is not deployed there), keep the condition and add one clause saying
what this server cannot show — and list it under "Not shown in the
walkthrough" (section 7). "Should look the same as before" is not a check: it
describes the unchanged branch and hides the one the PR added.old / new — literals, ≤ 40 chars each. Omit both when nothing was
replaced."lng": "en", and the same
stop in Korean goes under "i18n": {"ko": {…}}; no other language is
written. The PR comment prints only the base fields, so it is always
English, as are label and the "Not shown in the walkthrough" list. The popover's EN/KO toggle switches the stop text
and the app's language together.resources/i18n/en.json, the Korean one the label in ko.json.
Look both up rather than translating a label yourself. The translation says
the same thing about the same element; old, new and via fall back to
the English ones when the ko entry omits them, so give it only what reads
differently.code links carry that. A reader who has never
opened the source must be able to check the stop from ck alone. Say
"the dotted average line now sits at the real average; before it was ten
times too high", not "the reference line now goes through
convertMetricUnit like the plotted series".node .claude/skills/walkthrough/scripts/mint.mjs \
--manifest /tmp/walkthrough.json \
--endpoint http://10.82.0.130:8090 \
--report /tmp/walkthrough-report.jsonWhich server, in one place: without --pr, the app is the name
dev-server claims for the current branch (--app overrides), the PR is
that record's served[] entry, --sha defaults to git rev-parse HEAD.
With --pr <n> the PR is looked up in --repo (default
lablup/backend.ai-webui, never the cwd's remote) and must be open; the app
is the live boot record that serves it — never stopped, pid alive, the same
repo — preferring the record on the PR's own branch over a stack layer above
it, then the newest boot; --app narrows that to one record; --sha
defaults to the PR head. Either way the server must serve the sha (its
/__review/state.head, else the record's worktree) or a commit that
contains it; a server behind the sha exits 3.
--env-file overrides where the admin account is read from (the server's own
checkout, then this one) — never print or commit it. --dry-run resolves
everything and launches no browser — without --manifest, for the one
question section 1a starts with.
A translated stop carries the element's text (txt) per language, since
every resolution tier ANDs it: mint.mjs replays the stop once in each
language to read it. A find whose anchor is one testid unique on the page
needs no text, so that stop skips the per-language replays and mints in one
pass. That is the cheap path, and why find should name a testid (section 3).
The script logs in, replays each stop, mints the anchor with the overlay's own
in-page modules, builds the set link, then opens it in a fresh page and
checks each stop marks its element within 30 s over the landmark it was
captured on — the element is stamped data-bai-change (guided mode) or a
.markbox is drawn for it (the reviewer overlay). A mark that lands on another
testid, or on none, is a failure and goes to couldNotPin[] with its ck. Exit 0 with a link, 2 on a
bad manifest, 3 on preflight.
One fix pass, then post. When couldNotPin[] is non-empty, correct the
manifest once (a better find, a missing via step, a route query) and
re-run. Whatever still does not pin is posted under "Could not pin" with its
ck: the reviewer checks it by hand faster than a third mint finds it.
The report's stops[] carries each stop's wording read back off the stripped
anchor, so the comment says exactly what the link carries; a dropped list
appears when the guard refused a field, which validation means should never
happen. A stop whose anchor exceeds 2048 chars is refused rather than minted —
parseFragments would drop that part of the link silently.
bash .claude/skills/walkthrough/scripts/comment.sh upsert \
--pr <n> --report /tmp/walkthrough-report.json
bash .claude/skills/walkthrough/scripts/comment.sh describe \
--pr <n> --report /tmp/walkthrough-report.json --not-shown /tmp/not-shown.txtupsert writes one comment per PR, found by
<!-- bai-walkthrough v1 pr=<n> … --> and edited in place on a re-mint. It
numbers and counts only the stops that resolved; the rest appear under
"Could not pin" alone. It carries the set link once — no
per-stop dev links, no <!-- bai-review --> marker, no > 📍 quote block. A
stop is not a review finding, and review-pins parse leaves one out of its
findings unless asked with --include-stops (FR-3949).
describe upserts a ## Walkthrough section in the PR description holding
- [Walkthrough](<comment url>) and the "Not shown in the walkthrough" list. It
rewrites that section and nothing else.
After today's two dev-server URL lines, add:
[Walkthrough](<set link>) · 6 stopsand, when some stop did not pin:
[Walkthrough](<set link>) · 6 stops (2 could not be pinned)
- Session start › resource slider — check: Step 2 shows a GPU slider.
- Data › sort indicator — check: The Name header shows a sort arrow.Each unpinned stop keeps its ck, so the reviewer can still check it by hand.
A preflight failure, or a section 0 skip, replaces the whole line with the one-line
reason.
dev-server section 5 owns it).fw:pr-ready-gate skill's.## Walkthrough section, and
never opens, closes, labels or reviews a PR.node --test .claude/skills/walkthrough/scripts/manifest.test.mjs
node --test .claude/skills/walkthrough/scripts/resolve.test.mjs
bash .claude/skills/walkthrough/scripts/test-comment.sh© lablup, LGPL-3.0. 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 7 other files (scripts) in .claude/skills/walkthrough of lablup/backend.ai-webui.
Open the folder on GitHubat commit d6afd57
Walkthrough 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 |
|---|---|---|---|---|---|---|
| Walkthrough this skilllablup/backend.ai-webui | 133 | — | ~4.9k | Automated safety check: Notes | LGPL-3.0 | |
| Configuring Horizoncoollabsio/coolify | 63k | 4 repos | ~898 | Automated safety check: Pass | MIT | |
| Nestjs Best Practicesrolling-scopes/rsschool-app | 10k | 6 repos | ~1.2k | Automated safety check: Pass | MIT | |
| Sub2API AdminWei-Shaw/sub2api | 43k | 1 repos | ~717 | Automated safety check: Pass | LGPL-3.0 | |
| Firecrawl Build Onboardingfirecrawl/firecrawl | 190k | 1 repos | ~1.4k | Automated safety check: Notes | ISC | |
| Obsidian BasesAtmosphere/atmosphere | 3.8k | 22 repos | ~3.2k | Automated safety check: Pass | Apache-2.0 |
coollabsio/coolify
A skill your agent uses whenever the user mentions Horizon by name in a Laravel context.
rolling-scopes/rsschool-app
NestJS best practices and architecture patterns for building production-ready applications.
Wei-Shaw/sub2api
Manages a Sub2API deployment from the command line: accounts, redeem and invitation codes, groups, proxies, imports, exports and raw admin API calls.
firecrawl/firecrawl
Gets Firecrawl working in a project: signs you in through the browser, saves FIRECRAWL_API_KEY to .env and picks the first SDK or REST path.
Atmosphere/atmosphere
Create and edit Obsidian Bases (.base files) with views, filters, formulas, and summaries.
coollabsio/coolify
ACTIVATE when the user works on authentication in Laravel. An agent skill from coollabsio/coolify.
lablup/backend.ai-webui
A skill your agent uses whenever the user mentions docs, the manual, documentation, terminology, translations, or screenshots — including indirect mentions like "이 PR 문서 영향 봐줘", "문서 점검", "용어 통일"…
lablup/backend.ai-webui
Expert guide for Backend.AI distributed computing platform. An agent skill from lablup/backend.ai-webui.
lablup/backend.ai-webui
Start the project's development server (pnpm dev for backend.ai-webui; discovered from README/package.json elsewhere), deriving the header color, app name, default backend endpoint and login…
lablup/backend.ai-webui
Record Playwright e2e tests as one GIF per test case (video → ffmpeg palette GIF) and return a markdown table for a PR description.
lablup/backend.ai-webui
A skill your agent uses when writing if (success) updateFetchKey(), an onRequestClose handler, or any refetch after a mutation; when a setting modal handles both create and update behind one…
lablup/backend.ai-webui
Post a Korean release risk digest to a Microsoft Teams thread, grouped by risk category.
Categories
Mint a walkthrough for the PR this session just implemented: a set of numbered stops a reviewer opens in the live dev server, each one marking an element on screen with what changed and what to check. ai-webui. Mint a walkthrough for the PR this session just implemented: a set of numbered stops a reviewer opens in the live dev server, each one marking an element on screen with what changed and what to check.
Walkthrough fits situations like: walkthrough 만들어줘; make a walkthrough; PR N에 walkthrough 달아줘; add a walkthrough to PR N.
Run `npx skills add lablup/backend.ai-webui --skill walkthrough -a claude-code`. Or copy the skill folder (.claude/skills/walkthrough in lablup/backend.ai-webui) into .claude/skills/walkthrough in your project. Claude Code loads it when a task matches its description.
Run `npx skills add lablup/backend.ai-webui --skill walkthrough -a codex`. Or copy the skill folder (.claude/skills/walkthrough in lablup/backend.ai-webui) into .agents/skills/walkthrough 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 lablup/backend.ai-webui --skill walkthrough -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/walkthrough, .gemini/skills/walkthrough, .github/skills/walkthrough and .opencode/skills/walkthrough in your project.
Going by SKILL.md and its folder, Walkthrough needs JavaScript and a shell for the scripts in its folder and the command-line tools its instructions call (node, bash, git, pnpm and gh). Our summary lists: Node.js; A Bash shell.
SKILL.md contains no URLs. Its commands use git and gh, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Walkthrough is published under the LGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.9k tokens (SKILL.md is roughly 20k 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 Walkthrough: Configuring Horizon (coollabsio/coolify, 63k stars), Nestjs Best Practices (rolling-scopes/rsschool-app, 10k stars), Sub2API Admin (Wei-Shaw/sub2api, 43k stars) and Firecrawl Build Onboarding (firecrawl/firecrawl, 190k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
lablup (a GitHub organization) maintains it in lablup/backend.ai-webui, which has 133 GitHub stars. The repository holds 13 skills in this directory. The repository was last updated on October 8, 2026.
Source: lablup/backend.ai-webui on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.