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.
A skill your agent uses when writing acceptance criteria for a task - express each as an observable Given/When/Then that QA can execute, including negative cases
$ npx skills add makifbaysal/tasktrooper --skill acceptance-criteria-gwt -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install makifbaysal/tasktrooper acceptance-criteria-gwt --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/makifbaysal/tasktrooper.git skills-src && mkdir -p .claude/skills && cp -r skills-src/catalog/agents/product-manager/skills/acceptance-criteria-gwt .claude/skills/acceptance-criteria-gwt && 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 "acceptance-criteria-gwt" agent skill from https://github.com/makifbaysal/tasktrooper/tree/main/catalog/agents/product-manager/skills/acceptance-criteria-gwt into .claude/skills/acceptance-criteria-gwt/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "acceptance-criteria-gwt", 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/makifbaysal/tasktrooper/tree/main/catalog/agents/product-manager/skills/acceptance-criteria-gwtType 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 makifbaysal/tasktrooper --skill acceptance-criteria-gwt -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install makifbaysal/tasktrooper acceptance-criteria-gwt --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/makifbaysal/tasktrooper.git skills-src && mkdir -p .agents/skills && cp -r skills-src/catalog/agents/product-manager/skills/acceptance-criteria-gwt .agents/skills/acceptance-criteria-gwt && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "acceptance-criteria-gwt" agent skill from https://github.com/makifbaysal/tasktrooper/tree/main/catalog/agents/product-manager/skills/acceptance-criteria-gwt into .agents/skills/acceptance-criteria-gwt/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "acceptance-criteria-gwt", 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 makifbaysal/tasktrooper --skill acceptance-criteria-gwt -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install makifbaysal/tasktrooper acceptance-criteria-gwt --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/makifbaysal/tasktrooper.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/catalog/agents/product-manager/skills/acceptance-criteria-gwt .cursor/skills/acceptance-criteria-gwt && 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 "acceptance-criteria-gwt" agent skill from https://github.com/makifbaysal/tasktrooper/tree/main/catalog/agents/product-manager/skills/acceptance-criteria-gwt into .cursor/skills/acceptance-criteria-gwt/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "acceptance-criteria-gwt", 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/makifbaysal/tasktrooper.git --path catalog/agents/product-manager/skills/acceptance-criteria-gwt--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 makifbaysal/tasktrooper --skill acceptance-criteria-gwt -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install makifbaysal/tasktrooper acceptance-criteria-gwt --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/makifbaysal/tasktrooper.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/catalog/agents/product-manager/skills/acceptance-criteria-gwt .gemini/skills/acceptance-criteria-gwt && 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 "acceptance-criteria-gwt" agent skill from https://github.com/makifbaysal/tasktrooper/tree/main/catalog/agents/product-manager/skills/acceptance-criteria-gwt into .gemini/skills/acceptance-criteria-gwt/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "acceptance-criteria-gwt", 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 makifbaysal/tasktrooper acceptance-criteria-gwtInstalls 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 makifbaysal/tasktrooper --skill acceptance-criteria-gwt -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/makifbaysal/tasktrooper.git skills-src && mkdir -p .github/skills && cp -r skills-src/catalog/agents/product-manager/skills/acceptance-criteria-gwt .github/skills/acceptance-criteria-gwt && 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 "acceptance-criteria-gwt" agent skill from https://github.com/makifbaysal/tasktrooper/tree/main/catalog/agents/product-manager/skills/acceptance-criteria-gwt into .github/skills/acceptance-criteria-gwt/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "acceptance-criteria-gwt", 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 makifbaysal/tasktrooper --skill acceptance-criteria-gwt -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install makifbaysal/tasktrooper acceptance-criteria-gwt --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/makifbaysal/tasktrooper.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/catalog/agents/product-manager/skills/acceptance-criteria-gwt .opencode/skills/acceptance-criteria-gwt && 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 "acceptance-criteria-gwt" agent skill from https://github.com/makifbaysal/tasktrooper/tree/main/catalog/agents/product-manager/skills/acceptance-criteria-gwt into .opencode/skills/acceptance-criteria-gwt/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "acceptance-criteria-gwt", 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.
acceptance-criteria-gwtA skill your agent uses when writing acceptance criteria for a task - express each as an observable Given/When/Then that QA can execute, including negative cases
Acceptance Criteria Gwt is an agent skill from makifbaysal/tasktrooper. Use when writing acceptance criteria for a task - express each as an observable Given/When/Then that QA can execute, including negative cases
Its SKILL.md is about 1.7k 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: Local-first agent platform: board + role agents + agent CLI runs (Claude Code, Cursor, Antigravity, OpenCode) or local and API models (Ollama, LM Studio), all on your own Mac. The licence is Apache-2.0.
Read from SKILL.md and the folder at commit 411ab00. 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.
No scripts in the folder and no shell commands in SKILL.md.
From 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.
Acceptance Criteria Gwt loads about 1.7k tokens when it runs. Until then it costs about 41 tokens; SKILL.md has 823 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 makifbaysal/tasktrooper at commit 411ab00, republished under its Apache-2.0 licence (© makifbaysal). 823 words, ~1,665 tokens.
.claude/skills/acceptance-criteria-gwt/SKILL.md (or your agent's skills folder).Acceptance criteria are the contract QA tests the product against and the PM verifies at UAT. If a criterion isn't executable, it can't be verified — and unverifiable criteria are where defects hide.
Core principle: Every criterion is an observable behavior QA can execute with a command or a click path. No aspirational adjectives.
Given [precondition], When [action], Then [measurable result].
Criteria live in the board task's own acceptance_criteria field — an array of strings, one criterion per item, passed to create_board_task (or update_board_task to replace the whole list). Each item becomes a checkbox the implementer ticks with set_criterion_completed, and that QA (in ready_for_qa/in_qa) and you (in pm_uat) then rule on independently with review_criterion. The tick is the implementer's claim — QA and PM never call set_criterion_completed; your verdict is review_criterion.
Never write them into description. A criteria block pasted as markdown leaves the task's checklist empty: nothing to tick, nothing the move guard can check, and the prose copy goes stale the moment the real criteria are edited.
For each criterion, before you save it, write down:
http_request against the task's own preview when the surface is an API, not a screen);If the behaviour is user-facing, the Then must be visible in the UI — not a status code standing in for what the user sees. If nobody outside the code can observe it, it belongs in technical_description, not in a criterion.
Write the When as what happens, not the click-by-click path — the cucumber test: "Will this wording need to change if the implementation changes?" If yes, it's too imperative. One behaviour per criterion. Put exact copy strings in quotes in the Then; "an error appears" is not testable, "'Title must be at most 200 characters' appears under the field" is.
A criterion states what the finished WORK is, never what the board does around it. These are not criteria and the tools drop them:
| Not a criterion | Why | Write instead |
|---|---|---|
| "Task moved to ready_for_qa / analiz_review / done" | a column move is workflow; the agent's role already tells it where the card goes | the behaviour that makes the task ready |
| "Implementation tasks are created" | they are opened AFTER this task is approved — a criterion nobody can tick before the hand-off keeps the card out of done forever | what the plan those tasks come from must contain |
| "Spec attached with add_task_document" / "questions asked with add_task_comment" | naming the tool describes the mechanics, and an attached document is not a good one | what the document must say |
| "Presented for human approval" / "assigned to the developer" | hand-offs are the flow's job | nothing — the flow does it |
The test: could a reviewer check it by looking only at the product and the documents, without opening the board's history? If not, it is not a criterion.
update_board_task(acceptance_criteria=…) replaces the whole array and resets every tick on it — use it only before work starts, or when the human explicitly asked for the change. To drop one criterion from a task already in progress (descoped, superseded, covered elsewhere), use cancel_criterion with a reason instead of rewriting the list.
Feature: reject task titles over 200 chars, in the New Task dialog.
❌ Given a create-task form, When I submit a 201-char title, Then I get 422.
(status code stands in for what the user sees — fine for an API-only task, not for a dialog)
✅ AC1 (happy) Given the New Task dialog,
When I enter a 200-character title and press Create,
Then the dialog closes and a card with that title appears on the board.
✅ AC2 (boundary/negative)
Given the New Task dialog,
When I enter a 201-character title and press Create,
Then the dialog stays open, shows "Title must be at most 200 characters"
under the field, and no card is added to the board.
✅ AC3 (auth/negative)
Given a user without write access to the project,
When they open the board,
Then the "New Task" button is not shown.Keep one API-surface example only when the API itself is the product (usually a task_type: "technical" task):
Given a member of the project, When they GET /api/v1/projects/:id/tasks/export,
Then they get 200 + text/csv with header "id,title,status,created_at"description as a markdown list instead of passed as acceptance_criteria.acceptance_criteria on a task already in progress instead of cancel_criterion.© makifbaysal, Apache-2.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 catalog/agents/product-manager/skills/acceptance-criteria-gwt of makifbaysal/tasktrooper.
Open the folder on GitHubat commit 411ab00
Acceptance Criteria Gwt 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 |
|---|---|---|---|---|---|---|
| Acceptance Criteria Gwt this skillmakifbaysal/tasktrooper | 112 | — | ~1.7k | Automated safety check: Pass | Apache-2.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.
makifbaysal/tasktrooper
A skill your agent uses when the diff adds or changes an endpoint, resolver, RPC, job or query that takes an object id, a role check, a request binding or a tenant filter - BOLA/IDOR, function-level…
makifbaysal/tasktrooper
A skill your agent uses when a task changes any screen, form, dialog, menu or control - Lighthouse/axe scan of the changed screens, a keyboard walk, and the thresholds that fail a task
makifbaysal/tasktrooper
A skill your agent uses when deciding whether a request needs an analiz task before implementation - the conditions that require the architect's analysis versus going straight to implementation
makifbaysal/tasktrooper
A skill your agent uses when you write or revise the analiz deliverable - the ONE self-contained HTML report (spec and plan as sections) a human reviews passage by passage
makifbaysal/tasktrooper
A skill your agent uses when you finish an analiz report - the human must approve the analysis before any implementation task is created, via the analizreview column
makifbaysal/tasktrooper
A skill your agent uses when building native Android with Jetpack Compose - stateless composables, state hoisting, ViewModel-owned state, edge-to-edge, predictive back, adaptive layout, atomic…
Categories
A skill your agent uses when writing acceptance criteria for a task - express each as an observable Given/When/Then that QA can execute, including negative cases. Acceptance Criteria Gwt is an agent skill from makifbaysal/tasktrooper.
Acceptance Criteria Gwt fits situations like: writing acceptance criteria for a task - express each as an observable Given/When/Then that QA can execute; including negative cases.
Run `npx skills add makifbaysal/tasktrooper --skill acceptance-criteria-gwt -a claude-code`. Or copy the skill folder (catalog/agents/product-manager/skills/acceptance-criteria-gwt in makifbaysal/tasktrooper) into .claude/skills/acceptance-criteria-gwt in your project. Claude Code loads it when a task matches its description.
Run `npx skills add makifbaysal/tasktrooper --skill acceptance-criteria-gwt -a codex`. Or copy the skill folder (catalog/agents/product-manager/skills/acceptance-criteria-gwt in makifbaysal/tasktrooper) into .agents/skills/acceptance-criteria-gwt 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 makifbaysal/tasktrooper --skill acceptance-criteria-gwt -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/acceptance-criteria-gwt, .gemini/skills/acceptance-criteria-gwt, .github/skills/acceptance-criteria-gwt and .opencode/skills/acceptance-criteria-gwt in your project.
SKILL.md names no scripts, command-line tools or credentials: Acceptance Criteria Gwt is instructions for the agent only.
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.
Acceptance Criteria Gwt is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.7k tokens (SKILL.md is roughly 6.7k 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 Acceptance Criteria Gwt: 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.
makifbaysal (a GitHub user) maintains it in makifbaysal/tasktrooper, which has 112 GitHub stars. The repository holds 12 skills in this directory. The repository was last updated on October 10, 2026.
Source: makifbaysal/tasktrooper on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.