원클릭으로
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"