One AI feature. Nothing it touches decides anything.
AI in WhiskerMatch does exactly one thing today: help prepare a first draft of public-profile text, strictly from source facts a reviewer has already entered. It is always labeled, and a human edits and saves before anything persists. It cannot change a status, an applicant's stage, or a publish decision — those are human-initiated actions in every case.
One task. Strictly source-bound.
On the profile review screen, AI can help prepare a first draft of public-facing text — and nothing else in the product calls an AI provider today.
Drafts public-profile text
From the source facts a reviewer has already entered on the record — intake notes, foster observations, medical and behavior context. The draft is reviewable and editable before it saves.
Never invents a fact
The prompt explicitly forbids adding anything not in the source list, and the non-AI fallback is structurally incapable of inventing a fact — it only templates the inputs it's given.
Always labeled
Every result is marked "ai" (a configured provider responded) or "template" (the deterministic fallback) — visitors and staff never see AI-prepared text presented as human-written.
Works with no provider configured
If no AI provider key is set, the identical feature still works from a deterministic template — not a degraded experience, a different code path producing the same kind of draft.
Not summarizing, not structuring, not searching — yet.
It's worth being precise about what is not built, not just what is: no AI function in the product summarizes a long history, structures an intake note into fields, prepares follow-up questions, searches organizational knowledge, drafts a communication, or extracts data from a document. If a future version adds one of these, it will appear here — and on the roadmap, not as a live capability ahead of the code.
A fixed template can flag blank intake fields, but that is deterministic checklist logic—not an AI call and not an interpretation of source material.
Hard lines that do not move.
These are not policy preferences. They are product constraints.
Never auto-reject applications
Nothing in the applicant pipeline calls AI at all. Staff triage, respond, and decide every stage and outcome directly.
Never invent a medical or behavior claim
AI cannot diagnose, prescribe, or add medical or behavior context. Those entries are made directly by an authorized staff reviewer — AI never touches them.
Never produce a compatibility score
No AI-generated match percentage exists anywhere in the product. Fit context comes from what the shelter actually observed, attached with its source.
Never change what a person can pay to change
No partner, brand, or shelter can pay to change placement order in a public adoption directory. AI has no role in ranking, and neither does money.
Never publish without human review
No profile reaches the public without a named reviewer approving it first. An AI-prepared draft sits in the reviewer's form until a person clicks save — it never ships on its own.
As of today: nothing has, in any tested environment.
The one AI-assist feature calls a configured provider (Claude 3.5 Haiku) only when an API key is set. As far as this repository’s own evidence shows, that key has never been configured in any environment this product has been built or tested in — every run has used the deterministic template fallback instead.
Minimum possible context, by construction
The provider receives the animal name, species, and source lines a reviewer typed into the profile-draft form for that animal. The action does not automatically load a document, upload, applicant, external-provider record, or another animal's record.
Public-safe entry is an operator responsibility
The form warns reviewers not to paste applicant details, contact information, full medical or behavior notes, credentials, or document text, and drafting assist rejects obvious email addresses and phone numbers. Automated pattern checks cannot classify every sensitive fact, so authorized reviewers must keep source lines public-safe.
Labeled either way
A result is marked "ai" if a provider responded, or "template" if it came from the deterministic fallback. Nothing is ever presented as one when it was the other.
No per-organization AI toggle exists yet
AI-assist availability currently depends on whether a provider key is configured for the whole deployment, not a setting an individual organization controls. If that changes, it will be described here accurately, not implied ahead of the code.
Stated in public so it can be checked.
These boundaries are published so adopters, shelters, and reviewers can hold WhiskerMatch to them. AI drafts are review aids; humans decide. If you see something that contradicts these commitments, we want to know.
See the system that keeps humans in control.
Talk through one workflow and inspect exactly where preparation stops and human review begins.
