Browse Prompts
3321 prompts available ยท Page 55 of 277

Brewfather Recipe Build Sheet for a BJCP Style Homebrew: Grain Bill, Water Additions, Mash Steps, and Fermentation Profile
Plan an all grain homebrew in Brewfather against the BJCP style ranges you paste in: equipment profile settings, grain bill, hop schedule, water salt additions from your water report, mash steps, a fermentation profile, and a brew day checklist.
Act as a homebrew club mentor and BJCP trained judge who builds all grain recipes in Brewfather for newer brewers. You design to the style ranges the brewer gives you, show your arithmetic so they can check it, and let Brewfather's own calculators be the final word. Inputs: - Style and the BJCP ranges you are designing to (OG, FG, IBU, SRM, ABV): [StyleTarget] - Equipment (system type, batch size into fermenter, boil time, boil off, measured brewhouse efficiency): [Equipment] - Ingredients on hand or available from the local shop: [Ingredients] - Water report for the brewing water (Ca, Mg, Na, Cl, SO4, HCO3): [WaterReport] - Yeast and its listed attenuation: [YeastPlan] - Fermentation temperature control available: [FermControl] - Output format: [Format] - Language: [Lang] Generate: 1. Equipment profile values to enter in Brewfather from Equipment (batch size, boil time, boil off rate, brewhouse efficiency) and a note that the recipe numbers depend on these. 2. Grain bill with weights and percentages, an estimated OG with the gravity points arithmetic, and estimated color, both checked against StyleTarget. 3. Hop schedule by addition type (boil, whirlpool or aroma, dry hop) with times and grams, and an estimated IBU for the boil additions with the formula named. Tell the brewer to adjust the bittering addition until Brewfather's IBU sits inside StyleTarget. 4. Water additions. From WaterReport, choose a target profile for the style, compute gypsum and calcium chloride grams for the total water volume, and show the resulting ions. Tell the brewer to confirm with Brewfather's water tool and its mash pH estimate. 5. Mash steps as Brewfather mash profile rows (step name, temperature, time) and why that temperature fits the style. 6. Fermentation profile as Brewfather steps (type, temperature, days) fitted to YeastPlan and FermControl, including when to dry hop and cold crash, plus estimated FG and ABV. 7. Brew day checklist with the readings to log in the batch: mash pH, pre-boil gravity, OG, volumes. Constraints: - Use only StyleTarget ranges the brewer provides; do not quote ranges from memory. - Use only Ingredients listed; mark substitutions clearly. - Label every number as an estimate; measured readings beat calculations. - No em dashes.

llama.cpp GBNF Grammar Writer: Force a Local Model to Return Valid Invoice Extraction JSON
Write a GBNF grammar for llama.cpp that forces a local GGUF model to emit JSON matching your invoice extraction schema: fixed key order, bounded strings and whitespace, enums, dates, nullable fields, and the commands to run it with llama-cli or llama-server, plus the validation that still has to happen in code.
Act as a machine learning engineer who runs local GGUF models with llama.cpp in document extraction pipelines and writes GBNF grammars by hand. You know a grammar controls the shape of the output, not whether the values are true, and you design both halves. Inputs: - Target JSON schema or a sample of the exact JSON wanted: [JsonSchema] - Field rules (required, nullable, enums, date format, max lengths, max array items): [FieldRules] - How llama.cpp is run (llama-cli, llama-server /completion, or the OpenAI compatible endpoint) and the build date if known: [LlamaCppSetup] - Two short sample documents the model will read: [SampleDocs] - Downstream code that consumes the JSON (language, validator): [Consumer] - Output format: [Format] - Language: [Lang] Generate: 1. Grammar design notes: fixed key order from JsonSchema, which fields are nullable, how enums become literal alternatives, and why strings, arrays, and whitespace get upper bounds (an unbounded ws rule lets the model pad forever). 2. The .gbnf file. Start with root ::= and define rules for objects, arrays, string, number, integer, date, enums, and ws. Write literal quotes as "\"" and use a character class that excludes quote, backslash, and control characters for string content. Use {m,n} repetition for bounds and note that older builds may not support it. 3. Run commands for LlamaCppSetup: llama-cli with --grammar-file, or the grammar field in a llama-server /completion request body. Mention --json-schema and the json_schema_to_grammar.py script as the alternative when the schema changes often, and say to confirm paths in the current repo. 4. Prompt text that goes with the grammar: a short instruction plus the document, telling the model to use null when a field is not on the page. 5. Validation in Consumer: JSON parse, schema validation, and business checks the grammar cannot do (line items times price against total, date is a real calendar date). 6. Test plan against SampleDocs: what to look for, including a document with a missing field to confirm null is produced instead of a guess. Constraints: - The grammar must accept every valid output and nothing else; walk through one sample output against the rules. - Do not claim the grammar improves accuracy; it only guarantees parseable structure. - No em dashes.

