{"type":"data","nodes":[{"type":"data","data":[{"lab":1,"legalFooterLinks":37},{"identity":2,"contacts":13,"office_hours":30,"web":32,"languages":34,"locale":36},{"name":3,"short_name":4,"description":5,"organisation":6,"organisation_url":7,"organisation_logo":8,"university":9,"university_url":10,"university_logo":11,"established":12},"Human-Centered Intelligent Systems Lab","HCIS Lab","We are shaping the future of automotive technology through intelligent systems that seamlessly integrate human needs with cutting-edge AI innovation.","AImotion Bavaria","https://www.thi.de/forschung/aimotion/","/content/lab/aimotion-bavaria.png","Ingolstadt University of Applied Sciences","https://www.thi.de/","/content/lab/thi.png",2025,{"addresses":14,"emails":21,"phones":24,"primary_type":16,"primary_email":23,"emailsByType":27,"addressesByType":28,"phonesByType":29},[15],{"type":16,"title":9,"street":17,"city":18,"postal_code":19,"country":20},"office","Esplanade 10","Ingolstadt","85049","Germany",[22],{"type":16,"email":23},"hcis@thi.de",[25],{"type":16,"number":26},"+49 841 9348 0",{"office":23},{"office":15},{"office":26},{"days":31,"timezone":-1},{},{"social":33},{},["Set",35,36],"DE","EN",[38,42,47],{"slug":39,"name":40,"label":40,"href":41},"datenschutzerklaerung","Datenschutzerklärung","/legal/privacy/datenschutzerklaerung",{"slug":43,"name":44,"label":45,"href":46},"barrierefreiheitserklaerung","Erklärung zur Barrierefreiheit","Barrierefreiheit","/legal/accessibility/barrierefreiheitserklaerung",{"slug":48,"name":49,"label":49,"href":50},"impressum","Impressum","/legal/impressum"],"uses":{}},{"type":"data","data":[{"post":1,"authors":28,"externalAuthors":7},{"slug":2,"title":3,"subtitle":4,"authors":5,"external_authors":7,"tags":9,"category":14,"description":15,"cover":16,"attachments":17,"updatedAt":24,"publishedAt":25,"isPublished":26,"html":27},"prompt-patterns-we-actually-use","Prompt Patterns We Actually Use","From chaos to clarity: how structured prompting evolved in our daily workflows",[6],"tugcan-onbas",[8],"Lina Hoffmann",[10,11,12,13],"AI","Prompt Engineering","LLM Research","UX Writing","Research Diary","A deep dive into the practical prompt patterns used in our lab — the real ones that survive daily iteration, debugging, and deployment.","/content/news/prompt-patterns-we-actually-use/cover.png",[18,21],{"label":19,"url":20},"PDF version","/blog/prompt-patterns-we-actually-use/post.pdf",{"label":22,"url":23},"Slide deck","https://example.com/slides","2025-11-11","2025-11-15",true,"\u003Ch2 id=\"introduction\">\u003Ca href=\"#introduction\">Introduction\u003C/a>\u003C/h2>\n\u003Cp>We’ve written thousands of prompts — some elegant, some embarrassing. Over time, patterns emerge.\u003Cbr>\nThis post collects \u003Cstrong>real prompt patterns\u003C/strong> we use across our research projects, UX workflows, and development pipelines.\u003C/p>\n\u003Cblockquote>\n\u003Cp>\u003Cem>“Prompt engineering is not an art of magic — it’s an art of maintenance.”\u003C/em>\u003Cbr>\n— A very tired developer\u003C/p>\n\u003C/blockquote>\n\u003Cp>Our \u003Ca href=\"/research/projects/budget-app\" target=\"_self\">Emotion Agent\u003C/a> project heavily relies on LLMs for generating user scenarios, analyzing multimodal data, and drafting research reports. Through trial and error, we distilled several prompt patterns that consistently yield reliable results.\u003C/p>\n\u003Cp>Now it’s time to share this \u003Ca href=\"/research/publications/accessibility-hci25\" target=\"_self\">Beyond Checklists: Pragmatic Accessibility in HCI Curricula\u003C/a> paper with you and document how we structure our prompts for maximum clarity and repeatability.\u003C/p>\n\u003Cp>While this is thought on \u003Ca href=\"/teaching/offerings/data-visualization\" target=\"_self\">our prompting workshop\u003C/a>, consider this a living document. We’ll update it as we refine our techniques. And here’s a thesis diving deeper into prompt engineering best practices. Thanks to \u003Ca href=\"/team/monika-szuban\" target=\"_self\">Monika Szuban\u003C/a> for co-authoring this post!\u003C/p>\n\u003Cp>Dive deeper in \u003Ca href=\"/news/swiftui-prototyping-tips\" target=\"_self\">SwiftUI Prototyping Tips for Researchers\u003C/a>.\u003C/p>\n\u003Chr>\n\u003Ch2 id=\"1-the-instructional-stack\">\u003Ca href=\"#1-the-instructional-stack\">1. The Instructional Stack\u003C/a>\u003C/h2>\n\u003Cp>We layer our prompts like lasagna: context first, task next, then constraints.\u003C/p>\n\u003Cpre>\u003Ccode class=\"language-text\">SYSTEM: You are an expert UX researcher writing a comparative analysis.\r\nUSER: Compare the interaction models of autonomous shuttles in our dataset.\r\nCONSTRAINTS: Use concise academic tone, include a summary table, cite 2 sources.\n\u003C/code>\u003C/pre>\n\u003Cp>Here’s my personal \u003Ca href=\"https://tugcanonbas.com\" rel=\"noopener noreferrer\" target=\"_blank\">as tugcanonbas.com\u003C/a>:\u003C/p>\n\u003Cp>Why it works:\u003C/p>\n\u003Cul>\n\u003Cli>\u003Cstrong>Context primes the model\u003C/strong> without overloading.\u003C/li>\n\u003Cli>\u003Cstrong>Constraints anchor\u003C/strong> creativity.\u003C/li>\n\u003Cli>\u003Cstrong>Explicit task type\u003C/strong> prevents drift.\u003C/li>\n\u003C/ul>\n\u003Chr>\n\u003Ch2 id=\"2-the-sandwich-pattern\">\u003Ca href=\"#2-the-sandwich-pattern\">2. The Sandwich Pattern\u003C/a>\u003C/h2>\n\u003Cp>When collaborating with LLMs, we use the \u003Cstrong>sandwich\u003C/strong>:\u003Cbr>\ncontext → task → output structure → tone reminder.\u003C/p>\n\u003Cpre>\u003Ccode class=\"language-json\">{\r\n\t\"context\": \"Research project: Emotion-Aware Driver Agent\",\r\n\t\"task\": \"Write user story\",\r\n\t\"output_format\": \"Markdown\",\r\n\t\"tone\": \"Human-centered and data-informed\"\r\n}\n\u003C/code>\u003C/pre>\n\u003Cp>This pattern works wonders in SvelteKit or SwiftUI documentation generation.\u003C/p>\n\u003Chr>\n\u003Ch2 id=\"3-self-check-loop\">\u003Ca href=\"#3-self-check-loop\">3. Self-Check Loop\u003C/a>\u003C/h2>\n\u003Cp>We make the model critique itself before we trust it.\u003C/p>\n\u003Cpre>\u003Ccode class=\"language-markdown\">### Step 1 — Generate\r\n\r\nCreate 3 hypotheses for driver emotion classification errors.\r\n\r\n### Step 2 — Evaluate\r\n\r\nFor each, add a confidence score (0–1) and a rationale.\r\n\r\n### Step 3 — Reflect\r\n\r\nPick the most plausible hypothesis and rephrase it as a design insight.\n\u003C/code>\u003C/pre>\n\u003Cp>This “self-loop” style produces near peer-review–ready insights.\u003C/p>\n\u003Chr>\n\u003Ch2 id=\"4-output-scaffolding\">\u003Ca href=\"#4-output-scaffolding\">4. Output Scaffolding\u003C/a>\u003C/h2>\n\u003Cp>When generating structured content like YAML, we \u003Cstrong>predefine the schema\u003C/strong> in the prompt:\u003C/p>\n\u003Cpre>\u003Ccode class=\"language-yaml\"># Schema\r\ntitle: string\r\nsummary: string\r\ntakeaways: [string]\r\nreferences: [string]\n\u003C/code>\u003C/pre>\n\u003Cp>Then we ask:\u003C/p>\n\u003Cblockquote>\n\u003Cp>“Fill the schema with insights from our last driving study.”\u003C/p>\n\u003C/blockquote>\n\u003Cp>The result stays valid and ready for version control.\u003C/p>\n\u003Chr>\n\u003Ch2 id=\"5-the-critique--rewrite-pattern\">\u003Ca href=\"#5-the-critique--rewrite-pattern\">5. The “Critique + Rewrite” Pattern\u003C/a>\u003C/h2>\n\u003Cp>Used for academic drafts and UX copy reviews.\u003C/p>\n\u003Cblockquote>\n\u003Cp>You are a senior editor.\u003C/p>\n\u003Col>\n\u003Cli>Critique the following text in 3 bullet points.\u003C/li>\n\u003Cli>Then rewrite it for clarity and flow.\u003C/li>\n\u003C/ol>\n\u003C/blockquote>\n\u003Cp>This ensures we keep both diagnostic and prescriptive outputs.\u003C/p>\n\u003Chr>\n\u003Ch2 id=\"6-the-simulation-prompt\">\u003Ca href=\"#6-the-simulation-prompt\">6. The Simulation Prompt\u003C/a>\u003C/h2>\n\u003Cp>We simulate human behavior for multimodal systems.\u003Cbr>\nIt’s structured like a screenplay:\u003C/p>\n\u003Cpre>\u003Ccode class=\"language-text\">ROLE: Driver\r\nCONTEXT: Rainy day, low visibility\r\nEMOTION: Frustrated\r\nACTION: Misses a traffic sign and sighs\r\nRESPONSE (System): Gentle haptic vibration + calming voice cue\n\u003C/code>\u003C/pre>\n\u003Cp>Such pseudo-scripts drive data augmentation for Emotion Agent.\u003C/p>\n\u003Chr>\n\u003Ch2 id=\"7-the-ifthen-meta-prompt\">\u003Ca href=\"#7-the-ifthen-meta-prompt\">7. The “If–Then” Meta Prompt\u003C/a>\u003C/h2>\n\u003Cp>Meta prompts guide smaller prompts dynamically.\u003C/p>\n\u003Cpre>\u003Ccode class=\"language-python\">if \"data\" in user_task:\r\n    model_role = \"data analyst\"\r\nelif \"design\" in user_task:\r\n    model_role = \"UX designer\"\r\nelse:\r\n    model_role = \"general assistant\"\n\u003C/code>\u003C/pre>\n\u003Cp>We embed this logic in our internal LLM orchestrator to match tone and expertise per task.\u003C/p>\n\u003Chr>\n\u003Ch2 id=\"8-the-context-memory-trick\">\u003Ca href=\"#8-the-context-memory-trick\">8. The Context Memory Trick\u003C/a>\u003C/h2>\n\u003Cp>LLMs forget easily. To maintain continuity:\u003C/p>\n\u003Cblockquote>\n\u003Cp>“You are continuing from the previous session. Recall our last summary on multimodal input fusion. Do not reintroduce context; build upon it.”\u003C/p>\n\u003C/blockquote>\n\u003Cp>This mimics working memory — essential in iterative design reviews.\u003C/p>\n\u003Chr>\n\u003Ch2 id=\"9-tables-lists-and-checkboxes\">\u003Ca href=\"#9-tables-lists-and-checkboxes\">9. Tables, Lists, and Checkboxes\u003C/a>\u003C/h2>\n\u003Cp>Even in conversational design, structure improves reasoning.\u003C/p>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>Pattern\u003C/th>\n\u003Cth>Used For\u003C/th>\n\u003Cth>Example Output\u003C/th>\n\u003C/tr>\n\u003C/thead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd>Table\u003C/td>\n\u003Ctd>Comparative summaries\u003C/td>\n\u003Ctd>Emotion model metrics\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>Checklist\u003C/td>\n\u003Ctd>Task breakdowns\u003C/td>\n\u003Ctd>✅ Collect data ✅ Preprocess ✅ Train\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>List\u003C/td>\n\u003Ctd>Brainstorming\u003C/td>\n\u003Ctd>1. Audio cues 2. Haptic responses\u003C/td>\n\u003C/tr>\n\u003C/tbody>\n\u003C/table>\n\u003Chr>\n\u003Ch2 id=\"10-embedding-references\">\u003Ca href=\"#10-embedding-references\">10. Embedding References\u003C/a>\u003C/h2>\n\u003Cp>We often reference connected projects directly in text:\u003C/p>\n\u003Cblockquote>\n\u003Cp>Our iterative prompting approach evolved from our 2024 CHI paper, later tested in Emotion Agent.\u003Cbr>\nFurther teaching materials appear in prompting-ws25.\u003C/p>\n\u003C/blockquote>\n\u003Chr>\n\u003Ch2 id=\"example-image\">\u003Ca href=\"#example-image\">Example Image\u003C/a>\u003C/h2>\n\u003Cp>\u003Cimg src=\"/_app/immutable/assets/diagram.kostgB6-.png\" alt=\"Prompt evolution diagram\" width=\"1376\" height=\"786\" loading=\"lazy\" decoding=\"async\">\r\n\u003Cem>Figure 1: Prompt structures evolving over time.\u003C/em>\u003C/p>\n\u003Cp>\u003Cimg src=\"/_app/immutable/assets/default-profile.BX96yRDd.png\" alt=\"Default Profile Image\" width=\"1024\" height=\"1024\" loading=\"lazy\" decoding=\"async\">\r\n\u003Cem>Figure 2: Relative path.\u003C/em>\u003C/p>\n\u003Cp>\u003Cimg src=\"/_app/immutable/assets/cover.C8PKuPSV.png\" alt=\"Prompt engineering workflow\" width=\"1670\" height=\"1238\" loading=\"lazy\" decoding=\"async\">\r\n\u003Cem>Figure 3: Relative path.\u003C/em>\u003C/p>\n\u003Chr>\n\u003Ch2 id=\"footnotes\">\u003Ca href=\"#footnotes\">Footnotes\u003C/a>\u003C/h2>\n\u003Col>\n\u003Cli>Prompt failure rate decreases ~40% after introducing schema-based output.\u003C/li>\n\u003Cli>Using meta-prompts for reflection yields 1.6× higher factual consistency.\u003C/li>\n\u003C/ol>\n\u003Chr>\n\u003Ch2 id=\"conclusion\">\u003Ca href=\"#conclusion\">Conclusion\u003C/a>\u003C/h2>\n\u003Cp>The best prompts are not clever — they are \u003Cstrong>repeatable\u003C/strong>.\u003Cbr>\nWe’ve learned that \u003Cstrong>structure beats intuition\u003C/strong> and \u003Cstrong>clarity scales better than creativity\u003C/strong>.\u003C/p>\n\u003Cp>When your prompts start reading like documentation, that’s when you know you’re doing it right.\u003C/p>\n\u003Chr>\n\u003Ch3 id=\"resources\">\u003Ca href=\"#resources\">Resources\u003C/a>\u003C/h3>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https://www.promptingguide.ai\" rel=\"noopener noreferrer\" target=\"_blank\">Prompt Engineering Guide\u003C/a>\u003C/li>\n\u003Cli>\u003Ca href=\"https://www.anthropic.com/prompt-library\" rel=\"noopener noreferrer\" target=\"_blank\">Anthropic Prompt Library\u003C/a>\u003C/li>\n\u003Cli>\u003Ca href=\"https://github.com/openai/openai-cookbook\" rel=\"noopener noreferrer\" target=\"_blank\">OpenAI Cookbook\u003C/a>\u003C/li>\n\u003C/ul>\n\u003Chr>\n\u003Cblockquote>\n\u003Cp>\u003Cem>“The goal isn’t to write perfect prompts. It’s to build systems that don’t need perfect prompts.”\u003C/em>\u003C/p>\n\u003C/blockquote>\n\u003Chr>",[29],{"slug":6,"firstname":30,"lastname":31,"email":32,"role":33,"quote":34,"image":35,"interests":36,"skills":37,"social":46,"updatedAt":50,"isPublished":26,"html":51},"Tuğcan","ÖNBAŞ","tugcan.oenbas@thi.de","UXD / AI","Fusing creativity and technology to design experiences that bridge imagination and intelligent systems.","/content/people/tugcan-onbas/profile.png",[],[38,39,40,41,42,43,44,45],"Human–Computer Interaction (HCI)","Human-Centered & AI-Driven Experience Design","Multimodal Interaction","User Experience Research","Experience Engineering","Interactive Systems Prototyping & Development","Data-Driven Interaction Design","Applied Research Communication",{"website":47,"github":48,"linkedin":49},"https://tugcanonbas.com","https://github.com/tugcanonbas","https://www.linkedin.com/in/tugcanonbas","2025-10-31","\u003Cp>Tuğcan ÖNBAŞ is a student assistant in the Human-Centered Intelligent Systems at Ingolstadt University of Applied Sciences (THI), where he is pursuing a Master’s degree in User Experience Design with a focus on the intersection of design, technology, and intelligent systems within mobility and automotive contexts.\u003C/p>\n\u003Cp>His portfolio includes a range of independent engagements—from iOS and web apps to design systems and Swift packages—bridging software engineering with visual communication. This experience informs his research in human–AI interaction, where he integrates design reasoning with technical experimentation to explore how intelligent systems can support intuitive, transparent interactions across diverse digital domains.\u003C/p>\n\u003Cp>His academic work explores human-centered AI across mobility, intelligent systems, and digital experience design, focusing on how AI-driven technologies can enhance interaction, perception, and engagement in both physical and digital contexts. His research interests include multimodal interaction, affect-sensitive interfaces, and the integration of large language models into user experience, emphasizing clarity, contextual awareness, and the creation of meaningful, adaptive systems that advance human-centered innovation.\u003C/p>"],"uses":{"params":["slug"]}}]}
