Provider anatomy¶
This is the page to start with when you are authoring or extending a provider. It walks through the same shape repolish uses internally: configure the provider, resolve it, build context, stage templates, render output, validate the final files, and handle monorepo-specific behavior.
If you want the conceptual background before diving in, start with How It Works.
The provider lifecycle¶
Every provider passes through the same rough pipeline:
- Provider Setup — define the provider in
repolish.yaml - Provider Resolution — resolve
cli,provider_root, andresources_dir - Context & Inputs — build typed context and share data between providers
- Templates — stage and render the canonical files
- Validators — enforce correctness after rendering
- Monorepo — handle root/member behavior and session wiring
- Testing Providers — verify provider behavior in isolation
- Fast Lanes — per-provider CLIs for quick updates, scaffolding, and utility workflows
Common tasks¶
I need to describe the provider in config¶
See Provider Setup and Provider Resolution.
I need to author a Python provider¶
Start with Context & Inputs, then continue to Templates, Preprocessors, and Validators.
I need to make the provider work in a monorepo¶
Read Monorepo and Mode Handlers.
I need to validate the final rendered output¶
Use Validators. This is the place for post-render checks like schema enforcement, file headers, and warnings vs hard failures.
I need to test the provider without the full CLI pipeline¶
See Testing Providers.
I need a fast edit loop for a few generated files¶
Declare a lane in Fast Lanes and use the provider's generated CLI.
I want provider-owned scaffolding without a separate CLI project¶
Use Fast Lanes. Lanes let the provider expose focused commands for things like component scaffolds, doc generation, or selective updates while keeping templates, standards, and maintenance inside the same provider package.
Start here¶
If you only read three pages, make them these:
- Provider Setup — how the provider is declared and resolved
- Context & Inputs — how a provider builds and shares state
- Templates — how provider content is staged and rendered
Then branch out to Validators and Monorepo once those core concepts are clear.