lablup
- 28 skills
- 0 followers
- 6 hours ago last updated
- ▌ Gh Stack · lablupManage stacked branches and pull requests with the gh-stack GitHub CLI extension. Use when the user wants to create, push, rebase, sync, navigate, or view stacks of dependent PRs. Triggers on tasks involving stacked diffs, dependent pull requests, branch chains, or incremental code review workflows.
- ▌ Docs Lead · lablup bundleUse whenever the user mentions docs, the manual, documentation, terminology, translations, or screenshots — including indirect mentions like "이 PR 문서 영향 봐줘", "문서 점검", "용어 통일", "/docs-lead", or any phrasing about updating the Backend.AI WebUI user manual under packages/backend.ai-webui-docs/. Single entry point that runs docs-lint diagnosis, surfaces a prioritized queue via AskUserQuestion, and orchestrates the four docs worker subagents (planner / writer / screenshot-capturer / reviewer) through approval gates. Reading the manual to answer a question is the `bai-agent` skill's job; this skill is for writing and maintaining it.
- ▌ Dev Server · lablup bundleStart the project's development server. For backend.ai-webui this means `pnpm dev` (no separate wsproxy needed by default). For other projects, read the project's README.md and package.json to determine the right command. When a Claude Code `/color <name>` slash command is visible in the current conversation history, set VITE_THEME_HEADER_COLOR to the matching hex so the dev server's header reflects this Claude session's color. When `/rename <name>` is visible, slugify the name and pass it as PORTLESS_APP_NAME so the dev URL reflects the session name; dev.mjs prepends the branch's FR number and the PR number itself, and derives a word from the PR title when there is no /rename, so pass the word only. When the current branch's PR description names a backend test server (bare IP, `host:port`, or full URL), set VITE_DEFAULT_API_ENDPOINT so the login screen pre-fills that endpoint; when a live session is connected to a different backend a dev-only banner flags the mismatch instead of forcing a logout. When the us
- ▌ Adr Writing · lablup bundleWrite and revise the ADRs in `docs/adr/` and their index `docs/ARCHITECTURE.md` so a first-time reader understands them alone. Covers the file conventions (name, title, no status field, how a decision is retired), the section skeleton, the writing rules for titles, terms, and sentences, mermaid usage and its syntax traps, and the checks a document passes before it lands. Use before authoring a new ADR, before revising one, and before landing any change under `docs/adr/`. Trigger on "ADR 써줘", "결정 기록 남겨줘", "write an ADR", "architecture decision record", or when an implementation needs a decision no ADR in force covers. When a change needs an ADR, and what an agent owes the ADRs in force, is `.claude/rules/adr.md`.
- ▌ Serve Release · lablupDownload a released backend.ai-webui bundle from GitHub Releases and serve it locally via Portless so the URL carries the version name (e.g. `https://v26-4-8-rc-3.localhost:1355`). Uses `scripts/serve-release.sh` under the hood, which fetches the bundle, copies the local `config.toml` / plugins into the extracted folder, and runs `serve` behind Portless. Trigger on: "릴리즈 띄워", "릴리즈 버전 실행", "serve release", "run release", "release 띄워줘", "특정 버전 띄워줘", "released bundle 띄워줘", "stage release", or any request that names a specific webui release version (e.g. "v26.4.8-rc.3 실행해줘", "26.4.7 띄워줘").
- ▌
- ▌
- ▌ Backend AI Guide · lablup bundleExpert guide for Backend.AI distributed computing platform. Automatically activates when users ask about: - Backend.AI architecture, components (Manager, Agent, Storage Proxy, Webserver, App Proxy) - Features (session scheduling, Sokovan orchestrator, multi-tenancy, resource allocation) - APIs (REST, GraphQL), authentication, RBAC authorization - Container runtime (kernels, jail sandbox, hook library, virtual folders) - Accelerator support (CUDA, ROCm, TPU, NPU, Graphcore IPU) - Client SDKs (Python, Java, JavaScript, PHP) - Setup, requirements (Python 3.13+, Docker, PostgreSQL, Redis, etcd) - How WebUI connects to/interacts with Backend.AI backend - Plugin interfaces, development setup, infrastructure Use when user mentions "Backend.AI", "backend.ai", "Sokovan", component names, or asks about the backend platform this WebUI connects to. For this deployment's live data, a GraphQL field's meaning, or a status value the UI shows, use the `bai-agent` skill instead — it queries the manager and the schema.
- ▌
- ▌ Release Train Prep · lablupPost a Korean release risk digest to a Microsoft Teams thread, grouped by risk category. Runs scripts/release-risk-report.mjs over a ref range and renders the result as a short HTML message: new features and change hotspots first, then version-gating gaps (@since), untranslated keys, UI without e2e cover, and manual gaps. Use when someone gives a Teams thread URL and asks to summarize a release, an rc, or a branch there — "이번 릴리즈 리스크 팀즈에 올려줘", "이 스레드에 정리해서 알려줘", "post the release risk report to Teams", "/release-train-prep". With --train it also opens the release train: reads the version from the thread's own "Final train to vX.Y.Z" title, creates the "Final Train to v<version>" Jira Story (after user confirm) and posts the kickoff + digest into the thread — "트레인 이슈 만들어줘", "릴리즈 트레인 준비해줘", "이 스레드로 트레인 준비해줘", "release train 시작". PREPARATION ONLY — it never creates a release branch, tag, or GitHub release; "릴리즈 찍어줘 / 릴리즈 만들어줘 / cut the release / rc 릴리즈" is create-release, not this skill.
- ▌ Bai Agent · lablup bundleAnswer a Backend.AI question, or do a Backend.AI task, from this checkout with the `bai-agent` CLI — the manual, the GraphQL schema, the i18n stores and the live manager. Trigger on: what a Backend.AI concept, field or status value means ("what does session status PENDING mean", "what is a resource group", "what does this field mean"), "find it in the manual", "search the docs", "query the manager", "run a GraphQL query", "how many sessions are running", "show me my sessions / folders / agents / users", "give me the WebUI link for this session", "where do I see that folder in the WebUI", or "bai-agent". Use `backend-ai-guide` instead for platform architecture with no live data, and `docs-lead` for writing the manual rather than reading it.
- ▌ Webui Connection Info · lablupFind WebUI dev server address and Backend.AI API endpoint/credentials for testing. Trigger on: "which server", "connection info", "login credentials", "dev server URL", "API endpoint", "where to connect", "how to login", "test server", or when needing to interact with the running WebUI (screenshots, live checks, E2E). This skill only says where to connect: for the data behind the UI — field meanings, GraphQL queries, live rows — use the `bai-agent` skill.
- ▌ Relay Mutation Store Updates · lablupUse 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 fragment prop; when choosing a mutation's response selection set; or when debugging "the list doesn't refresh after saving" / "why is it fetching twice". Covers when Relay patches the normalized store on its own, and when a refetch is genuinely the right answer.
- ▌ Submit · lablupComplete submission workflow - quality checks, commit, PR creation, changelog generation, and final push. Use after finishing implementation work.
- ▌
- ▌ Release · lablupGuide the Backend.AI release process - run release.sh, generate changelog via towncrier, consolidate RC entries for final releases with subsection grouping.
- ▌ API Guide · lablupGuide for implementing REST and GraphQL APIs (create, get, search, update, delete, purge, scope prefix patterns, admin_ prefix, SearchScope, BaseFilterAdapter, @api_function, Click CLI)
- ▌ Bep Guide · lablupGuide for writing and managing BEPs (Backend.AI Enhancement Proposals) - creation workflow, document segmentation, context-for-ai blocks, Decision Log
- ▌ Halfstack · lablupDiagnose and fix Docker Compose halfstack issues — config mapping, service health, DB/Valkey/etcd inspection, supergraph regeneration
- ▌ Knowledge · lablupSearch and author KNOWLEDGE.md background-knowledge documents - frontmatter schema, search/check scripts, and the generated/verified lifecycle rules
- ▌ Local Dev · lablupLocal server management — ./dev start/stop/restart via tmux, startup-crash debugging, pre-flight infra checks, raw component start-server commands, post-change restart workflow
- ▌ Code Trace · lablupTrace a feature across the layered architecture (REST v2, GraphQL, Service, Repository, DB, Errors) and explore the entity source tree — includes how to read the 21k-line supergraph.graphql without loading it whole
- ▌ DB Migrate · lablupInspect and apply database schema migrations (alembic current/heads, upgrade, downgrade, diverged heads) for Backend.AI components (manager, accountmgr, appproxy)
- ▌ Test Guide · lablupTest-writing guide for Backend.AI — propose success/exception/edge scenarios first, refine them with the user, then implement while reporting per-scenario verification status. Covers fixtures, with_tables, mock repositories, pants test, optional TDD cadence.
- ▌ CLI Sdk Guide · lablupGuide for implementing Backend.AI client SDK and CLI (Session, BaseFunction, @api_function, Click commands, Pydantic models, FieldSpec, output handlers, APIConfig, testing)
- ▌ Observability · lablupObserve Backend.AI logs, metrics, and traces during local development via the Grafana MCP (Loki logs, Prometheus metrics, Tempo traces, Pyroscope profiles). Use after restarting a service to verify behavior instead of tailing console output.
- ▌ Service Guide · lablupGuide for implementing Backend.AI service layer (create, get, search, update, delete, purge, batch operations, Actions, ActionResults, Processors, ActionProcessor, Service methods)
- ▌ Repository Guide · lablupGuide for implementing Backend.AI repository patterns (create, get, search, update, delete, purge, batch operations, Querier, BatchQuerier, Creator, Updater, Purger, SearchScope, with_tables)