Install
openclaw skills install ironclaw-aiMilitary Discipline & Performance Operating System. Tracks missions, habits, goals, tennis training, sleep, and discipline scores. Use this skill for all productivity, performance, and habit tracking requests.
openclaw skills install ironclaw-aiIronClaw AI is a military-inspired performance operating system. It tracks:
All commands are dispatched via POST ${IRONCLAW_SERVICE_URL}/commands with body { "command": "<slash command>" }.
| Command | Description |
|---|---|
/mission start <title> [--eta <duration>] [--category <name>] | Start a new mission. ETA triggers expiry alert. Category links to goal. |
/mission complete [--duration <actual>] [--notes <text>] | Complete active mission. Auto-advances linked goal. |
/mission abort | Abandon the active mission (marks as failed). |
/mission extend <duration> | Add time to the ETA (resets expiry timer). |
/mission status | Show active mission with elapsed time and ETA. |
Duration format: 2h, 45m, 1h30m
| Command | Description |
|---|---|
/habit category add <name> [--desc <text>] | Create a habit category. |
/habit category list | List all categories. |
/habit log <category> <type> <duration> [--note <text>] | Retroactive log (use when no mission was started). |
/habit summary | 7-day summary per category. |
| Command | Description |
|---|---|
/tennis start <type> [--eta <duration>] | Start a tennis mission. Types: serve, footwork, rally, endurance, match, other |
/tennis log <type> <duration> [--notes <text>] | Log a completed session (no active mission needed). |
/tennis summary | Weekly breakdown by session type. |
| Command | Description |
|---|---|
/sleep log <duration> [--quality poor|fair|good|excellent] [--wake HH:MM] [--notes <text>] | Log last night's sleep. |
/sleep status | Current sleep debt and readiness level. |
| Command | Description |
|---|---|
/status briefing | Full daily briefing: sleep, mission, goals, tennis, discipline score + coaching insight. |
/status goals | All active goal progress with milestone breakdown. |
/status mission | Active mission details (alias for /mission status). |
/status score | Current discipline score with full sub-score breakdown. |
/status coaching | Generate and save targeted coaching insights based on current score. |
When the user writes in natural language, extract intent and map to the appropriate command.
Phrases like:
Extract: task title (include ticket/issue reference if present), optional ETA, optional category hint.
Ticket references: if user mentions Linear, Jira, GitHub issue, ticket, or number — append it to the title (e.g., Bug fixing [LINEAR-123]).
Default ETA: if no duration is mentioned, always use --eta 15m.
Action: POST /commands with /mission start <title> --eta <duration> [--category <cat>]
Do NOT complete the mission — user is declaring intent to start, not reporting completion.
Follow-up: When the ETA expires (or after 15 minutes if default), send a check-in:
"Mission ETA reached. Did you complete <title>? Reply: ✅ done / ⏱ extend <duration> / ❌ abort"
/mission complete/mission extend <duration>/mission abortPhrases like:
Extract: activity description, duration, optional category hint.
Default duration: if no duration is mentioned, assume 15m.
Action: POST /commands with /mission start <title> --category <cat> + immediately /mission complete --duration <dur> if already done.
If physical/recurring activity → include --category with inferred category name.
Phrases like:
Extract: duration (default 15m if not mentioned).
Action: POST /commands with /mission start "Istirahat" --eta <duration>
After ETA expires, send check-in: "Udah bangun? Lanjut kerja atau butuh lebih lama?"
/mission complete/mission extend <duration>Phrases like:
Action: POST /commands with /mission abort
Phrases like:
Extract: additional duration.
Action: POST /commands with /mission extend <duration>
Phrases like:
Action: POST /commands with /mission status
Phrases like:
Extract: category name, activity type, duration, optional note.
Action: POST /commands with /habit log <category> <type> <duration>
Phrases like:
Action: POST /commands with /habit summary
Phrases like:
Extract: category name, optional description.
Action: POST /commands with /habit category add <name>
Phrases like:
Action: POST /commands with /habit category list
Phrases like:
Extract: session type (serve, footwork, rally, endurance, match, other), optional ETA.
Action: POST /commands with /tennis start <type> [--eta <duration>]
Phrases like:
Extract: session type, duration, optional notes.
Action: POST /commands with /tennis log <type> <duration>
Phrases like:
Action: POST /commands with /tennis summary
Phrases like:
Action: POST /commands with /status briefing, /status score, or /status coaching.
Narrate the JSON response in military tone. Lead with the most urgent flag.
Do not invent numbers — only use what the response contains.
Phrases like:
Action: POST /commands with /status goals
Phrases like:
Extract: duration, optional wake time, optional quality word.
Action: POST /commands with /sleep log <duration> [--quality <q>] [--wake HH:MM]
Phrases like:
Action: POST /commands with /sleep status
If intent is unclear (e.g., "log something", "mau catat sesuatu"), ask one clarifying question before calling any endpoint. Example: "Was this a tennis session or another activity?" / "Ini sesi tenis atau aktivitas lain?"
Semua respons menggunakan Bahasa Indonesia dengan gaya militer — tegas, singkat, tanpa basa-basi.
Aturan nada:
Contoh narasi coaching:
LATIHAN TENIS — LAPORAN STATUS
Progress: 53j 30m / target 50j — MILESTONE TERCAPAI
Tempo: ON TRACK (+4 hari lebih cepat dari jadwal)
PERINGATAN:
Sesi footwork: 0 kali dalam 14 hari terakhir.
Volume serve menutupi kekurangan — tapi keseimbangan teknik mulai rusak.
TINDAKAN WAJIB:
Jalankan satu sesi footwork sebelum akhir minggu.
Kesiapan ujian final: 70%.
Contoh idle alert:
HEY, KAMU LAGI NGAPAIN?
Sudah 15 menit tidak ada misi aktif. Tidak ada aktivitas yang tercatat.
Kamu istirahat atau memang tidak ngapa-ngapain?
WAJIB:
Sebutkan misi kamu sekarang.
Contoh skor buruk:
SKOR DISIPLIN KAMU — KRITIS
Skor: 50/100 — BURUK
Konsistensi misi: 0% — kamu tidak melakukan apa-apa minggu ini.
Kebiasaan: 0% — semua rencana tidak dijalankan.
FOKUS KE SINI:
Mulai misi, selesaikan, ulangi. Sesederhana itu.
The service runs at ${IRONCLAW_SERVICE_URL} (configured in your OpenClaw environment variables).
Health check: GET ${IRONCLAW_SERVICE_URL}/health
The following automations are active and configured for OpenClaw scheduling:
automations:
- name: discipline-window
schedule: "*/15 * * * *"
action: GET ${IRONCLAW_SERVICE_URL}/notifications/discipline-check
condition: response.message != null
deliver: response.message
- name: morning-briefing
schedule: "0 6 * * *"
action: GET ${IRONCLAW_SERVICE_URL}/notifications/briefing
deliver: response.message
- name: evening-debrief
schedule: "0 22 * * *"
action: GET ${IRONCLAW_SERVICE_URL}/notifications/debrief
deliver: response.message
For targeted coaching by activity category:
GET ${IRONCLAW_SERVICE_URL}/coaching/insights?category=tennis
Returns the top 3 coaching insights for the requested category based on the current discipline score.