RTK vs Pump-Me: reusable automation with bounded AI output
An AI agent should receive the information needed to make a decision, with enough evidence to know whether that information is complete. With Pump-Me, the agent defines that observation contract and implements it as reusable PowerShell code: useful domain fields, their meaning, completion conditions and explicit failures.
The workflow is concrete: read the tool's documentation and machine format, reuse or build a provider, test and register it, then generate a .ps1 task that processes its objects locally. The model receives one bounded structured answer. The parser, normalization and domain calculations remain in an ordinary, Git-trackable module for subsequent requests.
The walkthrough discovers a missing Git worktree route, supplies an independent provider, generates a task combining worktrees, Git status and ripgrep, then reuses the provider in a second request. Its final task budget is 2 KiB. Separate fixtures exercise twenty intermediate results under 1 KiB, preserving failures, timeouts and explicit omissions.
RTK pursues the same output-token problem through a Rust command proxy with specialized handlers and extensible filters. It also supports structured parsing. The emphasis here is the agent's documented workflow for authoring and reusing an observation contract, composing its objects and bounding the entire task. Provider creation has a cost; the comparison examines when reuse can justify it, without inventing performance savings.
For the companion-script approach, see QuietCli: useful answers beyond smaller CLI output: an independent eight-chapter series on local calculations, execution contracts and practical complementarity with RTK.
Read the eight chapters
| Chapter | Focus |
|---|---|
| 1. The Core Requirement | Author an observation contract that retains facts needed for decisions. |
| 2. The Agent Workflow | Copyable agent instructions and the executable walkthrough. |
| 3. Setup and Optional DevPoSh | Configuration, standalone activation and optional profile loading. |
| 4. Building a Reusable Provider | Turn a domain contract into a tested, registered GitWorktrees provider. |
| 5. Objects, Streaming and Task Budgets | Domain data, process completion and aggregate results. |
| 6. Existing Pumps in Practice | Git, ripgrep, PowerShell, Podman and pnpm. |
| 7. RTK and Pump-Me | Extension choices, suitable use cases and the cost of reusable contracts. |
| 8. Sources and Verification | Reproducible scripts, source manifests and execution evidence. |
Run the example
From this series directory in PowerShell 7.4+ Core:
./scripts/Invoke-Examples.ps1 -LibraryRoot 'C:/code/FrenchExDev/FrenchExDev_i2/PoSh/FrenchExDev/FrenchExDev.OutputPumps.PoSh'./scripts/Invoke-Examples.ps1 -LibraryRoot 'C:/code/FrenchExDev/FrenchExDev_i2/PoSh/FrenchExDev/FrenchExDev.OutputPumps.PoSh'The runner creates isolated configuration and temporary repositories. The GitWorktrees provider, execution report and source manifests ship alongside the prose.
The implemented engine is OutputPump.PoSh inside FrenchExDev.OutputPumps.PoSh. DevPoSh is optional.