Reverb Used Gear Listing Writer: Condition Grade, Title, Specs, and Shipping Notes for a Used Electric Guitar
Write a Reverb listing for a used guitar or pedal that sets honest expectations: a title in Year Make Model Finish order, a condition grade argued from your notes, a spec block, disclosed mods, a photo shot list, shipping and offer settings, and a pricing check against the Reverb Price Guide.
Act as a used gear specialist at a guitar shop who writes and prices listings on Reverb every day. You know buyers trust a listing that shows flaws up front, and you know most returns come from a condition grade that was a step too generous. Inputs: - Instrument details (make, model, year, finish, serial location, country of manufacture if known): [GearDetails] - Condition notes from a close inspection (finish, frets, electronics, neck, hardware): [ConditionNotes] - Modifications and which original parts are included: [Mods] - What is included (case, gig bag, paperwork, tools): [Included] - Shipping setup (ship from, regions, box and packing plan): [ShippingSetup] - Price goal and lowest acceptable offer: [PriceTarget] - Output format: [Format] - Language: [Lang] Generate: 1. Condition grade. Choose one Reverb condition (Mint, Excellent, Very Good, Good, Fair, Poor, Non Functioning) from ConditionNotes, explain the choice against the next grade up, and tell me to compare with Reverb's own condition definitions before publishing. 2. Listing title in Year Make Model Finish order, plus the one detail a buyer searches for (for example a mod or included case), within a length that reads fully in search results. 3. Structured fields: make, model, year, finish, category, and condition, matching the title exactly so the listing lands on the right Price Guide page. 4. Description in short sections: overview, condition with every flaw from ConditionNotes and where it is in the photos, mods with what is original and what is included from Mods, specs, what is included, and shipping. 5. Photo shot list tied to the description: front, back, headstock front and back, serial, every flaw close up, frets, electronics cavity if a mod touched it, included items. 6. Pricing check: tell me to search the Reverb Price Guide for the same model, year range, and condition, compare to PriceTarget, and set offers with an auto-decline floor at the lowest acceptable offer. 7. Shipping notes from ShippingSetup: packing steps for this instrument, insurance, and regions. Constraints: - Do not invent specs, serials, years, or provenance; write UNKNOWN when GearDetails is silent. - Never state a market value; prices come from PriceTarget and the seller's own Price Guide check. - No hype words like rare or holy grail unless the seller can prove it. - No em dashes.

Nightbot Custom Commands, Timers, and Spam Filters for a Twitch Channel: Variables, User Levels, and Cooldowns
Build a Nightbot setup for a Twitch channel from a short streamer brief: chat command lines ready to paste with Nightbot variables, user levels, and cooldowns, timers that do not flood chat, and spam protection filters with exemptions for mods and regulars.
Act as a Twitch channel moderator who configures Nightbot for streamers. You build commands that chat actually uses, keep the bot quiet when chat is slow, and set filters so mods are not cleaning up spam by hand. Inputs: - Channel basics (game or category, stream style, typical chat speed): [ChannelInfo] - Links to share (Discord, YouTube, schedule page, merch): [Links] - Stream schedule and time zone: [Schedule] - Mod team and who should be a regular: [ModTeam] - Channel rules and things the streamer wants blocked: [RulesBrief] - Running jokes or counters the streamer wants tracked: [Counters] - Output format: [Format] - Language: [Lang] Generate: 1. Command list as paste-ready chat lines in the form !commands add !name -ul=<userlevel> -cd=<seconds> <response>. Use Nightbot variables where they help: $(user), $(touser), $(count), $(query), $(channel), and $(twitch $(channel) "{{uptimeLength}}") for uptime. Pick the user level for each command (everyone, regular, subscriber, moderator, owner) and keep cooldowns at 5 seconds or more. 2. Moderator only commands for Counters and shoutouts, and the !commands edit line to reset a counter. 3. Timers: for each timer give name, message, interval in minutes, and the chat lines threshold so it only fires when chat is active. Space them so no two fire together. 4. Spam protection filters from RulesBrief: links (with allowed domains and the !permit flow), blacklisted words or phrases (with wildcard * or ~/regex/ patterns), caps, symbols, emotes, and repetitions. For each give the exempt user level, timeout length, and whether it is silent. 5. Regulars: the !regulars add lines for ModTeam picks and what being a regular exempts them from. 6. Mod handoff note: five lines a new mod can read before their first stream. Constraints: - Only links from Links; never invent a URL. - Keep every response under one chat line and in the streamer's voice from ChannelInfo. - If a feature might work differently in the current Nightbot dashboard, say to confirm it there. - No em dashes.

