plan

📁 langwatch/langwatch 📅 Today
1
总安装量
1
周安装量
#76577
全站排名
安装命令
npx skills add https://github.com/langwatch/langwatch --skill plan

Agent 安装分布

amp 1
cline 1
opencode 1
cursor 1
continue 1
kimi-cli 1

Skill 文档

Create a BDD feature file for: $ARGUMENTS

First: Read the Spec Guidelines

Before writing any feature file, read specs/README.md to understand:

  • What makes a good feature file
  • How to achieve non-overlapping test coverage
  • The distinction between @e2e, @integration, and @unit scenarios

Also reference docs/TESTING_PHILOSOPHY.md for the test hierarchy and decision tree.

Requirements Source

Work should be tied to a GitHub issue. If requirements are unclear:

  • Ask for the GitHub issue number
  • Use gh issue view <number> to fetch full context
  • The issue description and acceptance criteria are the source of truth

Build on Existing Patterns

Before specifying new functionality, search for existing patterns and systems in the codebase. Extend what exists rather than building from scratch.

Same for feature files: Check specs/features/ for related files first. Amend existing features instead of creating duplicates.

Output Location

Write to specs/features/<feature-name>.feature (or amend an existing file if one covers this area).

What Makes a Good Feature File

Feature Complete

  • Captures ALL acceptance criteria from the issue
  • Describes ALL user-visible behaviors
  • No gaps – if it’s not in the feature file, it’s not in scope
  • This file IS the specification of work to be done

Non-Overlapping Test Coverage

Each scenario must be tagged with exactly ONE of:

Tag What It Tests Mocking
@e2e Happy paths, full system flow None
@integration Edge cases, error handling, module boundaries External services only
@unit Pure logic, branches, single function Collaborators

Critical: Don’t duplicate coverage across levels. If E2E covers the happy path, integration tests edge cases, unit tests logic branches.

Feature File Format

Feature: <Feature Name>
  As a <role>
  I want <goal>
  So that <benefit>

  # Happy path - full system
  @e2e
  Scenario: User successfully completes main flow
    Given <precondition>
    When <action>
    Then <expected result>

  # Edge cases and error handling
  @integration
  Scenario: Handles invalid input gracefully
    Given <precondition>
    When <invalid action>
    Then <error handling>

  # Pure logic branches
  @unit
  Scenario: Validates input format
    Given <input state>
    When <validation runs>
    Then <specific validation result>

Guidelines

  • One invariant per scenario (test one thing)
  • Scenarios should be independent
  • Focus on behavior, not implementation
  • Ask for clarification if requirements are ambiguous

Return the file path when complete.