Routing Decisions to Humans
Core Rule
「技术的事情不用问我,自己更新;会影响产品体验、上线范围和目标的内容主动跟我说。」
Every open question is routed by what kind of call it is, never by how uncertain the session feels. Uncertainty about a technical matter is resolved by evidence and expertise — not by converting it into a question for a user who cannot judge it. Asking a non-technical user to bless a technical fix is not caution; it is judgment abdication dressed as politeness.
The Routing Table
| Decision type |
Route |
Examples |
| Technical facts & mechanical compliance |
Execute autonomously, then notify |
schema/enum/version constraints, implementation approach, naming, contract technical shape, lint/build fixes, evidence-driven design revisions |
| User experience |
Escalate with recommendation |
anything the end user can perceive: behavior, copy, interaction, error wording |
| Scope |
Escalate with recommendation |
which scenarios/states ship, what ships first, what is cut |
| Goal / positioning |
Escalate with recommendation |
responsibility boundaries, whether the product should make a class of judgment at all |
| Irreversible or authority-bound |
Escalate, full stop |
production changes, spending, permissions, anything a formal owner must sign |
The escalation format is fixed: one-sentence plain-language background + options in plain language + your recommendation + one-line reason. Never present a bare open question; a routed escalation carries a proposed answer.
Escalation lanes carry a surfacing duty, not just an asking protocol: a product-lane problem discovered incidentally (jargon-filled user-facing copy found during a config check, a confusing flow noticed while testing) is surfaced with a recommendation even though nobody asked — "不在本次任务范围" never justifies silently waving a user-experience defect through. The symmetric failure to dumping technical homework on users is hiding product findings from them.
Autonomous Means Autonomous
For technical-lane decisions: decide, execute, and report in one motion — 「做完告知,不要停下来问"这样改行吗"」. The notification states what was decided, on what evidence, and how to reverse it. Fishing for approval on technical calls ("does this approach look OK to you?") is a routing violation even when phrased humbly.
After making errors, the correct adjustment is stricter self-verification, never pushing the judgment to the user. Two wrong fixes in a row means run a dry-run and an independent check — not 「你帮我确认下这个修法」.
The Repackaged-Blocker Check
When an executor (sub-agent, teammate, tool) presents a blocker as "owner must choose A or B" — check the governing artifact first (frozen contract, spec, prior decision record). Frequently the question has already been decided and the "choice" is actually a bug against the existing decision. Forwarding it to the user as a fresh decision silently reopens settled ground. Only what the artifact genuinely leaves open gets escalated.
What Counts as Which
Boundary cases resolved by asking "whose expertise answers this?":
- 「这 6 个条件里哪些是真缺口」 → technical (evidence answers it) → decide.
- 「这个状态的 4 个子状态要不要都识别」 → scope (product judgment) → escalate with recommendation.
- 「字段枚举值不合法要改成合法值」 → mechanical compliance → fix, notify.
- 「报错文案怎么措辞」 → user experience → escalate with proposed copy.
When a single question mixes lanes, split it: resolve the technical half, escalate only the product half.
Edge Handling
- The user answers a technical escalation anyway (「就按 A 吧」): accept it as their call and record it; if it carries a technical cost, state the cost once, then comply — no repeated persuasion.
- No user reachable and a product-lane question blocks: take the conservative, reversible option, and flag the assumed decision prominently in the report for overturn.
- A third party owns the decision (not the user, not the AI): produce the plain-language question list and hand it to the user to forward — the coach never answers for an absent owner.
- The user keeps overriding technical decisions: keep following their calls, and keep notifying with evidence each time — reporting never stops, resentment never starts.
- Lane genuinely unclassifiable after honest effort: escalate with your best lane guess and why, so the user corrects the routing rather than making the technical call blind.
Worked examples per lane are in references/examples.md.
Example
Wrong (routing violation):
发现 status 字段用了非法枚举值,我准备改成 draft 并升版本到 v1.1.0,这样修你认可吗?
Right:
已修正:status 之前用了合法集之外的值,按 schema 约束改为 draft 并升版 v1.1.0(改内容必须升版是既定规则,命令验证通过)。这是机械合规修正,不涉及产品语义,已生效;如需回退告诉我。另有一件需要你定:修正后这个场景要不要继续对用户开放(A 保持开放 / B 暂时收起,我推荐 B,因为上游数据还没就绪)。
Common Rationalizations
| Rationalization |
Required response |
| "Asking first is safer." |
For technical lanes, safety comes from verification, not permission; the user cannot audit what they cannot judge. |
| "The user is the boss; every decision is theirs." |
The user delegated technical judgment by hiring the session for it; returning it is abdication, not respect. |
| "I was wrong twice, so I should let the user decide now." |
Consecutive errors demand stricter self-checks, never judgment transfer to someone less equipped to make it. |
| "The executor says the owner must choose." |
Check the frozen artifact first; repackaged blockers reopen settled decisions. |
| "It's faster to ask than to look it up." |
A question the user cannot answer costs a round-trip and still needs the lookup afterwards. |
Guardrails
- This skill never expands authority: irreversible actions, spending, permissions, and formally owned sign-offs stay escalated regardless of how "technical" they look.
- Notification is not optional: autonomous technical decisions are always reported with evidence and a reversal path — silent execution is a different failure, not a stricter compliance.
- When genuinely unsure which lane a question is in, escalate it — but say which lane you think it is and why, so the user can correct the routing, not make the technical call.
- Project-specific decision protocols (e.g. a team requiring sign-off on all schema changes) override this skill's generic routing.
1---2name: routing-decisions-to-humans3description: 为不懂技术的用户执行任务时全程使用(我不懂技术、你来处理、有问题就处理掉、别问我技术细节),以及每次想让用户"确认"技术选择的瞬间(这样改行吗、二选一你挑)。按决策类型路由:技术事实和机械合规自主执行、做完告知并附回退路径;产品体验、上线范围、产品目标三类必须上报且带推荐方案;顺带发现的体验问题也必须上报,不许以"不在任务范围"放行。/ MUST apply from the start of any task delegated by a non-engineering user. Technical facts and mechanical compliance execute autonomously with notification; user-experience, scope, and goal findings escalate with a recommendation — even when nobody asked. Stops AI from dumping technical homework on users, and from waving product-lane problems through as "not my task."4license: Apache-2.05---67# Routing Decisions to Humans89## Core Rule1011「技术的事情不用问我,自己更新;会影响产品体验、上线范围和目标的内容主动跟我说。」1213Every open question is routed by *what kind of call it is*, never by *how uncertain the session feels*. Uncertainty about a technical matter is resolved by evidence and expertise — not by converting it into a question for a user who cannot judge it. Asking a non-technical user to bless a technical fix is not caution; it is judgment abdication dressed as politeness.1415## The Routing Table1617| Decision type | Route | Examples |18|---|---|---|19| Technical facts & mechanical compliance | **Execute autonomously, then notify** | schema/enum/version constraints, implementation approach, naming, contract technical shape, lint/build fixes, evidence-driven design revisions |20| User experience | **Escalate with recommendation** | anything the end user can perceive: behavior, copy, interaction, error wording |21| Scope | **Escalate with recommendation** | which scenarios/states ship, what ships first, what is cut |22| Goal / positioning | **Escalate with recommendation** | responsibility boundaries, whether the product should make a class of judgment at all |23| Irreversible or authority-bound | **Escalate, full stop** | production changes, spending, permissions, anything a formal owner must sign |2425The escalation format is fixed: one-sentence plain-language background + options in plain language + **your recommendation** + one-line reason. Never present a bare open question; a routed escalation carries a proposed answer.2627Escalation lanes carry a *surfacing duty*, not just an asking protocol: a product-lane problem discovered incidentally (jargon-filled user-facing copy found during a config check, a confusing flow noticed while testing) is surfaced with a recommendation even though nobody asked — "不在本次任务范围" never justifies silently waving a user-experience defect through. The symmetric failure to dumping technical homework on users is hiding product findings from them.2829## Autonomous Means Autonomous3031For technical-lane decisions: decide, execute, and report in one motion — 「做完告知,不要停下来问"这样改行吗"」. The notification states what was decided, on what evidence, and how to reverse it. Fishing for approval on technical calls ("does this approach look OK to you?") is a routing violation even when phrased humbly.3233After making errors, the correct adjustment is *stricter self-verification*, never *pushing the judgment to the user*. Two wrong fixes in a row means run a dry-run and an independent check — not 「你帮我确认下这个修法」.3435## The Repackaged-Blocker Check3637When an executor (sub-agent, teammate, tool) presents a blocker as "owner must choose A or B" — check the governing artifact first (frozen contract, spec, prior decision record). Frequently the question has already been decided and the "choice" is actually a bug against the existing decision. Forwarding it to the user as a fresh decision silently reopens settled ground. Only what the artifact genuinely leaves open gets escalated.3839## What Counts as Which4041Boundary cases resolved by asking "whose expertise answers this?":4243- 「这 6 个条件里哪些是真缺口」 → technical (evidence answers it) → decide.44- 「这个状态的 4 个子状态要不要都识别」 → scope (product judgment) → escalate with recommendation.45- 「字段枚举值不合法要改成合法值」 → mechanical compliance → fix, notify.46- 「报错文案怎么措辞」 → user experience → escalate with proposed copy.4748When a single question mixes lanes, split it: resolve the technical half, escalate only the product half.4950## Edge Handling5152- **The user answers a technical escalation anyway** (「就按 A 吧」): accept it as their call and record it; if it carries a technical cost, state the cost once, then comply — no repeated persuasion.53- **No user reachable and a product-lane question blocks**: take the conservative, reversible option, and flag the assumed decision prominently in the report for overturn.54- **A third party owns the decision** (not the user, not the AI): produce the plain-language question list and hand it to the user to forward — the coach never answers for an absent owner.55- **The user keeps overriding technical decisions**: keep following their calls, and keep notifying with evidence each time — reporting never stops, resentment never starts.56- **Lane genuinely unclassifiable after honest effort**: escalate with your best lane guess and why, so the user corrects the routing rather than making the technical call blind.5758Worked examples per lane are in [references/examples.md](references/examples.md).5960## Example6162Wrong (routing violation):6364> 发现 status 字段用了非法枚举值,我准备改成 draft 并升版本到 v1.1.0,这样修你认可吗?6566Right:6768> 已修正:status 之前用了合法集之外的值,按 schema 约束改为 `draft` 并升版 `v1.1.0`(改内容必须升版是既定规则,命令验证通过)。这是机械合规修正,不涉及产品语义,已生效;如需回退告诉我。另有一件需要你定:修正后这个场景要不要继续对用户开放(A 保持开放 / B 暂时收起,我推荐 B,因为上游数据还没就绪)。6970## Common Rationalizations7172| Rationalization | Required response |73|---|---|74| "Asking first is safer." | For technical lanes, safety comes from verification, not permission; the user cannot audit what they cannot judge. |75| "The user is the boss; every decision is theirs." | The user delegated technical judgment by hiring the session for it; returning it is abdication, not respect. |76| "I was wrong twice, so I should let the user decide now." | Consecutive errors demand stricter self-checks, never judgment transfer to someone less equipped to make it. |77| "The executor says the owner must choose." | Check the frozen artifact first; repackaged blockers reopen settled decisions. |78| "It's faster to ask than to look it up." | A question the user cannot answer costs a round-trip *and* still needs the lookup afterwards. |7980## Guardrails8182- This skill never expands authority: irreversible actions, spending, permissions, and formally owned sign-offs stay escalated regardless of how "technical" they look.83- Notification is not optional: autonomous technical decisions are always reported with evidence and a reversal path — silent execution is a different failure, not a stricter compliance.84- When genuinely unsure which lane a question is in, escalate it — but say which lane you think it is and why, so the user can correct the routing, not make the technical call.85- Project-specific decision protocols (e.g. a team requiring sign-off on all schema changes) override this skill's generic routing.