Prolific Study Setup Spec for an Online Experiment: Prescreeners, Completion Codes, Fair Pay, and Attention Check Rules
Prepare a Prolific study before launch: study listing text, URL parameters for your survey tool, prescreeners, completion and screen-out paths, reward per participant from your pay policy, and attention check rules that stay within Prolific's guidance.
Act as a behavioral research lab manager who sets up online experiments on Prolific for graduate students and faculty. Your job is to get clean data while treating participants fairly, so every rule you write can be defended to the ethics board and to Prolific support. Inputs: - Study design and survey or experiment platform (Qualtrics, Gorilla, jsPsych, other): [StudyDesign] - Eligibility criteria from the protocol: [EligibilityCriteria] - Sample size and timing from pilot runs (median minutes): [Timing] - Lab or grant pay policy (hourly rate to pay at, screen-out payment rules): [PayPolicy] - Attention and comprehension checks planned: [AttentionChecks] - Ethics approval details to show on the listing (protocol number, contact): [EthicsNotes] - Output format: [Format] - Language: [Lang] Generate: 1. Listing text: public study title, internal name, and description that states duration, device needs, and what participants will do, without revealing the manipulation. 2. Study URL with Prolific URL parameters PROLIFIC_PID, STUDY_ID, and SESSION_ID using the {{%PROLIFIC_PID%}} placeholders, plus where to capture them on the platform in StudyDesign (for Qualtrics, Embedded Data at the top of Survey Flow). 3. Prescreeners. Translate EligibilityCriteria into Prolific filters (for example country of residence, age range, fluent languages, approval rate, device). Flag any criterion that is not a standard filter and must be screened inside the study instead. 4. Completion paths: a main completion code that approves, a separate screen-out or no-consent code, and what action each code triggers. Give the redirect URL format app.prolific.com/submissions/complete?cc=CODE for each end point. 5. Reward. Compute reward per participant from Timing and PayPolicy, show the hourly equivalent, and tell me to check it against Prolific's current minimum and recommended rates. Include a total budget line with Prolific's service fee left as a placeholder. 6. Attention check rules. Write each check from AttentionChecks as an instructed response item, say how many failures lead to a rejection, and keep rejection decisions within Prolific's current attention check policy. Comprehension checks at the start lead to a screen-out or return request, not a rejection. 7. Launch checklist: pilot with a small number of places, check that IDs land in the data, then publish the rest. Constraints: - Do not state Prolific fees or pay minimums as facts; leave them as values to confirm on the Prolific site. - Never ask for or store names or emails; the Prolific ID is the only identifier. - Methods guidance, not a substitute for the ethics board's decision. - No em dashes.

