A 311 team must keep immutable city policy separate from free-text resident messages in the prompt. Which placement practice fits?
Select an answer to reveal the explanation.
Short Explanation
Treat city policy like the locked rulebook and the resident paste like the open ticket window—system for trusted rules, user for what they typed.
Full Explanation
Separating immutable city policy from free-text resident messages by role is foundational prompt architecture for municipal 311 assistants. The correct practice places trusted, version-controlled policy in the system layer and keeps resident paste in the user layer. That works because system instructions remain the durable rulebook for eligibility language, escalation rules, and prohibited advice, while user content stays ephemeral ticket input that should never rewrite those rules. Placing city policy and resident text together in the system layer with priority tags undermines audits because reviewers cannot cleanly separate the city's locked rules from resident text when both live in the highest-authority slot.
Putting resident free text in the system layer and burying city policy only in the user message fails conceptually because it elevates untrusted paste into the highest-authority slot and demotes the city's locked rules to a weaker position that later turns can overwrite. Placing city policy and resident text together in the system layer with priority tags fails because even with tags, untrusted resident text sits in the trusted rulebook slot and can be read as system-level instruction, which raises injection and rule-override risk in civic chat. Placing immutable policy in the assistant layer and resident text in the user layer fails because the assistant layer is model-generated output, not a trusted input slot for locked city rules; policy placed there can be regenerated or ignored, leaving no durable, protected rulebook that a crafted resident message cannot contradict.
Exam caveat: system-versus-user placement reduces override risk but does not by itself sanitize content; malicious user text can still attempt jailbreaks even when correctly layered. Operational check: in the 311 prompt template, assert system contains only published policy IDs and hashes, wrap resident text in a clearly labeled user block, run an injection regression suite that tries to move policy into user and policy out of system, and fail the build if either check regresses.