analyzing-options
Analyzing different approaches for a task or problem with structured comparisons, effort…
Enforcing the RED-GREEN-REFACTOR loop: write one failing test and watch it fail, write minimal code to pass, then refactor green. Use when starting implementation of a new feature or bugfix, or writing any new production code. Requires pasted failure output as proof of RED; code
$ npx -y skills add LerianStudio/ring --skill test-driven-development --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/test-driven-developmentContext preview
The summary Claude sees to decide when to auto-load this skill.
Enforcing the RED-GREEN-REFACTOR loop: write one failing test and watch it fail, write minimal code to pass, then refactor green. Use when starting implementation of a new feature or bugfix, or writing any new production code. Requires pasted failure output as proof of RED; code
name: ring:test-driven-development description: "Enforcing the RED-GREEN-REFACTOR loop: write one failing test and watch it fail, write minimal code to pass, then refactor green. Use when starting implementation of a new feature or bugfix, or writing any new production code. Requires pasted failure output as proof of RED; code written before its test must be deleted, not stashed. Skip for exploratory spikes or when only modifying existing tests."
Write the test first. Watch it fail. Write minimal code to pass.
**Core principle:** If you didn't watch the test fail, you don't know if it tests the right thing.
NO PRODUCTION CODE WITHOUT A FAILING TEST FIRST
Write one minimal test showing what should happen. Name describes behavior. Tests real code (not mocks unless unavoidable).
**Time limit:** <5 minutes. Complex setup = design too complex.
# Run test — MANDATORY. Never skip. npm test path/to/test.test.ts # or go test ./... | pytest
**Paste the actual failure output.** No output = violation.
| Test Type | Expected Failure | |-----------|-----------------| | New feature | `NameError: function not defined` or `AttributeError` | | Bug fix | Actual wrong output/behavior |
Test passes immediately? You're testing existing behavior — fix the test.
Write simplest code to pass the test. Nothing more. No extra features, no refactoring unrelated code.
Run test → confirm passes → confirm other tests still pass.
After green only. Remove duplication, improve names. Keep tests green. Don't add behavior.
Next failing test for next feature.
**Only one action: DELETE IT. Immediately.**
rm <files> # remove new files git restore --staged --worktree <files> # discard changes to tracked files # Destructive operations (e.g., git reset --hard) require user confirmation.
**Delete means gone forever.** These are NOT deleting: git stash, mv to .bak, commenting out, keeping as "reference."
**No asking permission. No alternatives. No exceptions.**
Then start over with TDD.
| Quality | Good | Bad | |---------|------|-----| | Minimal | One thing ("and" in name = split) | `test('validates email and domain and whitespace')` | | Clear | Describes behavior | `test('test1')` | | Fails correctly | Expected failure matches missing feature | Test errors out from typo |
Before marking work complete:
| Problem | Solution | |---------|----------| | Don't know how to test | Write wished-for API first, then assertion | | Test too complicated | Design too complicated — simplify interface | | Must mock everything | Code too coupled — use dependency injection | | Test setup huge | Extract helpers; still complex = simplify design |
Write failing test reproducing the bug. Follow TDD cycle. Never fix bugs without a test.
<example> Bug: empty email accepted RED: `test('rejects empty email')` → FAIL: `expected 'Email required', got undefined` GREEN: `if (!data.email?.trim()) return { error: 'Email required' }` VERIFY: PASS </example>
Proven engineering practices, enforced through skills. Ring is a comprehensive skills library and workflow system for AI agents that transforms how AI assistants approach software development.
Repo: LerianStudio/ring
Analyzing different approaches for a task or problem with structured comparisons, effort…
Auditing a service's production readiness against Ring engineering standards across base…
Cleaning redundant and obvious comments following clean code principles while preserving…
Commit changes with scope allowlist enforcement, atomic grouping, GPG-signed conventional…
Creating a handoff document that captures session state (completed work, decisions, open…
Creating an isolated git worktree for parallel branch work: selects the directory by priority…