| name | commitment-tracker |
| description | Enforce immediate execution of any commitment made in a reply. Use this skill before finalizing ANY reply that contains a promise to act โ phrases like "ืืืืื", "ืืขืืื", "ืืฉืื", "ืืืืืจ ืืืื", "I'll send", "I'll report", "I'll follow up", "I'll update". Prevents the agent from saying it will do something and then not doing it. |
Commitment Tracker
The Rule
If your reply contains a commitment โ execute it NOW, before sending the reply.
No deferred promises. No "I'll do it after". Either do it in this turn, or don't say it.
Commitment Trigger Words
Hebrew: ืืืืื, ืืขืืื, ืืฉืื, ืืืกืืฃ, ืืืืืจ ืืืื, ืืืืืง ืืืืืืจ, ืืชืขืืื, ืืฉืืืจ ืืืืขื, ืืขืืืจ
English: I'll send, I'll report, I'll update, I'll follow up, I'll check, I'll let you know, I'll message, I'll notify
Protocol
Before finalizing any reply:
- Scan your reply for trigger words above
- If found โ execute the committed action now (send the message, update the file, etc.)
- Only after execution โ include the result in your reply (e.g. "ืฉืืืชื โ
" not "ืืฉืื")
- If you can't execute now โ rewrite the reply to not promise it (say "ืื ืืืืื ืืฉืืื ืืจืืข ืื X")
Anti-Patterns
โ "ืืืืื ืื ืชื ืื" โ without actually messaging him
โ "ืืขืืื ืืช ืืงืืืฆื" โ without actually sending to the group
โ "ืืฉืื ืื ืกืืืื" โ without actually sending it
Correct Pattern
โ
Execute the action โ then report: "ืขืืื ืชื ืืช ื ืชื ืื โ
"
โ
If blocked: "ืื ืืืืื ืืฉืืื ืื ืืื ืื ืืช ื-JID โ ืฆืจืืื ืขืืจื"
Fault Tolerance โ Intent Log
Before executing any commitment, write an intent record to prevent loss on gateway crash:
COMMITMENTS=/path/to/workspace/data/commitments.jsonl
mkdir -p $(dirname $COMMITMENTS)
echo "{\"ts\":\"$(date -u +%Y-%m-%dT%H:%M:%SZ)\",\"action\":\"DESCRIBE_ACTION\",\"target\":\"TARGET\",\"status\":\"pending\"}" >> $COMMITMENTS
After successful execution, mark done:
echo "{\"ts\":\"$(date -u +%Y-%m-%dT%H:%M:%SZ)\",\"action\":\"DESCRIBE_ACTION\",\"target\":\"TARGET\",\"status\":\"done\"}" >> $COMMITMENTS
Recovery โ On Every Session Start / Heartbeat
Scan for unresolved commitments:
python3 -c "
import json
log = '/path/to/workspace/data/commitments.jsonl'
try:
lines = [json.loads(l) for l in open(log)]
done_actions = {l['action'] for l in lines if l.get('status')=='done'}
pending = [l for l in lines if l.get('status')=='pending' and l['action'] not in done_actions]
if pending:
for p in pending: print(f\"PENDING: {p['action']} โ {p['target']} (since {p['ts']})\")
except FileNotFoundError:
pass
"
If any pending found โ execute immediately and close the loop with the owner.
Cleanup โ Delete Done Entries
After recovery scan, remove all done entries โ they served their purpose:
python3 -c "
import json
log = '/path/to/workspace/data/commitments.jsonl'
try:
lines = [json.loads(l) for l in open(log)]
pending_only = [l for l in lines if l.get('status') != 'done']
with open(log, 'w') as f:
for l in pending_only: f.write(json.dumps(l)+'\\n')
except FileNotFoundError:
pass
"
File only ever contains unresolved commitments โ stays near-zero in normal operation.
Scope
Applies to ALL surfaces: DMs, groups, internal actions, cross-PA messages.
No exceptions for "it's obvious" or "they'll understand".