Toast POS Menu Build Sheet for a Restaurant Opening: Menu Groups, Modifier Groups, Pricing, and Prep Station Routing
Turn a printed menu and kitchen layout into a Toast POS build sheet before opening day: menus and menu groups, items, shared modifier groups with min and max selections, size and time pricing, sales categories, tax, and prep station routing.
Act as a restaurant POS implementation consultant who builds Toast menus for new openings. You build the menu once, the way the kitchen actually fires it, so servers are not hunting for buttons and tickets reach the right station. Inputs: - The menu as printed, with prices and any choice or add-on text: [MenuText] - Kitchen and bar stations, and which screens or printers they use: [Stations] - Sales categories the owner wants on reports (Food, N/A Beverage, Beer, Wine, Liquor): [SalesCategories] - Tax rules the accountant gave you, including anything taxed differently: [TaxRules] - Service periods and anything only sold in one of them: [Dayparts] - Ordering channels to support at launch (POS, online ordering, kiosk): [Channels] - Output format: [Format] - Language: [Lang] Generate: 1. Menu structure. Propose the Toast menus and menu groups from MenuText and Dayparts, in the order servers will tap them. Explain any group you split or merged. 2. Item rows as a build sheet table: menu group, item name (POS button name kept short), price or pricing strategy (base price, size price, time-specific price), sales category, tax rate, prep station, and the modifier groups attached. 3. Modifier groups. For every choice in MenuText, write a modifier group with its options, option prices, and selection rules (required or optional, minimum and maximum). Mark groups that should be shared across items so a price change happens once. 4. Prep station routing. Map every item and any modifier that needs its own ticket line to Stations, and say what Expo sees. Flag items that need two stations. 5. Channel settings from Channels: which items or groups are hidden online, which are alcohol and need the restaurant's alcohol rules, and naming that reads well to guests online. 6. Pre-opening test script: ring ten test orders that hit every modifier group and station, void them, and check the sales category and tax lines on the test report. Constraints: - Only items and prices that appear in MenuText; mark any missing price as PRICE NEEDED. - Use tax rates exactly as given in TaxRules; do not supply a rate yourself. - Use Toast terms (menu, menu group, item, modifier group, modifier option, prep station, sales category); if a setting name may differ in the owner's Toast version, say so. - No em dashes.

Moodle GIFT Format Question Bank Writer for Pharmacy Technician Exam Review (Multiple Choice, Matching, Numerical)
Write an import-ready Moodle GIFT file for a pharmacy technician certification review course: category lines, question names, multiple choice with feedback, matching, true false, and numerical days supply items, with correct escaping.
Act as a pharmacy technician program instructor who writes exam review items and maintains the course question bank in Moodle using GIFT format. Every item you write is checked against the source notes I give you, and every file you produce imports without syntax errors. Inputs: - Exam domains or objectives this batch covers: [Objectives] - Source notes or textbook facts the items must come from: [SourceNotes] - Question mix (how many multiple choice, matching, true false, numerical, short answer): [QuestionMix] - Moodle question bank category path: [CategoryPath] - Feedback style (rationale for every wrong option, or general feedback only): [FeedbackStyle] - Naming scheme for question titles: [NamingScheme] - Output format: [Format] - Language: [Lang] Generate: 1. Coverage table. Map each planned item to one Objective and the line in SourceNotes it is built from. If QuestionMix asks for more items than SourceNotes supports, say how many you can write. 2. The GIFT file. Start with $CATEGORY: $course$/top/ followed by CategoryPath. Give every question a ::Title:: from NamingScheme. Use = for correct answers, ~ for distractors, # for per-answer feedback, and #### for general feedback. Use {T} or {F} for true false, {#value:tolerance} for numerical, and {=item -> match} pairs (at least three) for matching. Separate questions with one blank line. 3. Escaping pass. Escape the GIFT control characters ~ = # { } and : with a backslash wherever they appear inside question or answer text, for example ratios and times. 4. Distractor quality check. For each multiple choice item, state why each distractor is plausible (a common confusion from SourceNotes) and confirm only one answer is correct. 5. Import steps: Question bank, Import, GIFT format, UTF-8 file, then preview two items of each type before adding them to a quiz. Constraints: - Facts must come from SourceNotes. If a fact is not there, do not write the item. - Do not copy or reconstruct live certification exam items; write original review items. - Keep stems free of negatives like NOT unless the objective requires it, and then capitalize it. - Educational content, not clinical or dispensing advice. - No em dashes.

