# Privacy Policy *Last updated 2026-08-05. Drafted with AI assistance as part of a structured review process; independent legal review in progress. This version is in effect for the free hosted beta described herein.* ## 1. Who is responsible for your data FixProve is an enkeltmandsvirksomhed (Danish sole proprietorship), CVR 46646223, Stockholmsgade 3, 1. th, 8200 Aarhus N, Denmark. Because a sole proprietorship is not a separate legal person, **Yehor Kaliberda is personally the data controller** for everything described here. Contact: yehor@yehor.ai We have not appointed a Data Protection Officer. At our current scale — one operator, no large-scale or systematic monitoring of individuals, no special-category data under Art 9 — Article 37 GDPR does not require one. ## 2. What we actually collect ### 2.1 The website and waitlist (fixprove.dev) The site is a static export. Submitting the waitlist form sends one HTTP POST to `/api/waitlist`, writing a single record to a Cloudflare KV store containing your **email address** (lowercased, trimmed, capped at 254 characters) and a **timestamp** of signup (ISO 8601). That is the entire record — no name, IP address, referrer, or marketing profile is written by us. We use the address only for launch-related updates and you can withdraw consent at any time. ### 2.2 What the website does not do No analytics, tracking pixel, advertising tag, third-party script, or cookie is set by us anywhere on fixprove.dev — verified by searching the site source and built output for every common tracker/storage API, with zero matches. Because there is no cookie or equivalent client-side storage, no cookie-consent banner is required under the Danish Cookie Order; ePrivacy consent applies to accessing or storing data on your device, not to server-side request handling. ### 2.3 The command-line tool The FixProve CLI and analysis engine run entirely on your own machine or CI runner. As of this policy's date, the CLI and engine source contain no network calls, telemetry, or reporting code — your source code is analysed locally and is never transmitted to us by the CLI. **This is a statement about the current version.** If a future version adds any network capability (including opt-in telemetry), we will update this policy, the project README, and obtain any consent required before that capability is enabled by default. The README currently states "zero LLM tokens" (meaning no model inference) — that is a distinct claim from "zero network calls," and if we want the network-call promise made publicly, it will be added to the README in matching language, not left implied. ### 2.4 The GitHub App (api.fixprove.dev) **Correlation data we store.** When a pull request event arrives, we write a record to a Cloudflare KV store containing: the repository owner's GitHub login, repository name, pull request number, head commit SHA, GitHub check-run ID, and installation ID, plus a creation timestamp. For a personal repository, the owner login identifies a natural person, so this is personal data. **Findings data we relay.** Analysis runs inside *your* CI, not on our servers. Your CI posts results to our endpoint, authenticated by a GitHub Actions OIDC token. Those results contain, per issue: a file path, line number, issue kind, and the specific code expression that could not be resolved. We use that payload immediately to create a GitHub Check Run annotation and do not write it to our own storage. We do not claim "your code never leaves your CI" — fragments of it (paths, line numbers, expressions) do transit our endpoint in memory, in transit, encrypted, and are not persisted. **Who this makes us, legally, for the installing organisation.** GDPR roles are assessed separately for each processing activity, not as a single blanket label for everything we do. Our working position — not yet independently confirmed — is that where FixProve processes personal data contained in repository metadata, findings, or annotations solely to provide the GitHub App on an installing organisation's documented instructions, the organisation is likely the controller and FixProve likely the processor for that specific processing. FixProve remains the controller for processing it determines for its own purposes, such as service administration, security, support, and billing. Before FixProve processes personal data on an organisation's behalf — including during a free beta, since this depends on the processing taking place, not on payment — a binding data processing agreement meeting GDPR Article 28 must be in place. Repository content may itself contain personal data placed there by you or your organisation — you remain responsible for what your own repository contains; our obligation is limited to the data we ourselves process as described above. ## 3. Why we are allowed to process it (lawful basis) - **Waitlist email:** consent (Art 6(1)(a)) — you opted in via the form, and can withdraw at any time via the unsubscribe link in any email we send. - **GitHub App correlation data:** necessary to perform the service you (or your organisation) installed (Art 6(1)(b)). ## 4. Who else touches your data **Cloudflare** hosts the site, API endpoints, and KV stores, processing this data on our behalf as a subprocessor. Cloudflare KV is globally distributed, so data may replicate outside the EU/EEA. The specific transfer safeguard applicable to our Cloudflare account (e.g. Standard Contractual Clauses) is under active confirmation and will be stated here once verified; contact us at yehor@yehor.ai if you have questions in the meantime. Cloudflare also keeps its own request logs containing visitor IP addresses, which we do not access or store ourselves, but which we disclose here because they are processed on our behalf. **GitHub** publishes the Check Run annotations and is the source of the webhook events. We do not sell your data and do not share it with advertisers or data brokers. ## 5. How long we keep it - **Waitlist entries:** deleted once the launch announcement they were collected for has been sent, or the list is abandoned, whichever comes first. - **GitHub App correlation records:** deleted shortly after the check run they track completes. As a safety net for records whose check run never completes, an automatic 24-hour expiry applies, so no correlation record is ever retained longer than 24 hours regardless of what happens to the check run it tracks. - **Findings data:** never stored; used immediately and discarded. ## 6. Your rights You can ask for access, correction, erasure, restriction, portability, and can object to processing. Where processing rests on consent, you can withdraw it at any time. Requests go to yehor@yehor.ai; we will respond within one month. You have the right to lodge a complaint with the Danish Data Protection Agency (Datatilsynet): Carl Jacobsens Vej 35, 2500 Valby, Denmark. Phone: +45 33 19 32 00. Website: [www.datatilsynet.dk](https://www.datatilsynet.dk). ## 7. Changes Material changes to this policy will be dated and noted here. ## 8. Contact yehor@yehor.ai — FixProve v/ Yehor Kaliberda, CVR 46646223, Stockholmsgade 3, 1. th, 8200 Aarhus N, Denmark.