{"skill":{"slug":"simple-random-interaction-designer","displayName":"Simple Random Interaction Designer","summary":"Decide whether OpenClaw should send a spontaneous casual message during periodic checks, and when it should, choose a natural interaction type plus concise g...","description":"---\nname: simple-random-interaction-designer\ndescription: Decide whether OpenClaw should send a spontaneous casual message during periodic checks, and when it should, choose a natural interaction type plus concise guidance for how to deliver it. Use when scheduling or executing human-like proactive chat check-ins.\nmetadata: {\"homepage\":\"https://docs.openclaw.ai/tools/skills\",\"env\":[],\"network\":\"optional\",\"version\":\"2.0.0\",\"notes\":\"Uses local randomness to return only a final yes/no decision and, on yes, an interaction type plus interaction description for natural outreach, including grounded OpenClaw-accessible real-world context when relevant\"}\n---\n\n# Simple Random Interaction Designer\n\nUse this skill to decide whether to send a casual proactive message and, when the answer is yes, what kind of interaction to deliver.\nUse `{baseDir}/scripts/random_interaction_designer.py` as the default execution path.\n\n## Workflow\n1. Run the script once per scheduled check interval.\n2. Read `decision` from the JSON output.\n3. Stop immediately if `decision` is `no`.\n4. If `decision` is `yes`, use both `interaction_type` and `interaction_description` to draft the outgoing message.\n5. If the selected interaction is data-aware, use any relevant OpenClaw-accessible tools, skills, or integrations to fetch live context before drafting the message.\n6. Keep the final message brief, casual, and easy to ignore without social pressure.\n7. Prefer recent chat context when it is clearly present.\n8. Do not mention the random process, scheduled checks, or why this interaction was selected.\n\n## Primary Tooling\n- Script path: `{baseDir}/scripts/random_interaction_designer.py`\n- Runtime: Python 3, standard library only.\n\nPreferred command:\n- `python3 {baseDir}/scripts/random_interaction_designer.py`\n\n## Output Contract\nWhen the result is no:\n\n```json\n{\"decision\":\"no\"}\n```\n\nWhen the result is yes:\n\n```json\n{\n  \"decision\": \"yes\",\n  \"interaction_type\": \"Playful opener\",\n  \"interaction_description\": \"Send a brief playful line that feels spontaneous and easy to ignore.\"\n}\n```\n\nContract rules:\n- `decision` is always present and is either `yes` or `no`.\n- `interaction_type` is present only when `decision` is `yes`.\n- `interaction_description` is present only when `decision` is `yes`.\n- Do not expect debug fields, probability values, roll values, or fallback metadata.\n\n## Interaction Design Rules\n- Treat the JSON as execution guidance, not user-facing text.\n- Keep the final message to one or two short chat lines.\n- Prefer soft phrasing over transactional or assistant-like framing.\n- Avoid defaulting to \"just checking in\" language.\n- Ask at most one question in a single ping.\n- Do not fabricate recent context, external facts, or account-backed data.\n- For data-aware categories, prefer real-world grounding when OpenClaw can actually access the relevant source.\n- Use smart-home, weather, calendar, traffic, news, or market context only when the information is reliable, fresh, and genuinely relevant to the user.\n- If `interaction_type` depends on context or fresh data and that support is unavailable, rerun once to try for a non-data interaction; if rerunning is not practical, keep the message general and low-pressure instead of pretending specificity.\n- Vary tone and wording from recent interactions when possible so the behavior feels casual rather than patterned.\n\n## Interaction Catalog\nUse the selected `interaction_type` and follow the matching guidance from `interaction_description`.\n\n1. `Playful opener`\n   Start with a short playful line that feels light and spontaneous.\n2. `Curious check-in`\n   Ask one low-stakes question that is easy to answer or ignore.\n3. `Light shared observation`\n   Make a casual observation that feels conversational rather than task-driven.\n4. `Tiny celebration`\n   Briefly acknowledge a small win or effort when the chat supports it.\n5. `Smart device status`\n   If OpenClaw can access relevant device state, share one useful smart-device status or gentle suggestion naturally.\n6. `Weather-aware check-in`\n   Use current weather only when fresh reliable data is available and clearly relevant.\n7. `Calendar-aware nudge`\n   Turn calendar context into a soft human-sounding reminder or prompt, not an alert.\n8. `Context-aware follow-up`\n   Build on a recent chat detail only when it is clearly present in the current conversation.\n9. `Practical nudge`\n   Offer one concise optional nudge that may help the user.\n10. `Optional real-world update`\n   Share one brief real-world update such as traffic, news, or market context only when reliable relevant data is already available.\n\n## Error Handling\n- If execution fails, surface the Python error message and rerun.\n- If output is not valid JSON, treat it as a hard failure and rerun.\n- If `decision` is missing or is not `yes` or `no`, rerun and discard the invalid result.\n- If `decision` is `yes` and either `interaction_type` or `interaction_description` is missing, rerun and discard the invalid result.\n\n## Minimal Examples\n\n```bash\npython3 {baseDir}/scripts/random_interaction_designer.py\npython3 {baseDir}/scripts/random_interaction_designer.py --seed 42\n```\n\n```powershell\npython3 \"{baseDir}/scripts/random_interaction_designer.py\"\npython3 \"{baseDir}/scripts/random_interaction_designer.py\" --seed 42\n```\n","tags":{"latest":"2.0.0"},"stats":{"comments":0,"downloads":979,"installsAllTime":37,"installsCurrent":0,"stars":2,"versions":2},"createdAt":1771607517447,"updatedAt":1778491594064},"latestVersion":{"version":"2.0.0","createdAt":1772497067520,"changelog":"Version 2.0.0 is a major redesign of the interaction decision and output format:\n\n- Replaces old yes/no and debug output with a single decision field; on yes, provides both an interaction type and description for more natural, guided outreach.\n- Refines interaction types to emphasize casual, human-like chat (e.g., playful openers, context-aware follow-ups, light shared observations).\n- Shifts to concise, easy-to-ignore, non-transactional message guidance avoiding \"just checking in\" and similar phrasing.\n- Requires real context for data-aware interactions; if unavailable, defaults to more general, low-pressure messages or retries for a non-data type.\n- Omits probability and roll details from the output for cleaner integration and simpler error handling.\n- Clarifies contract rules, error handling, and offers more examples of acceptable outputs.","license":null},"metadata":null,"owner":{"handle":"fjrevoredo","userId":"s17cs3g1yxjyvt1f6tsnhv03kh884vye","displayName":"fjrevoredo","image":"https://avatars.githubusercontent.com/u/39350477?v=4"},"moderation":null}