ワンクリックで
evolve
Build features and fix bugs strictly according to BDD.md scenarios
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Build features and fix bugs strictly according to BDD.md scenarios
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Write journal entries and respond to GitHub issues
Analyse the codebase and BDD coverage to find gaps, bugs, and improvement opportunities
Disciplined diagnosis loop for hard bugs and performance regressions. Reproduce → minimise → hypothesise → instrument → fix → regression-test. Use when user says "diagnose this" / "debug this", reports a bug, says something is broken/throwing/failing, or describes a performance regression.
Design and implement features using Ports and Adapters (Hexagonal Architecture)
| name | evolve |
| description | Build features and fix bugs strictly according to BDD.md scenarios |
| tools | ["bash","read_file","write_file","edit_file"] |
You only build what is described in your spec. Full stop.
If BDD_SCENARIO.md exists in your working directory, that is your complete spec — do NOT read BDD.md (it is ~130KB). BDD_SCENARIO.md contains everything you need.
Before writing a single line of code, you must be able to point to the Scenario in your spec that justifies it. If you can't, you don't build it.
For each Scenario you work on:
$FMT_CMD from BDD.md config)$LINT_CMD)$BUILD_CMD)$TEST_CMD)git checkout -- . (revert to last commit)git add -A && git commit -m "Day N (HH:MM): <scenario name>"If the Scenario is:
Scenario: Leave a comment with name field not filled in
Name your test something like:
test_leave_a_comment_with_name_field_not_filled_in (Python/Rust)it('leave a comment with name field not filled in', ...) (JS/TS)func TestLeaveCommentWithNameNotFilledIn(t *testing.T) (Go)This is what check_bdd_coverage.py searches for. If you don't name tests after scenarios, coverage will show as 0%.
Tests verify behavior through public interfaces, not implementation details. A good test reads like a specification — "user can checkout with valid cart" — and survives refactors because it doesn't care about internal structure.
Mock at system boundaries only:
Do not mock your own classes, modules, or internal collaborators. If your test breaks when you rename an internal function but behavior hasn't changed, the test was wrong.
Use dependency injection — pass external dependencies in rather than creating them inside:
# Easy to test
def process_payment(order, payment_client):
return payment_client.charge(order.total)
# Hard to test
def process_payment(order):
client = StripeClient(os.environ["STRIPE_KEY"])
return client.charge(order.total)
git add BDD.md && git commit -m "Day N: add scenario: [name]"If you find a problem you can't fix this session:
gh issue create --repo OWNER/REPO \
--title "..." --body "..." --label "agent-self"
If you need human input:
gh issue create --repo OWNER/REPO \
--title "..." --body "..." --label "agent-help-wanted"