daily-journal
Draft, organize, or update development journal entries. Use when user requests daily journal generation, work review, standup…
(TDD) Use when implementing any feature or bugfix. Apply the Logic Gate to identify what needs tests, then use the Iron Rule for strict test-first development on logic.
$ npx -y skills add ravila4/claude-adhd-skills --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.
(TDD) Use when implementing any feature or bugfix. Apply the Logic Gate to identify what needs tests, then use the Iron Rule for strict test-first development on logic.
name: test-driven-development description: (TDD) Use when implementing any feature or bugfix. Apply the Logic Gate to identify what needs tests, then use the Iron Rule for strict test-first development on logic.
Before writing any code, pass it through two gates:
1. **The Logic Gate** — Triage. Does this piece contain logic? 2. **The Iron Rule** — For everything that passes the Logic Gate, strict TDD applies.
flowchart TD
A[New code to write] --> B[Decompose into pieces]
B --> C{{"Logic Gate: Does this piece contain logic?"}}
C -->|"Conditionals, transformations, validation, state changes, error handling"| D["Iron Rule: TDD"]
C -->|"Dataclasses, config, thin wrappers, type aliases, formatting"| E[Write directly]
D --> F["RED: Write failing test"]
F --> G["GREEN: Minimal implementation"]
G --> H["REFACTOR: Clean up"]
H --> I{More pieces?}
E --> I
I -->|Yes| C
I -->|No| J[Done]Decompose the work into its constituent pieces. For each piece, ask: **does this contain logic?**
**Passes the Logic Gate (requires TDD):**
**Does NOT pass the Logic Gate (write directly):**
**When in doubt:** If you can't point to a conditional, transformation, or state change, it probably doesn't pass the Logic Gate.
Before writing code, briefly identify what passes and what doesn't:
**For code that passes the Logic Gate: never write logic without a preceding failing test.**
If logic is written before its test: 1. Stop — the test you write now can only describe what you already wrote, not verify intended behavior 2. Delete the logic and restart test-first 3. This applies to logic specifically, not declarations
Write a single minimal test demonstrating intended behavior:
Run tests and confirm:
Write the simplest possible code satisfying the test:
Confirm:
Improve code quality while maintaining green status:
**Minimal:** Single responsibility per test **Clear:** Descriptive name revealing behavior **Realistic:** Demonstrate intended API usage **Focused:** One assertion per test (generally)
**"I'll test afterward"**
**"Manual testing covered edge cases"**
**"Tests-after achieve identical goals"**
Before considering work complete:
Bug found? Write failing test reproducing it. Follow TDD cycle. Test proves fix and prevents regression.
Never fix bugs without a test.
(No ADHD required!) A set of Claude Code skills and hooks I use daily as scaffolding for staying organized while developing with AI agents.
Draft, organize, or update development journal entries. Use when user requests daily journal generation, work review, standup…
Nudge the user with time-based reminders (stopping times, meetings, break suggestions). Surfaces via hook on prompt submission --…
Manage Obsidian vault operations. Handles markdown formatting, YAML frontmatter, folder organization, internal linking, and…