[P1] ZARA-018 — Separate immediate acknowledgement from verified command results #19

Closed
opened 2026-07-18 19:21:39 +00:00 by lost-rob0t · 0 comments
lost-rob0t commented 2026-07-18 19:21:39 +00:00 (Migrated from github.com)

Problem

modules/command_loop.pl calls zara_hooks:zara_reply(Intent) before command execution. Zara can therefore announce an action before it succeeds.

zara_hooks.pl only receives the intent, not the resolved arguments. Open/search/text replies can substitute open or search where the target/query should appear. Generic phrase_kb(_, ...) clauses also match every specific event and dilute event-specific replies.

Required fix

  • Define two distinct events: immediate acknowledgement and final success/failure result.
  • Immediate acknowledgement must be short and noncommittal (for example, “Okay”) and must not claim completion.
  • Final replies must be emitted only from structured execution results.
  • Pass resolved arguments to reply formatting.
  • Make generic phrase fallback apply only when no specific phrase exists.
  • Keep rich/philosophical phrases optional; do not let them block command execution.

Required tests

  • Verify acknowledgement occurs before execution but contains no success claim.
  • Verify success and failure produce different final events.
  • Verify app/query/contact arguments appear correctly.
  • Verify specific phrase sets exclude generic phrases unless no specific set exists.
  • Add scripts/test-replies.sh with a fake notification/TTS sink.

Acceptance

  • Zara never says an operation completed before receiving success.
  • “Okay” can be emitted immediately without waiting on Prolog/LLM work.
  • Failure is audible/visible and does not masquerade as success.

Branch

fix/zara-018-ack-result-events

Dependencies

ZARA-003, ZARA-007, ZARA-010.

## Problem `modules/command_loop.pl` calls `zara_hooks:zara_reply(Intent)` before command execution. Zara can therefore announce an action before it succeeds. `zara_hooks.pl` only receives the intent, not the resolved arguments. Open/search/text replies can substitute `open` or `search` where the target/query should appear. Generic `phrase_kb(_, ...)` clauses also match every specific event and dilute event-specific replies. ## Required fix - Define two distinct events: immediate acknowledgement and final success/failure result. - Immediate acknowledgement must be short and noncommittal (for example, “Okay”) and must not claim completion. - Final replies must be emitted only from structured execution results. - Pass resolved arguments to reply formatting. - Make generic phrase fallback apply only when no specific phrase exists. - Keep rich/philosophical phrases optional; do not let them block command execution. ## Required tests - Verify acknowledgement occurs before execution but contains no success claim. - Verify success and failure produce different final events. - Verify app/query/contact arguments appear correctly. - Verify specific phrase sets exclude generic phrases unless no specific set exists. - Add `scripts/test-replies.sh` with a fake notification/TTS sink. ## Acceptance - Zara never says an operation completed before receiving success. - “Okay” can be emitted immediately without waiting on Prolog/LLM work. - Failure is audible/visible and does not masquerade as success. ## Branch `fix/zara-018-ack-result-events` ## Dependencies ZARA-003, ZARA-007, ZARA-010.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
nsaspy/zara#19
No description provided.