Repair Handoff And Connectors
Connectors move Finding evidence and review state across the Provon boundary. They are project-scoped and store credentials as encrypted secrets.
Connector Roles#
| Role | Supported paths | Purpose |
|---|---|---|
| Evidence input | OpenAI-compatible Gateway, OpenTelemetry/OTLP | Capture model and agent behavior |
| Finding repair handoff | GitHub | Create repair Issues and track external resolution |
| Issue-system handoff | GitHub, GitLab, Linear, Jira | Create or update tracked work from Findings |
| Notifications | Slack, Microsoft Teams, Lark | Forward Finding review and operations updates |
| Data destinations | Notion, Lark Base, monday.com, Airtable | Write structured records from internal workflows |
The distinction matters: GitHub is currently the only connector used by the canonical Finding repair handoff and status sync. Configuring another issue-system connector does not make it a Finding repair-status provider.
GitHub Repair Handoff#
Use GitHub when a Finding should become repair work for Claude Code, Codex, or another controlled coding-agent workflow.
Configure With OAuth#
The deployment must provide:
GITHUB_INTEGRATION_CLIENT_ID=...
GITHUB_INTEGRATION_CLIENT_SECRET=...Register this hosted callback:
https://api.provon.dev/v1/integrations/github/callbackThen:
- Open Connectors in the project.
- Select Connect on GitHub.
- Authorize the repository access.
- Expand GitHub and set Default owner and Default repo.
- Keep the connector enabled.
The default OAuth scope is repo because Provon must create and read Issues and inspect associated
pull requests, including in private repositories.
Configure With A Token#
For local development or a deployment without OAuth:
- Open Connectors and expand GitHub.
- Enter a token that can create Issues and read pull requests in the target repository.
- Set Default owner and Default repo.
- Enable and save the connector.
Tokens may use the classic ghp_... or fine-grained github_pat_... form. Prefer the narrowest
repository access that still supports Issues and pull-request reads.
Repair Issue Contract#
Selecting Create repair issue on a Finding:
- creates an Issue in the default repository;
- adds the
provon-repairlabel; - stores
github:owner/repo#numberon the Finding; - changes the Finding review state to
confirmed; - starts external status tracking.
The Issue includes the goal, diagnosis, evidence, remediation direction, delivery requirement, and hidden correlation metadata. Provon records a merged pull request or closed Issue as resolved.
Evidence Connectors#
Gateway#
Use the Gateway when the application already speaks an OpenAI-compatible API and Provon should own routing, policy, guardrails, and trace capture.
https://gateway.provon.dev/v1For local development, use http://127.0.0.1:3000/gateway/v1.
See Gateway.
OpenTelemetry#
Use OTLP/HTTP when the application already emits telemetry or must keep calling providers directly.
export PROVON_OTEL_URL="https://otel.provon.dev/v1"
export OTEL_EXPORTER_OTLP_TRACES_ENDPOINT="$PROVON_OTEL_URL/traces"
export OTEL_EXPORTER_OTLP_HEADERS="Authorization=Bearer $PROVON_API_KEY"
export OTEL_EXPORTER_OTLP_PROTOCOL="http/protobuf"For local development, set PROVON_OTEL_URL to http://127.0.0.1:3000/v1.
See OpenTelemetry setup.
Connector Destinations#
The Connectors page groups destinations by intent:
- Handoff: GitHub, GitLab, Linear, and Jira.
- Notify: Slack, Microsoft Teams, and Lark.
- Data: Notion, Lark Base, monday.com, and Airtable.
OAuth-backed connectors use deployment-level client credentials and project-level authorization. Webhook and token connectors can be configured directly in the project.
Data destinations are used by internal platform workflows and are not a user-facing automation surface.
OAuth Environment Variables#
| Connector | Required variables | Optional scope override |
|---|---|---|
| GitHub | GITHUB_INTEGRATION_CLIENT_ID, GITHUB_INTEGRATION_CLIENT_SECRET |
GITHUB_INTEGRATION_SCOPES |
| Slack | SLACK_INTEGRATION_CLIENT_ID, SLACK_INTEGRATION_CLIENT_SECRET |
SLACK_INTEGRATION_SCOPES |
| Notion | NOTION_INTEGRATION_CLIENT_ID, NOTION_INTEGRATION_CLIENT_SECRET |
None |
| Jira | JIRA_INTEGRATION_CLIENT_ID, JIRA_INTEGRATION_CLIENT_SECRET |
JIRA_INTEGRATION_SCOPES |
| Linear | LINEAR_INTEGRATION_CLIENT_ID, LINEAR_INTEGRATION_CLIENT_SECRET |
LINEAR_INTEGRATION_SCOPES |
Callback paths follow:
https://api.provon.dev/v1/integrations/<connector>/callbackAccess And Secrets#
- Project API keys authenticate Gateway and OTLP clients; they are not connector credentials.
- Provider credentials and connector secrets are stored per project.
- Connector secrets are encrypted with the deployment integration secret.
- Disabling a connector pauses its use without deleting the stored configuration.
- Deleting a connector removes the project record and its stored secret.
Do not place provider keys, project API keys, or connector tokens in internal workflow definitions or issue bodies.
Common Patterns#
Trace To Repair#
- Capture an agent conversation through Gateway or OTLP.
- Let diagnostic Rules publish a supported Finding.
- Review the cause and evidence.
- Create a GitHub repair Issue.
- Let a user-controlled coding agent open a pull request.
- Track the external resolution on the Finding.
Finding Notification#
- Configure a notification connector such as Slack, Teams, or Lark.
- Forward compact review messages from Finding review events.
- Keep the Finding as the evidence source of truth.
Structured Archive#
- Select the Finding or record to export.
- Map fields to Notion, Lark Base, monday.com, or Airtable.
- Store Provon IDs and evidence references with the external record.
- Treat the external table as a destination, not the canonical Finding store.