Agent skill

Acceptance Test Authoring

by intent-driven-dev in intent-driven-dev/intent-driven-template

A skill your agent uses when creating or modifying acceptance tests, configuring cucumber-js or behave runners, writing or refactoring step definitions, linting executable Gherkin specs, choosing an…

MITAuto-check passedTesting & QA

Install Acceptance Test Authoring

skills CLI
$ npx skills add intent-driven-dev/intent-driven-template --skill acceptance-test-authoring -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install intent-driven-dev/intent-driven-template acceptance-test-authoring --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/intent-driven-dev/intent-driven-template.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/acceptance-test-authoring .claude/skills/acceptance-test-authoring && rm -rf skills-src

Use ~/.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/

Facts

Skill name
acceptance-test-authoring
GitHub stars
159
Token cost
~2k tokens
SKILL.md length
912 words
Files
14 (incl. references)
Skills in repo
10
Repo updated
First seen
Licence
MIT

At a glance

A skill your agent uses when creating or modifying acceptance tests, configuring cucumber-js or behave runners, writing or refactoring step definitions, linting executable Gherkin specs, choosing an…

  • Works in 3 steps: Use stack: in openspec/config.yaml. → If absent and acceptance-tests/ already… → Otherwise ask. Never guess silently, and…
  • Modifying acceptance tests
  • SKILL.md covers Choosing The Stack, Reference Files, Spec Format And Extraction and Runner Invariants, plus 5 more sections
  • Runs Python and JavaScript scripts from its folder; calls node, npx and python

What it does

Acceptance Test Authoring is an agent skill from intent-driven-dev/intent-driven-template. Use when creating or modifying acceptance tests, configuring cucumber-js or behave runners, writing or refactoring step definitions, linting executable Gherkin specs, choosing an acceptance stack, or implementing OpenSpec tasks that involve acceptance tests.

Its SKILL.md is about 2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 16 other files, including reference files (for example `references/COMPOSITION.md`, `references/EXTRACTION.md` and `references/gherkin-lintrc.json`).

It sits in Testing & QA, covering End-to-end testing and Linting and formatting. It works with JavaScript and Python. The repository describes itself as: OpenSpec and OpenCode template for intent-driven development with specs, ADRs, C4 diagrams, Gherkin, TDD, Multi-Model Adversarial Spec Authoring, Glossary for Domain Terms, and… The licence is MIT.

When your agent uses it

  • Modifying acceptance tests
  • Configuring cucumber-js
  • Refactoring step definitions
  • Linting executable Gherkin specs

Example prompts

  • “/acceptance-test-authoring”

Requirements

  • Python 3
  • Node.js

Workflow steps

3 steps, taken from the first numbered list in SKILL.md.

  1. Use stack: in openspec/config.yaml.
  2. If absent and acceptance-tests/ already exists, infer it from contents: cucumber.cjs means javascript, behave.ini means python; offer to…
  3. Otherwise ask. Never guess silently, and never scaffold a runner without a recorded value.

What it can do on your machine

Read from SKILL.md and the folder at commit 73f54d5. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    Ships script files (Python and JavaScript), which the agent can run.

    Shell commands in SKILL.md call:

    • node
    • npx
    • python

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use npx, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Acceptance Test Authoring loads about 2k tokens when it runs, and up to ~15k if it reads all its reference files. Until then it costs about 71 tokens; SKILL.md has 912 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~71
When it runs · the whole SKILL.md, loaded when a task matches
~2k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~15k

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.

Safety

Auto-check passed

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.

SKILL.md

The full file from intent-driven-dev/intent-driven-template at commit 73f54d5, republished under its MIT licence (© intent-driven-dev). 912 words, ~1,980 tokens.

