Backlog Grooming
forcedotcom/salesforcedx-vscode
Triage the team's open GUS backlog — propose closing done-but-open work items (with code/test citations), flag under-specified items for grilling, catch wrong-epic / orphan / unpointed / dead-link…
Refine backlog requirements through structured user interview.
$ npx skills add cyanluna-git/cyanluna.skills --skill kanban-refine -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install cyanluna-git/cyanluna.skills kanban-refine --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/cyanluna-git/cyanluna.skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/kanban-refine .claude/skills/kanban-refine && 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 "kanban-refine" agent skill from https://github.com/cyanluna-git/cyanluna.skills/tree/main/kanban-refine into .claude/skills/kanban-refine/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "kanban-refine", 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/cyanluna-git/cyanluna.skills/tree/main/kanban-refineType 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 cyanluna-git/cyanluna.skills --skill kanban-refine -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install cyanluna-git/cyanluna.skills kanban-refine --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/cyanluna-git/cyanluna.skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/kanban-refine .agents/skills/kanban-refine && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "kanban-refine" agent skill from https://github.com/cyanluna-git/cyanluna.skills/tree/main/kanban-refine into .agents/skills/kanban-refine/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "kanban-refine", 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 cyanluna-git/cyanluna.skills --skill kanban-refine -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install cyanluna-git/cyanluna.skills kanban-refine --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/cyanluna-git/cyanluna.skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/kanban-refine .cursor/skills/kanban-refine && 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 "kanban-refine" agent skill from https://github.com/cyanluna-git/cyanluna.skills/tree/main/kanban-refine into .cursor/skills/kanban-refine/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "kanban-refine", 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/cyanluna-git/cyanluna.skills.git --path kanban-refine--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 cyanluna-git/cyanluna.skills --skill kanban-refine -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install cyanluna-git/cyanluna.skills kanban-refine --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/cyanluna-git/cyanluna.skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/kanban-refine .gemini/skills/kanban-refine && 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 "kanban-refine" agent skill from https://github.com/cyanluna-git/cyanluna.skills/tree/main/kanban-refine into .gemini/skills/kanban-refine/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "kanban-refine", 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 cyanluna-git/cyanluna.skills kanban-refineInstalls 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 cyanluna-git/cyanluna.skills --skill kanban-refine -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/cyanluna-git/cyanluna.skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/kanban-refine .github/skills/kanban-refine && 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 "kanban-refine" agent skill from https://github.com/cyanluna-git/cyanluna.skills/tree/main/kanban-refine into .github/skills/kanban-refine/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "kanban-refine", 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 cyanluna-git/cyanluna.skills --skill kanban-refine -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install cyanluna-git/cyanluna.skills kanban-refine --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/cyanluna-git/cyanluna.skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/kanban-refine .opencode/skills/kanban-refine && 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 "kanban-refine" agent skill from https://github.com/cyanluna-git/cyanluna.skills/tree/main/kanban-refine into .opencode/skills/kanban-refine/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "kanban-refine", 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.
kanban-refineRefine backlog requirements through structured user interview.
Kanban Refine is an agent skill from cyanluna-git/cyanluna.skills. Refine backlog requirements through structured user interview. Turns rough task descriptions into concrete, actionable requirements with goal, scope, acceptance criteria, and edge cases.
Its SKILL.md is about 1.5k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Productivity & Automation, covering Task management, User research and User stories. The licence is MIT.
Read from SKILL.md and the folder at commit df5be37. 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:
python3From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
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.
Kanban Refine loads about 1.5k tokens when it runs. Until then it costs about 50 tokens; SKILL.md has 67 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 cyanluna-git/cyanluna.skills at commit df5be37, republished under its MIT licence (© cyanluna-git). 67 words, ~1,491 tokens.
.claude/skills/kanban-refine/SKILL.md (or your agent's skills folder).Shared context: read
../kanban/shared.mdfor DB path, pipeline levels, status transitions, DB operations, error handling, and agent context flow. Safety principles: read../kanban/principles.md— mandatory, not optional.
/kanban-refine <ID> — Refine Backlog RequirementsReads a rough backlog item and refines it into concrete, actionable requirements through structured user interview.
Target: tasks in todo status (backlog). If the task is not todo, warn the user and confirm before proceeding.
① Read the task
TASK = sqlite3 -json "$DB" "SELECT id, title, description, priority, level, tags FROM tasks WHERE id=$ID AND project='$PROJECT'"
Extract: title, description, priority, level, tags
① ½. Look for prior implementation context (always run this before the interview)
a. Check description and tags for dependency hints:
- "Depends on: #NNN" lines in description
- Tags like "after:NNN", "follows:NNN"
b. If dependency found → fetch that card's implementation output:
PRIOR = sqlite3 -json "$DB" "SELECT title, implementation_notes, plan FROM tasks WHERE id=$NNN AND project='$PROJECT'"
Also inspect the actual codebase: read files, interfaces, schemas confirmed in that card.
c. If no explicit dependency → ask ONE question before the main interview:
"Is there a prior task whose implementation this builds on? (task ID or 'none')"
If the user gives an ID, fetch it as in (b).
If "none" or new work → skip, proceed with regular interview.
d. Summarize what was confirmed from prior implementation:
PRIOR_CONTEXT = {
confirmed interfaces, schemas, file paths, component names, API routes, etc.
}
This context is injected into ③ (gap analysis) and ⑤ (description synthesis).
② Display current state
Show the user their raw title + description as-is.
If PRIOR_CONTEXT exists, also show: "Prior implementation context: [summary]"
③ Analyze for gaps
Identify what's missing or vague across these dimensions:
- WHAT: What exactly should be built/changed?
- WHY: What problem does this solve? What's the motivation?
- SCOPE: What's included vs excluded?
- ACCEPTANCE: How do we know it's done?
- CONSTRAINTS: Technical limitations, compatibility, performance?
- EDGE CASES: Error states, boundary conditions?
- DEPENDENCIES: Does it depend on other tasks or external systems?
④ Interview the user (MANDATORY)
Use AskUserQuestion to ask about the gaps found in ③.
Rules:
- Ask 1–4 focused questions per round (AskUserQuestion limit)
- Group related questions in one round
- Run multiple rounds if needed (max 3 rounds)
- Stop early if the user says "enough" or all gaps are filled
- Don't ask about things that are already clear
- Use concrete options when possible, not open-ended questions
⑤ Synthesize refined description
Rewrite the description using this template.
If PRIOR_CONTEXT exists, ground scope/requirements/constraints in confirmed interfaces
and file paths from the prior implementation — not assumptions.
## Goal
[1–2 sentences: what this task achieves and why]
## Prior Implementation Context ← include only if PRIOR_CONTEXT exists
[Confirmed interfaces, schemas, components, or file paths from the prior card
that this task directly builds on. e.g. "POST /api/items → {id, name} per #201"]
## Scope
- IN: [bulleted list of what's included]
- OUT: [bulleted list of what's explicitly excluded]
## Requirements
[Numbered list of concrete, testable requirements]
## Acceptance Criteria
- [ ] [Checklist items — each verifiable]
## Constraints
[Technical constraints, if any identified]
## Edge Cases
[Edge cases to handle, if any identified]
Omit sections that have no content (e.g., skip Constraints if none).
⑥ Present the refined description to the user
Show the full refined description in a code block.
Ask user to confirm with AskUserQuestion:
- "Approve & save" (update the task)
- "Edit more" (go back to interview)
- "Cancel" (discard changes)
⑦ Save
If approved:
- sqlite3 "$DB" "UPDATE tasks SET description='...', updated_at=datetime('now') WHERE id=$ID AND project='$PROJECT'"
- Also update title if it was clarified during interview
- Update level/priority/tags if discussed
- Append to agent_log (see shared.md → JSON 필드 조작):
{ "agent": "Refiner", "model": "<MODEL_REFINER>", "message": "Requirements refined. N questions across M rounds.", "timestamp": "..." }
### Model Routing
Resolve `MODEL_REFINER` from `../kanban/models.json`:
```bash
MODEL_PROVIDER=${KANBAN_MODEL_PROVIDER:-}
if [ -z "$MODEL_PROVIDER" ] && [ -n "${CODEX_THREAD_ID:-}${CODEX_CI:-}" ]; then MODEL_PROVIDER=codex; fi
if [ -z "$MODEL_PROVIDER" ] && [ -n "${CLAUDE_PROJECT_DIR:-}${CLAUDECODE:-}" ]; then MODEL_PROVIDER=claude; fi
if [ -z "$MODEL_PROVIDER" ] && [ -d .claude ]; then MODEL_PROVIDER=claude; fi
if [ -z "$MODEL_PROVIDER" ] && [ -d .codex ]; then MODEL_PROVIDER=codex; fi
MODEL_REFINER=$(python3 - "$MODEL_PROVIDER" <<'PY'
import json, pathlib, sys
d = json.loads(pathlib.Path("../kanban/models.json").read_text())
provider = sys.argv[1] or d["default_provider"]
print(d["providers"][provider]["refiner"])
PY
)
### Interview Tips
- If the user wrote "로그인 기능 추가" → ask: OAuth/email? Session/JWT? Which pages need auth guards?
- If the user wrote "성능 개선" → ask: Which page/API? Current latency? Target latency? Measurement method?
- If the user wrote "UI 수정" → ask: Which component? What's wrong now? Mockup/reference? Responsive?
- Prefer showing concrete options over open-ended "어떤 걸 원하세요?"© cyanluna-git, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in kanban-refine of cyanluna-git/cyanluna.skills.
Open the folder on GitHubat commit df5be37
Kanban Refine 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 |
|---|---|---|---|---|---|---|
| Kanban Refine this skillcyanluna-git/cyanluna.skills | 183 | — | ~1.5k | Automated safety check: Pass | MIT | |
| Backlog Groomingforcedotcom/salesforcedx-vscode | 1k | — | ~1.5k | Automated safety check: Pass | BSD-3-Clause | |
| Design Sprintwondelai/skills | 2.4k | — | ~3.8k | Automated safety check: Pass | MIT | |
| Customer Interviewsmenkesu/awesome-pm-skills | 434 | — | ~4.4k | Automated safety check: Pass | Custom licence | |
| Interview Scriptkillvxk/pm-skills-zh | 167 | — | ~547 | Automated safety check: Pass | MIT | |
| Building ProductGTM-Strategist/gtm-strategist-skills | 264 | — | ~5.8k | Automated safety check: Pass | MIT |
forcedotcom/salesforcedx-vscode
Triage the team's open GUS backlog — propose closing done-but-open work items (with code/test citations), flag under-specified items for grilling, catch wrong-epic / orphan / unpointed / dead-link…
wondelai/skills
Run a structured 5-day process to prototype, test, and validate product ideas with real users.
menkesu/awesome-pm-skills
Designs customer interviews and turns the transcripts into decisions.
killvxk/pm-skills-zh
创建结构化的用户访谈脚本,包含 JTBD(用户待办任务)探测问题、破冰环节、核心探索及收尾部分。遵循"老妈测试"原则——不引导、不推销,聚焦过去的实际行为。适用于准备用户访谈、创建访谈指南或规划探索性研究时使用。
GTM-Strategist/gtm-strategist-skills
A skill your agent uses when the user needs to define their MVP, create a product roadmap, plan metrics and tracking, refine their value proposition with JTBD, or run usability tests.
phuryn/pm-skills
Summarize a customer interview transcript into a structured template with JTBD, satisfaction signals, and action items.
cyanluna-git/cyanluna.skills
Run multiple kanban tasks end-to-end in Rolling Wave order — refine each task based on the prior card's actual implementation, then implement, then verify, then refine the next.
cyanluna-git/cyanluna.skills
Manage project tasks in a local SQLite DB (~/.claude/kanban-dbs/{project}.db).
cyanluna-git/cyanluna.skills
Codebase exploration skill for uncertain implementation direction.
cyanluna-git/cyanluna.skills
Local markdown-file kanban for toy and personal projects. An agent skill from cyanluna-git/cyanluna.skills.
cyanluna-git/cyanluna.skills
Run the AI team pipeline for kanban tasks — orchestration loop with 6 agents (Planner, Critic, Builder, Shield, Inspector, Ranger), single-step execution, and code review.
cyanluna-git/cyanluna.skills
Turn vague intent into a precise, executable spec through 5 structured phases, then optionally create a kanban task.
Refine backlog requirements through structured user interview. skills. Refine backlog requirements through structured user interview.
Kanban Refine fits situations like: tasks that involve Task management; tasks that involve User research; tasks that involve User stories.
Run `npx skills add cyanluna-git/cyanluna.skills --skill kanban-refine -a claude-code`. Or copy the skill folder (kanban-refine in cyanluna-git/cyanluna.skills) into .claude/skills/kanban-refine in your project. Claude Code loads it when a task matches its description.
Run `npx skills add cyanluna-git/cyanluna.skills --skill kanban-refine -a codex`. Or copy the skill folder (kanban-refine in cyanluna-git/cyanluna.skills) into .agents/skills/kanban-refine 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 cyanluna-git/cyanluna.skills --skill kanban-refine -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/kanban-refine, .gemini/skills/kanban-refine, .github/skills/kanban-refine and .opencode/skills/kanban-refine in your project.
Going by SKILL.md and its folder, Kanban Refine needs the command-line tools its instructions call (python3). Our summary lists: Python 3.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. 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.
Kanban Refine is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.5k tokens (SKILL.md is roughly 6k 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 Kanban Refine: Backlog Grooming (forcedotcom/salesforcedx-vscode, 1k stars), Design Sprint (wondelai/skills, 2.4k stars), Customer Interviews (menkesu/awesome-pm-skills, 434 stars) and Interview Script (killvxk/pm-skills-zh, 167 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
cyanluna-git (a GitHub user) maintains it in cyanluna-git/cyanluna.skills, which has 183 GitHub stars. The repository holds 16 skills in this directory. The repository was last updated on June 22, 2026.
Source: cyanluna-git/cyanluna.skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.