원클릭으로
tdd-workflow
Test-Driven Development workflow principles. RED-GREEN-REFACTOR cycle.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Test-Driven Development workflow principles. RED-GREEN-REFACTOR cycle.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Rules and standards for building and scaffolding Flutter applications for AI-assisted development.
This skill is specialized in Flutter mobile application architecture, based on Clean Architecture, strict layer separation, low coupling, and high testability. Its purpose is to guide architectural decisions and validate architectural compliance across the codebase.
AI operational modes (brainstorm, implement, debug, review, teach, ship, orchestrate). Use to adapt behavior based on task type.
Socratic questioning protocol + user communication. MANDATORY for complex requests, new features, or unclear requirements. Includes progress reporting and error handling.
Clean Code rules and standards for Dart and Flutter applications.
Documentation templates and structure guidelines. README, API docs, code comments, and AI-friendly documentation.
| name | tdd-workflow |
| description | Test-Driven Development workflow principles. RED-GREEN-REFACTOR cycle. |
| allowed-tools | Read, Write, Edit, Glob, Grep, Bash |
Write tests first, code second.
🔴 RED → Write failing test
↓
🟢 GREEN → Write minimal code to pass
↓
🔵 REFACTOR → Improve code quality
↓
Repeat...
| Focus | Example |
|---|---|
| Behavior | "should add two numbers" |
| Edge cases | "should handle empty input" |
| Error states | "should throw for invalid data" |
| Principle | Meaning |
|---|---|
| YAGNI | You Aren't Gonna Need It |
| Simplest thing | Write the minimum to pass |
| No optimization | Just make it work |
OneWidget expected, found 0.flutter test again.| Area | Action |
|---|---|
| Duplication | Extract common code |
| Naming | Make intent clear |
| Structure | Improve organization |
| Complexity | Simplify logic |
Every test follows:
| Step | Purpose |
|---|---|
| Arrange | Set up test data |
| Act | Execute code under test |
| Assert | Verify expected outcome |
| Scenario | TDD Value |
|---|---|
| New feature | High |
| Bug fix | High (write test first) |
| Complex logic | High |
| Exploratory | Low (spike, then TDD) |
| UI layout | Low |
| Priority | Test Type |
|---|---|
| 1 | Happy path |
| 2 | Error cases |
| 3 | Edge cases |
| 4 | Performance |
| ❌ Don't | ✅ Do |
|---|---|
| Skip the RED phase | Watch test fail first |
| Write tests after | Write tests before |
| Over-engineer initial | Keep it simple |
| Multiple asserts | One behavior per test |
| Test implementation | Test behavior |
| Agent | Role |
|---|---|
| Agent A | Write failing tests (RED) |
| Agent B | Implement to pass (GREEN) |
| Agent C | Optimize (REFACTOR) |
| Action | Command |
|---|---|
| Run all tests | flutter test |
| Run specific file | flutter test test/feature/my_test.dart |
| Run by name | flutter test --name "should return error" |
| Coverage | flutter test --coverage |
expect(find.text('Hello'), findsOneWidget) -> Fails (findsNothing)Text('Hello') to the widget tree -> PassesText to a standalone GreetingWidgetexpect(cubit.state, Loading()) -> Fails (Initial)emit(Loading()) in the method -> PassesRemember: The test is the specification. If you can't write a test, you don't understand the requirement.