Review the migration
Parse the supplied PostgreSQL CREATE INDEX locally. Unsupported shapes fail clearly instead of being approximated.
IndexPilot checks the exact CREATE INDEX in your migration against observed workload, comparable indexes, and optional hypothetical plans. It then leaves a review artifact your team can inspect.
proposal 01
public.orders (tenant_id, created_at)
Advisory only. Planner cost is not production latency.
Start with your problem
Check whether a proposed PostgreSQL index is supported by the queries your database actually runs before merging it.
See the decision pathTest whether PostgreSQL selects a proposed index for representative query shapes before keeping it as production overhead.
See the decision pathFind leading-prefix overlap between a proposed B-tree index and indexes already present in PostgreSQL.
See the decision pathUse HypoPG and real workload evidence to evaluate a proposed PostgreSQL index without creating physical DDL.
See the decision pathAdd a read-only evidence gate for CREATE INDEX migrations and retain review artifacts with each pull request.
See the decision pathThe missing decision layer
Every accepted index adds write work, storage, cache pressure, backup weight, and maintenance. Migration linters check whether DDL is safe to run. Advisers suggest possible indexes. IndexPilot asks the in-between question: does this exact proposal have enough evidence to deserve a real benchmark?
Parse the supplied PostgreSQL CREATE INDEX locally. Unsupported shapes fail clearly instead of being approximated.
Read pg_stat_statements, catalog overlap, and optional session-local HypoPG plans in a read-only transaction.
Write stable JSON, human-readable Markdown, and SARIF that can meet a reviewer in the pull request.
The origin
DNA's information density inspired the first database-genome experiment. But synthesis and sequencing suit archival storage, not the millisecond path of an algorithmic-trading system. That system exposed a more immediate problem: a plausible index can still be the wrong tradeoff.
IndexPilot became the useful part of that experiment: a narrow, read-only review step for the exact index a team is considering. It does not store data in DNA.
Evidence in. A cautious next step out.
Aggregated pg_stat_statements become query fingerprints. Raw workload SQL is not written to the report.
Compare valid B-trees, then optionally ask whether PostgreSQL selects the exact hypothetical shape with EXPLAIN instead of ANALYZE.
Receive one bounded verdict, its limitations, and a practical next step. Positive means benchmark it, never ship it blindly.
Quick start · Early alpha
Run the sanitized example with no PostgreSQL service or database secret. It should flag an existing overlap and write a review artifact you can inspect.
Early alpha supports plain-column, non-unique, ascending B-trees. This example proves the review path, not production performance. When ready, continue with the live read-only PostgreSQL workflow.
$ git clone --depth 1 https://github.com/eyeinthesky6/indexpilot.git
$ cd indexpilot
$ uvx --from "indexpilot==1.1.0a8" indexpilot review \
--migration-file examples/quickstart/migration.sql \
--snapshot-file examples/quickstart/workload-snapshot.json \
--output artifacts/first-review.json \
--markdown-output artifacts/first-review.md \
--stdoutActual-use walkthrough
This walkthrough uses the bundled sanitized quickstart and never connects to a PostgreSQL database. It shows the same existing_overlap result you can reproduce locally.
Four bounded verdicts
A completed review can be useful even when the answer is “not enough evidence.” Teams can opt into CI failure with repeatable --fail-on flags.
The exact hypothetical shape was selected and cleared the advisory planner threshold.
Next: Benchmark latency, writes, size, build time, and rollback on a production copy.
A comparable existing B-tree already covers the proposal's leading prefix.
Next: Inspect both shapes. This is review evidence, never automatic drop advice.
The planner did not select the exact shape or its improvement stayed below threshold.
Next: Inspect the plan or test another shape. Do not infer that the index is harmful.
Workload, permissions, or planner evidence was missing or insufficient.
Next: Collect representative traffic or repair evidence access before deciding.
Where it fits
IndexPilot complements mature migration linters, index advisers, and database monitoring. It owns the review checkpoint for an index somebody already wants to merge.
Team workflow dipstick
The CLI and Action exist today. Shared policy, pull-request summaries, and retained team decisions are still a hypothesis. One public form now tests that gap with real, sanitized workflows.
Current
Free advisory CLI and Action
Hypothesis
Repeatable team policy and decision history
Actual asks
Aggregate fixed choices in the public rollup
Follow live project activity, then tell us which repeated team pain should shape the next upgrade.
Open source · read only