Prompts as Engineering Artifacts
Module 1-এ শিখেছো LLM ভেতরে কী করে। আজ থেকে Module 2 — এখন শিখবে prompt আসলে কী: magic spell না, engineering artifact। Version করা যায়, test করা যায়, মাপা যায়, iterate করা যায়। রাফির complaint-categorizer দিয়ে পুরো flow — success criteria থেকে eval পর্যন্ত।
- •একটা বাক্য মুখস্থ বলতে পারা: “একটা prompt হলো software — version করা যায়, test করা যায়, মাপা যায়, iterate করা যায়।” এই mental shift-টাই Module 2-এর gateway।
- •prompt engineering-এর canonical ৫-ধাপ flowchart মনে রাখা: success criteria → test cases → preliminary prompt → iterate with measurement → ship।
- •Grading-এর ৩টা tier আলাদা করতে পারা — code-based, human, LLM-based — আর তার নিচে ৪টা assertion type (equals, contains, regex, llm-rubric) কখন কোনটা।
- •“Vibes-based iteration” vs “eval-based iteration”-এর পার্থক্য নিজের ভাষায় বলা — কেন প্রথমটায় regression লুকিয়ে থাকে।
- •Day 4-এর English vocabulary মুখে আসা — success criteria, baseline, regression, eval, assertion, rubric, pass rate, edge case — যাতে team meeting আর PR review-এ confident-ভাবে বলতে পারো।
- •Module 1 শেষ (Day 1–3) — token, embedding, attention-এর basic মাথায় আছে।
- •ChatGPT বা Claude-এ অন্তত কয়েকবার prompt পাঠানোর অভিজ্ঞতা।
- •আজ কোনো code লিখব না — কিন্তু একটা YAML eval config পড়ব। Coding background না থাকলেও চলবে।
The Big Picture
একটা prompt কীভাবে production-এ পৌঁছায় — একটা standard ৫-ধাপ loop দিয়ে শুরু।
Module 1-এর রাফিকে মনে আছে? একটা logistics কোম্পানির junior dev, যাকে ৩০০টা customer complaint category করতে বলা হয়েছিল। এবার ধরো রাফি একটা prompt লিখে ফেলেছে — ৩টা complaint-এ চালিয়ে দেখল, ঠিকঠাক লাগছে। Boss জিজ্ঞেস করল, “কতটা ভালো, আসলে?” রাফির কাছে কোনো সংখ্যা নেই — শুধু “ভালো লাগছে” একটা feeling। এই ফাঁকটাই আজকের lesson। আজ থেকে prompt লেখা মানে শুধু ভালো লেখা না — measure করে লেখা।
Prompts as softwarethe mental shift
Prompt কোনো magic spell না — engineering artifact। যেকোনো function-এর মতোই: version-এ থাকে, একটা কাজ আছে, test থাকে (eval), measurement-এর সাথে iterate হয়, PR-এ review হয়, production-এ ship হয়। আজকের পর থেকে “একবার লিখে ছেড়ে দিলাম” attitude বন্ধ। প্রতিটা serious prompt একটা ছোট module — যার নিজের lifecycle আছে।
Module 2-এর বাকি সব এই shift-এর ফল। Prompt structure, few-shot, structured output, CoT, eval harness — সব ধরে নেয় তুমি prompt-কে software ভাবছ। এটা না বুঝলে সামনের প্রতিটা lesson বিচ্ছিন্ন trick মনে হবে। ২০২৬-এ এটা আর metaphor না — “promptware engineering” রীতিমতো একটা গবেষণার নাম।
prompt engineering best-practice-এ একটা canonical ৫-ধাপ loop আছে — success criteria থেকে শুরু করে ship পর্যন্ত। নিচে এক এক ধাপ চেপে দেখো।
এই ৫টা box-এর প্রতিটার ভেতরে আরও কিছু concept আছে — success criteria আসলে কেমন দেখতে, test case কী দিয়ে বানে, edge case কেন জরুরি। পরের অংশে এক এক করে।
Core Concepts
Success criteria থেকে regression পর্যন্ত — prompt-কে software বানানোর ৭টা ধারণা।
Success criteria“done”-এর definition
Prompt লেখা শুরুর আগেই — “কাজ শেষ” মানে কী, সেটা মেপে লেখা। SMART: Specific (“accurate complaint categorization”), Measurable (৮৫%+ সঠিক label), Achievable (frontier model-এ বাস্তব), Relevant (তোমার আসল use case)। “Bot ভালো কাজ করবে” — too vague। “৩০০টা complaint-এর ৮৫%-এ সঠিক category” — কাজের। প্রায়ই একসাথে কয়েকটা মাত্রা লাগে — accuracy + latency + cost।
Vague criteria মানে vague evaluation মানে “vibes-এ ship করা।” যেসব AI product fail করে, তাদের প্রায় সবার এক মূল কারণ — robust evaluation system বানাতে না পারা। Criteria-ই সেই system-এর প্রথম ইট।
Test caseinput + expected output
একটা নির্দিষ্ট input + সেই input-এ যা output হওয়া উচিত। ১০–২০টা test case-এর একটা set = তোমার ground truth। Mix থাকা চাই — typical input (বেশিরভাগ user), edge case (কম আসে কিন্তু জরুরি), adversarial input (sarcasm, typo, খালি, খুব লম্বা)। YAML-জাতীয় eval tool এই test-গুলো এভাবেই লেখে।
canonical flowchart-টা test cases দিয়ে শুরু — preliminary prompt-এরও আগে। কারণ test না থাকলে prompt edit-এর কোনো feedback signal নেই — শুধু feeling। আর একটা মজার নিয়ম: “prioritize volume over quality” — ৫টা নিখুঁত hand-graded test-এর চেয়ে ২০টা rough automated test ভালো signal দেয়।
Test case লেখা হলে পরের প্রশ্ন — pass/fail কীভাবে ঠিক হবে? Grading-কে তিন tier-এ ভাগ করা যায় — code-based, human, LLM-based — fastest থেকে সবচেয়ে scalable পর্যন্ত order-এ। নিচের ৪টা assertion type ওই tier-এর ভেতরেই পড়ে। একটা ট্যাব বেছে দেখো — concrete example + কখন এটা সেরা choice।
Edge casethe rare but critical input
অস্বাভাবিক input যেটা production-এ আসবেই — খালি input, খুব লম্বা input, sarcastic tone, অন্য ভাষা, typo, “আসলে complaint-ই না” এমন message। Test set-এ এগুলো না থাকলে ৮০% pass দেখে “done” বলে ফেলবে — কিন্তু production-এ exactly এই ২০%-ই ভাঙবে। Edge case-গুলো বরং বেশি করে রাখো।
বেশিরভাগ prompt failure কোনো exotic জিনিসে না — boring edge case-এ। রাফির bot-এর সবচেয়ে বড় ফাঁদ “বাহ, দারুণ সার্ভিস!” — একটা sarcastic complaint, যেটা আসলে delivery_delay।
Baselinethe starting floor
প্রথম reasonable prompt-এর pass rate। সাধারণত ৫০–৭০%-এ থাকে। এটাই তোমার measurement floor — সব future change এই number-এর সাথে compare হবে। “v2-তে ৬১% থেকে ৮৬% হলো — improvement।” Baseline ছাড়া এই বাক্যটাই বলা যায় না।
Baseline না থাকলে team meeting-এ “আমি prompt improve করেছি” — এই দাবির পেছনে কোনো proof নেই। Pass rate before/after = যেকোনো AI team-এ PR review-এর standard মুদ্রা।
Regressionthe hidden danger
এমন change যেটা আগে-pass করা test fail করিয়ে দেয় — অর্থাৎ improvement ভেবে আসলে বিগড়ে দিলে। Eval ছাড়া regression অদৃশ্য — কারণ “কিছু একটা output” তো এসেছেই। Eval থাকলে report-এ লাল — “v4: pass rate ৮৬% → ৮০%” — তখন revert।
Software engineering-এর regression-এর মতোই। যেমন কোনো PR test fail করালে block হয় — তেমন prompt change eval fail করালে ship হবে না। “Prompts as software” বাস্তবে এটাই মানে।
Vibes vs evalsthe trap to avoid
“Vibes” — output পড়ে চোখে ভালো/খারাপ লাগা। “Evals” — মাপা pass rate, সংখ্যা। ফাঁদ: ছোট ছোট prompt change-এ vibes confidence দেয়, কিন্তু সংখ্যা উল্টোদিকে যায়। এই lesson-এর একটা round exactly তাই — চোখে “cleaner”, কিন্তু eval-এ pass rate নিচে। বড় scale-এ চোখ মিথ্যা বলে; সংখ্যা বলে না।
AI engineer হিসেবে তোমার সবচেয়ে দামি অভ্যাস এটাই — চোখে রায় দেওয়ার আগে eval চালাও। একবার শিখলে আর পেছনে ফিরবে না।
Versioning promptsgit for prompts
Prompt-গুলো `.txt`, `.md`, বা `.yaml` ফাইলে রেখে codebase-এর সাথে commit করা। তখন diff দেখা যায়, branch করা যায়, PR-এ review হয়, tag-এ release হয়। বাস্তব উদাহরণ — editor-জুড়ে চেনা project-instruction ফাইলের standard (যেমন `.cursorrules`, `AGENTS.md`)। ২০২৬-এর teams prompt-এর জন্যও dev/staging/prod environment রাখে — staging-এ eval pass করলে তবে prod-এ promote।
তিন সপ্তাহ পরের তুমি মনে রাখবে না কোন version-এ best pass rate ছিল। Git মনে রাখে। আর team-এর বাকিরা কী try করেছে — সেটাও history-তে দেখা যায়।
Try It Yourself
পড়া বন্ধ — রাফির complaint-categorizer দিয়ে নিজে eval পড়ো আর চালাও।
রাফির আসল data দিয়ে এবার হাতে-কলমে দেখা যাক — একটা real eval config কেমন দেখতে, আর দুটো prompt version পাশাপাশি চালালে সংখ্যা কী বলে।
উপরের run-টা ছিল দুটো prompt version-এর এক-দফা তুলনা। রাফির আসল iteration ৫ round গিয়েছিল — প্রতি round-এ vibes আর eval কী বলেছিল, পাশাপাশি দেখো।
Check Your Understanding
ভুল হলে সমস্যা নেই — প্রতিটার ব্যাখ্যা আছে।
আগে prompt লিখি, সময় থাকলে পরে test যোগ করব
Eval শুধু production-এর জন্য, আমি তো এখন experiment করছি
Playground-এ আমার prompt দারুণ লাগছে — done
Claude-কেই জিজ্ঞেস করি আমার prompt ভালো কিনা
LLM-as-judge reliable না — এড়িয়ে চলব
ছোট project-এ prompt version control overkill
৮০% pass rate মানে prompt done
best-practice অনুযায়ী prompt engineering শুরুর আগে তিনটা জিনিস থাকতে হয় — কোনগুলো?
ভুল হলেও সমস্যা নেই — প্রতিটা option-এর সাথে ব্যাখ্যা আছে।
রাফির complaint-categorizer (label আগে থেকেই নির্দিষ্ট) — সবচেয়ে fit assertion কোনটা?
ভুল হলেও সমস্যা নেই — প্রতিটা option-এর সাথে ব্যাখ্যা আছে।
Customer reply “empathetic” কিনা check করার সবচেয়ে practical assertion কোনটা?
ভুল হলেও সমস্যা নেই — প্রতিটা option-এর সাথে ব্যাখ্যা আছে।
Prompt-engineering vocabulary-তে “regression” মানে কী?
ভুল হলেও সমস্যা নেই — প্রতিটা option-এর সাথে ব্যাখ্যা আছে।
“Vibes-based iteration” কেন dangerous?
ভুল হলেও সমস্যা নেই — প্রতিটা option-এর সাথে ব্যাখ্যা আছে।
দুটোর মধ্যে কোনটা ভালো eval — eval design principle অনুযায়ী?
ভুল হলেও সমস্যা নেই — প্রতিটা option-এর সাথে ব্যাখ্যা আছে।
Prove It To Yourself
চারটা ধারণা মনে রাখো। নিজের ভাষায় লেখো। Day 4 শেষ।
চারটা ধারণা মনে রাখো — prompt কোনো magic spell না, engineering artifact; version করা যায়, test করা যায়, মাপা যায়, iterate করা যায়, review করা যায়, ship করা যায়। Test case আসে prompt লেখারও আগে — canonical flowchart-টা এটা দিয়েই শুরু, “good” মানে কী না জানলে prompt edit করা মানে অন্ধকারে ঢিল ছোঁড়া। Grading সবসময় সস্তা tier দিয়ে শুরু করো — code-based (equals/contains/regex) সবচেয়ে fast, না খাটলে তবেই llm-rubric; human grading যতটা সম্ভব এড়াও। আর শেষ কথা — সংখ্যা কখনো মিথ্যা বলে না, “cleaner লাগছে” বা “better মনে হচ্ছে” চুপচাপ regression ship করিয়ে দেয়; pass rate before/after-ই আসল সত্যি।
আজকের শব্দগুলো — success criteria, baseline, regression, eval, assertion, rubric, pass rate, edge case, test case, ground truth, iterate, version, ship — এখন থেকে English-ই থাকবে; team meeting, PR review, docs-এ এভাবেই দেখবে। কাল কেউ “baseline” বললে তুমি জানো সেটা কী। পুরো তালিকা নিচের glossary-তে।
শব্দার্থ — পরে ফিরে দেখার জন্য
একনজরে সব key term। কোনো শব্দ ভুলে গেলে এখানে এসে খুঁজে নিও।
- Assertion
- Test case-এর সাথে যুক্ত programmatic check — output পেয়ে নিজে নিজে pass/fail ঠিক করে।
- Baseline
- প্রথম reasonable prompt-এর pass rate। সব future change এর সাথে মাপা হয়।
- CI/CD
- Continuous Integration/Deployment — code (আর prompt) commit হওয়ার সাথে সাথে test auto-চালানো + deploy-এর pipeline।
- Code-based grading
- Output-এ সরাসরি প্রোগ্রাম চালিয়ে check (equals/contains/regex)। সবচেয়ে fast, reliable, scalable।
- Edge case
- অস্বাভাবিক input — খালি, খুব লম্বা, sarcastic, অন্য ভাষা। Eval set-এ ইচ্ছে করে রাখতে হয়।
- Eval / Evaluation
- Prompt-এর performance মাপার পদ্ধতি — test case + assertion চালিয়ে pass rate বের করা।
- Golden answer / Ground truth
- Test case-এর expected correct output — যার সাথে model-এর output মেলানো হয়।
- Held-out set
- যে test case দিয়ে iterate করোনি — final validation-এ চালানো হয়, overfitting এড়াতে।
- Iterate
- Prompt বদলে eval আবার চালানোর cycle। ১৫–৩০ মিনিটে এক round, কয়েক round পর criteria পূরণ।
- LLM-as-judge
- আরেকটা LLM-কে rubric দিয়ে output rate করানো। Subjective quality-র জন্য — code-assertion যেখানে খাটে না।
- Pass rate
- কত শতাংশ test case-এ assertion pass হলো। ৮০% pass = ২০% fail — সেগুলো দেখতে হবে।
- Prompt template
- Variable slot-যুক্ত prompt — যেমন `Categorize {{complaint}}`। Eval-এ একই template-এ আলাদা test case বসে।
- Regression
- আগে-pass করা test fail করিয়ে দেওয়া change। Eval ছাড়া অদৃশ্য।
- Rubric
- LLM-judge-কে দেওয়া detailed criteria — “Reply empathetic কিনা; concrete next step আছে কিনা।” Specific হলে judge consistent।
- Ship
- Final prompt version production-এ ছাড়া। Git tag + version note + deploy = ship।
- SMART criteria
- Specific, Measurable, Achievable, Relevant — success criteria লেখার format।
- Success criteria
- “Done” মানে কী, তার specific + measurable definition। canonical flowchart এটা দিয়ে শুরু।
- Test case
- একটা input + expected output pair। ১০–২০টা মিলে ground truth।
- Version
- একটা prompt-এর নির্দিষ্ট snapshot (v1, v2, v3) — git-এ commit হিসেবে save।
Sources consulted to author this lesson. Citation style is informal — follow the links if you want to dig deeper.
- Define Success Criteria and Build Evaluations — Anthropic (2025)
- Prompt Engineering Overview — Anthropic (2025)
- Promptfoo — Expected Outputs / Assertions — Promptfoo (2025)
- Your AI Product Needs Evals — Hamel Husain (2024)
- Prompt Engineering — Six Strategies — OpenAI (2024)
- Promptware Engineering / Prompts as Software Engineering Artifacts — arXiv 2503.02400, 2509.17548 (2025)
- Cursor Rules + AGENTS.md Convention — Cursor / community (2025)
দুই বাক্যে নিজের ভাষায় লেখো
নিজের ভাষায় দুই বাক্যে লেখো — prompt কেন engineering artifact (কোন কোন জিনিস তাকে magic spell থেকে আলাদা করে), আর vibes-based iteration কেন dangerous।