GuideElection Readiness Series
Building Small Tools Without Creating New Risk
There is a new way to build small automations for your everyday administrative work, and it does not require any technical background. You describe what you want in plain language, an AI builds it, and you keep talking to it until the thing works. It is a variation of what people call "vibecoding," and a practical way to start exploring the practice without committing to anything bigger.
For an election office, this is genuinely useful. A lot of the small, repetitive, spreadsheet-shaped problems you solve by hand could become simple tools. It is also genuinely risky if you are not deliberate about it, because the same ease that lets you build something in ten minutes lets you build something broken, insecure, or quietly mishandling data in ten minutes.
Explains what vibecoding is and how it works.
Walks you through building your own zero-risk starter tool, including a ready-to-use prompt.
Gives you a short set of protocols to keep any tool you build from becoming a liability.
Just like vibecoding, you do not need any coding background to use this guide.
Thank you to the Election Security Exchange for its review and feedback on this guide.
The term comes from AI researcher Andrej Karpathy, who described a way of working where you "give in to the vibes." You tell an AI what you want, accept what it produces, and iterate back and forth until you are happy, without reading every line of code yourself. The barrier that used to separate people who can describe a tool from people who can build one mostly disappears.
Your job is to say clearly what you want, carefully review the functionality of what comes back, and judge whether it is right. The AI handles the coding and the software development. Managing a vibecoded tool is a supervision task, not a programming task — and like any supervision task, the accountability for the result stays with you.
In plain language: "Build me a page where I can paste in a list of poll worker names and it splits them evenly across five precincts."
You do not write it, and you do not need to read every line of it.
Most modern tools show you the working thing immediately, right there in the window.
You trigger changes by talking. "Make the precinct names editable." "The totals are wrong when there is an odd number." You describe the problem; it fixes it. Repeat until the tool does what you need.
The AI platforms people use to build these automations fall into a few buckets:
For your first tool, a chat assistant that can build and run a small app in the window is the simplest and the safest place to start. You are not deploying anything; you are just describing and looking.
Vibecoding is excellent for small, self-contained, throwaway tools: calculators, formatters, checklists, schedulers, one-off data reshuffles. It is not a substitute for professional software development. And it comes with one honest catch worth stating plainly.
There is risk. Often, you cannot tell whether the code is correct. It can look finished, run without errors, and still be quietly wrong. Parts 2 and 3 prepare you for exactly that — a miscount, a mishandled edge case, a tool that fails in a way you would not think to check.
The safest way to learn this is to build something that cannot hurt anyone even if the code is completely wrong. A tool is zero-risk when it passes all four of these tests.
It never touches voter files, personal information, credentials, or anything from a system of record. You feed it made-up "dummy" data or already-public data.
It is not wired into any live system — no official database, no email account, no election night reporting, nothing of record.
Its output is a draft or an aid. A person checks everything before it counts for anything.
If it breaks, you throw it away and lose nothing.
If a tool fails any one of these four tests, it is not zero-risk anymore — and you should be in Part 3 before it goes anywhere near real work.
None of these can cause harm if they misbehave, because there is nothing real on the line.
Here is a script you can copy, fill in, and paste into an AI tool to get a zero-risk application started. The guardrails are built in, so you do not have to remember them each time.
The last two sentences matter most. They turn the AI into a partner that flags when you are wandering out of zero-risk territory, instead of quietly building something it should not.
Say you fill it in like this: "A tool where I paste in a list of made-up poll-worker names, tell it how many precincts I have, and it splits the names evenly across them and shows the count per precinct." You will get a working page in the window — something like the one below. Now test it the way Part 3 describes: try eight names across three precincts and count by hand. Does the math hold when it does not divide evenly? That habit of checking is the skill worth building, more than the tool itself.
Everything above keeps you safe by keeping you small. The moment you want to publish — put the tool on a real server, give it a live link, connect it to anything, or let it handle real data — you are no longer the only person with a say. Now you have to get past your security office.
So picture the person who owns that decision: a Chief Information Security Officer who has seen a decade of "quick little tools" become the soft spot an attacker walked through. Their default posture toward a vibecoded tool is skepticism, and they are right to hold it.
A vibecoded tool is not trusted because it runs, because the AI is confident, or because you are. It is trusted only when each requirement below is an evidence-backed pass, verified by someone who can read the code. Until then, it does not go to production.
These are the ten technical requirements that gate publication. Each one names why vibecoded tools tend to fail it, and what a passing answer looks like. "We think so" is not a pass. "Here is the evidence" is.
Secrets are the information used to prove identity and gain access. If they sit in the code, they are visible to anyone who can read it — and your secrets are no longer secret. Credentials of any kind (API keys, passwords, tokens, connection strings) must not appear in the source, in client-side code the browser can read, or anywhere in the version history. Secrets live in a managed secrets store or environment variables, injected at runtime and scoped to least privilege. Anything ever exposed is rotated before launch.
AI routinely hardcodes keys to "make it work," and drops them into browser-side code where anyone can read them.
A secret scan of the code and its full history comes back clean.
All input is validated and sanitized on the server; all database access uses parameterized queries; everything rendered back to a user is encoded so input cannot execute as code.
Vibecoded code tends to trust input and assemble queries by gluing strings together — the exact pattern behind SQL injection and cross-site scripting.
The injection and XSS classes from the OWASP Top 10 are explicitly tested and closed.
If the tool touches anything that is not fully public, it requires authentication, single sign-on, and multi-factor where available; and it checks authorization on every action on the server side, not by hiding buttons in the interface. Least privilege throughout. "Nobody knows the URL" is not access control.
Broken access control is the most common serious web flaw, and vibecoded tools frequently guard a page only in the interface while leaving the underlying action wide open.
Access is enforced server-side and tested with a lower-privileged account that is correctly denied.
The data the tool handles is classified against your policy; no personal or voter data without explicit written approval; HTTPS/TLS is enforced in transit; sensitive data is encrypted at rest; nothing sensitive lands in URLs, logs, or browser storage; retention matches records law.
Vibecoded tools default to convenience — plaintext, everything logged, data kept forever.
A data-flow diagram showing exactly what data goes where, reviewed against policy.
A software bill of materials lists every third-party package; versions are pinned; a software-composition scan shows no known vulnerabilities; and each dependency is confirmed to actually exist and be maintained.
AI pulls in libraries freely, and sometimes invents ones that do not exist — a gap attackers now exploit by registering those hallucinated names with malware ("slopsquatting").
An SBOM plus a clean dependency-vulnerability scan.
The source lives in version control; a qualified person has actually read and reviewed it; a static-analysis scan has run and its findings are resolved; the build is reproducible. It does not exist only on the builder's laptop.
The defining move of vibecoding is not reading the code. Publication reverses that — someone who can read code signs their name to it.
A review record and a clean static-analysis report.
Hosted in a sanctioned, isolated environment on least-privilege service accounts — not a personal machine, not an unmanaged cloud account. Default credentials removed, runtime patched, HTTPS only, security headers set (such as Content-Security-Policy and HSTS), attack surface minimized.
Vibecoded tools get stood up wherever is fastest, which is the textbook definition of shadow IT.
Deployed to an environment security has approved and configured.
Security-relevant events (logins, changes, failures) are logged; logs are protected, retained, and free of sensitive data; monitoring and alerting are in place so a problem is noticed.
Vibecoded tools typically log nothing useful, so after an incident you cannot reconstruct what happened.
An audit trail exists and someone or something is watching it.
Errors never expose stack traces or internal detail to the user; the tool fails closed, not open; public endpoints have rate limiting and basic abuse protection.
AI-generated error handling tends to dump internal detail straight to the screen and leaves endpoints wide open to hammering.
Tested error behavior and load behavior, with nothing leaked and nothing left unthrottled.
A named person is accountable for the tool; a known-good backup and a rollback path exist; there is a defined way to decommission it and a named incident-response contact.
Throwaway tools drift into being depended on with no owner and no way to turn them off.
Ownership, backup, rollback, and decommission are all defined before launch.
Before your new tool goes live, the testing of each of these ten technical conditions should be well documented, with evidence, and verified by someone who can read the code — not the AI itself. If you cannot meet all ten, that is not a failure; it is information. It means the tool stays where it belongs: an internal, zero-risk tool under Part 2, or a project handed to professional developers who can carry it across this line.
The AI's confidence is not evidence. Neither is yours.
Vibecoding is a real capability, and it is worth having in your office. Treated as a way to make small, disposable, low-stakes tools quickly, it gives you leverage you did not have before. Treated as a shortcut around the people and safeguards that keep election systems trustworthy, it becomes a liability.
The four conditions for a zero-risk application, and the ten security requirements for anything beyond it, are the things to understand before you build and deploy. Navigate those, and you can build with confidence.
If your office is weighing whether a small tool should stay zero-risk or go through the ten-point security gate, we can help you think it through and structure the conversation with your security office. Reach out.
[email protected]These references back the security framing in Part 3 and give your security office common ground. Each is an authoritative, freely available source you can point to when you make the case for — or against — publishing a tool.
The standard awareness reference for the most critical web application security risks — including the broken access control, injection, and cross-site scripting classes named in the ten requirements above.
View Resource →CISA's guidance on building security into software from the start rather than bolting it on later — the principle underneath the entire Part 3 gate.
View Resource →A core set of practices for developing secure software, giving a common vocabulary your office and its developers can use to describe what "done safely" means.
View Resource →CISA's hub for the "ingredients list" concept behind requirement five — inventorying every third-party component so you can tell what is really inside a tool.
View Resource →A free partnership for state, local, tribal, and territorial election offices — a place to get security help, threat information, and a second opinion before you stand anything up.
View Resource →We offer custom training, workshops, and consulting tailored to your needs.
The guides in this series help election officials connect communications strategy with operational practice before, during, and after elections. Each guide addresses a specific moment in the election cycle and offers language, frameworks, and decision tools that are nonpartisan, procedurally grounded, and transferable across jurisdictions.
Readers are encouraged to adapt language and examples to reflect the specific laws, procedures, and terminology of their state and jurisdiction.
Part of the Election Readiness Series. Adapt language and examples to reflect the laws and procedures of your state and jurisdiction. Last Updated August 2026.
A Ready for Tuesday guide · Privacy Policy · Terms and Conditions of Use
Keep up with AI and elections
Hear from us when we publish new tools, guides and commentary on AI and elections.
No cost. Unsubscribe at any time. Privacy Statement