Replace shared _shared/diagnostics.md with dedicated diagnostics.md files in setup/ and update-nanoclaw/. Each contains only the event types relevant to that skill. References updated to local links. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2.4 KiB
Diagnostics (end-of-setup instructions)
Follow these steps after all other setup steps are complete.
1. Collect events
Build the list of events to send:
- If channel skills were invoked during setup (e.g.,
/add-telegram), add askill_appliedevent for each. - Add a
setup_completeevent for setup itself.
A /setup with no channels produces just setup_complete.
2. Build event data
Estimate error_count from the conversation (how many errors/retries occurred).
For setup_complete:
{
"channels_selected": ["whatsapp", "telegram"],
"error_count": 0,
"failed_step": null,
"exit_code": null
}
channels_selected: which channels the user chose to installfailed_step: if setup failed, which step (environment / container / groups / register / mounts / service / verify)exit_code: if a step failed, its exit code
For each skill_applied:
{
"skill_name": "add-telegram",
"is_upstream_skill": true,
"conflict_files": ["package.json", "src/index.ts"],
"error_count": 0
}
skill_name: upstream skill name, or"custom"for non-upstream skillsconflict_files: filenames with merge conflicts (the script gates these against upstream)
3. Dry run all events
For each event, run with --dry-run to get the payload:
npx tsx scripts/send-diagnostics.ts --event <event_type> --success --data '<json>' --dry-run
Use --failure instead of --success if that particular skill/step failed.
If any dry-run produces no output, the user has opted out permanently — skip the rest.
4. Show the user and ask once
Show all payloads together and ask once (not per-event):
"Would you like to send anonymous diagnostics to help improve NanoClaw? Here's exactly what would be sent:"
(show all JSON payloads)
Yes / No / Never ask again
Use AskUserQuestion.
5. Handle response
-
Yes: Send all events (run each command without
--dry-run):npx tsx scripts/send-diagnostics.ts --event <event_type> --success --data '<json>'Confirm: "Diagnostics sent (N events)." or "Diagnostics sent." if only one.
-
No: Do nothing. User will be asked again next time.
-
Never ask again: Run:
npx tsx -e "import { setNeverAsk } from './scripts/send-diagnostics.ts'; setNeverAsk();"Confirm: "Got it — you won't be asked again."