Skip to content

Privacy Policy

⚠️ DRAFT — PENDING COUNSEL REVIEW. This document is a working draft prepared from the project brief and is not legal advice. Before any version is published or relied upon for compliance with GDPR, CCPA, CPRA, COPPA, PIPEDA, or any other regulation, a qualified attorney (preferably one with experience in international privacy law) must review and finalize it for the jurisdictions where Human Wants to Learn operates. Placeholders (in [brackets]) require completion. Sections flagged with [COUNSEL] involve legal choices, not engineering decisions.

Effective date: 2026-05-11 Last updated: 2026-10-18 Data Controller: Human Wants to Learn (operated by James Jackson Leach, sole proprietor, Austin, TX, pending entity formation) ("HWTL," "we," "us," "our") Privacy contact: privacy@human-wants-to-learn.dev EU Representative (if required): to be appointed by counsel before EEA/UK launch UK Representative (if required): to be appointed by counsel before EEA/UK launch


1. Our approach to privacy

HWTL is designed around a privacy-first principle: the less data we have, the less data we can lose, mishandle, or be compelled to disclose. We have deliberately engineered the product to minimize what we collect.

This Privacy Policy describes what we collect, why we collect it, what we do not collect, and what rights you have. Read it. If anything is unclear, ask us at privacy@human-wants-to-learn.dev.

The most important commitments in this policy are:

2. Who this policy applies to

This policy applies to:

It does not apply to data processing performed entirely on your own device by the open-source adapters when they do not communicate with our servers.

3. Information we collect

3.1 Information you provide

3.2 Information collected automatically

3.3 Information from third parties

