원클릭으로
tdd
Test-Driven Development workflow: write a failing test first, implement minimum code to pass, then refactor. Language-agnostic.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Test-Driven Development workflow: write a failing test first, implement minimum code to pass, then refactor. Language-agnostic.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Use context-mode tools (context-mode__ctx_execute, context-mode__ctx_execute_file) instead of eca__shell_command/eca__read_file when processing large outputs. Triggers: "analyze logs", "summarize output", "process data", "parse JSON", "filter results", "extract errors", "check build output", "analyze dependencies", "process API response", "large file analysis", "run tests", "test output", "coverage report", "git log", "recent commits", "diff between branches", "fetch docs", "API reference", "index documentation", "call API", "check response", "query results", "find TODOs", "count lines", "codebase statistics", "security audit", "outdated packages", "dependency tree". Also triggers on ANY tool output that may exceed 20 lines.
Give your AI agents something more useful than a prompt. Velocity through clarity.
Extract an Allium specification from an existing codebase. Use when the user has existing code and wants to distil behaviour into a spec, reverse engineer a specification from implementation, generate a spec from code, turn implementation into a behavioural specification, or document what a codebase does in Allium terms.
Run a structured discovery session to build an Allium specification through conversation. Use when the user wants to create a new spec from scratch, elicit or gather requirements, capture domain behaviour, specify a feature or system, define what a system should do, or is describing functionality and needs help shaping it into a specification.
Generate tests from Allium specifications. Use when the user wants to propagate tests, generate test files from a spec, write tests for a specification, create property-based tests, produce state machine tests, check test coverage against spec obligations, or understand what tests a specification requires.
Tend the Allium garden. Use when the user wants to write, edit, update, add to, improve, clarify, refine, restructure, fix or migrate Allium specs. Covers adding entities, rules, triggers, surfaces and contracts, fixing syntax or validation errors, renaming or refactoring within specs, migrating specs to a new language version, and translating requirements into well-formed specifications. Pushes back on vague requirements.
| name | tdd |
| description | Test-Driven Development workflow: write a failing test first, implement minimum code to pass, then refactor. Language-agnostic. |
Every code change follows this loop:
Then repeat for the next small piece of behavior.
eca__shell_command to execute the project's test command after writing the test AND after writing the implementation. Never assume a test passes — verify it.Use eca__shell_command with the project's test runner. Detect the language/framework from the project structure:
| Stack | Typical command |
|---|---|
| Clojure (Kaocha) | clojure -M:test --focus my.ns-test/my-test |
| Clojure (Lein) | lein test :only my.ns-test/my-test |
| Python (pytest) | pytest path/to/test_file.py::test_name -x |
| JavaScript/TS (Jest) | npx jest --testPathPattern='file' --testNamePattern='name' |
| JavaScript/TS (Vitest) | npx vitest run path/to/file --reporter=verbose |
| Go | go test ./pkg/... -run TestName -v |
| Rust | cargo test test_name -- --nocapture |
| Java (Maven) | mvn test -pl module -Dtest=TestClass#testMethod |
| Ruby (RSpec) | bundle exec rspec path/to/spec.rb:LINE |
| Elixir | mix test path/to/test.exs:LINE |
Always prefer running a single focused test rather than the full suite during the red-green loop. Run the full suite only before committing or when refactoring touches shared code.
Read the requirement. Break it into the smallest testable behavior you can think of. Start there.
Create (or add to) a test file. Write one test that describes the expected behavior. Keep assertions simple and specific.
eca__shell_command: <test command focused on the new test>
Read the output. Confirm the failure is for the right reason (e.g., function not found, wrong return value) — not a syntax error or import issue.
Write just enough production code to make the test pass. It's okay if it's ugly or incomplete — the next cycle will push you forward.
eca__shell_command: <same focused test command>
If it passes, move on. If it fails, fix the implementation (not the test) until green.
Look at the code you just wrote. Can you simplify it? Remove duplication? Improve naming? Do it now, then run the test again to confirm nothing broke.
Pick the next behavior and start a new red-green-refactor cycle.
Good fit:
Overkill or poor fit:
test-returns-empty-for-no-matches beats test-search.