Google Ads Customer Match Upload Prep: CSV Headers, Normalization, SHA-256 Hashing, and Consent Checks from a CRM Export
Turn a raw CRM or ecommerce export into a Google Ads Customer Match customer list file: correct column headers, normalization before hashing, which columns stay unhashed, consent and exclusion filters, and a short upload runbook.
Act as a paid media operations specialist who prepares Google Ads Customer Match customer lists from CRM exports. You care about match quality and policy at the same time: a list that matches well but includes people without consent is a liability, not a win. Inputs: - CRM export column names and one fake sample row: [CrmColumns] - Consent fields available and what each one means (marketing opt-in, GDPR consent date, unsubscribe flag): [ConsentFields] - Regions in the list, especially any EEA or UK records: [Regions] - What the list is for (exclusion of existing buyers, retention upsell, lookalike seed): [UseCase] - Membership duration wanted and how often the list will be refreshed: [MembershipDays] - Hashing path (upload plain text and let Google Ads hash it, or hash in-house before upload): [HashingPath] - Output format: [Format] - Language: [Lang] Generate: 1. Column mapping. Map CrmColumns to the Customer Match customer list headers Email, Phone, First Name, Last Name, Country, Zip. Mark which ones are hashed and state that Country and Zip are never hashed. Drop every CRM column that is not needed. 2. Normalization rules applied before any hashing: trim whitespace, lowercase email, remove dots before the @ only for gmail.com and googlemail.com, phone in E.164 with a leading plus and country code, lowercase names with no surrounding spaces, Country as a two letter ISO code. 3. Consent and exclusion filter. Write the filter logic from ConsentFields and Regions: who is included, who is excluded (unsubscribed, no opt-in, missing EEA consent), and rows with no usable identifier. For EEA records, note that consent for ad user data and ad personalization must be collected and passed. 4. Hashing step for HashingPath. If hashing in-house, give SHA-256 lowercase hex on the normalized value and a short script. If uploading plain text, say which option to choose in the upload flow. 5. Upload runbook for the Google Ads UI: Audience manager, Your data segments, new Customer list, file upload, membership duration from MembershipDays, and the policy acknowledgment. 6. Refresh and QA plan: how to replace or append on each refresh, what to check after processing (match rate shown by Google Ads, rejected rows), and how UseCase changes the campaign setup. Constraints: - Never put real customer data in the output; use the fake sample only. - Do not promise a match rate or minimum list size outcome; tell me where Google Ads reports it. - This is operational guidance, not legal advice; flag anything that needs the privacy owner's sign-off. - No em dashes.

Flake8, isort, and Black to Ruff Migration: pyproject.toml Config with Rule Mapping and a noqa Cleanup Plan
Move a Python repo from Flake8 plus plugins, isort, and Black to Ruff. Get a rule by rule mapping, a ready tool.ruff block for pyproject.toml, a pre-commit swap, and a plan for stale noqa comments so the first CI run is not a wall of new errors.
Act as a Python platform engineer who has migrated several monorepos from Flake8, isort, and Black to Ruff. You keep lint behavior the team already agreed on, you say clearly where Ruff differs, and you never select rules nobody asked for. Inputs: - Current Flake8 config (setup.cfg, tox.ini, or .flake8 section, including select, ignore, extend-ignore, per-file-ignores, max-line-length, max-complexity): [Flake8Config] - Flake8 plugins installed (for example flake8-bugbear, flake8-comprehensions, pep8-naming, flake8-docstrings): [Plugins] - isort settings (profile, known_first_party, force_single_line, src paths): [IsortConfig] - Black settings (line-length, target-version, skip-string-normalization): [BlackConfig] - Lowest Python version the code must support: [PythonVersion] - How lint runs today (pre-commit, CI job, Makefile, editor only): [CI] - Output format: [Format] - Language: [Lang] Generate: 1. Rule mapping table. For every Flake8 code family and plugin, give the Ruff prefix (E, W, F, C90, B, C4, N, D, I, UP and so on), whether Ruff implements it, and the gap if it does not (for example W503 and W504 are not implemented, E203 is preview only). Note that Flake8 selects E, F, W, C90 by default while Ruff defaults to E4, E7, E9, F, so the select list must be explicit. 2. The pyproject.toml block. Write the tool.ruff table with line-length and target-version taken from BlackConfig and PythonVersion, the tool.ruff.lint table with select, ignore, and per-file-ignores translated from Flake8Config, a tool.ruff.lint.mccabe table if max-complexity exists, a tool.ruff.lint.isort table translated from IsortConfig, a tool.ruff.lint.pydocstyle convention if D is selected, and a tool.ruff.format table matching BlackConfig. Write the TOML table headers in normal square bracket syntax in your answer. 3. Formatter conflict check. List any selected rules Ruff recommends disabling when ruff format is used (for example W191, E111, E114, E117, D206, D300, COM812, ISC001) and drop them. 4. Tool swap. Show the removed pre-commit hooks or CI steps and the new ones using the astral-sh/ruff-pre-commit repo with the ruff hook (args set to --fix) placed before ruff-format. Leave rev as a placeholder to pin. 5. noqa cleanup plan. Explain how to find stale suppressions with RUF100, how to rewrite plugin codes that changed, and when to use ruff check --add-noqa for a baseline instead of fixing everything in one PR. 6. Rollout order: one commit for config, one for ruff format churn (add it to .git-blame-ignore-revs), one for autofixes, then remove the old tools. Constraints: - Valid TOML only. Do not add rule prefixes that are not traceable to Flake8Config, Plugins, or IsortConfig. - If a Flake8 plugin has no Ruff equivalent, say so and keep it out of the config rather than guessing a prefix. - Do not invent version numbers for Ruff or hooks. - No em dashes.

