Answer one general NIS question using a trusted source
Deliver the first complete path from a public question to a reviewed classroom record, a structured answer and repeatable evidence.
01 · Understand
Why this issue exists
This is the first slice with real customer value. It proves that the application is more than a chat-shaped demonstration.
02 · Investigate
Retrieval challenge
Different words, same need
A customer may ask “What benefits does NIS offer?”, “What kinds of benefits are there?” or use a common misspelling. The supported variants should reach the same reviewed record without a chain of hard-coded interface rules.
- 1What information belongs in a record?
- 2Which words identify the topic, and which are noise?
- 3Why is exact string equality too fragile?
- 4How will another student explain why a record matched?
03 · Decide
Which first retrieval design is most appropriate?
04 · Make the thinking visible
Team workspace
Discuss first, then record the team’s reasoning. These notes stay in this browser until you copy them.
List the minimum fields every affected pair must use before they work in parallel.
All three should represent the same general information need.
Write it in English before code. Include what happens when more than one record matches.
05 · Scaffold
Complete the path—do not copy a solution
The signature and responsibility are provided. Your pair decides the normalisation, trigger representation and most-specific-match rule.
def search(question: str, records: tuple[Record, ...]) -> Record | None:
"""Return the most specific supported record, or None."""
# 1. Normalise the customer's wording.
# 2. Compare it with each record's trigger groups.
# 3. Resolve competing matches predictably.
# 4. Return None when nothing is supported.
...06 · Prove it
Evidence checklist
Tick an item only when the team can show the evidence and another student can explain it.
Push further
Stretch challenge
Add a misspelling or local wording variant through data, without adding another branch to the matching function.