4. The adapters and what they do (and don't) send

The OpenClaw plugin, Claude Code hook, and browser extension run on your device and communicate primarily with a local core service on your machine. By default, that local core service:

Your coding assistant, terminal and browser have their own privacy and history settings. HWTL's local analysis does not change how those tools process or retain what you enter. The public browser demo at /try is a separate, explicit hosted submission: text you send there goes to HWTL's detection endpoint. Its disclosure is shown next to the input on desktop and mobile.

If you self-host the core service or modify the open-source adapters, those modifications are governed by the MIT License and are outside this policy's scope.

5. Public lesson requests and optional context sharing

Opening a learn-icon requests a public concept page. The current lesson explanation is shared public content. Opening it does not automatically send a paragraph from the coding conversation, upload project files, enable LLM personalization, or grant consent to share private context.

The hosted website also requests ordinary page resources, including Google Fonts. Choosing to load an embedded YouTube video contacts YouTube. Configured comments and advertising can contact their providers when loaded. These services have separate privacy practices; local concept detection and hosted-page resources are different network boundaries.

Pages minimize subsequent referrers to the site origin rather than including a page path or query. Pages that request no-referrer retain that stricter setting. YouTube embeds retain origin identification for the player. A URL you initially ask your browser to load can already be received by the hosting provider or retained by your browser; changing subsequent referrers does not erase that initial request.

Public consequence references. Supported integrations can add one or two versioned public reference topics about file removal or public resource access to a lesson link. A foundation link can also carry its public original-topic from identifier. These are public educational choices, not proof that an operation ran, a description of your project, or permission to inspect or change files or resource access. The new browser-extension consequence setting is a separate local opt-in, off by default; it does not infer the local core's lesson mode. When enabled, its recognizer can inspect already-visible assistant prose and command examples locally without sending that additional code view to the core or a provider.

The consequence topics use a bounded URL fragment. Browsers do not include fragments in the initial HTTP resource request, but scripts, extensions, browser history and copied links can read them. They can reveal an activity topic and are not secret or anonymous. HWTL's lesson page attempts to replace the fragment before its deferred enhancements run and keeps only the validated public references in page memory. This is minimization, not a guarantee that no other script saw the link. A reload after replacement can lose the selected highlighting. Without JavaScript the general reviewed reference notes remain available, without a claim to have selected that link's particular notes. No new cookie, browser-storage entry, account context record or provider request is created to preserve these references. Unrelated navigation and source links do not inherit them. See the browser documentation for URI fragments and history replacement.

The learning library accepts only registered public concept, category, and versioned learning-focus choices. Missing or stale resources can create the aggregate editorial request described in Section 3.2. An explicit learning focus can also create that request when a reviewed concept resource exists, because objective coverage is unassessed. The request contains neither the original coding task nor a user's identity; its count measures requests, not unique people. Provider discovery runs separately using approved public search categories and registered public objective meanings; it does not receive raw code from these requests. A current reviewed catalog hit without a selected focus is reused without creating a new discovery request.

Separate context submissions and audit access.

Current availability: project/context ingestion is disabled in the current release and rejects requests before reading the submitted body. Signing in, choosing a robot, opening a lesson or enabling anonymous metrics does not enable it. The following draft describes a separately enabled future feature, not an active context-upload path.

Optional context sharing requires its own clear feature explanation and user choice. It is separate from robot preferences, account sign-in, and public lesson lookup. If you deliberately submit context through a separately enabled feature, authenticated submissions are stored in your account's context log. At human-wants-to-learn.dev/me/context-log you can inspect the stored timestamp, concept identifier, submitted content, and recorded provider field, and clear those entries. The configured context-log retention period is 90 days; deployment of its cleanup operations must be verified before relying on that period. These submissions are not automatically discarded at the end of the request.

Paid or bring-your-own-key LLM personalization remains proposed functionality in this draft, rather than a description of the current static lesson. Its consent, payload limits, provider handling, and deletion behavior require separate verification before activation. Do not submit secrets, credentials, or private project material to a public lesson URL or shared catalog request.

6. What we do not collect

We do not collect, and we do not knowingly receive from any source:

7. Cookies and local storage

We use a minimal set of cookies and browser storage mechanisms:

Your local learning record

The learning-record page keeps your own assessments, quiz outcomes, help labels, and results from HWTL's fictional workspace in this browser. It also keeps concept or domain identifiers, dates, and confidence and source labels. Dates from your device or an imported file are claims, not verified timestamps. The saved record does not contain your chat, code, real project files, raw quiz answers, or workspace action sequences. Quiz choices and fictional-workspace steps are processed locally and may stay in page memory while you edit or retry; they are not saved in the record or automatically uploaded.

Recording lesson openings and video-button actions is a separate choice, off by default. It does not enable site metrics. If an off choice cannot be saved, recording stops for the current visit and the page reports that the browser save was not confirmed. A later page load may use the previously saved choice; retry the off choice when storage works again.

This record is separate from your browser learning profile and practice journal. An assessment or quiz action may separately save a compatible profile choice or journal entry; each save is confirmed independently. It is not uploaded automatically. A confirmed Clear learning record removes its local history and assessment authority and turns its activity recording off; the separate profile and journal remain. Old profile preferences may then apply again. You can download a backup or explicitly preview and import a record. Imports remain claims and cannot opt this browser into activity recording. Local records remain until you clear them or your browser removes its storage; downloaded files remain under your control.

Optional account learning-record sync

Where this separately enabled feature is available, Review optional account sync identifies the signed-in account and asks for explicit learning-record access. A browser or coding setup may read the account record; uploading also requires separately approved write rights. A preference connection alone grants neither right. Opening a lesson, signing in, enabling metrics or recording local activity does not approve this sync.

Sync is manual. After consent, preview the browser and account copies, including the five evidence kinds, corrections and withdrawals, before an explicit upload or local merge. The transmitted record contains the identifiers, claims, dates, assistance and source/confidence fields described above. It excludes the browser's activity-recording choice, chat, code, real project files, raw quiz answers and workspace steps. Cloudflare processes the request and Supabase stores the private account copy and bounded consent/operation metadata. Records remain until explicitly reset or account deletion; no automatic record-expiry period is promised. Operation receipts expire after seven days; expiry cleanup must be deployed and observed before claiming physical removal.

New claims from another device remain imported when applied locally; sync does not verify their dates or establish mastery. Upload confirmation and browser-save confirmation are reported separately. An offline or unconfirmed action does not imply a successful save. A local pause stops new requests from that browser; a request already accepted by the server may have completed. Revoke stops future access for that connection. Neither pause nor revoke removes local records or downloaded files.

Account-record export includes that account's record and finite consent/action history; it is separate from preference export and browser backups. A confirmed account-record reset clears the account record and revokes its old learning-record clients. It does not clear browser copies, downloaded files or preference settings. A new explicit connection is needed before uploading again. Account deletion also removes account-owned learning-record data. Project/chat context and public reuse remain separate capabilities and are not enabled by this consent.

We do not use third-party tracking cookies, advertising cookies, or analytics cookies that share data with third-party advertising networks.

Our ad partner (Carbon Ads) serves contextual ads that do not require behavioral tracking cookies. [COUNSEL] confirm any disclosure required by the partner's actual practice.

8. Advertising

We display contextual ads on free-tier hosted concept pages (v1). Ads are selected based on the topic of the concept page being viewed (for example, an AWS-related ad on a CloudFormation concept page).

We work with Carbon Ads, which (per its own privacy practices) does not use behavioral targeting or cross-site tracking. Carbon Ads may record aggregate ad delivery metrics (impressions, clicks) but does not build a profile of you.

Subscribed users (v2) see no ads.

Direct ad sales, if introduced in the future, will be added to this policy with at least thirty (30) days' notice.

9. Tutoring session recordings

Live tutoring Sessions are recorded by default with explicit consent solicited from both you and the Tutor at the start of the Session. If either party declines, the Session may be cancelled or proceed without recording.

Recordings are:

You may request deletion of your Session recording before the retention period ends.

10. How we use the information we collect

We use the information described above to:

We do not use your data for behavioral advertising. We do not sell your data. We do not share your data with advertisers, except in aggregate, non-identifying form.

11. Children's privacy

The Services are not directed to or intended for children under 13 (or under 16 in the European Economic Area, the United Kingdom, and other jurisdictions with a higher applicable minimum). We do not knowingly collect information from children under those ages. If we learn that we have inadvertently collected such information, we will delete it promptly. If you believe we have information about a child, please contact privacy@human-wants-to-learn.dev.

[COUNSEL] confirm COPPA compliance posture and any required parental-consent flows.

12. Your rights

We respect your rights regardless of where you live. Some jurisdictions grant specific rights summarized below; users in other jurisdictions may have similar rights under local law.

12.1 Universal rights

12.2 GDPR rights (European Economic Area, United Kingdom, and Switzerland)

In addition to the universal rights:

To exercise these rights, contact privacy@human-wants-to-learn.dev. We will respond within thirty (30) days. If we require identity verification, we will let you know.

Legal bases for processing (GDPR Art. 6):

12.3 CCPA / CPRA rights (California)

If you are a California resident:

To exercise these rights, contact privacy@human-wants-to-learn.dev or use the in-account self-serve flows. Authorized agents may submit requests on your behalf with written authorization.

We do not engage in financial-incentive programs that involve personal-information collection.

12.4 Other jurisdictions

If you reside in a jurisdiction with privacy laws not specifically named above (Canada, Brazil, Japan, Australia, etc.), [COUNSEL] confirm any specific disclosures required.

13. Data security

We protect your information with industry-standard security practices, including:

No system is perfectly secure. If we become aware of a security incident affecting your data, we will notify you and the relevant authorities within the timeframes required by applicable law.

14. Data retention

Data categoryRetention period
Account dataWhile your account is active; deleted within 30 days of account deletion
Tutoring session recordings90 days from Session date
Service logs (IP, user agent)30 days
Payment records7 years (tax compliance)
Engagement telemetry (aggregated, anonymous)Indefinite; raw signal deleted after 30 days
Shared catalog demand (public categories and aggregate counts; no individual history)Retained as shared editorial work until an operator removes the record; no per-person event log is retained
Context-log entries (Section 5)90 days; cleanup deployment must be verified
Newsletter subscriptionUntil you unsubscribe
Comment threads (via GitHub Discussions)Governed by GitHub's retention; we do not control
Registry contributions (public)Indefinite (part of the open-source historical record)

[COUNSEL] confirm these periods against the legal minimums and maximums in target jurisdictions.

15. International data transfers

Our service infrastructure is hosted with Cloudflare and Supabase. Data may be processed in the United States, the European Union, and other jurisdictions where our service providers operate.

For transfers of personal data from the European Economic Area, United Kingdom, or Switzerland to other countries, we rely on Standard Contractual Clauses approved by the European Commission and the supplementary measures described in Schrems II guidance.

[COUNSEL] confirm the specific transfer mechanism applicable and add any required Data Processing Addendum (DPA) language.

16. Third-party services

The Services integrate with the third parties listed below. Your data may be processed by these third parties according to their own privacy practices.

We update this list when we add or change providers.

17. Do Not Track signals

We honor the "Global Privacy Control" (GPC) signal as an opt-out of any sale or sharing of personal information for cross-context behavioral advertising — which we already do not engage in by default. We do not respond to browser "Do Not Track" headers separately, as their interpretation is not standardized.

18. Changes to this policy

We may update this Privacy Policy from time to time. For material changes, we will provide at least thirty (30) days' notice by email (to account holders) and by a prominent notice on the Site. The "Last updated" date at the top reflects when this policy was last changed.

We will preserve and link to previous versions of this policy at human-wants-to-learn.dev/privacy/history so you can review what has changed over time.

19. Contact us

For privacy questions, requests, or complaints:

For general support, see support@human-wants-to-learn.dev.

For legal notices and process: legal@human-wants-to-learn.dev.


End of Privacy Policy draft. Status: pending counsel review. Do not publish in current form.