| name | refacil:reply |
| description | Reply to the last question directed to this session on the bus. The broker autocompletes the correlationId. |
| user-invocable | true |
refacil:reply — Reply to a bus question
Sends a response to the last question directed to this session. $ARGUMENTS = response text.
Instructions
Step 1: Execute reply
Run via Bash:
refacil-sdd-ai bus reply --text "[response]"
The broker:
- Automatically finds the last
ask directed to this session in the room
- Uses its
correlationId so the asker (if in ask --wait) receives the response directly
- Broadcasts to the entire room as a
kind=reply message
Step 2: Confirm
Report to the user that the response was sent.
When to use reply vs say
reply: always when you are responding to something you were asked. This allows the other side in ask --wait to unblock automatically.
say: general announcement unrelated to a previous question.
Safe bus text delivery
Use --text for simple messages (no special characters, single-line):
refacil-sdd-ai bus reply --text "Simple response here"
Do NOT use < or > inside --text — shells may interpret them as redirection operators and truncate or discard the message.
For messages containing <, >, |, newlines, or other special characters, use --from-env:
PowerShell (Windows):
$env:BUS_TEXT = "integrationPoint: POST /pay`noutputContract: {status<string>, id<uuid>}"
refacil-sdd-ai bus reply --from-env BUS_TEXT
Remove-Item Env:BUS_TEXT
bash (inline, preferred — automatic cleanup):
BUS_TEXT="integrationPoint: POST /pay
outputContract: {status<string>, id<uuid>}" refacil-sdd-ai bus reply --from-env BUS_TEXT
bash (export + unset alternative):
export BUS_TEXT="response with <special> chars"
refacil-sdd-ai bus reply --from-env BUS_TEXT
unset BUS_TEXT
Note: the CLI cannot perform cleanup itself — it runs as a child process and cannot modify the parent shell's environment. Cleanup (Remove-Item / unset) is the responsibility of the invoking script or shell.
Contract-focused reply format (for integration questions)
When replying to cross-repo integration clarifications, prefer this structure so the other side can continue without ambiguity:
integrationPoint: [confirmed endpoint/event/queue + direction]
inputContract: [confirmed fields/validation]
outputContract: [confirmed outputs/status/errors]
compatibility: [version/constraints, or "unknown"]
sourceOfTruth: [file/path/symbol in this repo]
confidence: [high|medium|low]
openQuestions: [none | list of unresolved points]
If you cannot confirm a field, answer with unknown and include the missing evidence in openQuestions.
Rules