--- description: Anonymize the user's VOTER.md and publish it to votethisway.org via proof-of-work, contributing to aggregate data on what voters in a ZIP code care about. recommended_models: - claude-opus-4-7 - gpt-5.5 - gemini-2.5-pro --- # publish-anonymized-voter-profile Publish an anonymized version of the user's `VOTER.md` to votethisway.org. Published profiles contribute to aggregate data showing what voters in a given area care about — without identifying anyone. This skill is optional. The user must explicitly ask to publish. --- ## Step 1: Prepare the anonymized profile Read `VOTER.md` and produce a stripped version. The goal is to keep the substance — values, priorities, tradeoffs — and remove anything that could identify the person. **Remove:** - Full name, initials, or any name that appears as a personal identifier - Email addresses, phone numbers - Street address, neighborhood name, or city (ZIP is the only location field accepted) - Employer, job title, or workplace - Names of family members, colleagues, or anyone mentioned personally - Any anecdote or detail specific enough to identify the author **Keep:** - ZIP code (required — used for geographic aggregation) - Issue positions and priorities - Tradeoffs and dealbreakers - Confidence levels and nuance - General local context ("housing costs in this area", not "the apartment building on my block") When in doubt, remove it. The value of publishing is in the positions, not the personal context. Show the user the anonymized text and ask them to confirm it looks right before continuing. --- ## Step 2: Solve the proof-of-work challenge Publishing requires solving a computational challenge. This is an anti-spam measure — it costs a small amount of compute, not identity. **2a. Request a challenge** ``` GET https://votethisway.org/v1/pow/challenge ``` Response fields: - `challenge_id` — identifier for this challenge - `nonce_seed` — random seed included in the hash input - `difficulty` — number of leading zero bits required - `expires_at` — solve before this time **2b. Solve the challenge** Find a `nonce` (integer, starting from 0) such that: ``` SHA-256("{challenge_id}|{nonce_seed}|{nonce}") ``` has at least `difficulty` leading zero bits. Increment the nonce until the condition is met. --- ## Step 3: Submit ``` POST https://votethisway.org/v1/profiles/publish Content-Type: application/json { "challenge_id": "...", "nonce": "...", "zip": "...", "profile_text": "..." } ``` The `profile_text` is hashed server-side after PoW verification. --- ## Step 4: Confirm A successful response returns a `profile_hash`. Show it to the user as their receipt — they can use it to retrieve the published profile at: ``` GET https://votethisway.org/v1/profiles/{profile_hash} ``` --- ## Output requirements - Never publish without explicit user confirmation after showing the anonymized text - Never include city, street, address, or any field other than ZIP as location data - Store the returned `profile_hash` locally if the user wants a record - If the challenge expires before you finish solving, request a new one and start step 2b again