needlepath-integration. Your coding agent reads it, inspects your application, and writes
the integration for you: the right SDK or adapter, shadow-first rollout,
fail-open handling, metrics, configuration and boundary tests.
You then review a diff, the way you would review any other change.
What it is not
This distinction matters, because all four of these are ways to put Needlepath in front of a model call and only one of them is what this page is about.
The skill is a build-time author, not a run-time component. Once it has run,
your repository depends on an SDK or on the HTTP API, and not on the skill.
Install for Claude Code
/plugin marketplace update.
The manual route is a plain copy, which is the one to use when your policy is
that nothing self-updates.
Install for Codex
Codex loads skills from.agents/skills/, in this order:
Your first integration
With the skill installed, ask for the integration in your own words. Naming the operating point is worth doing explicitly:What the skill will not do
These are binding, and they are the reason to use the skill rather than wiring it by hand from the API reference:- It pins an operating point. Selection behaviour is frozen to the label you name. See what a label pins.
- It starts in shadow. Nothing changes what your model receives until you turn selection on in configuration. See Shadow mode.
- It fails open, exactly. Your original context is preserved byte for byte on a stand-down, a shadow run, a timeout, an HTTP failure, a malformed response, and on any outcome it does not recognise. See the two cases that are not errors.
- It keeps mandatory context out of selection. System instructions, safety policy, tool schemas and the current user turn are concatenated around the selected block, never submitted for selection. See if a record must not be dropped.
- It emits metadata only. Counts, outcomes, latencies and identifiers. Never prompts, context, excerpts, credentials, or raw errors that may carry your customers’ input. See Retention and trust.
Verifying it worked
Shadow mode gives you the numbers before you change any behaviour:- Applied versus passed through: through an SDK, the skill gates on
result.appliedand passes your exact original context whenever it is false. On raw HTTP the equivalent signal is the top-leveloutcome, nevergate.engaged(why). - Token reduction:
tokens_before,tokens_afterandreduction_ratio, on the engine’s own accounting, which is not your provider’s billed token count. See How to recompute your own bill. - Latency:
engine_latency_mson each response.