User Story Writer
deanpeters/Product-Manager-Skills
Writes user stories in Mike Cohn's format with Gherkin acceptance criteria, turning user needs into development-ready work with testable conditions.
Turn a rough feature idea into a written goal and testable acceptance criteria before any code is written.
$ npx skills add Touch-N-Stars/Touch-N-Stars --skill feature-kickoff -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install Touch-N-Stars/Touch-N-Stars feature-kickoff --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/Touch-N-Stars/Touch-N-Stars.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/feature-kickoff .claude/skills/feature-kickoff && 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 "feature-kickoff" agent skill from https://github.com/Touch-N-Stars/Touch-N-Stars/tree/master/.claude/skills/feature-kickoff into .claude/skills/feature-kickoff/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "feature-kickoff", 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/Touch-N-Stars/Touch-N-Stars/tree/master/.claude/skills/feature-kickoffType 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 Touch-N-Stars/Touch-N-Stars --skill feature-kickoff -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install Touch-N-Stars/Touch-N-Stars feature-kickoff --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Touch-N-Stars/Touch-N-Stars.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/feature-kickoff .agents/skills/feature-kickoff && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "feature-kickoff" agent skill from https://github.com/Touch-N-Stars/Touch-N-Stars/tree/master/.claude/skills/feature-kickoff into .agents/skills/feature-kickoff/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "feature-kickoff", 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 Touch-N-Stars/Touch-N-Stars --skill feature-kickoff -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install Touch-N-Stars/Touch-N-Stars feature-kickoff --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Touch-N-Stars/Touch-N-Stars.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/feature-kickoff .cursor/skills/feature-kickoff && 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 "feature-kickoff" agent skill from https://github.com/Touch-N-Stars/Touch-N-Stars/tree/master/.claude/skills/feature-kickoff into .cursor/skills/feature-kickoff/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "feature-kickoff", 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/Touch-N-Stars/Touch-N-Stars.git --path .claude/skills/feature-kickoff--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 Touch-N-Stars/Touch-N-Stars --skill feature-kickoff -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install Touch-N-Stars/Touch-N-Stars feature-kickoff --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Touch-N-Stars/Touch-N-Stars.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/feature-kickoff .gemini/skills/feature-kickoff && 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 "feature-kickoff" agent skill from https://github.com/Touch-N-Stars/Touch-N-Stars/tree/master/.claude/skills/feature-kickoff into .gemini/skills/feature-kickoff/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "feature-kickoff", 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 Touch-N-Stars/Touch-N-Stars feature-kickoffInstalls 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 Touch-N-Stars/Touch-N-Stars --skill feature-kickoff -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/Touch-N-Stars/Touch-N-Stars.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/feature-kickoff .github/skills/feature-kickoff && 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 "feature-kickoff" agent skill from https://github.com/Touch-N-Stars/Touch-N-Stars/tree/master/.claude/skills/feature-kickoff into .github/skills/feature-kickoff/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "feature-kickoff", 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 Touch-N-Stars/Touch-N-Stars --skill feature-kickoff -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install Touch-N-Stars/Touch-N-Stars feature-kickoff --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Touch-N-Stars/Touch-N-Stars.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/feature-kickoff .opencode/skills/feature-kickoff && 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 "feature-kickoff" agent skill from https://github.com/Touch-N-Stars/Touch-N-Stars/tree/master/.claude/skills/feature-kickoff into .opencode/skills/feature-kickoff/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "feature-kickoff", 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.
feature-kickoffTurn a rough feature idea into a written goal and testable acceptance criteria before any code is written.
Feature Kickoff is an agent skill from Touch-N-Stars/Touch-N-Stars. Turn a rough feature idea into a written goal and testable acceptance criteria before any code is written. Use when the user wants a new feature, says "ich möchte ein Feature", or hands over an idea that has no defined done-state yet.
Its SKILL.md is about 2k 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 Product & Project Management, covering User stories. The repository describes itself as: a WebApp to controll NINA. The licence is GPL-3.0.
8 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit c7af082. 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:
gitFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git, 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.
Feature Kickoff loads about 2k tokens when it runs. Until then it costs about 63 tokens; SKILL.md has 978 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 Touch-N-Stars/Touch-N-Stars at commit c7af082, republished under its GPL-3.0 licence (© Touch-N-Stars). 978 words, ~1,955 tokens.
.claude/skills/feature-kickoff/SKILL.md (or your agent's skills folder).Interview first, criteria second, code never. This skill produces one file —
docs/features/<slug>.md — containing the goal and the acceptance criteria the
user agreed to, and — if the user confirms — the feature branch to work on.
Implementation is a separate request.
The point is to force the question how will we know this is done? before the first line of code, in a codebase where "works on my machine" can mean "works in NINA mode, on a phone, in German, with the mount already connected".
A one-line idea is not a spec. Do not start reading implementation files to guess what the user wants, and do not propose a design. If the request is actually a bug fix, a locale change or a one-liner, say so and stop — this skill is overhead for those.
Ask in one round, not one question at a time. Use AskUserQuestion for
anything with enumerable options and free text for the rest.
Always establish:
Do not ask what the code already answers. Check src/views, src/store and
src/services/api/ first if the feature may already exist in part; a question
whose answer is in the repo wastes the user's turn.
Read enough to make the criteria concrete rather than generic. Typically:
src/store/),src/services/api/, and whether the endpoint exists
at all on the plugin server / Advanced API / pinsdaemon),If the feature needs a backend endpoint that does not exist yet, that is an
acceptance criterion of its own and a dependency on the plugin-server repo —
name it explicitly. Load the api-endpoint skill when that is the case.
Each criterion is one observable outcome, phrased so a reviewer can decide pass/fail without asking the author. Format: given a state, when an action, then an observable result.
Bad — cannot fail:
1. The cooler UI is improved.
2. Errors are handled properly.Good — can fail:
1. Given a connected camera, when the target temperature is set to -10 °C,
the cooling progress is visible within one poll cycle (2 s).
2. Given the backend restarts mid-cooldown, the view shows the disconnected
state instead of the last known temperature.
3. In PINS mode the same flow works without `TempChangeRunning`, using the
feature-detected fallback.Aim for 4–8 criteria. More than that means the feature should be split, and saying so is part of this skill's job.
Walk this list explicitly and write a criterion for every one that applies. Say in the file which ones were considered and ruled out — a ruled-out dimension is information, an unmentioned one is an oversight.
| Dimension | The question to answer |
|---|---|
| Runtime modes | Does it work in NINA and PINS? Fields only one stack reports must be feature-detected on the payload, not branched on store.isPINS (src/store/cameraStore.js:109) |
| Polling | Any new state needs polling, not /v2/socket events. New pollers go through createPoller (src/utils/poller.js:9) and pause when backgrounded |
| Mobile | Narrow viewport, safe areas, orientation, 48 px touch targets (min-h-touch) |
| i18n | Every user-facing string gets an en.json key; the other 13 locales come in one batch before the commit |
| Equipment safety | Can this issue a command that moves hardware? Then it needs explicit user intent, not a default or a retry |
| Error paths | Backend restart, timeout, missing payload field, empty device list — what does the user see? |
| Native | Does Capacitor Android/iOS behave differently (permissions, filesystem, keep-awake, resume)? |
| Persistence | Does it survive an instance switch and apiStore.clearAllStates()? |
| Tests | Which logic is extractable into a testable util rather than living in the component? |
For domain-specific constraint blocks and validation commands, reuse the matching variant in docs/AGENT_TASK_TEMPLATE.md instead of inventing new ones. Do not restate them here.
Present the goal and the numbered criteria in chat and get an explicit yes. Then
write docs/features/<slug>.md, slug in kebab-case from the feature name:
# <Feature name>
Status: proposed
Date: <YYYY-MM-DD>
## Goal
<2–4 sentences. The user outcome, not the implementation.>
## Scope
- Runtime modes: <NINA | PINS | both>
- Surface: <view / plugin / settings / wizard>
- Backends touched: <plugin server /api | Advanced API /v2/api | pinsdaemon :8000 | none>
## Non-goals
- <what must not change>
## Acceptance criteria
1. <given / when / then>
2. …
## Dimensions considered
| Dimension | Applies | Note |
| --- | --- | --- |
| Runtime modes | yes/no | … |
| … | | |
## Open questions
- <unresolved, with who decides>Keep Open questions — an honest open question is worth more than a criterion
invented to fill the section.
After the file is written, ask whether to create a feature branch. Do not create one as a side effect of this skill, and do not create one before the criteria are agreed — a branch named after a goal that then changes is worse than no branch.
If the user says no, stay on the current branch and continue to Step 7.
If the user says yes:
git status --short # must be clean apart from docs/features/<slug>.md
git fetch origin
git switch -c <branch> origin/developBranch off origin/develop, not master and not whatever branch happens to
be checked out. develop is the integration branch; master is the release
branch.
Naming follows what the repo already uses — lowercase kebab-case describing the
change, matching the file slug so the two stay findable together:
feat-nightsummary-for-NINA, phd2-interrupt-and-wait, flat-and-livestack,
fix-wifi. Propose the name and let the user override it; do not invent a new
prefix scheme.
Two stop conditions:
The criteria file is left uncommitted. Committing is the user's call — offer a
commit title, do not run git commit.
Do not implement, do not plan file-by-file changes, do not commit. Say the file is written and that implementation is the next, separate request.
Later, tns-review reviews the diff; the criteria file is what it gets reviewed
against. When the feature ships, update Status: to done and add the
CHANGELOG entry via the changelog skill.
© Touch-N-Stars, GPL-3.0. 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 .claude/skills/feature-kickoff of Touch-N-Stars/Touch-N-Stars.
Open the folder on GitHubat commit c7af082
Feature Kickoff 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 |
|---|---|---|---|---|---|---|
| Feature Kickoff this skillTouch-N-Stars/Touch-N-Stars | 124 | — | ~2k | Automated safety check: Pass | GPL-3.0 | |
| User Story Writerdeanpeters/Product-Manager-Skills | 7.2k | 2 repos | ~2.9k | Automated safety check: Pass | Custom licence | |
| Ralph Tui Create Beadssubsy/ralph-tui | 2.5k | 1 repos | ~2.6k | Automated safety check: Pass | MIT | |
| Agile Product Owneralirezarezvani/claude-skills | 28k | 3 repos | ~3.2k | Automated safety check: Pass | MIT | |
| Ralph Tui Create Beads Rustsubsy/ralph-tui | 2.5k | 1 repos | ~2.8k | Automated safety check: Pass | MIT | |
| To Specbestofjs/bestofjs | 3.1k | 21 repos | ~757 | Automated safety check: Pass | MIT |
deanpeters/Product-Manager-Skills
Writes user stories in Mike Cohn's format with Gherkin acceptance criteria, turning user needs into development-ready work with testable conditions.
subsy/ralph-tui
Convert PRDs to beads for ralph-tui execution. An agent skill from subsy/ralph-tui.
alirezarezvani/claude-skills
Writes INVEST-checked user stories with acceptance criteria, splits epics, plans sprints from velocity and ranks the backlog with a weighted score.
subsy/ralph-tui
Convert PRDs to beads for ralph-tui execution using beads-rust (br CLI).
bestofjs/bestofjs
Turn the current conversation into a spec and publish it to the project issue tracker — no interview, just synthesis of what you've already discussed.
subsy/ralph-tui
Convert PRDs to prd.json format for ralph-tui execution. An agent skill from subsy/ralph-tui.
Touch-N-Stars/Touch-N-Stars
Add or change an API call between the app and its backends — the Touch'N'Stars plugin server (C), the NINA Advanced API, or the PINS daemon.
Touch-N-Stars/Touch-N-Stars
Write or fix a CHANGELOG.md release entry. An agent skill from Touch-N-Stars/Touch-N-Stars.
Touch-N-Stars/Touch-N-Stars
Work on equipment devices — INDI driver selection, device lists, connect/disconnect, and the NINA profile values behind them (camera, mount, focuser, filter wheel, rotator, switch, weather, flat…
Touch-N-Stars/Touch-N-Stars
Add, rename, or remove user-facing strings in src/locales. An agent skill from Touch-N-Stars/Touch-N-Stars.
Touch-N-Stars/Touch-N-Stars
Work on the first-run / equipment setup wizard (src/components/setupWizard/) or on location and coordinate handling.
Touch-N-Stars/Touch-N-Stars
Review changed Touch'N'Stars code with three parallel agents, one each for functionality, UI and maintainability, against this project's own rules (NINA/PINS dual mode, polling contract…
Categories
Turn a rough feature idea into a written goal and testable acceptance criteria before any code is written. Feature Kickoff is an agent skill from Touch-N-Stars/Touch-N-Stars. Turn a rough feature idea into a written goal and testable acceptance criteria before any code is written.
Feature Kickoff fits situations like: the user wants a new feature; says ich möchte ein Feature; hands over an idea that has no defined done-state yet.
Run `npx skills add Touch-N-Stars/Touch-N-Stars --skill feature-kickoff -a claude-code`. Or copy the skill folder (.claude/skills/feature-kickoff in Touch-N-Stars/Touch-N-Stars) into .claude/skills/feature-kickoff in your project. Claude Code loads it when a task matches its description.
Run `npx skills add Touch-N-Stars/Touch-N-Stars --skill feature-kickoff -a codex`. Or copy the skill folder (.claude/skills/feature-kickoff in Touch-N-Stars/Touch-N-Stars) into .agents/skills/feature-kickoff 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 Touch-N-Stars/Touch-N-Stars --skill feature-kickoff -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/feature-kickoff, .gemini/skills/feature-kickoff, .github/skills/feature-kickoff and .opencode/skills/feature-kickoff in your project.
Going by SKILL.md and its folder, Feature Kickoff needs the command-line tools its instructions call (git).
SKILL.md contains no URLs. Its commands use git, 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.
Feature Kickoff is published under the GPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2k tokens (SKILL.md is roughly 7.8k 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 Feature Kickoff: User Story Writer (deanpeters/Product-Manager-Skills, 7.2k stars), Ralph Tui Create Beads (subsy/ralph-tui, 2.5k stars), Agile Product Owner (alirezarezvani/claude-skills, 28k stars) and Ralph Tui Create Beads Rust (subsy/ralph-tui, 2.5k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Touch-N-Stars (a GitHub organization) maintains it in Touch-N-Stars/Touch-N-Stars, which has 124 GitHub stars. The repository holds 7 skills in this directory. The repository was last updated on October 10, 2026.
Source: Touch-N-Stars/Touch-N-Stars on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.