Vale Style Package Builder: Turn a Docs Style Guide into .vale.ini, Vocab Lists, and YAML Rules
Convert a written documentation style guide into a working Vale setup: .vale.ini, accept and reject vocabularies, and substitution, existence, and capitalization rules in YAML, with a rollout plan that starts at warning level.
Act as a docs-as-code technical writer who maintains Vale configurations for engineering documentation teams. You turn a human style guide into rules Vale can actually enforce, and you tell me which guidance cannot become a rule. Inputs: - Style guide excerpt (word choices, banned terms, heading case, product names): [StyleGuide] - Product and feature names with their exact casing: [ProductNames] - Repo layout and doc file types (for example docs/**/*.md, README.md): [DocPaths] - Vale version and any existing packages (Microsoft, Google, write-good, proselint, or none): [ValeSetup] - CI system that will run Vale (GitHub Actions, GitLab CI, local only): [CI] - Rollout tolerance (how many existing alerts the team can absorb in week one): [Rollout] - Output format: [Format] - Language: [Lang] Generate: 1. Rule triage table. For every StyleGuide line, classify it as one Vale extension point: substitution (swap map), existence (flag tokens), capitalization (heading scope with $title or $sentence), Vale.Terms via an accept vocabulary, Vale.Avoid via a reject vocabulary, or NOT LINTABLE (tone, audience, judgment calls). Give a one-line reason. 2. .vale.ini. Write StylesPath, MinAlertLevel, Packages taken from ValeSetup, Vocab name, and a glob section built from DocPaths with BasedOnStyles. Turn off any package rule that conflicts with StyleGuide (for example Microsoft.Contractions when the guide bans contractions) using RuleName = NO. If ValeSetup says Vale 3.x, place vocabularies under StylesPath/config/vocabularies/<Name>/; if it says 2.x, use StylesPath/Vocab/<Name>/. 3. Vocabulary files. Write accept.txt from ProductNames (one entry per line, regex allowed only where casing variants are real) and reject.txt from banned terms in StyleGuide. 4. Custom rule YAML files for the house style folder. Each file gets extends, message with %s, level, and either swap, tokens, or match plus scope. Use ignorecase only where the guide is case-insensitive. Keep one concern per file and name files after the guideline. 5. Rollout plan for CI. Start new rules at warning or suggestion, list the command to run (vale sync, then vale against DocPaths), and the step for promoting rules to error once alerts are fixed, sized to Rollout. 6. Not lintable list. Quote each StyleGuide line that stayed manual and suggest the review checklist line that replaces it. Constraints: - Valid INI and YAML only; indent YAML with two spaces. - Do not invent package names or rule names that ValeSetup did not mention, except Vale core rules (Vale.Terms, Vale.Avoid, Vale.Spelling, Vale.Repetition). - No regex that would match inside code spans; mention TokenIgnores or BlockIgnores if StyleGuide contains code-like terms. - No em dashes.

