Skip to content

Implement blast-radius <providerName> verb (v0.2.0) #1

@Emuthmartinez

Description

@Emuthmartinez

Summary

Add the blast-radius <providerName> subcommand to the CLI. Given a Riverpod provider name, scan a Flutter/Dart repo and print every provider, widget, notifier, and test file that transitively depends on it. Static analysis only; no running app; no telemetry.

This is the hero verb for the W4 OSS launch (r/FlutterDev Show post, Code With Andrea outreach, README refresh all reference it).

Full spec

The complete implementation spec lives in the Clueless Creations harness:

workspaces/internal-portfolio/apps/riverpod-kg/artifacts/engineering/blast-radius-verb-spec.md

It covers:

  • CLI surface (args, options, exit codes)
  • Text / JSON / markdown output formats
  • Files to touch (new: src/cli/blast-radius.ts, src/analysis/providerGraph.ts, src/analysis/dartParser.ts, src/analysis/types.ts, src/analysis/formatReport.ts; touch src/bin/riverpod-knowledge-graph.ts, README.md, package.json)
  • Function signatures for buildProviderGraph, computeBlastRadius, blastRadiusCli
  • Detection regexes for Riverpod 2.x + 3.x codegen
  • Transitive walk algorithm (BFS, cycle-safe)
  • 7 integration test cases + 5 unit test cases
  • Three fixture mini-repos to add under tests/fixtures/blast-radius/
  • Explicit non-goals (runtime trace, visualization, IDE plugin, network calls)

Acceptance

  • pnpm test passes with new test files
  • pnpm build clean
  • npx . blast-radius authProvider runs against the fixture repo and matches snapshot
  • README section updated under the verb table
  • CHANGELOG entry: "v0.2.0 — blast-radius verb"
  • Version bumped to 0.2.0 in package.json

Non-goals

  • Runtime trace / devtools integration
  • Graph visualization (emit JSON for other tools to consume)
  • IDE plugin
  • Any network calls or telemetry

Target

v0.2.0, shipped before the W4 OSS launch (2026-05-10).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions