GitHub Copilot moved most plans to usage-based billing on June 1, 2026. Copilot now consumes AI Credits calculated from input, output, and cached tokens, with different rates by model.

Existing annual Pro and Pro+ subscriptions can remain on legacy request-based billing until the subscription ends.

The details matter, so check the current GitHub billing documentation.

The engineering lesson is broader than the invoice. A vague agent task consumes more context, produces more code, and leaves more output for a person to review.

Be short where prose is waste

I use “caveman” as a reminder to remove ceremony:

Goal: Add optimistic locking to invoice updates.
Files: invoice entity, service, migration, focused tests.
Keep: Existing API response shape.
Prove: Concurrent update test fails before and passes after.
Do not: Refactor the billing package.

This prompt is small because each line carries a decision. Removing the file scope or proof would save a few tokens and create a much more expensive ambiguity.

Concise prompting does not mean starving the model. Include facts it cannot safely infer: architecture rules, relevant paths, failing output, acceptance criteria, and prohibited changes.

Cut the project history, motivational framing, repeated instructions, and logs unrelated to the failure.

Plan before generating

Code is often the most expensive way to discover that the task was misunderstood. For a change with uncertain scope, ask for a plan that names:

  • the behavior that changes;
  • the files likely to change;
  • the tests that will prove it;
  • the risks or missing decisions;
  • the point where the agent should stop and ask.

Review that plan before authorizing implementation. One correction at this stage can prevent a long run across the wrong layer.

Control the context you resend

Do not paste an entire log when the final error and its cause are enough. Do not attach the whole repository when a package and its public interface define the task.

But do not trim blindly. A migration without the schema, a bug without the reproducing input, or a component change without its design constraints forces the model to guess.

The right context is the smallest set that preserves the causal chain.

Measure the full cost

Token usage is visible, but review time is often the larger cost. Track both.

For repeated task types, record the model, AI Credits, elapsed time, files changed, review defects, and whether the first verification run passed.

A cheap run that creates two hours of cleanup is not cheap. A larger prompt that prevents a production mistake may be the better trade.

Use a fixed task contract

Teams should standardize the fields, not the wording. Goal, scope, constraints, proof, and stop condition are enough for most repository tasks.

This makes prompts shorter over time because system knowledge moves into versioned repository instructions. The chat carries the task. The repo carries the rules.