Superset Project Setup
superset-sh/superset
Makes a repository Superset-ready by writing .superset/config.json with setup, teardown and run scripts, then proving it with a real throwaway workspace.
Build production-quality CLIs with language detection and a five-step approval-gated workflow.
$ npx skills add luongnv89/skills --skill cli-builder -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install luongnv89/skills cli-builder --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/luongnv89/skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/cli-builder .claude/skills/cli-builder && 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 "cli-builder" agent skill from https://github.com/luongnv89/skills/tree/main/skills/cli-builder into .claude/skills/cli-builder/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cli-builder", 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/luongnv89/skills/tree/main/skills/cli-builderType 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 luongnv89/skills --skill cli-builder -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install luongnv89/skills cli-builder --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/luongnv89/skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/cli-builder .agents/skills/cli-builder && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "cli-builder" agent skill from https://github.com/luongnv89/skills/tree/main/skills/cli-builder into .agents/skills/cli-builder/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cli-builder", 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 luongnv89/skills --skill cli-builder -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install luongnv89/skills cli-builder --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/luongnv89/skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/cli-builder .cursor/skills/cli-builder && 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 "cli-builder" agent skill from https://github.com/luongnv89/skills/tree/main/skills/cli-builder into .cursor/skills/cli-builder/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cli-builder", 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/luongnv89/skills.git --path skills/cli-builder--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 luongnv89/skills --skill cli-builder -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install luongnv89/skills cli-builder --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/luongnv89/skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/cli-builder .gemini/skills/cli-builder && 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 "cli-builder" agent skill from https://github.com/luongnv89/skills/tree/main/skills/cli-builder into .gemini/skills/cli-builder/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cli-builder", 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 luongnv89/skills cli-builderInstalls 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 luongnv89/skills --skill cli-builder -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/luongnv89/skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/cli-builder .github/skills/cli-builder && 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 "cli-builder" agent skill from https://github.com/luongnv89/skills/tree/main/skills/cli-builder into .github/skills/cli-builder/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cli-builder", 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 luongnv89/skills --skill cli-builder -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install luongnv89/skills cli-builder --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/luongnv89/skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/cli-builder .opencode/skills/cli-builder && 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 "cli-builder" agent skill from https://github.com/luongnv89/skills/tree/main/skills/cli-builder into .opencode/skills/cli-builder/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cli-builder", 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.
cli-builderBuild production-quality CLIs with language detection and a five-step approval-gated workflow.
CLI Builder is an agent skill from luongnv89/skills. Build production-quality CLIs with language detection and a five-step approval-gated workflow. Use when wrapping an existing module or app. Don't use for GUI/TUI apps, web APIs, or one-off shell scripts.
Its SKILL.md is about 3.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 8 other files, including reference files (for example `docs/README.md`, `evals/evals.json` and `references/cli-libraries.md`).
It sits in Development, covering Shell scripting. It works with Git. The repository describes itself as: Supercharge your AI agents/bots with reusable skills. The licence is MIT.
5 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 8f80262. 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.
Shell commands in SKILL.md call:
gitpipnpmgocargoFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git, pip and npm, 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.
CLI Builder loads about 3.7k tokens when it runs, and up to ~11k if it reads all its reference files. Until then it costs about 54 tokens; SKILL.md has 1,785 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 found no risky patterns in SKILL.md.
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.
The full file from luongnv89/skills at commit 8f80262, republished under its MIT licence (© luongnv89). 1,785 words, ~3,671 tokens.
.claude/skills/cli-builder/SKILL.md (or your agent's skills folder). This skill also uses 5 other files; get the full folder from GitHub.Build production-quality CLI tools for any module or application, in any language.
Reference files (read each one on demand, not upfront, to keep the agent's context budget small):
references/cli-libraries.md — read during Step 2 (Design) to recommend libraries and during Step 4 (Execute) for starter scaffoldsreferences/testing-patterns.md — read during Step 4 (Execute) when writing testsreferences/final-report.md — read during Step 5 (Summarize) to write the final reportRun this section once, before Step 1, so the analysis reads the current code. If git rev-parse --git-dir fails, the directory is not a git repository: skip this section, the Branch-First Safety Rule, and the Step 4 commits, and list no git repository: no branch or commits under Uncertainty: in the final report.
In a git repository, sync the current branch with remote:
branch="$(git rev-parse --abbrev-ref HEAD)"
git fetch origin
git pull --rebase origin "$branch"If the working tree is not clean, stash first, sync, then restore:
git stash push -u -m "pre-sync"
branch="$(git rev-parse --abbrev-ref HEAD)"
git fetch origin && git pull --rebase origin "$branch"
git stash popIf origin is missing, pull is unavailable, or rebase/stash conflicts occur, stop and ask the user before continuing.
Run this rule at the start of Step 4, before the first file write, with CLI_NAME set to the tool name approved in Step 2. Only create a new branch if on main or master — otherwise continue on the existing branch (the user likely set it up already or is resuming work):
current_branch="$(git rev-parse --abbrev-ref HEAD)"
if [ "$current_branch" = "main" ] || [ "$current_branch" = "master" ]; then
slug="$(echo "${CLI_NAME:-cli}" | tr '[:upper:] ' '[:lower:]-' | tr -cd 'a-z0-9-')"
ts="$(date +%Y%m%d-%H%M%S)"
git checkout -b "feat/cli-${slug}-${ts}"
fiExplicit approval is a user reply that accepts the presented item as it stands, such as "approved" or "looks good, go ahead". A question, a change request, or no reply is not approval. Steps 1-3 write no files.
Understand the project before proposing anything.
Auto-detect language by checking for manifest files:
package.json / tsconfig.json -> JavaScript/TypeScriptpyproject.toml / setup.py / setup.cfg / requirements.txt -> Pythongo.mod -> GoCargo.toml -> Rustpom.xml / build.gradle / build.gradle.kts -> Java/KotlinGemfile / *.gemspec -> RubyIdentify existing CLI/entry points: check for bin fields, __main__.py, main.go, fn main(), existing arg parsing code, or scripts in package.json.
Record the module structure: list the public functions or classes the CLI will expose, their inputs and outputs, the core data types, and runtime dependencies.
Ask clarifying questions (only what cannot be inferred):
Present the findings: detected language, entry points, the list of exposed functions, and the open questions. Wait for explicit approval before Step 2.
Present a structured CLI design document:
Approval loop:
No implementation before design approval. If the user ends the run without approving the design, stop; the final status is BLOCKED.
Break implementation into three phases, each with granular tasks.
Phase 1 — Foundation (get a working CLI skeleton):
Phase 2 — Complete (full feature set):
Phase 3 — Polish (optional; include it only when the user confirms it):
Each task includes:
Use the same approval loop as Step 2 for the plan.
No execution before plan approval. If the user ends the run without approving the plan, stop; the final status is BLOCKED.
Before the first file write, apply the Branch-First Safety Rule. Then, for each task in the approved plan:
pytest, npm test, go test ./..., cargo test).not run.At the end of each phase:
--help plus at least one approved example invocation) and show the output. A demo that exits non-zero is a failing test (item 3).If a task needs a change to the approved design (a command, option, or output format differs), stop Step 4. Present the proposed change and wait for explicit approval before you continue.
Print the final report once, after the last Step Completion Report, as plain text in the chat. Do not write a report file unless the user asks for one. Read references/final-report.md for each part's contents, the status rules, and two examples. The four parts, in this order:
Result: — the status first (COMPLETE, PARTIAL — <reason>, or BLOCKED — <reason>), then the tool name.Evidence: — only checks that ran: files, test counts, demo exit codes.Uncertainty: — untested behavior and assumptions, labeled apart from verified facts.Decision: — the approval needed, or No approval needed., then each remaining user action.After the four parts, print the usage quick-start (install command and 3-5 example invocations) and the next steps (suggested improvements, missing features, distribution TODO).
Status rules — apply the first rule that matches:
BLOCKED — the run stopped before the first file write, for example because the design or plan was not approved, there was no module to wrap and the user gave no answer, or Repo Sync hit a conflict or a missing origin the user did not approve working around.PARTIAL — at least one file was written, and then any of these happened: a test or demo still fails, a test command could not run, the user stopped Step 4 early, an approved task is not done, or a design change awaits approval.COMPLETE — every task in the approved plan is done, and every test command and demo ran and passed. A Phase 3 the user declined does not make the run partial.After running this skill on a Python module called mylib, the final report looks like this (full example: references/final-report.md):
Result: COMPLETE — mylib CLI (Python, click) with subcommands run and info
Evidence:
Branch: feat/cli-mylib-20260419-143200
Created: cli/main.py, cli/commands/run.py, cli/commands/info.py, tests/test_cli.py
Modified: pyproject.toml ([project.scripts] entry point)
pytest: 8 passed, 0 failed
Demo: mylib --help, mylib --version, mylib run --input data.csv (all exit 0)
Uncertainty:
Tested on macOS only. Shell completions not built (Phase 3 declined).
Decision: No approval needed.
Remaining action: review the branch and push it.
Usage quick-start:
pip install -e .
mylib --help
mylib run --input data.csv --output results.json
mylib info --format jsonStep Completion Report (Steps 4-5):
◆ Execute + Summarize (step 4-5 of 5 — mylib CLI)
··································································
Implementation: √ pass (2 subcommands, 4 files created)
Test coverage: √ pass (8/8 tests passing)
Phase demos completed: √ pass (help, version, run verified)
Final report delivered: √ pass
Criteria: √ 4/4 met
____________________________
Result: PASS--help works at every command level and --version is implementedreferences/testing-patterns.mdNO_COLOR env var or --no-color flag is respectedResult: and a status chosen by the Step 5 status rules, then Evidence:, Uncertainty:, and Decision:references/final-report.md). Human understanding stays unconfirmed until a user answers those checksAfter completing each major step, output a status report in this format:
◆ [Step Name] ([step N of M] — [context])
··································································
[Check 1]: √ pass
[Check 2]: √ pass (note if relevant)
[Check 3]: × fail — [reason]
[Check 4]: √ pass
[Criteria]: √ N/M met
____________________________
Result: PASS | FAIL | PARTIALAdapt the check names to match what the step actually validates. Use √ for pass, × for fail, and — to add brief context. The "Criteria" line summarizes how many acceptance criteria were met. The "Result" line gives the overall verdict.
Phase: Analyze (Step 1) — checks: Project analysis, Language detected, Entry points identified, Clarifying questions asked
Phase: Design (Step 2) — checks: Design approval, Command tree defined, I/O behavior specified, Example invocations provided
Phase: Plan (Step 3) — checks: Plan approval, Phases broken down, Tasks have goals and tests, Effort estimated
Phase: Execute + Summarize (Steps 4–5) — checks: Implementation, Test coverage, Phase demos completed, Final report delivered
| Situation | Action |
|---|---|
| No clear module to wrap | Ask user what functionality the CLI should expose |
| Multiple languages detected | Ask user which language to use, recommend the one with more CLI code |
| Existing CLI found | Offer to extend/refactor rather than rebuild; audit existing CLI first |
| Unknown framework requested | Read the framework's official documentation; if none is reachable, ask the user for a docs link |
| Tests fail after implementation | Fix and re-run; never skip broken tests. After 3 failed attempts on one task, stop and ask the user (Step 4) |
| Test command cannot run | Tell the user; continue only after explicit approval, and record the tests as not run (status PARTIAL) |
| Not a git repository | Skip Repo Sync, the branch rule, and commits; list it under Uncertainty: |
Every CLI built with this skill must include:
--help works at every level)references/testing-patterns.md (0 = success, non-zero = failure)--long-flag, -s short flag, -- to end optionsNO_COLOR env var or --no-color flag--version prints version and exits© luongnv89, 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 5 other files (references) in skills/cli-builder of luongnv89/skills.
Open the folder on GitHubat commit 8f80262
CLI Builder 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 |
|---|---|---|---|---|---|---|
| CLI Builder this skillluongnv89/skills | 131 | — | ~3.7k | Automated safety check: Pass | MIT | |
| Superset Project Setupsuperset-sh/superset | 15k | — | ~577 | Automated safety check: Notes | Custom licence | |
| Hns Moaiadk Dev Referencemodu-ai/moai-adk | 1.2k | — | ~937 | Automated safety check: Pass | Apache-2.0 | |
| Bash Scriptingericrisco/rsc-harness | 156 | — | ~2.5k | Automated safety check: Pass | MIT | |
| Finishing a Development Branchobra/superpowers | 296k | 5 repos | ~1.9k | Automated safety check: Pass | MIT | |
| Code Review ChecklistshareAI-lab/learn-claude-code | 78k | 5 repos | ~1.1k | Automated safety check: Pass | MIT |
superset-sh/superset
Makes a repository Superset-ready by writing .superset/config.json with setup, teardown and run scripts, then proving it with a real throwaway workspace.
modu-ai/moai-adk
moai-adk-go local dev reference — version management/release process (sec 5), shell-script hook development (sec 7), build & dev commands (sec 10).
ericrisco/rsc-harness
A skill your agent uses when writing or hardening a shell script that must survive another machine — a CI step, install script, cron job, git hook, devcontainer entrypoint: strict-mode leaks…
obra/superpowers
Walks the last step of a branch: confirm tests pass, detect the git environment, ask how to integrate, carry out your choice and clean up the worktree.
shareAI-lab/learn-claude-code
Reviews code against a five-part checklist covering security, correctness, performance, maintainability and testing, and reports findings in a fixed format.
Egonex-AI/Understand-Anything
Answers questions about a codebase by searching a prebuilt knowledge graph of its files, functions, classes and dependencies, not by rereading every source file.
luongnv89/skills
Review UI usability using Steve Krug's principles and produce a scannable report.
luongnv89/skills
Manage AI agent fleets in Herdr: tile root + sub-agents in one tab, start/prompt/wait/read/monitor via the herdr agent CLI, steer any pane; help lists every operation.
luongnv89/skills
Optimize Ollama configuration for the current machine's hardware.
luongnv89/skills
Install local-first security hardening: pre-commit secret detection, offline dependency scans, static analysis, reports, and gated free CI.
luongnv89/skills
Generate sprint-based development tasks from a PRD. An agent skill from luongnv89/skills.
luongnv89/skills
Manage AI agents in tmux: spawn sessions, send messages, wait, capture replies, inspect fleets, and tear down safely.
Works with
Categories
Build production-quality CLIs with language detection and a five-step approval-gated workflow. CLI Builder is an agent skill from luongnv89/skills. Build production-quality CLIs with language detection and a five-step approval-gated workflow.
CLI Builder fits situations like: wrapping an existing module; one-off shell scripts.
Run `npx skills add luongnv89/skills --skill cli-builder -a claude-code`. Or copy the skill folder (skills/cli-builder in luongnv89/skills) into .claude/skills/cli-builder in your project. Claude Code loads it when a task matches its description.
Run `npx skills add luongnv89/skills --skill cli-builder -a codex`. Or copy the skill folder (skills/cli-builder in luongnv89/skills) into .agents/skills/cli-builder 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 luongnv89/skills --skill cli-builder -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/cli-builder, .gemini/skills/cli-builder, .github/skills/cli-builder and .opencode/skills/cli-builder in your project.
Going by SKILL.md and its folder, CLI Builder needs the command-line tools its instructions call (git, pip, npm, go and cargo). Our summary lists: Python 3.
SKILL.md contains no URLs. Its commands use git, pip and npm, 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 no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
CLI Builder is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.7k tokens (SKILL.md is roughly 15k 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 6.9k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with CLI Builder: Superset Project Setup (superset-sh/superset, 15k stars), Hns Moaiadk Dev Reference (modu-ai/moai-adk, 1.2k stars), Bash Scripting (ericrisco/rsc-harness, 156 stars) and Finishing a Development Branch (obra/superpowers, 296k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
luongnv89 (a GitHub user) maintains it in luongnv89/skills, which has 131 GitHub stars. The repository holds 37 skills in this directory. The repository was last updated on October 7, 2026.
Source: luongnv89/skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.