Launch the public interactive demo →

Synthetic data only—no login, API key, file upload, or payment required.

Inspiration

Since 2019, I have worked remotely as a solo solar permit designer and produced more than 3,000 U.S. permit plan sets. That experience taught me that many expensive drafting errors begin before anyone opens CAD.

A customer request may specify 18 modules while a revised proposal specifies 20. A site survey may be missing attachment information, and utility notes may still need a meter number. Designers spend time manually comparing scattered files, and one unnoticed discrepancy can propagate through an entire plan set.

I wanted a focused tool that answers one question clearly:

Is this package ready for design—and if not, exactly what is blocking it?

What it does

Solar Permit Copilot is a source-traceable pre-design intake gate for solar permit teams.

It:

  • accepts PDF, DOCX, XLSX, text, structured-data, and image inputs in live mode;
  • uses GPT-5.6 Sol to extract only document-supported project and system facts;
  • normalizes equipment names against a controlled catalog;
  • identifies missing permit inputs and prioritizes design blockers;
  • detects contradictions between revisions and retains every source value;
  • shows short source excerpts so the designer can verify the evidence;
  • displays a deterministic DESIGN BLOCKED or READY FOR DESIGN gate;
  • lets a human choose the current source instead of allowing the model to decide;
  • recalculates safely derived fields and the remaining blocker count;
  • exports the reviewed result as JSON, Markdown, or PDF.

The public interactive demo reproduces the complete conflict-resolution workflow using three synthetic files. It requires no account, API key, file upload, OpenAI API call, or payment.

How I built it

Solar Permit Copilot is a standalone Python and Streamlit application.

The live workflow uses the OpenAI Responses API with:

  • gpt-5.6-sol;
  • medium reasoning effort;
  • mixed text and image inputs;
  • strict JSON Schema structured output;
  • store=False.

GPT-5.6 handles document understanding: supported fact extraction, equipment-name normalization, missing-input identification, and source-conflict analysis.

A separate deterministic review layer owns the final readiness decision. The model can surface evidence, but it cannot silently resolve a contradiction or approve the project.

Uploads are processed in memory and protected by file-size limits. The repository contains only fictional equipment and customer data. A precomputed GPT-5.6 result allows anyone to test the complete public workflow without credentials or paid usage.

Twelve network-free automated tests cover the Responses API contract, document extraction, report generation, public-demo restrictions, and human-reviewed gate behavior.

How I used Codex

I entered Build Week with professional solar permit-design experience and a much larger private desktop engineering HUB. My initial idea was to submit a sanitized version of that system.

Working with Codex helped me make a more important product decision: isolate one new, testable workflow instead of exposing unrelated production logic and customer data.

One iteration captures the collaboration clearly. The first report could identify the 18-versus-20 module conflict, but a summary alone did not make the workflow safe. I specified that the model must never choose the winning revision.

Codex implemented and tested a deterministic human-decision layer. The designer selects the current source, the module count and DC system size recalculate, and both original excerpts remain visible for auditability.

That changed the project from an AI-generated document summary into an operational pre-design gate.

I directed the domain framing and safety boundaries:

  • extracted facts must remain separate from suggestions;
  • contradictions must remain visible;
  • historical patterns cannot become project facts;
  • a qualified designer remains responsible for engineering decisions.

Codex also accelerated the strict output schema, Responses API adapter, in-memory document extractors, report exports, automated tests, deployment path, and repository audit.

Challenges

The hardest problem was not extracting text. It was creating a trustworthy boundary between AI reasoning and engineering workflow decisions.

Automatically selecting one of two conflicting revisions would make the demonstration look smoother, but it would also create exactly the hidden error the product is meant to prevent.

The final workflow therefore requires an explicit human source decision and preserves the original contradiction for auditability.

Another challenge was making the application testable without exposing an API key or requiring paid usage. The public demo uses a precomputed GPT-5.6 result with the same report structure and complete interaction flow as live mode.

Accomplishments

  • A complete human-in-the-loop workflow rather than a generic AI summary.
  • Exact source traceability for contradictions and missing inputs.
  • A readiness gate that updates after a human source decision.
  • Live GPT-5.6 Sol analysis and a credential-free public demonstration.
  • JSON, Markdown, and PDF report exports.
  • Twelve network-free automated tests and GitHub Actions validation.
  • A standalone repository containing no production HUB logic, customer data, or secrets.

What I learned

A narrow product can demonstrate more value than a broad AI assistant.

Keeping the workflow specific to solar permits made the problem, audience, evidence, and cost of failure concrete. It also made clear where GPT-5.6 adds value—and where deterministic software and human judgment must remain in control.

What's next

The current submission intentionally completes one solar permit-intake workflow.

Within solar, the next integrations would connect approved intake data to AHJ checklists, project-management systems, deterministic electrical checks, and downstream permit-design automation.

The underlying source-conflict and readiness engine could later support configurable profiles for construction, insurance, procurement, legal review, and other document-heavy workflows where contradictory revisions must be resolved before work begins.

Built With

Share this project:

Updates