Practice · From Demo to Product · 30 Tough Questions
Each with intent, framework, and bonus points: demo-to-launch gap / Agent deadlock / context compression / memory design / multi-Agent / MCP / cost accounting
THE QUESTION THIS PAGE ANSWERS
ANSWER FIRSTWhat is the key idea behind “Practice · From Demo to Product · 30 Tough Questions”?
Each with intent, framework, and bonus points: demo-to-launch gap / Agent deadlock / context compression / memory design / multi-Agent / MCP / cost accounting
Make the claim earn its place. Use this page as a decision aid, not a definition to memorize. Connect the idea to one real task, one observable result, and one failure that would change your mind.
Write one question you could answer with evidence after trying this idea.
A conclusion that sounds complete but leaves the key assumption untested.
- Start with the conclusion: Getting the API working is only 10%. In real cases, going from working API to launch took three months. The gaps can be categorized across four dimensions.
- Experience layer: Generation progress feedback, one-click retry on failure, multiple results to choose from, history to revisit. In a demo, the user can sit and wait 30 seconds with no feedback; in a product, that's unacceptable.
- Quality and engineering layers: Quality relies on Prompt optimization (using an LLM to translate user plain language into descriptions the image model understands) plus character consistency anchoring; engineering relies on multi-model fallback chains, timeout retries, cost caps, and result persistence. The model will definitely fail — the experience after it fails is what makes a product.
- Safety layer: Dual content moderation (input and output), copyright risk, and privacy policy for user reference images. A demo can go bare; a production product that goes bare will have incidents.
- Explain the root cause first: Production Agent deadlocks fall into four typical patterns: same-parameter loops (repeatedly calling the same tool with the same parameters), diminishing returns (50 rounds of nothing but marginal actions), text repetition (rehashing the same content once context gets too long), and cascading tool failures (one tool fails and drags down the whole chain). Start by identifying which pattern this was.
- Provide the protection plan: Mistake-proofing is a three-layer net. Hard limits as the safety floor: iteration cap, total timeout, per-tool call count limit — unconditional brakes. Detection and alerts: same-parameter detection, same tool name detection, diminishing returns detection — report any anomalous pattern.
- Graceful degradation: When anomalies are detected, first gently correct: inject a note like "you've repeated this 3 times, please try a different approach," temporarily disable the failed tool, force a summary of current progress and return with a partial result. For users, coming back with something partial is far better than empty hands.
- Add the experience layer commitment: Even when the Agent is running a long task, users need to see progress — show what it's currently doing and allow manual stops at any time. What users are actually angry about is "I waited half an hour and had no idea what it was doing."
- Explain why compression is necessary: Every turn of the conversation re-sends the entire history to the model. The longer the conversation, the higher the cost, the more scattered the attention, the closer to the context window limit — three problems that force you to manage context.
- Provide a tiered framework: Deletable: old tool call results, already-processed intermediate steps. Compressible: AI's lengthy replies, search results — compress to a one-sentence summary. Absolutely untouchable: the user's original messages, System Prompt, key preference settings.
- Identify the red line: The user's words are sacred. Better to delete 1000 words AI said than to touch 10 words the user said. Compression priority, highest to lowest: tool outputs, AI replies — user messages are never touched.
- Clarify the cost of each method: Local compression (truncation, rule-based replacement) is free but coarse; LLM summarization is precise but costs tokens. The correct order is free-first, then paid: use local methods to cut obvious bloat first, then consider LLM summarization for what remains.
- Distinguish the two systems first: The context window is a whiteboard — fill it and erase it, clear it when the conversation ends. Long-term memory is a notebook — what is written remains the next time it opens. The prerequisite for building a memory feature is accepting that the whiteboard is unreliable.
- Design the gatekeeper: Users send dozens to hundreds of messages a day, with "ok", "sure", "haha" making up the majority. The preferences and facts worth remembering are only a few. There needs to be a filtering logic before writing to memory to judge whether information has long-term value.
- Handle memory conflicts: A user said last month they like coffee, this month they switched to tea. Four strategies by scenario: explicit replacement → overwrite; complementary information → merge and extend; cannot determine which is correct → mark as conflict pending confirmation; temporary states (lately too tired, sleeping in) → skip and don't store.
- Calculate the injection cost: With 1000 stored memories, stuffing them all into the System Prompt every time is simple but expensive and noisy; on-demand retrieval saves money but may miss things. The injection strategy must be chosen based on memory scale and scenario — this is a cost decision.
- Acknowledge the default position first: The default is that one Agent is sufficient. Many so-called multi-Agent scenarios are actually just poorly written Prompts. Before adding a second Agent, answer three questions: can one really not do it? Is the complexity worth it? Is there a simpler solution (like parallel tool calls)?
- Name the three genuinely required scenarios: Parallel speedup — searching 5 sources simultaneously is 5× faster than serially. Role separation — Writer writes, Reviewer reviews; role isolation makes the review genuinely effective. Risk isolation — if a sub-Agent fails to parse a PDF it only reports "this file has a problem" and the main task is unaffected.
- Map to the scenario: Return to the specific scenario in the PRD and explain which of the three it matches. If it matches, keep it; if it doesn't, cut it on the spot — that looks far better than defending an architecture diagram.
- Demonstrate concurrency common sense: Even with multi-Agent, know that "reading" can be parallel and "writing" must be serialized. The one key to judging whether an operation can be concurrent: is it read-only?
- First layer: As a Client, the product consumes external capabilities through MCP — calendar, email, database, browser — connect to one protocol and gain access to an entire ecosystem, eliminating the cost of integrating APIs one by one.
- The critical second layer: MCP is bidirectional. The product can also act as a Server, exposing its own capabilities for Cursor, Claude Desktop, or automation scripts to call. One-way integration is just tool calling; bidirectional means your AI can become a tool for others.
- State the product implication: When multiple Agents can call each other, an ecosystem forms naturally. This is the key leap from tool to platform, and it's a product positioning decision that PM must make.
- Add engineering common sense: Connecting to 10 MCP services at startup all at once? If 3 are down, startup hangs. Registration and connection must be separated — lazy connection (connect when used). Going further, when an Agent discovers it lacks a tool at runtime, it can discover and configure a new MCP connection on its own.
- Correct the unit of measurement first: A user sends one message, but under the hood it may run 10+ loop iterations and dozens of API messages, and every iteration re-sends the full history. Cost is tied to task complexity and grows exponentially with it, so the bill growing faster than user count is normal — out-of-control growth is the problem.
- Hunt the typical cost culprits: Scheduled tasks reusing old sessions where context keeps growing — one choice can make monthly bills differ by 10×. Stuck loops burning money on idle iterations. Long conversations without compression, paying for ancient history every turn.
- Provide the cost-reduction combination: Switch scheduled tasks to creating a new session each time. Deploy loop safeguards to kill idle iterations. Context compression to cut tokens that shouldn't be resent. Set cost caps by user and time slot, and monitor anomalous calls.
- Provide a way to quantify the commitment: Build a monitoring dashboard for per-task average cost. Transform "can we lower it next month" into "per-task cost target and anomalous calls to zero" — report weekly.
- Start with the core difference: Text-to-image creates from nothing — the model imagines the character differently every time. Image-to-image uses a reference image as an anchor: appearance is locked, and only the scene and action change.
- Give a scenario contrast: Pure backgrounds, food or object close-ups, creative exploration — use text-to-image: more freedom, cheaper too. Character on camera, outfit changes (same face, different clothes), multi-scene series — must use image-to-image, or users will notice "why does this person look different in every shot?"
- Give a decision rule: Ask one question: "Does this image have a 'it must still be the same person' constraint?" If yes, image-to-image. If not, text-to-image is more flexible.
- Add the product implication: Choosing image-to-image means you first have to build a set of standard reference-image assets. That's product-side work that has to be in the schedule.
- Lead with the conclusion: What the user wants and what the image model needs are two different languages. You need an LLM in the middle to translate — expanding one sentence into a few hundred tokens of precise visual description.
- Give three reasons: Users don't write image Prompts; nobody voluntarily types "golden hour lighting." The model can't parse vague intent — "zoning out" has no picture for it. And every image model has its own dialect: Midjourney, DALL-E, and Stable Diffusion all prefer different things, so you customize for the target model.
- Give an example: "the example system zoning out on the balcony," after the translation layer, becomes a long English description covering pose, expression, lighting, hairstyle, her signature necklace, and composition — and the output actually stays stable.
- Place it in the architecture: This translation layer belongs on the image-generation productization checklist. It's fixed architecture. Skipping it saves a little money and costs you output quality.
- Name it first: This is one of the hardest problems in an image-generation product. Tweaking parameters won't fix it. Generate four times from a pure text description and face shape, hair, body, and art style all drift. Text cannot lock a visual identity.
- Give the solution: Build a standardized Character Reference Sheet for the IP. Every generation, send the reference image with the request so the model "draws while looking" — image-to-image as the anchor.
- Say what you lock: Face and body (feature proportions, silhouette), expression style (prepare multiple expression variants in advance), wardrobe (signature outfits; in costume-change scenes, change clothes, not the face).
- Add the boundary: Some fallback models in the degradation chain don't support image-to-image. Switching to them degrades to pure text-to-image and consistency drops. Declare that loss in the fallback plan up front — don't treat it as an incident later.
- Walk the chain first: Model A times out at 15 seconds and trips the circuit breaker, automatically switch to model B; B is rate-limited, keep going to C; C produces the image. The user only sees "drawing…" and never notices three models swapped underneath.
- Give three mechanisms: Priority plus a whitelist — character shots use the most consistent model, pure backgrounds use the cheap-and-fast one. Health checks — periodically probe each model's status, skip confirmed outages, come back automatically when they recover. Image-to-image fallback — if the backup model doesn't support it, degrade to text-to-image: quality drops a notch, but you still get an image.
- Give the all-down fallback: When every model is down, a friendly message: "We're busy — you've been added to the queue, we'll notify you when it's done." Never a cold error page.
- Close with a principle: Users don't care which model died. They care whether the image comes out. The goal of fallback design is to translate a failure into the smallest possible wait.
- Catch it first: Textbook ReAct really is Think, Act, Observe. That's the skeleton — correct, but nowhere near complete.
- Then expand: In production, one loop actually runs about 11 steps. The extras include context trimming and token-budget checks, system-instruction injection, permission checks and parameter validation, concurrent scheduling, timeout monitoring and error fallback, writing results back, and security audit logs.
- Name the essence: Those extra steps are the bulk of the engineering. Whether an Agent is stable, safe, and usable depends exactly on the parts that aren't in the textbook.
- Pick one and go deep: The permission-check step decides whether the current user can call this tool and whether the parameters are legal. Skip it, and day one of launch is a security incident.
- Lead with the principle: Users can tolerate waiting. They cannot tolerate not knowing what they're waiting for. Three rules of progress feel: let users see the process, make progress perceptible, and let output appear gradually.
- Give a toolkit: Status copy ("Searching…", "Analyzing…"); show the name of the tool currently being called; stream tokens as they arrive; stage markers (step 1 / 3); surface intermediate artifacts first — outline first, details later.
- Give a contrast: Same 30-second wait. One side is a spinning animation and the user suspects a freeze. The other is a rolling status stream — "found 3 results," "analyzed 2/5 files" — and the user is reading. They feel like two different products.
- Add a layer of control: Long tasks need a stop button that's always one tap away. Waiting you can cancel is waiting that doesn't make people anxious.
- Name the order of magnitude: A simple task like checking the weather — 2 loop turns, 6 messages, about 1000 tokens, $0.003. Analyzing a PDF takes 6 turns, about 5700 tokens, $0.02. Refactoring code takes 12 turns, twenty-plus messages, nearly 8000 tokens, $0.08. Task complexity differs, cost differs by tens of times.
- Point at the cost bulk: The System Prompt is resent every turn. Long tool returns (entire file contents, full-page search results) are a hidden heavyweight. Context snowballs — every later turn carries every earlier message.
- Fix how the metric is written: Set cost caps by task type, plus per-task cost monitoring. Don't slash one number across everything.
- Lead with the conclusion: Not an illusion — three mechanisms stacked. Cost inflation: every turn resends the full history; turn 8 can cost 20× turn 1. Attention decay: the model is hot at both ends of the context and cold in the middle; an important ask from turn 3 is likely ignored by turn 8. Window overflow: once the 128K window fills, the earliest messages are simply dropped — the AI genuinely cannot see them.
- Separate the symptoms: "Getting dumber" mainly comes from attention decay and window overflow. "Getting more expensive" comes from cost inflation. Two symptoms, one root: context growing without restraint.
- Give the action: Context management is mandatory. Ship a compression strategy, and separately protect key information like user preferences so it doesn't get diluted with the long conversation.
- Put both methods on the books: Local compression uses regex, truncation, template replacement — zero cost, under 1 ms latency, but coarse. LLM compression has another model read and write a summary — precise, keeps the meaning, but every run is an API bill and 1 to 5 seconds of latency.
- Give the right order: A four-step pipeline. Local truncation first — drop tool outputs, chop oversized JSON. Then template replacement — swap repeated structures for placeholders. Then check whether you're still over the window. Only if you still can't fit do you ask an LLM to refine, as the last step.
- Split by content: Tool outputs, JSON results, repeated content — local compression is enough. Multi-turn conversation summaries and dense context are what deserve LLM money.
- Close it: Running an LLM summary every turn is a fixed tax on every conversation. The two methods are sequential stages on one pipeline, not an either-or.
- Kill full injection first: It only works when memories are few. Stuff 1000 items into the system prompt and you pay for that pile of tokens on every call. Most of them are irrelevant to the current question — pure noise — and the AI can't find the point.
- Give the recommended path: After the user sends a message, run semantic retrieval first. Pull the 3 to 10 most relevant items from the memory store, inject only those into the system prompt, then let the model reply.
- Name the core principle: Memory's value is being able to pull the most relevant few items each time. How many you stored doesn't matter. As memory grows, on-demand retrieval is the only scalable approach.
- Close with an analogy: A good memory system is like a competent secretary. It never wheels the entire filing cabinet into the meeting room — it puts today's three files on the table in advance.
- Give the structure first: A production System Prompt is managed in four layers. Identity — who I am: name, personality, capability boundaries, almost never changes. Environment — what's going on now: user language, system state, may differ every session. Tools — what I can use, added and removed as features iterate. Behavior — how I act: output format, decision priority, safety guardrails, iterated most often.
- Explain the payoff of layering: Change one layer without touching the others — add a tool, only the tool layer moves; tweak style, only the behavior layer. Product, engineering, and ops each edit their own files; Git merges don't collide.
- Answer the regression question: A/B tests replace only the behavior layer; the other three stay put — one variable. When something breaks, debug by layer: wrong persona, stale environment, bad tool description, or conflicting rules — look one layer at a time.
- Confirm the bill first: The course estimate: loading all 100 tools is about 34,000 tokens; on-demand loading needs about 2,800 — over 90% saved. That money is spent on every single request.
- Give a three-step plan: First turn, names only — tool name plus one-sentence description, so the AI knows the capability exists. When the AI decides to call it, the system dynamically injects the full description and parameter schema. After use, pull it back — next turn returns to names only.
- Name the second payoff: AI is like people — too much information and it can't find the point. On-demand loading saves money and also raises tool-selection accuracy.
- Give the team an analogy: A company directory doesn't include everyone's full resume. Names and titles only; look at the details when you actually need to collaborate.
- One-sentence split: System Prompt owns who I am — global identity, rarely changes. Tool owns what I can do — the capability menu, medium-frequency changes. Skill owns how to do a specific thing well, step by step — task-specific process guidance, high-frequency iteration, independent versions.
- Unpack a Skill's structure: Trigger conditions decide when to load. An allowed-tool whitelist controls risk. The execution flow writes every step from confirming the ask to delivery. Output-format requirements keep quality consistent every time.
- Answer why it doesn't go into the System Prompt: The System Prompt is global — change it and every scenario is affected. Skills load on demand, injected only when the task matches, and don't pollute other tasks. And files are config: who changed what is obvious in Git.
- Land the ops value: Skills make Prompts reusable, iterable, and traceable. Changing a file changes behavior. That's the starting point of managing Prompts like code.
- State the rule first: The cache fingerprints the System Prompt. The prefix has to be identical to hit; one character off and everything recomputes. This isn't just a timestamp problem — any dynamic content inserted into the prefix does the same thing.
- Name the problem: Concatenating Skills into the System Prompt means switching Skills is switching prefixes, and the cache dies immediately. In the course simulation, this injection style hits around 20%.
- Give the fix: Append the Skill as a separate message after the System Prompt. The prefix never changes; hit rate can reach around 90%. Same for user IDs, session tags, anything that changes — put it all after.
- Give the principle: Don't touch the prefix. Put everything that might change after the System Prompt, and keep the prefix forever stable.
- Give that rule: After this operation runs, did the world change? If not, it can run in parallel; if yes, it has to queue. Search, read a file, hit an API — read-only; ten of them at once don't affect each other. Write a file, send email, take a payment — they change external state. Two writers on one file is a data overwrite.
- Do the math: The course example: 3 searches plus 1 write. Parallel orchestration about 4 seconds; fully serial about 8. Run searches in parallel, write last — time cut in half.
- Add the exception: Two writes that change different things — different files, different tables — can also run in parallel. Conflict only happens when multiple operations change the same resource.
- Land it as a design action: Step one of designing a multi-Agent system is splitting tools into read and write. That classification is an input product owes engineering.
- Give the mechanism first: Throw the same question to multiple Agents. Each answers independently from a different role — product view, data view, user view — and a host Agent integrates at the end.
- Name the iron rule: Each Agent must think independently and cannot see the others' answers. Same reason as human brainstorming: write alone first, discuss together later. If B sees A's answer, B gets pulled off course and the brainstorm is dead. That's the real difference from asking three times: asking three times is three samples in the same context — the viewpoint never changed.
- Talk about the output: The host doesn't only collect consensus — it also flags disagreement. Three Agents agreeing means the direction is clear. Disagreement means the question deserves a deeper discussion. The disagreement itself is the value.
- Add the efficiency math: Thinking tasks are naturally parallel. Three Agents thinking at once, total time equals the slowest one — time doesn't triple, money does. So only use it on questions that deserve multiple viewpoints.
- Name the root cause: The scheduled task reused the old session, so context accumulates every run. Run 1 is about 2000 tokens, run 10 about 20,000, run 24 about 48,000. Every request pays for the entire history, so the bill climbs day by day.
- Give the fix: Create a new session every run, start from zero. Run 24 costs exactly the same as run 1. The course comparison: 7 days, 24 runs a day — reused session about $50, new session about $5, a 10× gap.
- Answer why you can change it: Most scheduled tasks don't need memory. Summarizing today's sentiment is enough; they don't need to know what was summarized yesterday. If something truly needs to carry over, store a summary externally and bring it in next time — don't drag the full history.
- Plant the spectrum view first: From fully autonomous to approve-every-step is a spectrum, with several notches in between. Full autonomy and the AI can wreck everything; approve every step and users go insane. The product's job is to find each class of operation its place on the spectrum.
- Give three positioning dimensions: Reversibility of the action — sending a message is irreversible, reading a file is reversible. Cost of being wrong — deleting data is expensive, search is cheap. User trust — new users cautious, long-time users get more leash.
- Answer whether you split them: In the same product, different features use different permission modes. Auto-run for reading the calendar, confirm for sending email — that's the normal shape. One rule for everything is laziness.
- Land the essence: How much freedom you give the AI is, at heart, answering a product question: if this goes wrong, who is responsible?
- Break the question: The problem is no grading. Popup on every step and after five Allows the user wants to uninstall. Popup on nothing and a wrong delete has no safety net. The answer is auto-run for low risk, must-confirm for high risk.
- Give the grading line: Read a file, search, check the calendar — operations that don't change state, no popup. Delete a file, send a message, pay, change permissions — irreversible or high-impact, must confirm.
- Answer who sets the grade: Three options. The PM predefines each tool's risk level at design time — most common. Let the AI decide from context whether to ask a human — more flexible, not always accurate. User-custom — most flexible, has configuration cost. You can combine them; the floor is always set by a human.
- Raise it one level: Good permission design isn't a binary of popup or not. It's fine-grained control of when to popup and what the popup says.
- Name it honestly: If I can't be precise today, we're missing observability. Answering how many tools it called, how many loop turns it ran, how many tokens it spent, and whether anything failed in the middle depends on an event stream and an execution report — not guessing.
- Say what to build: Put a dashboard on the Agent. Execution timeline, tool-call stats, token-spend distribution, an execution report per task.
- Talk value for both sides: For engineering: locate which step broke, find idle loops and wasted tokens. For product: understand real usage paths, quantify each feature's cost, feed data into the next iteration.
- Give an analogy: An Agent without a dashboard is a car without a dashboard — you don't know the fuel, you don't know the rpm, you don't know when you'll stall. This is productization basics, not a nice-to-have.
- Confirm the cause first: Connecting all 10 at startup means a few timeouts drag the whole launch. Real numbers from the course: connect-all at startup takes 30 seconds; after lazy connection, 0.2 seconds. Users feel instant open.
- Give three principles: Registering is not connecting — at startup you only declare which tools exist, you don't open network connections. Connect on first use — most tools may not be touched all day. Fault isolation — if one service dies, only that one tool is affected; the rest keep working.
- Name the product meaning: This isn't just a tech optimization. It's basic stability design. In connect-all mode, any third-party outage drags the whole product. Lazy connection locks the blast radius inside a single tool.
- Explain the mechanism first: The traditional move is to error out as unsupported. The user has to find the MCP settings, fill in parameters, test the connection — most people never will. Self-configuration is the Agent matching a candidate tool to the need, asking the user once, and finishing setup after they agree. The bar drops from "can configure" to "can talk."
- Give four safety designs: Capability discovery — the Agent can only pick from a tool registry or a predefined candidate list; nothing of unknown origin gets installed. User authorization — must say what service it will connect, wait for explicit consent; the AI cannot connect in secret. That's the trust floor. Instant effect — hot-load after config, current conversation continues seamlessly. Safety boundary — sensitive tools like databases must be configured by an admin by hand, and stay out of self-configuration.
- Give the conclusion: We can, and we should. Self-configuration isn't letting the AI install plugins at will. It's automating a messy setup process, with the decision still in the user's hands.
- Admit the surface first: Wiring a model to a chat box really can ship in two weeks. What users see is the tip of the iceberg: a chat UI, smart replies.
- Then talk about what's under the water: How you stop a stuck loop, how you compress context, whether you can delete the user's words, how you filter memory, how you grade permissions, whether you can see what the Agent did, what happens when a third-party service dies. These are the product decisions under the waterline. A wrapper product did none of them.
- Give the gap a dimension: Between a chat wrapper and a real Agent product, the difference is a hundred correct product decisions in places users never see. The same loop supporting N scenarios — the difference isn't the code, it's the decisions.
- Convert time into risk: The two months the competitor saved will be paid back after launch, one incident at a time: stuck loops, runaway bills, accidental deletes. We can cut scope and ship the core scenario first — but the under-the-waterline floor decisions cannot be skipped.
Why “Practice · From Demo to Product · 30 Tough Questions” can find relevant content
“Each with intent, framework, and bonus points: demo-to-launch gap / Agent deadlock / context compression / memory design / multi-Agent / MCP / cost accounting” moves retrieval beyond storing material: the real question is how to find what is relevant. That decision shapes the input quality of RAG, recommendation, and image-search systems.
Similarity is not the answer
In the flow described by “Each with intent, framework, and bonus points: demo-to-launch gap / Agent deadlock / context compression / memory design / multi-Agent / MCP / cost accounting”, embeddings place items in a comparable semantic space and a neighbor index narrows the search. The final answer still depends on whether the retrieved chunks cover the question, whether the distance metric fits, and whether the evidence is current.
- Start with the conclusion: Getting the API working is only 10%. In real cases, going from working API to launch took three months. The gaps can be categorized across four dimension…
- Experience layer: Generation progress feedback, one-click retry on failure, multiple results to choose from, history to revisit. In a demo, the user can sit and wait 30 seconds wit…
- Safety layer: Dual content moderation (input and output), copyright risk, and privacy policy for user reference images. A demo can go bare; a production product that goes bare will…
Separate findable from relevant
Turn “Each with intent, framework, and bonus points: demo-to-launch gap / Agent deadlock / context compression / memory design / multi-Agent / MCP / cost accounting” into a small test: prepare queries with known answers, record relevance, misses, and distractors, then decide whether chunking, the index, or reranking needs to change.
Take the example one step further
The lesson starts with “Start with the conclusion: Getting the API working is only 10%. In real cases, going from working API to launch took three months. The gaps can be categorized across four dimensions” and then moves to “Experience layer: Generation progress feedback, one-click retry on failure, multiple results to choose from, history to revisit. In a demo, the user can sit and wait 30 seconds with no feedback; in a product, t…”. Reading those two pieces together makes the distinction clearer: which points are facts in the lesson, and which judgments depend on their conditions.
Carry the judgment into the next situation
The same logic applies to retrieval: define what counts as relevant, check whether recall covers the question, and then inspect whether ranking, chunking, or freshness pushed useful evidence out.
- “Practice · From Demo to Product · 30 Tough Questions”: Start with the conclusion: Getting the API working is only 10%. In real cases, going from working API to launch took three months. The gaps can be categorized across four dimensions
- “Take it further”: Experience layer: Generation progress feedback, one-click retry on failure, multiple results to choose from, history to revisit. In a demo, the user can sit and wait 30 seconds with no feedback; in a product, t…
- “The closing point”: Map to the scenario: Return to the specific scenario in the PRD and explain which of the three it matches. If it matches, keep it; if it doesn't, cut it on the spot — that looks far better than defending an arc…
The final “The closing point” brings the discussion to “Map to the scenario: Return to the specific scenario in the PRD and explain which of the three it matches. If it matches, keep it; if it doesn't, cut it on the spot — that looks far better than defending an arc…”. The useful thing to carry forward is knowing which judgments must be revisited when input, scale, or risk changes.
I turned one judgment from this article into a small experiment I could run today. Knowing what to observe next is more useful than simply remembering the conclusion.
After reading this, I first looked for the conditions behind the idea instead of copying the method into a project. That order made the later trade-offs much clearer.
When this judgment reaches real work, which constraint should be added first? I am curious which step matters most between reading and the first practical attempt.
No discussion on this article yet.