Download SKILL.mdSave it as .claude/skills/acceptance-test-authoring/SKILL.md (or your agent's skills folder). This skill also uses 13 other files; get the full folder from GitHub.
name
acceptance-test-authoring
description
Use when creating or modifying acceptance tests, configuring cucumber-js or behave runners, writing or refactoring step definitions, linting executable Gherkin specs, choosing an acceptance stack, or implementing OpenSpec tasks that involve acceptance tests.

Acceptance Test Authoring

When spec-as-source is active, the acceptance suite executes the Gherkin specs that live under openspec/ against the running application. Specs are Markdown files named spec.md: Markdown headings carry the capability, requirement, and scenario structure, while column-0 gherkin fences contain only Given/When/Then steps. The runner extracts them into real .feature files on every run, synthesizing Feature:/Rule:/Scenario: from the headings.

This format is opt-in. Loading this skill without spec-as-source does not override the configured OpenSpec schema templates.

Everything in this file is stack-agnostic. Tool-specific filenames, dependencies, commands, and examples live in the stack packs.

Choosing The Stack

The project's acceptance stack is declared as stack: in openspec/config.yaml:

yaml
schema: intent-driven
stack: javascript      # javascript | python

Resolve it in this order:

  1. Use stack: in openspec/config.yaml.
  2. If absent and acceptance-tests/ already exists, infer it from contents: cucumber.cjs means javascript, behave.ini means python; offer to record it.
  3. Otherwise ask. Never guess silently, and never scaffold a runner without a recorded value.

When spec-as-source is active, adding stack: is a specs-zone edit under openspec/; follow that skill's mandatory BDD zone rules before editing it.

Reference Files

StackPackRunner
javascriptreferences/javascript/SETUP.mdcucumber-js
pythonreferences/python/SETUP.mdbehave 1.2.7+

Each pack has a Files to copy table naming every destination filename and why it is load-bearing. Copy those files verbatim; they are the canonical runner.

Three files sit at the references/ root because they are shared by both stacks:

FileRole
EXTRACTION.mdNormative contract for spec.md to .feature extraction
COMPOSITION.mdNormative contract for which scenarios run
gherkin-lintrc.jsonShared lint configuration copied to acceptance-tests/.gherkin-lintrc

The Markdown contracts are the definitions; the JavaScript and Python files are bindings. Change the relevant contract first, then both implementations.

Spec Format And Extraction

When spec-as-source is active, draft specs from that skill's references/spec.md, which overrides the default schema template. A spec is openspec/specs/<capability>/spec.md (source of truth) or openspec/changes/<id>/specs/<capability>/spec.md (delta). Structure comes from Markdown headings; fences hold steps only.

  • # <capability> is the single H1 title and becomes Feature:.
  • ## ADDED|MODIFIED|REMOVED|RENAMED Requirements is a delta section. The extractor emits one # @openspec: <OP> marker for the section.
  • ### Requirement: <name> becomes Rule:. Its SHALL/MUST description remains plain prose.
  • #### Scenario: <name> or #### Scenario Outline: <name> becomes the corresponding Gherkin scenario. Each scenario must have a following gherkin fence before the next heading.
  • Fences open with ```gherkin at column 0 and close with at least as many backticks at column 0.
  • Fences contain only steps, Examples: tables, and docstrings. Gherkin structure keywords inside a fence are a hard error.

Extraction writes each spec.md to acceptance-tests/.extracted/<same-relative-path>/spec.feature, preserving exactly one output line per input line. .extracted/ is gitignored, wiped and rebuilt on every run, and never edited by hand.

references/EXTRACTION.md is the normative definition of the complete mapping, fence mechanics, edge cases, and hard errors. Read it before modifying or porting an extractor.

Runner Invariants

  1. acceptance-tests/ is an independent test project at the repo root. Its hooks boot the application before the suite and shut it down after, so the suite must run with a single command.
  2. The default run executes the effective spec: every source-of-truth spec with every active change delta applied.
  3. Superseded source-of-truth rules marked MODIFIED or REMOVED by active deltas must not reach the runner and must not be reported as skipped.
  4. A green effective suite is the gate for sync/archive, and sync/archive must never change suite results.
  5. Specs under openspec/changes/archive/ must never execute.
  6. Provide a source-of-truth-only regression run that executes openspec/specs/ as-is.
  7. Every test run generates an HTML report under acceptance-tests/reports/.
  8. Verify composition whenever the runner config, extractor, or openspec/ tree changes.
Show full SKILL.md (323 more words)Show less

Effective-Spec Composition

references/COMPOSITION.md is the normative definition. The important coupling with extraction is that a delta operation marker comes from a section heading and applies to every Rule: until the next marker, not only the first rule.

The JavaScript binding excludes superseded scenarios through cucumber-js line-targeted discovery. The Python binding blanks superseded rule blocks in generated .extracted/ files because behave line selection would report them as skipped. Neither binding edits source specs.

Port Parity

references/EXTRACTION.md and references/COMPOSITION.md are the contracts between stacks. A change to one implementation must be mirrored in the other and reflected in the relevant contract first. The strongest check is a cross-stack dry run on the same openspec/ tree: the same scenario count and names.

Linting Specs

Spec linting is shared across stacks: gherkin-lint over the extracted output with the pinned .gherkin-lintrc.

  • Extract first, then lint; pass .extracted as a directory argument.
  • gherkin-lint has no default rules; it requires .gherkin-lintrc.
  • Reported line numbers are valid in source spec.md files.

Before an acceptance-tests/ project exists, run the extractor from this skill:

sh
node .agents/skills/acceptance-test-authoring/references/javascript/extract-gherkin.cjs openspec acceptance-tests/.extracted \
  && npx gherkin-lint --config .agents/skills/acceptance-test-authoring/references/gherkin-lintrc.json acceptance-tests/.extracted

The Python extractor is a drop-in substitute:

sh
python .agents/skills/acceptance-test-authoring/references/python/extract_gherkin.py openspec acceptance-tests/.extracted

Page Object Model

Step definitions must read as intent; all UI knowledge lives in page objects.

  • Page objects live under acceptance-tests/, one per screen or flow.
  • Page objects encapsulate routes, form field names, selectors, and ids.
  • Parse responses with the stack's HTML parser, never with regexes over raw HTML.
  • Page objects expose intent-level methods such as open(), submit_signup(...), error_message(), and confirmation_link().
  • Step definitions contain no selectors, regexes, or URLs; only page-object calls and assertions.
  • The World stays a thin HTTP client and state holder.

Workflow Cadence

Implement one pending step definition at a time: run the suite so the step fails for the right reason, implement until it passes, then commit. The effective suite's red scenarios at propose time are the change's work list. Finish only when every scenario passes with zero pending or undefined steps and the HTML report is generated.

© intent-driven-dev, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 13 other files (references) in .agents/skills/acceptance-test-authoring of intent-driven-dev/intent-driven-template.

  • SKILL.md
  • references/COMPOSITION.md
  • references/EXTRACTION.md
  • references/gherkin-lintrc.json
  • references/javascript/SETUP.md
  • references/javascript/cucumber.cjs
  • references/javascript/extract-gherkin.cjs
  • references/javascript/openspec-effective-paths.cjs
  • references/python/SETUP.md
  • references/python/behave.ini
  • references/python/environment.py
  • references/python/extract_gherkin.py
  • references/python/openspec_effective_spec.py
  • references/python/run_acceptance.py

Open the folder on GitHubat commit 73f54d5

Compare with similar skills

Acceptance Test Authoring 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.

Acceptance Test Authoring compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Acceptance Test Authoring this skillintent-driven-dev/intent-driven-template159—~2kAutomated safety check: PassMIT
Typescript TestingComposioHQ/composio30k—~222Automated safety check: PassMIT
Error Explanation GeneratorArabelaTso/Skills-4-SE253—~3.8kAutomated safety check: PassApache-2.0
Playwrightsecondsky/claude-skills227—~3.7kAutomated safety check: NotesMIT
Cb Code QualityBlkLeg/CircuitBreaker201—~1.9kAutomated safety check: PassMIT
Git HooksProrise-cool/Claude-Code-Multi-Agent305—~3.6kAutomated safety check: NotesNone

Similar skills

  • Typescript Testing

    ComposioHQ/composio

    Select and run TypeScript SDK verification for packages, examples, type checks, linting, builds, Vitest suites, Effect v4 CLI tests, and runtime E2E tests.

    30k GitHub stars~222 tokensUpdated today
    Testing & QAAuto-check passed
  • Error Explanation Generator

    ArabelaTso/Skills-4-SE

    Explains test failures and provides actionable debugging guidance.

    253 GitHub stars~3.8k tokensUpdated 1 mo ago
    Testing & QAAuto-check passed
  • Playwright

    secondsky/claude-skills

    Browser automation and E2E testing with Playwright. An agent skill from secondsky/claude-skills.

    227 GitHub stars~3.7k tokensUpdated 9 days ago
    Testing & QAAuto-check: notes
  • Cb Code Quality

    BlkLeg/CircuitBreaker

    Circuit Breaker code conventions and the quality gates that actually block a push — ruff, mypy, eslint, the pytest coverage ratchet, and the make verify tiers.

    201 GitHub stars~1.9k tokensUpdated 2 days ago
    DevelopmentAuto-check passed
  • Git Hooks

    Prorise-cool/Claude-Code-Multi-Agent

    Central authority on git hook implementations, modern best practices, and tooling for .NET/C, JavaScript/TypeScript, Python, and polyglot repositories.

    305 GitHub stars~3.6k tokensUpdated 21 days ago
    DevelopmentAuto-check: notes
  • Converts RStudio Python Selenium electron tests into TypeScript Playwright tests, checking each against a live RStudio before counting it as migrated.

    5.1k GitHub stars~3.6k tokensUpdated yesterday
    Testing & QAAuto-check passed

More from intent-driven-dev/intent-driven-template

All 10 skills in this repo
  • Adversarial Authoring

    intent-driven-dev/intent-driven-template

    A skill your agent uses when rules or instructions mention "adversarial-authoring", "adversarial authoring", "must use adversarial-authoring skill", "model council", "cross-model review", or…

    159 GitHub stars~1k tokensUpdated 3 days ago
    Auto-check passed
  • Architectural Decision Records

    intent-driven-dev/intent-driven-template

    A skill your agent uses when documenting, drafting, reviewing, or updating architectural decisions, ADRs, decision logs, tradeoffs, rationale, consequences, alternatives, or architecture decision…

    159 GitHub stars~1k tokensUpdated 3 days ago
    Auto-check passed
  • Gherkin Authoring

    intent-driven-dev/intent-driven-template

    A skill your agent uses when drafting, reviewing, or improving Gherkin, Cucumber scenarios, BDD acceptance criteria, feature examples, Scenario Outlines, Backgrounds, Rules, Doc Strings, Data…

    159 GitHub stars~1.4k tokensUpdated 3 days ago
    Auto-check passed
  • Glossary

    intent-driven-dev/intent-driven-template

    A skill your agent uses when authoring or reviewing specs, requirements, design docs, ADRs, tasks, glossary entries, domain terms, technical terms, or wording consistency across artifacts

    159 GitHub stars~767 tokensUpdated 3 days ago
    Auto-check passed
  • Openspec Bulk Apply Change

    intent-driven-dev/intent-driven-template

    A skill your agent uses when multiple active OpenSpec changes should be applied concurrently in isolated worktrees with delegated verification and no merge.

    159 GitHub stars~1.4k tokensUpdated 3 days ago
    Auto-check passed
  • Spec As Source

    intent-driven-dev/intent-driven-template

    A skill your agent uses when a user or project explicitly adopts OpenSpec spec-as-source, fenced Gherkin specifications as executable acceptance tests, or acceptance-test-first OpenSpec tasks.

    159 GitHub stars~746 tokensUpdated 3 days ago
    Auto-check passed

Questions about Acceptance Test Authoring

What does Acceptance Test Authoring do?

A skill your agent uses when creating or modifying acceptance tests, configuring cucumber-js or behave runners, writing or refactoring step definitions, linting executable Gherkin specs, choosing an…. Acceptance Test Authoring is an agent skill from intent-driven-dev/intent-driven-template. Use when creating or modifying acceptance tests, configuring cucumber-js or behave runners, writing or refactoring step definitions, linting executable Gherkin specs, choosing an acceptance stack, or implementing OpenSpec tasks that involve acceptance tests.

When should I use Acceptance Test Authoring?

Acceptance Test Authoring fits situations like: modifying acceptance tests; configuring cucumber-js; refactoring step definitions; linting executable Gherkin specs.

How do I install Acceptance Test Authoring in Claude Code?

Run `npx skills add intent-driven-dev/intent-driven-template --skill acceptance-test-authoring -a claude-code`. Or copy the skill folder (.agents/skills/acceptance-test-authoring in intent-driven-dev/intent-driven-template) into .claude/skills/acceptance-test-authoring in your project. Claude Code loads it when a task matches its description.

How do I install Acceptance Test Authoring in Codex?

Run `npx skills add intent-driven-dev/intent-driven-template --skill acceptance-test-authoring -a codex`. Or copy the skill folder (.agents/skills/acceptance-test-authoring in intent-driven-dev/intent-driven-template) into .agents/skills/acceptance-test-authoring in your project. Codex loads it when a task matches its description.

Can I use Acceptance Test Authoring in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add intent-driven-dev/intent-driven-template --skill acceptance-test-authoring -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-test-authoring, .gemini/skills/acceptance-test-authoring, .github/skills/acceptance-test-authoring and .opencode/skills/acceptance-test-authoring in your project.

What does Acceptance Test Authoring need to run?

Going by SKILL.md and its folder, Acceptance Test Authoring needs Python and JavaScript for the scripts in its folder and the command-line tools its instructions call (node, npx and python). Our summary lists: Python 3; Node.js.

Does Acceptance Test Authoring access the network?

SKILL.md contains no URLs. Its commands use npx, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Acceptance Test Authoring safe to install?

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.

What licence does Acceptance Test Authoring use?

Acceptance Test Authoring is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Acceptance Test Authoring use?

About 2k tokens (SKILL.md is roughly 7.9k 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 13k tokens, read only when the agent opens those files.

What are the alternatives to Acceptance Test Authoring?

Skills that share tags, products or a category with Acceptance Test Authoring: Typescript Testing (ComposioHQ/composio, 30k stars), Error Explanation Generator (ArabelaTso/Skills-4-SE, 253 stars), Playwright (secondsky/claude-skills, 227 stars) and Cb Code Quality (BlkLeg/CircuitBreaker, 201 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Acceptance Test Authoring?

intent-driven-dev (a GitHub organization) maintains it in intent-driven-dev/intent-driven-template, which has 159 GitHub stars. The repository holds 10 skills in this directory. The repository was last updated on October 4, 2026.

Source: intent-driven-dev/intent-driven-template on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.