An input contract defines the data a workflow needs, which sources are optional, how freshness and conflicts are handled, and what happens when the required evidence is not there. It is the difference between a reliable brief and “here is some context.”
Strong input design lets a workflow request what is missing or refuse safely rather than scavenging a whole drive or inventing the field. It also makes testing and installation much easier for the team.
Part 01 · Specify usable inputs
Specify usable inputs
Most workflow failures are input failures
When an output lacks context, evidence, or required fields, improving the prompt rarely solves it. Start by checking whether the workflow received the sources the job actually depends on.
One useful email a week
Get one workflow teardown a week.
A practical look at how a real repeated job becomes a reliable AI workflow — inputs, review points, and the failure modes to avoid.
By subscribing, you agree to receive Grokkit’s weekly workflow teardown. Unsubscribe anytime.
Named inputs beat “here is some context”
Name each input, its purpose, owner, source system, freshness requirement, and whether it is required. This gives the operator a preparation checklist and gives the workflow a reliable boundary.
Minimum viable input set
Define the smallest source bundle that can produce a useful, reviewable output. Keep it narrow enough to run consistently, then add optional material only when it changes a meaningful decision.
Optional inputs and what happens when they are missing
For each optional input, state whether the workflow can continue, which section changes, and how the absence is labeled. Optional does not mean invisible; a missing item can still affect confidence.
Transcript quality rules
Specify accepted transcript quality, speaker labels, date, scope, and how unclear audio or missing segments are handled. A transcript without reliable attribution cannot support a claimed commitment.
Part 02 · Handle missing and messy data
Handle missing and messy data
CRM field contracts
List the fields, definitions, allowed values, currency or date conventions, source freshness, and precedence when CRM data conflicts with a current call. Do not silently normalize ambiguity into a completed field.
File types the skill should accept
Name supported file types and the minimum content expected in each. Reject or request conversion for files that cannot be read reliably rather than pretending a partial extraction is complete.
Stale data and conflicting sources
Define freshness thresholds and a precedence order: for example, approved current records may outrank a stale CRM field, while unresolved conflicts become a visible question for the owner.
How the skill asks for the missing piece
A missing-input response should say exactly what is needed, why it matters, who can provide it, and whether the rest of the output can proceed. Vague “need more context” messages waste the operator’s time.
How the skill refuses to hallucinate the missing piece
Write the refusal rule in plain language: do not infer absent facts, names, dates, budgets, commitments, or root causes. Leave a marked unknown or route to the responsible human.
Part 03 · Protect and test the bundle
Protect and test the bundle
Pre-run checklist for the operator
Use a short checklist for source completeness, date range, permissions, required fields, redactions, and output audience. A pre-run check prevents avoidable failures from becoming reviewer repair.
Automation that gathers inputs vs the skill that judges them
Use deterministic automation to collect, format, and validate data where possible. Use the skill to apply the job’s judgment and output rules; mixing the two makes it harder to diagnose failure.
Privacy filters before the model sees the bundle
Minimize inputs, redact unnecessary sensitive data, enforce access rules, and use approved tools before the workflow receives the bundle. Data handling is an input rule, not a post-generation cleanup step.
Examples of good vs unusable packs
A good pack has named current sources, required fields, clear audience, and evidence references. An unusable pack is a broad paste of stale notes with no scope, ownership, or source hierarchy.
Testing on the worst notes you actually have
Include incomplete, contradictory, poorly labeled, and stale inputs in the test suite. The contract is reliable only if it correctly asks, flags, or stops on the data team members actually encounter.
Part 04 · Install the contract
Install the contract
Versioning when a new source system appears
When a new CRM, ticketing, or transcript source joins the process, update the contract, validate mapping and precedence, rerun relevant cases, and publish an operator note.
Teaching the team “what to paste”
Show one good input pack, one insufficient pack, and the reason for the difference. Practical examples reduce random context dumping far more effectively than a generic request for clean data.
Anti-pattern: the skill that scavenges the whole drive
A workflow should not search every available file for a plausible answer. Broad scavenging increases privacy risk, source conflict, and unsupported claims; use named, authorized sources only.
Input contract template
Document trigger, required inputs, optional inputs, formats, source owners, freshness, precedence, privacy rules, validation, missing-data response, and escalation. Keep the template beside the skill.
How Grokkit maps triggers, inputs, and exceptions in discovery
Grokkit uses real examples to map the trigger, available sources, missing-input failures, exceptions, and reviewer checks before building. The contract becomes part of the workflow, test set, and deploy guidance.
