Planning Your Tool

Software Development with Claude Code

Dani Zysman

AI Curriculum Manager @ DataCamp

From API to CLI

Two Tools, Same Data: Web API vs CLI Reporter

Software Development with Claude Code

The Music Analytics Reporter

python reporter.py --artist "AC/DC" --format json --output report.json

recraft: half: Developer at whiteboard sketching a CLI tool architecture with database and file output icons

Software Development with Claude Code

Why CLI?

recraft: CLI tool connecting to automation, pipelines, scripts, and testing

  • Scriptable: automate repetitive tasks
  • Composable: chain with other tools
  • Pipeline-ready: works in CI/CD systems
Software Development with Claude Code

Planning: Before vs After

Flowchart: Init → Explore → Plan → Code

Software Development with Claude Code

Planning Session

> /plan
> think about designing reporter.py: artist statistics from Chinook 
(albums, tracks, duration, revenue), exported as JSON or CSV
Plan: reporter.py CLI Tool

Arguments: --artist, --format (json/csv), --output
Data: Query Chinook for albums, tracks, duration, revenue
Validation: Check artist exists before querying
Errors: Handle DB connection failures, missing artists
Output: Write to file or stdout if no --output given
Exit codes: 0 = success, 1 = error
Tests: test_reporter.py covering core functions and edge cases
Software Development with Claude Code

Claude's Specification

========================================
MUSIC ANALYTICS REPORTER - SPECIFICATION
========================================
Arguments:    --artist, --format, --output
Validation:   Check artist exists before query
Errors:       Handle DB connection, file permissions
Formats:      JSON (default), CSV
Exit codes:   0 = success, 1 = error

Plan mode + extended thinking = clear roadmap

Software Development with Claude Code

Skills Coming Together

excalidraw: Skills progression from Chapter 1 to 4

Software Development with Claude Code

Let's Practice!

Software Development with Claude Code

Preparing Video For Download...