brainstorm-acceptance-test

xpmatteo's avatarfrom xpmatteo

Gather examples for the acceptance test; use when we are about to start development of a new feature

⭐0stars🔀0forks📁View on GitHub🕐Updated Nov 16, 2025

When & Why to Use This Skill

This Claude skill automates the creation of acceptance tests by capturing real-time system outputs from command sequences. It streamlines the transition from feature brainstorming to formal testing by generating structured test data files (such as YAML), ensuring that new features meet predefined behavioral requirements and preventing regressions.

Use Cases

  • Establishing baseline acceptance criteria for new software features by capturing actual system responses.
  • Automating the generation of structured YAML test suites for CLI-based tools and legacy system emulators.
  • Enhancing Test-Driven Development (TDD) workflows by formalizing expected outcomes before the implementation phase.
  • Creating reproducible regression tests by documenting complex command sequences and their corresponding terminal outputs.
namebrainstorm-acceptance-test
descriptionGather examples for the acceptance test; use when we are about to start development of a new feature

Brainstorm Acceptance Test

Instructions

  1. Come up with a sequence of commands that exercise a feature
  2. Execute printf | make play-6502
  3. Create an acceptance test data file in acceptance/testdata from the output that was obtained

Example: Reverse Board

We want to understand how the original 6502 code implements the "reverse board" feature.

The command sequence should be "CEQ" (C for setting up the board, E for reverse board, Q for quit)

We execute printf CEQ | make play-6502 and the output is:

Loaded 1389 bytes at $1000
Running...
---

MicroChess (c) 1996-2005 Peter Jennings, www.benlo.com
 00 01 02 03 04 05 06 07
-------------------------
|BP|**|  |**|  |**|  |**|00
-------------------------
|**|  |**|  |**|  |**|  |10
-------------------------
|  |**|  |**|  |**|  |**|20
-------------------------
|**|  |**|  |**|  |**|  |30
-------------------------
|  |**|  |**|  |**|  |**|40
-------------------------
|**|  |**|  |**|  |**|  |50
-------------------------
|  |**|  |**|  |**|  |**|60
-------------------------
|**|  |**|  |**|  |**|  |70
-------------------------
 00 01 02 03 04 05 06 07
00 00 00
?
MicroChess (c) 1996-2005 Peter Jennings, www.benlo.com
 00 01 02 03 04 05 06 07
-------------------------
|WR|WN|WB|WK|WQ|WB|WN|WR|00
-------------------------
|WP|WP|WP|WP|WP|WP|WP|WP|10
-------------------------
|  |**|  |**|  |**|  |**|20
-------------------------
|**|  |**|  |**|  |**|  |30
-------------------------
|  |**|  |**|  |**|  |**|40
-------------------------
|**|  |**|  |**|  |**|  |50
-------------------------
|BP|BP|BP|BP|BP|BP|BP|BP|60
-------------------------
|BR|BN|BB|BK|BQ|BB|BN|BR|70
-------------------------
 00 01 02 03 04 05 06 07
CC CC CC
?
MicroChess (c) 1996-2005 Peter Jennings, www.benlo.com
 00 01 02 03 04 05 06 07
-------------------------
|BR|BN|BB|BQ|BK|BB|BN|BR|00
-------------------------
|BP|BP|BP|BP|BP|BP|BP|BP|10
-------------------------
|  |**|  |**|  |**|  |**|20
-------------------------
|**|  |**|  |**|  |**|  |30
-------------------------
|  |**|  |**|  |**|  |**|40
-------------------------
|**|  |**|  |**|  |**|  |50
-------------------------
|WP|WP|WP|WP|WP|WP|WP|WP|60
-------------------------
|WR|WN|WB|WQ|WK|WB|WN|WR|70
-------------------------
 00 01 02 03 04 05 06 07
EE EE EE
?

We then create the file acceptance/testdata/setup-reverse-quit.yaml with the following contents:

# Test sequence: start -> setup -> reverse -> reverse -> quit

name: "Setup, Reverse, and Quit Sequence"
description: "Tests reverse board"
final_reversed: true  # After E, board should be reversed

steps:
  - command: "DISPLAY"
    should_continue: true
    expected_display: |-
      MicroChess (c) 1996-2005 Peter Jennings, www.benlo.com
       00 01 02 03 04 05 06 07
      -------------------------
      |BP|**|  |**|  |**|  |**|00
      |**|  |**|  |**|  |**|  |10
      |  |**|  |**|  |**|  |**|20
      |**|  |**|  |**|  |**|  |30
      |  |**|  |**|  |**|  |**|40
      |**|  |**|  |**|  |**|  |50
      |  |**|  |**|  |**|  |**|60
      |**|  |**|  |**|  |**|  |70
      -------------------------
       00 01 02 03 04 05 06 07
      00 00 00

  - command: "C"
    should_continue: true
    expected_display: |-
      MicroChess (c) 1996-2005 Peter Jennings, www.benlo.com
       00 01 02 03 04 05 06 07
      -------------------------
      |WR|WN|WB|WK|WQ|WB|WN|WR|00
      |WP|WP|WP|WP|WP|WP|WP|WP|10
      |  |**|  |**|  |**|  |**|20
      |**|  |**|  |**|  |**|  |30
      |  |**|  |**|  |**|  |**|40
      |**|  |**|  |**|  |**|  |50
      |BP|BP|BP|BP|BP|BP|BP|BP|60
      |BR|BN|BB|BK|BQ|BB|BN|BR|70
      -------------------------
       00 01 02 03 04 05 06 07
      CC CC CC

  - command: "E"
    should_continue: true
    expected_display: |-
      MicroChess (c) 1996-2005 Peter Jennings, www.benlo.com
       00 01 02 03 04 05 06 07
      -------------------------
      |BR|BN|BB|BQ|BK|BB|BN|BR|00
      |BP|BP|BP|BP|BP|BP|BP|BP|10
      |  |**|  |**|  |**|  |**|20
      |**|  |**|  |**|  |**|  |30
      |  |**|  |**|  |**|  |**|40
      |**|  |**|  |**|  |**|  |50
      |WP|WP|WP|WP|WP|WP|WP|WP|60
      |WR|WN|WB|WQ|WK|WB|WN|WR|70
      -------------------------
       00 01 02 03 04 05 06 07
      EE EE EE

  - command: "Q"
    should_continue: false
    expected_display: ""