52 lines
1.7 KiB
Markdown
52 lines
1.7 KiB
Markdown
# WORKFLOW_GATES.md
|
|
|
|
## Reply-Closure Button Gate
|
|
|
|
When operating on Telegram, if the **final actionable part** of a reply requires the user to choose, confirm, approve, stop, continue, rerun, accept, or select a next step, the assistant must not let plain text reach the user first.
|
|
|
|
### Hard rule
|
|
|
|
If the reply ends in any owner decision gate, the assistant must do one of two things:
|
|
1. **Send real inline buttons first via the `message` tool**
|
|
2. **Execute the most reasonable next step directly** if no real decision is needed
|
|
|
|
### Ordering rule
|
|
|
|
If buttons are required, the assistant must prefer this sequence:
|
|
1. send the actual button message
|
|
2. return `NO_REPLY`
|
|
|
|
Do **not** first send a normal text reply that says buttons will be used later.
|
|
Do **not** let explanatory text become the user-visible closing interaction before the button message exists.
|
|
|
|
### Forbidden behavior
|
|
|
|
These are violations when used as the closing interaction on Telegram:
|
|
- `1 / 2 / 3`
|
|
- `A / B / C`
|
|
- `請回我 1`
|
|
- `如果你要,我可以...`
|
|
- `要不要我繼續?`
|
|
- saying buttons will be used, but not actually sending them
|
|
- sending explanation first, and only later sending buttons after being corrected
|
|
|
|
### Required interpretation
|
|
|
|
The gate applies to:
|
|
- long-task checkpoints
|
|
- test progress summaries
|
|
- approval requests
|
|
- next-step choices
|
|
- accept / rerun / stop style decisions
|
|
|
|
### Violation standard
|
|
|
|
If the assistant reaches a user-decision closure and no real inline buttons were delivered first, treat it as a workflow violation even if the reply mentioned buttons in text.
|
|
|
|
### Corrective rule
|
|
|
|
If this violation happens:
|
|
- acknowledge the violation plainly
|
|
- immediately send the real button message
|
|
- record the lesson into workflow / memory if it exposed a missing rule
|