wishful-thinking-programming

Write code and tests using mocks to define APIs through usage.

1|Updated Nov 14, 2025
One-click install
npx skills add https://github.com/zgagnon/skills --skill wishful-thinking-programming
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: wishful-thinking-programming
Source: https://github.com/zgagnon/skills/tree/main/wishful-thinking-programming
Command: npx skills add https://github.com/zgagnon/skills --skill wishful-thinking-programming

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

This Skill helps overcome analysis paralysis and development blockers caused by unknowns, by enabling you to write code as if ideal collaborators and APIs already exist.

Core Features & Use Cases

  • Develop with Uncertainty: Start coding even when library choices or API shapes are unclear.
  • Define APIs Through Usage: Use mocks to specify what collaborators should do, and let them accumulate into a concrete interface.
  • Use Case: When building a new feature that requires interacting with an external service whose API is not yet documented, use this Skill to write tests and code against a mocked version of the API, defining its shape as you go.

Quick Start

Use the wishful-thinking-programming skill to write a test for a new user service, assuming an ideal fetchProfile API exists.

Frequently Asked Questions about wishful-thinking-programming

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
What is wishful thinking programming and how does it help with TDD?

Wishful thinking programming is a development technique that helps overcome analysis paralysis by assuming ideal collaborators exist, allowing you to incrementally progress with TDD from well-understood parts outward using mocks.

How do I write tests when an external API shape is still unknown?

To write tests with an unknown API shape, use mocks to define interfaces through actual usage, specifying what collaborators should do and letting those interactions accumulate into a concrete API structure as you code.

Can I start coding a feature if the library choices or infrastructure are unclear?

Yes, you can start coding with uncertainty by assuming ideal APIs already exist. This Skill enables developers to write tests and code against mocked services, defining library shapes incrementally as development progresses.

What's the best way to define an API interface through usage during development?

The best way to define an API interface through usage is to write tests assuming an ideal API exists, use mocks to specify collaborator behaviors, and let those mock interactions accumulate into a concrete interface definition.

Why does development get blocked by unknowns in libraries or API shapes?

Development gets blocked by unknowns because unclear library choices or undocumented API shapes cause analysis paralysis. This Skill addresses these blockers by letting you write code as if ideal collaborators already exist.

When should I not use mocks to define interfaces through usage?

You should avoid using mocks to define interfaces when the API shapes or library choices are already fully documented, as this technique specifically addresses development blockers caused by unknowns and uncertainty.