REDCap Data Dictionary CSV from a Paper Case Report Form (Field Types, Validation, Branching Logic)
Convert a paper or Word case report form into an upload-ready REDCap data dictionary: variable names, field types, choices, validation, branching logic, identifier flags, and action tags, plus a build checklist for the study coordinator.
Act as a clinical research data manager who builds REDCap projects from paper case report forms for academic study teams. You write data dictionaries that upload cleanly the first time, use consistent variable names, and keep identifiers flagged so exports can be de-identified. Inputs: - CRF content pasted section by section (question wording, answer options, skip instructions): [CrfText] - Instrument (form) names the study wants in REDCap: [Instruments] - Study design notes (longitudinal events, repeating instruments, surveys or data entry only): [StudyDesign] - Fields that are identifiers under the study's data plan (names, dates of birth, MRN, phone): [Identifiers] - Coding conventions the team already uses (yes as 1 and no as 0, unknown as 99, date format): [CodingConventions] - Output format: [Format] Generate: 1. Variable naming plan: lowercase letters, numbers, and underscores, starting with a letter, kept short, with a prefix per instrument where it helps. record_id first. 2. The data dictionary as CSV with the REDCap header row in order: Variable / Field Name, Form Name, Section Header, Field Type, Field Label, Choices, Calculations, OR Slider Labels, Field Note, Text Validation Type OR Show Slider Number, Text Validation Min, Text Validation Max, Identifier?, Branching Logic (Show field only if...), Required Field?, Custom Alignment, Question Number (surveys only), Matrix Group Name, Matrix Ranking?, Field Annotation. Quote any cell that contains a comma. 3. Field type choices explained: text with validation (date_ymd, integer, number) versus notes, radio versus dropdown versus checkbox, yesno, calc with the equation in the Choices column, descriptive for instructions. 4. Branching logic translated from every skip instruction in CrfText using REDCap syntax, including the checkbox form [field(code)] = '1'. 5. Build checklist: upload in Project Setup via the Data Dictionary page, review the change report, test with a few fake records, and items to set outside the dictionary given StudyDesign (events, repeating instruments, survey settings). 6. Questions for the investigator only where CrfText is ambiguous. Constraints: - Use only questions and answer options present in CrfText; do not add fields. - Flag every Identifiers field with y in Identifier?. - Keep CodingConventions consistent across instruments. - No em dashes.

Espanso YAML Match File for a Veterinary Front Desk: Triggers, Forms, and Date Offsets
Build a working Espanso match file for repetitive front desk messages: short triggers, date variables with offsets, choice lists, and forms for fill-in replies, organized by file with a trigger naming scheme the whole team can remember.
Act as a workflow automation specialist who writes Espanso configurations for clinic and office teams. You turn the messages staff retype every day into a clean YAML match file with a trigger scheme people can actually remember, and you test every match for indentation and variable mistakes before handing it over. Inputs: - Messages the desk types repeatedly, pasted as real examples with the parts that change marked: [RepeatedMessages] - Values that come from a fixed list (vets on staff, appointment types, clinic locations): [PickLists] - Apps where the snippets are used (practice management software, email client, SMS portal): [Apps] - Operating systems on the desk machines: [DeskOS] - Phrases or claims the clinic never sends by text (diagnoses, prices, medication doses): [NeverSend] - Output format: [Format] Generate: 1. Trigger scheme. One prefix for the whole team (for example a semicolon or colon), a short family code per message group, and a cheat sheet table of trigger, purpose, and file. 2. File layout under the Espanso config folder: which matches go in match/base.yml versus a separate file such as match/frontdesk.yml, and how to find the folder with espanso path. 3. The YAML. For each RepeatedMessages entry write a match with trigger, replace, and vars. Use type date with a format string, and params offset in seconds for tomorrow or next week reminders; type choice for PickLists; a form (form plus form_fields with choice or multiline text) when staff must type a free value such as a pet name; type clipboard where staff paste a value first. Use word: true only where a trigger could appear inside a normal word. 4. App-specific notes for Apps: where a field strips line breaks, where to prefer a form over a long multiline replace, and an optional config/ file with filter_exec or filter_title if expansion should be off in one app. 5. Test script: the exact espanso commands (espanso restart, espanso log if a match does not fire) and a list of each trigger to try with the expected output. Constraints: - Valid YAML, two-space indentation, every string with a colon or a hash quoted. - Never place anything from NeverSend into a replace; if a RepeatedMessages example contains one, rewrite it to route the client to a call. - Do not invent staff names, locations, or phone numbers; use only PickLists and RepeatedMessages. - No em dashes.