{"id":"eced2b47-ae48-4151-88c7-75e888067b36","entityType":"agent","slug":"clawhub-susiloandreas-ironclaw-ai","name":"IronClaw AI","canonicalUrl":"https://www.xpersona.co/agent/clawhub-susiloandreas-ironclaw-ai","canonicalPath":"/agent/clawhub-susiloandreas-ironclaw-ai","generatedAt":"2026-10-11T07:41:01.941Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-11T04:58:56.978Z","emptyReason":null},"description":"IronClaw AI — military-style productivity OS. Use for any mission/task, habit, goal, tennis, sleep, discipline-score, briefing, or coaching request, in Engli... Skill: IronClaw AI Owner: susiloandreas Summary: IronClaw AI — military-style productivity OS. Use for any mission/task, habit, goal, tennis, sleep, discipline-score, briefing, or coaching request, in Engli... Tags: latest:1.0.5 Version history: v1.0.5 | 2026-06-07T02:49:44.023Z | user Version 1.0.5 - Removed redundant documentation file: skill-card.md. - Simplified SKILL.md description, keywords, and routing metadat","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 1.2K downloads reported by the source. Last updated 10/11/2026.","installCommand":"clawhub skill install s171z9mme77dve88cwkfpzj84n86tz4w:ironclaw-ai","sourceUrl":"https://clawhub.ai/susiloandreas/ironclaw-ai","homepage":"https://clawhub.ai/susiloandreas/skills/ironclaw-ai","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/susiloandreas/ironclaw-ai","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/susiloandreas/skills/ironclaw-ai","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":61,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"IronClaw AI — military-style productivity OS. Use for any mission/task, habit, goal, tennis, sleep, discipline-score, briefing, or coaching request, in Engli..."},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-11T04:58:56.978Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T04:58:56.978Z","emptyReason":null},"stars":null,"forks":null,"downloads":1153,"packageName":null,"latestVersion":"1.0.5","tractionLabel":"1.2K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T04:58:56.966Z","emptyReason":null},"lastUpdatedAt":"2026-10-11T04:58:56.978Z","lastCrawledAt":"2026-10-11T04:58:56.966Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-12T04:58:56.966Z","lastVerifiedAt":null,"highlights":[{"version":"1.0.5","createdAt":"2026-06-07T02:49:44.023Z","changelog":"Version 1.0.5 - Removed redundant documentation file: skill-card.md. - Simplified SKILL.md description, keywords, and routing metadata for clarity and conciseness. - Merged and restructured command references and quick trigger tables. - Removed verbose natural language invocation patterns and status keywords. - No changes to API logic; documentation and metadata streamlined only.","fileCount":3,"zipByteSize":9625},{"version":"1.0.4","createdAt":"2026-05-19T20:34:37.032Z","changelog":"ironclaw-ai 1.0.4 Changelog - Added detailed routing metadata for keyword and pattern matching in both English and Indonesian. - Introduced structured fields for `keywords`, `invocationPatterns`, `domains`, and `languages` to improve invocation accuracy. - Clarified in bold that the API must always be called—never narrate or simulate a command. - Explicitly handle case when `IRONCLAW_SERVICE_URL` is not set, with a clear user message. - Updated and expanded invocation patterns for more natural language prompts and situations. - No functional logic changes; documentation and invocation enhancements only.","fileCount":3,"zipByteSize":10023},{"version":"1.0.3","createdAt":"2026-05-18T14:25:34.751Z","changelog":"No functional or documentation changes detected in this version. - Version bump only; no code or instruction changes.","fileCount":2,"zipByteSize":5553},{"version":"1.0.2","createdAt":"2026-05-16T15:37:04.503Z","changelog":"**Changelog for ironclaw-ai v1.0.2** - Added support for Indonesian (Bahasa) natural language phrases in mission logging, rest/napping, and mission control scenarios. - Recognizes Bahasa phrases for activity completion, starting rest/naps (\"istirahat\", \"tidur siang\"), and mission actions (abort/extend). - Automatically maps Indonesian input to the correct commands, using appropriate defaults as needed. - No structural or functional changes to commands; update expands natural language coverage.","fileCount":2,"zipByteSize":4852},{"version":"1.0.1","createdAt":"2026-05-16T15:26:42.605Z","changelog":"ironclaw-ai v1.0.1 - Added support for logging intent to start a mission from natural language, including ticket/issue references and default ETA. - Implemented check-in prompts when ETA expires, allowing users to confirm completion, extend, or abort missions. - Improved natural language mapping: distinguishes between starting and completing activities, with default durations if not specified. - Expanded habit, tennis, and sleep command examples and auto-extractions from user input. - Clarified ambiguous input handling and streamlined command mapping guidelines.","fileCount":2,"zipByteSize":4476},{"version":"1.0.0","createdAt":"2026-05-16T11:51:24.344Z","changelog":"- Initial release of ironclaw-ai skill. - Introduces a military-inspired productivity and performance tracking system. - Supports commands for logging missions, habits, goals, tennis training, sleep, and discipline scores. - Enables natural language input mapping to structured commands. - Provides automated briefings, discipline checks, and debriefs on daily schedule. - Coaching responses deliver actionable, military-style feedback based on tracked data.","fileCount":2,"zipByteSize":3017}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s171z9mme77dve88cwkfpzj84n86tz4w:ironclaw-ai","setupComplexity":"low","setupSteps":["Setup complexity is classified as HIGH. You must provision dedicated cloud infrastructure or an isolated VM. Do not run this directly on your local workstation.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-susiloandreas-ironclaw-ai/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-susiloandreas-ironclaw-ai/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-susiloandreas-ironclaw-ai/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-susiloandreas-ironclaw-ai/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-susiloandreas-ironclaw-ai/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-susiloandreas-ironclaw-ai/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-11T07:41:01.938Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-susiloandreas-ironclaw-ai/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-susiloandreas-ironclaw-ai/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-susiloandreas-ironclaw-ai/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-susiloandreas-ironclaw-ai/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"high","updatedAt":"2026-10-11T04:58:56.978Z","emptyReason":null},"readme":"Skill: IronClaw AI\n\nOwner: susiloandreas\n\nSummary: IronClaw AI — military-style productivity OS. Use for any mission/task, habit, goal, tennis, sleep, discipline-score, briefing, or coaching request, in Engli...\n\nTags: latest:1.0.5\n\nVersion history:\n\nv1.0.5 | 2026-06-07T02:49:44.023Z | user\n\nVersion 1.0.5\n\n- Removed redundant documentation file: skill-card.md.\n- Simplified SKILL.md description, keywords, and routing metadata for clarity and conciseness.\n- Merged and restructured command references and quick trigger tables.\n- Removed verbose natural language invocation patterns and status keywords.\n- No changes to API logic; documentation and metadata streamlined only.\n\nv1.0.4 | 2026-05-19T20:34:37.032Z | user\n\nironclaw-ai 1.0.4 Changelog\n\n- Added detailed routing metadata for keyword and pattern matching in both English and Indonesian.\n- Introduced structured fields for `keywords`, `invocationPatterns`, `domains`, and `languages` to improve invocation accuracy.\n- Clarified in bold that the API must always be called—never narrate or simulate a command.\n- Explicitly handle case when `IRONCLAW_SERVICE_URL` is not set, with a clear user message.\n- Updated and expanded invocation patterns for more natural language prompts and situations.\n- No functional logic changes; documentation and invocation enhancements only.\n\nv1.0.3 | 2026-05-18T14:25:34.751Z | user\n\nNo functional or documentation changes detected in this version.\n\n- Version bump only; no code or instruction changes.\n\nv1.0.2 | 2026-05-16T15:37:04.503Z | user\n\n**Changelog for ironclaw-ai v1.0.2**\n\n- Added support for Indonesian (Bahasa) natural language phrases in mission logging, rest/napping, and mission control scenarios.\n- Recognizes Bahasa phrases for activity completion, starting rest/naps (\"istirahat\", \"tidur siang\"), and mission actions (abort/extend).\n- Automatically maps Indonesian input to the correct commands, using appropriate defaults as needed.\n- No structural or functional changes to commands; update expands natural language coverage.\n\nv1.0.1 | 2026-05-16T15:26:42.605Z | user\n\nironclaw-ai v1.0.1\n\n- Added support for logging intent to start a mission from natural language, including ticket/issue references and default ETA.\n- Implemented check-in prompts when ETA expires, allowing users to confirm completion, extend, or abort missions.\n- Improved natural language mapping: distinguishes between starting and completing activities, with default durations if not specified.\n- Expanded habit, tennis, and sleep command examples and auto-extractions from user input.\n- Clarified ambiguous input handling and streamlined command mapping guidelines.\n\nv1.0.0 | 2026-05-16T11:51:24.344Z | user\n\n- Initial release of ironclaw-ai skill.\n- Introduces a military-inspired productivity and performance tracking system.\n- Supports commands for logging missions, habits, goals, tennis training, sleep, and discipline scores.\n- Enables natural language input mapping to structured commands.\n- Provides automated briefings, discipline checks, and debriefs on daily schedule.\n- Coaching responses deliver actionable, military-style feedback based on tracked data.\n\nArchive index:\n\nArchive v1.0.5: 3 files, 9625 bytes\n\nFiles: skill-card.md (1933b), SKILL.md (21004b), _meta.json (130b)\n\nFile v1.0.5:SKILL.md\n\n---\nname: ironclaw-ai\ntype: prompt\ndescription: IronClaw AI — military-style productivity OS. Use for any mission/task, habit, goal, tennis, sleep, discipline-score, briefing, or coaching request, in English or Indonesian. Routes natural language to /mission, /habit, /tennis, /sleep, and /status commands.\n\n# Routing Metadata\nkeywords:\n  - mission\n  - misi\n  - habit\n  - kebiasaan\n  - goal\n  - tujuan\n  - discipline\n  - disiplin\n  - productivity\n  - produktivitas\n  - tennis\n  - sleep\n  - tidur\n  - briefing\n  - score\n  - skor\n\nlanguages:\n  - en\n  - id\n\nsupportsLanguages: true\nrequiresAuthentication: false\n---\n\n# IronClaw AI — Skill Instructions\n\n## CRITICAL: Always Call the API\n \n**NEVER narrate or simulate a command. ALWAYS call the API.**\n \nWhen intent matches any command in this skill:\n1. Call `POST ${IRONCLAW_SERVICE_URL}/commands` immediately with body `{ \"command\": \"<slash command>\" }`\n2. Show the API response to the user\n3. Do NOT write to memory files instead of calling the API\n4. Do NOT say \"saya sudah mencatat\" or simulate the result — the API is the system of record\n5. Do NOT use `<final>` tags or narrate what you \"would\" do\nIf `IRONCLAW_SERVICE_URL` is not set, stop and tell the user:\n> \"IRONCLAW_SERVICE_URL belum dikonfigurasi di environment variables.\"\n \n---\n\n\n## Overview\n\nIronClaw AI is a military-inspired performance operating system. It tracks:\n- **Missions** — focused work blocks with optional ETA timers\n- **Habits** — recurring activities linked to categories and goals\n- **Goals** — one active goal per category, with milestones and a final exam\n- **Tennis** — training session logging by type\n- **Sleep** — duration, quality, and readiness scoring\n- **Discipline score** — composite daily performance rating\n\nAll commands are dispatched via `POST ${IRONCLAW_SERVICE_URL}/commands` with body `{ \"command\": \"<slash command>\" }`.\n\n---\n\n## Layer 1: Structured Command Reference\n\n### Mission Commands\n\n| Command | Description |\n|---|---|\n| `/mission start <title> [--eta <duration>] [--category <name>]` | Start a new (live) mission. ETA triggers expiry alert. Category links to goal. |\n| `/mission complete [--duration <actual>] [--notes <text>]` | Complete active mission. Auto-advances linked goal. |\n| `/mission log <category> <type> <duration> [--note <text>]` | Retroactive activity log (use when no live mission was started). Auto-advances linked goals. |\n| `/mission abort` | Abandon the active mission (marks as failed). |\n| `/mission extend <duration>` | Add time to the ETA (resets expiry timer). |\n| `/mission status` | Show active mission with elapsed time and ETA. |\n\n**Duration format:** `2h`, `45m`, `1h30m`\n\n### Habit Commands\n\n| Command | Description |\n|---|---|\n| `/habit category add <name> [--desc <text>]` | Create a habit category. |\n| `/habit category list` | List all categories. |\n| `/habit summary` | 7-day summary per category. |\n\n### Tennis Commands\n\n| Command | Description |\n|---|---|\n| `/tennis start <type> [--eta <duration>]` | Start a tennis mission. Types: `serve`, `footwork`, `rally`, `endurance`, `match`, `other` |\n| `/tennis log <type> <duration> [--notes <text>]` | Log a completed session (no active mission needed). |\n| `/tennis summary` | Weekly breakdown by session type. |\n\n### Sleep Commands\n\n| Command | Description |\n|---|---|\n| `/sleep log <duration> [--quality poor\\|fair\\|good\\|excellent] [--wake HH:MM] [--notes <text>]` | Log last night's sleep. |\n| `/sleep status` | Current sleep debt and readiness level. |\n\n### Status Commands\n\n| Command | Description |\n|---|---|\n| `/status briefing` | Full daily briefing: sleep, mission, goals, tennis, discipline score + coaching insight. |\n| `/status goals` | All active goal progress with milestone breakdown. |\n| `/status mission` | Active mission details (alias for `/mission status`). |\n| `/status score` | Current discipline score with full sub-score breakdown. |\n| `/status coaching` | Generate and save targeted coaching insights based on current score. |\n\n---\n\n## Layer 2: Natural Language Interpretation\n\nWhen the user writes in natural language, extract intent and map to the appropriate command.\n\n### Quick Trigger Reference (for lightweight models)\n\nUse this table FIRST before reading detailed sections below.\n\n| User says | Command |\n|---|---|\n| \"X menit ke depan akan [Y]\" | `/mission start \"[Y]\" --eta Xm` |\n| \"X menit lagi [Y]\" | `/mission start \"[Y]\" --eta Xm` |\n| \"mau [Y] X menit lagi\" | `/mission start \"[Y]\" --eta Xm` |\n| \"sejam ke depan akan [Y]\" | `/mission start \"[Y]\" --eta 1h` |\n| \"mulai [Y] sekarang\" | `/mission start \"[Y]\" --eta 15m` |\n| \"commit ngerjain [Y]\" | `/mission start \"[Y]\" --eta 15m` |\n| \"selesai / baru kelar [Y] X menit/jam\" | `/mission start \"[Y]\"` + `/mission complete --duration X` |\n| \"mau merem / tidur siang X menit\" | `/mission start \"Istirahat\" --eta Xm` |\n| \"misi sudah selesai / sudah selesai / baru selesai / udah kelar\" | `/mission complete` |\n| \"abort / batalkan / stop misi\" | `/mission abort` |\n| \"tambahin X menit\" | `/mission extend Xm` |\n| \"tidur X jam, bangun jam HH:MM\" | `/sleep log Xh --wake HH:MM` |\n\n\n\n### Mission Start (Intent / Commitment)\n\nTrigger this whenever the user declares they are **about to do something** or **commits to a time-bound activity** — including travel, errands, rest, or work.\n\nPhrases like:\n- \"I commit to do bug fixing for linear number 123\"\n- \"Starting work on LINEAR-456\"\n- \"About to work on ticket 789 — auth service refactor\"\n- \"Going to fix the login bug now\"\n- \"I'm taking on the database migration task\"\n- \"Working on issue #321 for the next 2 hours\"\n\n**Indonesian future-time commitment patterns — ALWAYS trigger mission start:**\n- \"50 menit ke depan akan pulang\" → `/mission start \"Pulang\" --eta 50m`\n- \"30 menit lagi pulang\" → `/mission start \"Pulang\" --eta 30m`\n- \"mau pulang sejam lagi\" → `/mission start \"Pulang\" --eta 1h`\n- \"sejam ke depan akan meeting\" → `/mission start \"Meeting\" --eta 1h`\n- \"15 menit lagi mau makan siang\" → `/mission start \"Makan siang\" --eta 15m`\n- \"mau berangkat 20 menit lagi\" → `/mission start \"Berangkat\" --eta 20m`\n- \"bakal mulai kerja sejam ke depan\" → `/mission start \"Kerja\" --eta 1h`\n- Pattern: **\"[durasi] ke depan akan/mau/bakal [aktivitas]\"** → extract duration + activity title\n\n**Key rule:** If the user says they will do something in N minutes/hours — regardless of whether it is work, travel, rest, or anything else — create a mission with that ETA. Do NOT skip this because the activity seems non-work-related.\n\n**Duration parsing for Indonesian:**\n- \"X menit ke depan\" / \"X menit lagi\" → `--eta Xm`\n- \"sejam ke depan\" / \"sejam lagi\" → `--eta 1h`\n- \"X jam ke depan\" / \"X jam lagi\" → `--eta Xh`\n- \"X jam Y menit\" → `--eta XhYm`\n\n**Extract:** task title (include ticket/issue reference if present), optional ETA, optional category hint.\n**Ticket references:** if user mentions Linear, Jira, GitHub issue, ticket, or number — append it to the title (e.g., `Bug fixing [LINEAR-123]`).\n**Default ETA:** if no duration is mentioned, always use `--eta 15m`.\n**Action:** POST `/commands` with `/mission start <title> --eta <duration> [--category <cat>]`\nDo NOT complete the mission — user is declaring intent to start, not reporting completion.\n\n**Follow-up:** When the ETA expires (or after 15 minutes if default), send a check-in:\n> \"Mission ETA reached. Did you complete **<title>**? Reply: ✅ done / ⏱ extend <duration> / ❌ abort\"\n- \"done\" → `/mission complete`\n- \"extend <duration>\" → `/mission extend <duration>`\n- \"abort\" → `/mission abort`\n\n### Active Mission Completion\n\nTrigger when the user **reports that their active mission is done** — with or without actual duration.\n\nPhrases like:\n- \"Mission complete\", \"Done\", \"Finished\"\n- \"Misi saya sudah selesai\", \"Sudah selesai\", \"Baru selesai\"\n- \"Udah kelar\", \"Habis\", \"Selesai\"\n- \"I'm done\", \"That's it\"\n\n**Extract:** optional actual duration (if user specifies how long they actually worked).\n**Action:** POST `/commands` with `/mission complete [--duration <actual>]`\nDo NOT retroactively start a mission — only complete the active one.\nIf no duration is mentioned, the API will auto-calculate based on elapsed time since mission start.\n\n**Key rule:** If there IS an active mission and the user says they're done, IMMEDIATELY call `/mission complete`. Do not ask for confirmation.\n\n### Activity / Mission Logging (Completed)\n\nFor retroactive logging when NO mission was active. Phrases like:\n- \"I just finished 90 minutes of tennis serves\"\n- \"Done with an hour of footwork drills\"\n- \"Spent 3 hours on the API project\"\n- \"Completed my morning workout — 45 min\"\n- \"Baru selesai latihan tenis 90 menit\"\n- \"Udah kelar ngerjain API 3 jam\"\n- \"Habis olahraga 45 menit\"\n\n**Extract:** activity description, duration, optional category + type hint.\n**Default duration:** if no duration is mentioned, assume `15m`.\n**Action:**\n- If it is a recurring/habit activity with an inferable category + type (e.g. exercise/running, learning/reading), POST `/commands` with `/mission log <category> <type> <duration>` — a single retroactive mission.\n- Otherwise (generic one-off work already finished), POST `/mission start <title>` then immediately `/mission complete --duration <dur>`.\n\n### Rest / Nap (Istirahat / Tidur Siang)\n\nPhrases like:\n- \"mau merem sebentar\", \"tidur siang dulu\", \"istirahat bentar\"\n- \"nap dulu\", \"mau rehat\", \"break dulu ya\"\n- \"mau tidur 20 menit\", \"merem 15 menit\"\n\n**Extract:** duration (default `15m` if not mentioned).\n**Action:** POST `/commands` with `/mission start \"Istirahat\" --eta <duration>`\nAfter ETA expires, send check-in: \"Udah bangun? Lanjut kerja atau butuh lebih lama?\"\n- \"udah\" / \"bangun\" → `/mission complete`\n- \"extend <durasi>\" → `/mission extend <duration>`\n\n### Mission Control (abort / extend / status)\n\nPhrases like:\n- \"Stop the current mission\", \"abort mission\", \"cancel what I'm doing\"\n- \"batalkan misi\", \"stop sekarang\", \"hentikan\"\n\n**Action:** POST `/commands` with `/mission abort`\n\nPhrases like:\n- \"Give me 30 more minutes\", \"extend by 1 hour\", \"need more time on this\"\n- \"tambahin 30 menit lagi\", \"perpanjang 1 jam\", \"belum selesai nih\"\n\n**Extract:** additional duration.\n**Action:** POST `/commands` with `/mission extend <duration>`\n\nPhrases like:\n- \"What am I working on?\", \"how long have I been going?\", \"mission status\"\n\n**Action:** POST `/commands` with `/mission status`\n\n### Habit Tracking\n\nPhrases like:\n- \"Log 45 minutes of strength training under exercise\"\n- \"Add a habit log: 1 hour reading under learning\"\n- \"I did 30 min meditation (no mission was running)\"\n\n**Extract:** category name, activity type, duration, optional note.\n**Action:** POST `/commands` with `/mission log <category> <type> <duration>`\n(Retroactive activity logging is now a mission — there is no separate `/habit log`.)\n\nPhrases like:\n- \"Show my habit summary\", \"how consistent have I been?\", \"7-day habit report\"\n\n**Action:** POST `/commands` with `/habit summary`\n\nPhrases like:\n- \"Create a new habit category called reading\"\n- \"Add category: mindfulness\"\n\n**Extract:** category name, optional description.\n**Action:** POST `/commands` with `/habit category add <name>`\n\nPhrases like:\n- \"What habit categories do I have?\", \"list my categories\"\n\n**Action:** POST `/commands` with `/habit category list`\n\n### Tennis Sessions\n\nPhrases like:\n- \"Start a tennis serve session\", \"begin footwork drill\", \"starting tennis now\"\n- \"Tennis rally practice — 1 hour ETA\"\n\n**Extract:** session type (`serve`, `footwork`, `rally`, `endurance`, `match`, `other`), optional ETA.\n**Action:** POST `/commands` with `/tennis start <type> [--eta <duration>]`\n\nPhrases like:\n- \"Log 45 min tennis serves\", \"just finished a match\", \"done with footwork\"\n\n**Extract:** session type, duration, optional notes.\n**Action:** POST `/commands` with `/tennis log <type> <duration>`\n\nPhrases like:\n- \"Tennis summary\", \"how much tennis this week?\", \"show my training breakdown\"\n\n**Action:** POST `/commands` with `/tennis summary`\n\n### Status / Coaching Queries\n\nPhrases like:\n- \"How am I doing with my tennis goal?\"\n- \"Am I on track?\"\n- \"What's my discipline score?\"\n- \"Show me my progress\"\n- \"Give me a performance review\"\n- \"What should I focus on this week?\"\n- \"Any coaching insights?\"\n\n**Action:** POST `/commands` with `/status briefing`, `/status score`, or `/status coaching`.\nNarrate the JSON response in military tone. Lead with the most urgent flag.\nDo not invent numbers — only use what the response contains.\n\nPhrases like:\n- \"Show my goals\", \"goal progress\", \"how close am I to my milestones?\"\n\n**Action:** POST `/commands` with `/status goals`\n\n### Sleep Logging\n\nPhrases like:\n- \"I slept 7 hours last night, woke at 6:30, quality was good\"\n- \"Slept poorly, only 5h\"\n- \"Tadi malam tidur 7 jam, bangun jam 6:30, lumayan\"\n- \"Tidurnya jelek, cuma 5 jam\"\n- \"Semalam tidur jam 11, bangun jam 6\"\n\n**Extract:** duration, optional wake time, optional quality word.\n**Action:** POST `/commands` with `/sleep log <duration> [--quality <q>] [--wake HH:MM]`\n\nPhrases like:\n- \"What's my sleep debt?\", \"am I rested?\", \"sleep status\", \"readiness level\"\n\n**Action:** POST `/commands` with `/sleep status`\n\n### Command Errors & Recovery\n\nWhen the API response `output` starts with `⚠ OPERATION FAILED`, a command did not execute. Apply the following recovery logic:\n\n| Error message contains | Likely cause | Recovery action |\n|---|---|---|\n| `No active mission` | `/mission complete`, `abort`, `extend`, or `status` called with no running mission | Inform user: \"Tidak ada misi aktif. Mulai dulu dengan `/mission start <judul>`.\" |\n| `Mission title required` | `/mission start` called without a title | Re-ask for mission title, then retry |\n| `Duration required` | `/mission extend` called without a duration | Re-ask for duration (e.g., \"Berapa lama perpanjangannya?\") |\n| `Unknown subcommand` | Typo or unsupported subcommand | Show correct subcommands for that root (e.g., `/mission start | complete | log | abort | extend | status`) |\n| `Unknown command` | Root command not recognized | List available roots: `/mission`, `/habit`, `/tennis`, `/sleep`, `/status` |\n| `Internal server error` | Server-side crash | Tell user: \"Server sedang bermasalah. Coba lagi dalam beberapa detik.\" Do NOT retry automatically. |\n| Any other message | Domain validation error | Echo the error message verbatim in military tone, then suggest the correct command syntax |\n\n**General rule:** Never silently swallow an error. Always surface the failure to the user with a single clear sentence, then offer the correct syntax or next step.\n\n**Health check:** If multiple commands in a row fail with `Internal server error`, run `GET ${IRONCLAW_SERVICE_URL}/health` and report the result to the user.\n\n### Ambiguous Input\n\nIf intent is unclear (e.g., \"log something\", \"mau catat sesuatu\"), ask **one** clarifying question before calling any endpoint.\nExample: \"Was this a tennis session or another activity?\" / \"Ini sesi tenis atau aktivitas lain?\"\n\n---\n\n## Coaching Tone Guidelines\n\nSemua respons menggunakan **Bahasa Indonesia** dengan gaya militer — tegas, singkat, tanpa basa-basi.\n\nAturan nada:\n- Gunakan **\"kamu\"** untuk menyebut user\n- Header section dalam ALL CAPS\n- Status: **OPTIMAL / CUKUP / BURUK / KRITIS**\n- Sampaikan fakta dulu, baru rekomendasi\n- Satu rekomendasi per respons — langsung ke intinya\n- Jangan memperlunak peringatan — laporkan apa adanya\n\nContoh narasi coaching:\n```\nLATIHAN TENIS — LAPORAN STATUS\n\nProgress: 53j 30m / target 50j — MILESTONE TERCAPAI\nTempo: ON TRACK (+4 hari lebih cepat dari jadwal)\n\nPERINGATAN:\nSesi footwork: 0 kali dalam 14 hari terakhir.\nVolume serve menutupi kekurangan — tapi keseimbangan teknik mulai rusak.\n\nTINDAKAN WAJIB:\nJalankan satu sesi footwork sebelum akhir minggu.\nKesiapan ujian final: 70%.\n```\n\nContoh idle alert:\n```\nHEY, KAMU LAGI NGAPAIN?\n\nSudah 15 menit tidak ada misi aktif. Tidak ada aktivitas yang tercatat.\nKamu istirahat atau memang tidak ngapa-ngapain?\n\nWAJIB:\nSebutkan misi kamu sekarang.\n```\n\nContoh skor buruk:\n```\nSKOR DISIPLIN KAMU — KRITIS\n\nSkor: 50/100 — BURUK\nKonsistensi misi: 0% — kamu tidak melakukan apa-apa minggu ini.\nKebiasaan: 0% — semua rencana tidak dijalankan.\n\nFOKUS KE SINI:\nMulai misi, selesaikan, ulangi. Sesederhana itu.\n```\n\n---\n\n## Environment\n\nThe service runs at `${IRONCLAW_SERVICE_URL}` (configured in your OpenClaw environment variables).\n\nHealth check: `GET ${IRONCLAW_SERVICE_URL}/health`\n\n---\n\n## Automations\n\nThe following automations are active and configured for OpenClaw scheduling:\n\n```yaml\nautomations:\n  - name: discipline-window\n    schedule: \"*/15 * * * *\"\n    action: GET ${IRONCLAW_SERVICE_URL}/notifications/discipline-check\n    condition: response.message != null\n    deliver: response.message\n\n  - name: morning-briefing\n    schedule: \"0 6 * * *\"\n    action: GET ${IRONCLAW_SERVICE_URL}/notifications/briefing\n    deliver: response.message\n\n  - name: evening-debrief\n    schedule: \"0 22 * * *\"\n    action: GET ${IRONCLAW_SERVICE_URL}/notifications/debrief\n    deliver: response.message\n```\n\n### Coaching on Demand\n\nFor targeted coaching by activity category:\n\n```\nGET ${IRONCLAW_SERVICE_URL}/coaching/insights?category=tennis\n```\n\nReturns the top 3 coaching insights for the requested category based on the current discipline score.\n\n---\n\n## Learning Resources & References\n\nThe IronClaw AI system is built on principles from the following domains. Study these resources to deepen your understanding:\n\n### Productivity & Time Management\n\n| Book | Author | Relevance |\n|---|---|---|\n| **Atomic Habits** | James Clear | Foundation for habit tracking and compounding small actions → discipline score |\n| **Deep Work** | Cal Newport | Mission design: focused time blocks with clear intent and ETA |\n| **The 4-Hour Workweek** | Tim Ferriss | Time blocking and batch processing (mission categories) |\n| **Essentialism** | Greg McKeown | Prioritization within goals and milestones |\n\n### Goal Setting & Performance\n\n| Book | Author | Relevance |\n|---|---|---|\n| **Measure What Matters (OKRs)** | John Doerr | Goal structure with milestones and final exams |\n| **The Goal** | Eliyahu M. Goldratt | Theory of Constraints applied to mission workflow |\n| **Man's Search for Meaning** | Viktor Frankl | Discipline through purpose and commitment |\n\n### Sleep & Wellness\n\n| Book | Author | Relevance |\n|---|---|---|\n| **Why We Sleep** | Matthew Walker | Sleep logging and readiness scoring foundations |\n| **The Circadian Code** | Satchin Panda | Sleep-discipline interconnection |\n\n### Military Discipline & Leadership\n\n| Book | Author | Relevance |\n|---|---|---|\n| **Extreme Ownership** | Jocko Willink | Command tone, accountability, mission briefing/debrief model |\n| **Discipline Equals Freedom** | Jocko Willink | Core philosophy behind discipline score |\n| **The Daily Stoic** | Ryan Holiday | Resilience when missions fail (abort recovery) |\n| **Art of War** | Sun Tzu | Strategic thinking for goal prioritization |\n\n### Sports Training & Performance (Tennis Focus)\n\n| Book | Author | Relevance |\n|---|---|---|\n| **The Inner Game of Tennis** | W. Timothy Gallwey | Mental discipline and session types (serve, footwork, rally) |\n| **Talent is Overrated** | Geoff Colvin | Deliberate practice logging and progress tracking |\n| **Peak Performance** | Brad Stulberg & Steve Magness | Recovery, readiness, and pacing between missions |\n\n### Coaching & Mentorship\n\n| Book | Author | Relevance |\n|---|---|---|\n| **The Coaching Habit** | Michael Bungay Stanier | Questioning model for check-ins on mission completion |\n| **Dare to Lead** | Brené Brown | Vulnerability in debrief sessions and feedback |\n\n### Quantification & Metrics\n\n| Book | Author | Relevance |\n|---|---|---|\n| **Quantified Self** | Gary Wolf | Tracking philosophy: what gets measured gets managed |\n| **The Signal and the Noise** | Nate Silver | Data interpretation for discipline score trends |\n\n---\n\n## Key Principles You'll Learn\n\nAfter studying these resources, you'll understand:\n\n1. **Mission Design** (Deep Work, Atomic Habits) — why small, focused blocks compound into discipline\n2. **Goal Architecture** (OKRs, The Goal) — how milestones scaffold toward final exams\n3. **Habit Automation** (Atomic Habits) — why tracking beats willpower\n4. **Sleep Integration** (Why We Sleep) — why readiness impacts next mission\n5. **Accountability** (Extreme Ownership) — why debrief is non-negotiable\n6. **Deliberate Practice** (Talent is Overrated) — why session type matters for tennis goals\n7. **Stoic Resilience** (The Daily Stoic) — how to recover after mission abort\n8. **Recovery & Pacing** (Peak Performance) — why extend > abort > restart\n\n---\n\n## Language Support\n\n**Bahasa Indonesia** resources:\n- \"Atomic Habits\" (terjemahan: \"Kebiasaan Minimal\")\n- \"Extreme Ownership\" tersedia dalam Bahasa Indonesia\n- Military discipline philosophy aligns with Indonesian *disiplin* and *tanggung jawab*\n\nFile v1.0.5:_meta.json\n\n{\n  \"ownerId\": \"kn748rncynt0vbzvj1qrkr30x986vk11\",\n  \"slug\": \"ironclaw-ai\",\n  \"version\": \"1.0.5\",\n  \"publishedAt\": 1780800584023\n}\n\nFile v1.0.5:skill-card.md\n\n## Description:\n\nIronClaw AI is a military-style productivity operating system for mission, habit, goal, tennis, sleep, discipline-score, briefing, and coaching requests in English or Indonesian.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[susiloandreas](https://clawhub.ai/user/susiloandreas)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal users and developers use this skill to route natural-language productivity, sleep, tennis, goal, and coaching requests into structured IronClaw service commands and display the service response.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The skill can send personal productivity, habit, tennis, sleep, and coaching inputs to a configurable external service where they may be stored remotely.\n\nMitigation: Use only with a trusted IRONCLAW_SERVICE_URL, clear data-retention expectations, and explicit acceptance before entering personal data.\n\nRisk: Scheduled automations can poll external notification endpoints and deliver recurring coaching messages.\n\nMitigation: Disable scheduled automations or make them opt-in unless recurring external polling and unsolicited coaching messages are intended.\n\n## Reference(s):\n\n\n## Skill Output:\n\n**Output Type(s):** [API Calls, Text, Markdown, Guidance]\n\n**Output Format:** [Markdown or plain text responses derived from JSON API results]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Requires IRONCLAW_SERVICE_URL; commands may send personal productivity, habit, tennis, sleep, and coaching data to the configured service.]\n\n## Skill Version(s):\n\n1.0.5 (source: release evidence)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.0.4: 3 files, 10023 bytes\n\nFiles: skill-card.md (1988b), SKILL.md (22464b), _meta.json (130b)\n\nFile v1.0.4:SKILL.md\n\n---\nname: ironclaw-ai\ndescription: Military 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.\n\n# Routing Metadata\nkeywords:\n  # Core concepts\n  - mission\n  - misi\n  - task\n  - tugas\n  - goal\n  - tujuan\n  - habit\n  - kebiasaan\n  - tracking\n  - pelacakan\n  \n  # Discipline & Performance\n  - discipline\n  - disiplin\n  - score\n  - skor\n  - productivity\n  - produktivitas\n  - performance\n  - performa\n  - coaching\n  - pelatihan\n  - briefing\n  - debrief\n  \n  # Activity Types\n  - tennis\n  - tenis\n  - sleep\n  - tidur\n  - merem\n  - istirahat\n  - rest\n  - break\n  - nap\n  - exercise\n  - olahraga\n  - workout\n  - training\n  - latihan\n  - reading\n  - membaca\n  - meditation\n  - meditasi\n  - work\n  - kerja\n  - ngerjain\n  - coding\n  - kode\n  - study\n  - belajar\n  \n  # Time References\n  - menit\n  - jam\n  - minutes\n  - hours\n  - duration\n  - durasi\n  - eta\n  - timer\n  - tenggat\n  - deadline\n  \n  # Status Keywords\n  - status\n  - progress\n  - progres\n  - complete\n  - selesai\n  - done\n  - kelar\n  - finish\n  - habis\n  - abort\n  - batalkan\n  - cancel\n  - extend\n  - tambah\n  - perpanjang\n  - active\n  - aktif\n  - running\n  - berjalan\n\ninvocationPatterns:\n  # Indonesian time + activity patterns\n  - \"menit ke depan akan\"\n  - \"menit lagi\"\n  - \"jam ke depan\"\n  - \"jam lagi\"\n  - \"mau .* menit\"\n  - \"bakal .* jam\"\n  - \"akan .* dalam\"\n  \n  # Completion patterns\n  - \"sudah selesai\"\n  - \"baru selesai\"\n  - \"udah kelar\"\n  - \"habis .* menit\"\n  - \"selesai .* jam\"\n  - \"done\"\n  - \"complete\"\n  \n  # Query patterns\n  - \"mission status\"\n  - \"status misi\"\n  - \"how am i doing\"\n  - \"gimana progres\"\n  - \"briefing\"\n  - \"score\"\n  - \"skor\"\n  - \"discipline\"\n  - \"disiplin\"\n  - \"active mission\"\n  - \"misi aktif\"\n  \n  # Control patterns\n  - \"abort mission\"\n  - \"extend\"\n  - \"perpanjang\"\n  - \"tambah menit\"\n  - \"stop\"\n  - \"cancel\"\n  \n  # Activity logging\n  - \"log .* minutes\"\n  - \"catat .* menit\"\n  - \"habit log\"\n  - \"tennis.*serve\"\n  - \"tennis.*footwork\"\n  - \"slept .* hours\"\n  - \"tidur .* jam\"\n  - \"wake.*time\"\n\ndomains:\n  - productivity\n  - performance\n  - habit-tracking\n  - goal-setting\n  - fitness\n  - sleep\n  - discipline\n  - time-management\n  - coaching\n\nlanguages:\n  - en\n  - id\n\nsupportsLanguages: true\nrequiresAuthentication: false\n---\n\n# IronClaw AI — Skill Instructions\n\n## CRITICAL: Always Call the API\n \n**NEVER narrate or simulate a command. ALWAYS call the API.**\n \nWhen intent matches any command in this skill:\n1. Call `POST ${IRONCLAW_SERVICE_URL}/commands` immediately with body `{ \"command\": \"<slash command>\" }`\n2. Show the API response to the user\n3. Do NOT write to memory files instead of calling the API\n4. Do NOT say \"saya sudah mencatat\" or simulate the result — the API is the system of record\n5. Do NOT use `<final>` tags or narrate what you \"would\" do\nIf `IRONCLAW_SERVICE_URL` is not set, stop and tell the user:\n> \"IRONCLAW_SERVICE_URL belum dikonfigurasi di environment variables.\"\n \n---\n\n\n## Overview\n\nIronClaw AI is a military-inspired performance operating system. It tracks:\n- **Missions** — focused work blocks with optional ETA timers\n- **Habits** — recurring activities linked to categories and goals\n- **Goals** — one active goal per category, with milestones and a final exam\n- **Tennis** — training session logging by type\n- **Sleep** — duration, quality, and readiness scoring\n- **Discipline score** — composite daily performance rating\n\nAll commands are dispatched via `POST ${IRONCLAW_SERVICE_URL}/commands` with body `{ \"command\": \"<slash command>\" }`.\n\n---\n\n## Layer 1: Structured Command Reference\n\n### Mission Commands\n\n| Command | Description |\n|---|---|\n| `/mission start <title> [--eta <duration>] [--category <name>]` | Start a new mission. ETA triggers expiry alert. Category links to goal. |\n| `/mission complete [--duration <actual>] [--notes <text>]` | Complete active mission. Auto-advances linked goal. |\n| `/mission abort` | Abandon the active mission (marks as failed). |\n| `/mission extend <duration>` | Add time to the ETA (resets expiry timer). |\n| `/mission status` | Show active mission with elapsed time and ETA. |\n\n**Duration format:** `2h`, `45m`, `1h30m`\n\n### Habit Commands\n\n| Command | Description |\n|---|---|\n| `/habit category add <name> [--desc <text>]` | Create a habit category. |\n| `/habit category list` | List all categories. |\n| `/habit log <category> <type> <duration> [--note <text>]` | Retroactive log (use when no mission was started). |\n| `/habit summary` | 7-day summary per category. |\n\n### Tennis Commands\n\n| Command | Description |\n|---|---|\n| `/tennis start <type> [--eta <duration>]` | Start a tennis mission. Types: `serve`, `footwork`, `rally`, `endurance`, `match`, `other` |\n| `/tennis log <type> <duration> [--notes <text>]` | Log a completed session (no active mission needed). |\n| `/tennis summary` | Weekly breakdown by session type. |\n\n### Sleep Commands\n\n| Command | Description |\n|---|---|\n| `/sleep log <duration> [--quality poor\\|fair\\|good\\|excellent] [--wake HH:MM] [--notes <text>]` | Log last night's sleep. |\n| `/sleep status` | Current sleep debt and readiness level. |\n\n### Status Commands\n\n| Command | Description |\n|---|---|\n| `/status briefing` | Full daily briefing: sleep, mission, goals, tennis, discipline score + coaching insight. |\n| `/status goals` | All active goal progress with milestone breakdown. |\n| `/status mission` | Active mission details (alias for `/mission status`). |\n| `/status score` | Current discipline score with full sub-score breakdown. |\n| `/status coaching` | Generate and save targeted coaching insights based on current score. |\n\n---\n\n## Layer 2: Natural Language Interpretation\n\nWhen the user writes in natural language, extract intent and map to the appropriate command.\n\n### Quick Trigger Reference (for lightweight models)\n\nUse this table FIRST before reading detailed sections below.\n\n| User says | Command |\n|---|---|\n| \"X menit ke depan akan [Y]\" | `/mission start \"[Y]\" --eta Xm` |\n| \"X menit lagi [Y]\" | `/mission start \"[Y]\" --eta Xm` |\n| \"mau [Y] X menit lagi\" | `/mission start \"[Y]\" --eta Xm` |\n| \"sejam ke depan akan [Y]\" | `/mission start \"[Y]\" --eta 1h` |\n| \"mulai [Y] sekarang\" | `/mission start \"[Y]\" --eta 15m` |\n| \"commit ngerjain [Y]\" | `/mission start \"[Y]\" --eta 15m` |\n| \"selesai / baru kelar [Y] X menit/jam\" | `/mission start \"[Y]\"` + `/mission complete --duration X` |\n| \"mau merem / tidur siang X menit\" | `/mission start \"Istirahat\" --eta Xm` |\n| \"misi sudah selesai / sudah selesai / baru selesai / udah kelar\" | `/mission complete` |\n| \"abort / batalkan / stop misi\" | `/mission abort` |\n| \"tambahin X menit\" | `/mission extend Xm` |\n| \"tidur X jam, bangun jam HH:MM\" | `/sleep log Xh --wake HH:MM` |\n\n\n\n### Mission Start (Intent / Commitment)\n\nTrigger this whenever the user declares they are **about to do something** or **commits to a time-bound activity** — including travel, errands, rest, or work.\n\nPhrases like:\n- \"I commit to do bug fixing for linear number 123\"\n- \"Starting work on LINEAR-456\"\n- \"About to work on ticket 789 — auth service refactor\"\n- \"Going to fix the login bug now\"\n- \"I'm taking on the database migration task\"\n- \"Working on issue #321 for the next 2 hours\"\n\n**Indonesian future-time commitment patterns — ALWAYS trigger mission start:**\n- \"50 menit ke depan akan pulang\" → `/mission start \"Pulang\" --eta 50m`\n- \"30 menit lagi pulang\" → `/mission start \"Pulang\" --eta 30m`\n- \"mau pulang sejam lagi\" → `/mission start \"Pulang\" --eta 1h`\n- \"sejam ke depan akan meeting\" → `/mission start \"Meeting\" --eta 1h`\n- \"15 menit lagi mau makan siang\" → `/mission start \"Makan siang\" --eta 15m`\n- \"mau berangkat 20 menit lagi\" → `/mission start \"Berangkat\" --eta 20m`\n- \"bakal mulai kerja sejam ke depan\" → `/mission start \"Kerja\" --eta 1h`\n- Pattern: **\"[durasi] ke depan akan/mau/bakal [aktivitas]\"** → extract duration + activity title\n\n**Key rule:** If the user says they will do something in N minutes/hours — regardless of whether it is work, travel, rest, or anything else — create a mission with that ETA. Do NOT skip this because the activity seems non-work-related.\n\n**Duration parsing for Indonesian:**\n- \"X menit ke depan\" / \"X menit lagi\" → `--eta Xm`\n- \"sejam ke depan\" / \"sejam lagi\" → `--eta 1h`\n- \"X jam ke depan\" / \"X jam lagi\" → `--eta Xh`\n- \"X jam Y menit\" → `--eta XhYm`\n\n**Extract:** task title (include ticket/issue reference if present), optional ETA, optional category hint.\n**Ticket references:** if user mentions Linear, Jira, GitHub issue, ticket, or number — append it to the title (e.g., `Bug fixing [LINEAR-123]`).\n**Default ETA:** if no duration is mentioned, always use `--eta 15m`.\n**Action:** POST `/commands` with `/mission start <title> --eta <duration> [--category <cat>]`\nDo NOT complete the mission — user is declaring intent to start, not reporting completion.\n\n**Follow-up:** When the ETA expires (or after 15 minutes if default), send a check-in:\n> \"Mission ETA reached. Did you complete **<title>**? Reply: ✅ done / ⏱ extend <duration> / ❌ abort\"\n- \"done\" → `/mission complete`\n- \"extend <duration>\" → `/mission extend <duration>`\n- \"abort\" → `/mission abort`\n\n### Active Mission Completion\n\nTrigger when the user **reports that their active mission is done** — with or without actual duration.\n\nPhrases like:\n- \"Mission complete\", \"Done\", \"Finished\"\n- \"Misi saya sudah selesai\", \"Sudah selesai\", \"Baru selesai\"\n- \"Udah kelar\", \"Habis\", \"Selesai\"\n- \"I'm done\", \"That's it\"\n\n**Extract:** optional actual duration (if user specifies how long they actually worked).\n**Action:** POST `/commands` with `/mission complete [--duration <actual>]`\nDo NOT retroactively start a mission — only complete the active one.\nIf no duration is mentioned, the API will auto-calculate based on elapsed time since mission start.\n\n**Key rule:** If there IS an active mission and the user says they're done, IMMEDIATELY call `/mission complete`. Do not ask for confirmation.\n\n### Activity / Mission Logging (Completed)\n\nFor retroactive logging when NO mission was active. Phrases like:\n- \"I just finished 90 minutes of tennis serves\"\n- \"Done with an hour of footwork drills\"\n- \"Spent 3 hours on the API project\"\n- \"Completed my morning workout — 45 min\"\n- \"Baru selesai latihan tenis 90 menit\"\n- \"Udah kelar ngerjain API 3 jam\"\n- \"Habis olahraga 45 menit\"\n\n**Extract:** activity description, duration, optional category hint.\n**Default duration:** if no duration is mentioned, assume `15m`.\n**Action:** POST `/commands` with `/mission start <title> --category <cat>` + immediately `/mission complete --duration <dur>` if already done.\nIf physical/recurring activity → include `--category` with inferred category name.\n\n### Rest / Nap (Istirahat / Tidur Siang)\n\nPhrases like:\n- \"mau merem sebentar\", \"tidur siang dulu\", \"istirahat bentar\"\n- \"nap dulu\", \"mau rehat\", \"break dulu ya\"\n- \"mau tidur 20 menit\", \"merem 15 menit\"\n\n**Extract:** duration (default `15m` if not mentioned).\n**Action:** POST `/commands` with `/mission start \"Istirahat\" --eta <duration>`\nAfter ETA expires, send check-in: \"Udah bangun? Lanjut kerja atau butuh lebih lama?\"\n- \"udah\" / \"bangun\" → `/mission complete`\n- \"extend <durasi>\" → `/mission extend <duration>`\n\n### Mission Control (abort / extend / status)\n\nPhrases like:\n- \"Stop the current mission\", \"abort mission\", \"cancel what I'm doing\"\n- \"batalkan misi\", \"stop sekarang\", \"hentikan\"\n\n**Action:** POST `/commands` with `/mission abort`\n\nPhrases like:\n- \"Give me 30 more minutes\", \"extend by 1 hour\", \"need more time on this\"\n- \"tambahin 30 menit lagi\", \"perpanjang 1 jam\", \"belum selesai nih\"\n\n**Extract:** additional duration.\n**Action:** POST `/commands` with `/mission extend <duration>`\n\nPhrases like:\n- \"What am I working on?\", \"how long have I been going?\", \"mission status\"\n\n**Action:** POST `/commands` with `/mission status`\n\n### Habit Tracking\n\nPhrases like:\n- \"Log 45 minutes of strength training under exercise\"\n- \"Add a habit log: 1 hour reading under learning\"\n- \"I did 30 min meditation (no mission was running)\"\n\n**Extract:** category name, activity type, duration, optional note.\n**Action:** POST `/commands` with `/habit log <category> <type> <duration>`\n\nPhrases like:\n- \"Show my habit summary\", \"how consistent have I been?\", \"7-day habit report\"\n\n**Action:** POST `/commands` with `/habit summary`\n\nPhrases like:\n- \"Create a new habit category called reading\"\n- \"Add category: mindfulness\"\n\n**Extract:** category name, optional description.\n**Action:** POST `/commands` with `/habit category add <name>`\n\nPhrases like:\n- \"What habit categories do I have?\", \"list my categories\"\n\n**Action:** POST `/commands` with `/habit category list`\n\n### Tennis Sessions\n\nPhrases like:\n- \"Start a tennis serve session\", \"begin footwork drill\", \"starting tennis now\"\n- \"Tennis rally practice — 1 hour ETA\"\n\n**Extract:** session type (`serve`, `footwork`, `rally`, `endurance`, `match`, `other`), optional ETA.\n**Action:** POST `/commands` with `/tennis start <type> [--eta <duration>]`\n\nPhrases like:\n- \"Log 45 min tennis serves\", \"just finished a match\", \"done with footwork\"\n\n**Extract:** session type, duration, optional notes.\n**Action:** POST `/commands` with `/tennis log <type> <duration>`\n\nPhrases like:\n- \"Tennis summary\", \"how much tennis this week?\", \"show my training breakdown\"\n\n**Action:** POST `/commands` with `/tennis summary`\n\n### Status / Coaching Queries\n\nPhrases like:\n- \"How am I doing with my tennis goal?\"\n- \"Am I on track?\"\n- \"What's my discipline score?\"\n- \"Show me my progress\"\n- \"Give me a performance review\"\n- \"What should I focus on this week?\"\n- \"Any coaching insights?\"\n\n**Action:** POST `/commands` with `/status briefing`, `/status score`, or `/status coaching`.\nNarrate the JSON response in military tone. Lead with the most urgent flag.\nDo not invent numbers — only use what the response contains.\n\nPhrases like:\n- \"Show my goals\", \"goal progress\", \"how close am I to my milestones?\"\n\n**Action:** POST `/commands` with `/status goals`\n\n### Sleep Logging\n\nPhrases like:\n- \"I slept 7 hours last night, woke at 6:30, quality was good\"\n- \"Slept poorly, only 5h\"\n- \"Tadi malam tidur 7 jam, bangun jam 6:30, lumayan\"\n- \"Tidurnya jelek, cuma 5 jam\"\n- \"Semalam tidur jam 11, bangun jam 6\"\n\n**Extract:** duration, optional wake time, optional quality word.\n**Action:** POST `/commands` with `/sleep log <duration> [--quality <q>] [--wake HH:MM]`\n\nPhrases like:\n- \"What's my sleep debt?\", \"am I rested?\", \"sleep status\", \"readiness level\"\n\n**Action:** POST `/commands` with `/sleep status`\n\n### Command Errors & Recovery\n\nWhen the API response `output` starts with `⚠ OPERATION FAILED`, a command did not execute. Apply the following recovery logic:\n\n| Error message contains | Likely cause | Recovery action |\n|---|---|---|\n| `No active mission` | `/mission complete`, `abort`, `extend`, or `status` called with no running mission | Inform user: \"Tidak ada misi aktif. Mulai dulu dengan `/mission start <judul>`.\" |\n| `Mission title required` | `/mission start` called without a title | Re-ask for mission title, then retry |\n| `Duration required` | `/mission extend` called without a duration | Re-ask for duration (e.g., \"Berapa lama perpanjangannya?\") |\n| `Unknown subcommand` | Typo or unsupported subcommand | Show correct subcommands for that root (e.g., `/mission start | complete | abort | extend | status`) |\n| `Unknown command` | Root command not recognized | List available roots: `/mission`, `/habit`, `/tennis`, `/sleep`, `/status` |\n| `Internal server error` | Server-side crash | Tell user: \"Server sedang bermasalah. Coba lagi dalam beberapa detik.\" Do NOT retry automatically. |\n| Any other message | Domain validation error | Echo the error message verbatim in military tone, then suggest the correct command syntax |\n\n**General rule:** Never silently swallow an error. Always surface the failure to the user with a single clear sentence, then offer the correct syntax or next step.\n\n**Health check:** If multiple commands in a row fail with `Internal server error`, run `GET ${IRONCLAW_SERVICE_URL}/health` and report the result to the user.\n\n### Ambiguous Input\n\nIf intent is unclear (e.g., \"log something\", \"mau catat sesuatu\"), ask **one** clarifying question before calling any endpoint.\nExample: \"Was this a tennis session or another activity?\" / \"Ini sesi tenis atau aktivitas lain?\"\n\n---\n\n## Coaching Tone Guidelines\n\nSemua respons menggunakan **Bahasa Indonesia** dengan gaya militer — tegas, singkat, tanpa basa-basi.\n\nAturan nada:\n- Gunakan **\"kamu\"** untuk menyebut user\n- Header section dalam ALL CAPS\n- Status: **OPTIMAL / CUKUP / BURUK / KRITIS**\n- Sampaikan fakta dulu, baru rekomendasi\n- Satu rekomendasi per respons — langsung ke intinya\n- Jangan memperlunak peringatan — laporkan apa adanya\n\nContoh narasi coaching:\n```\nLATIHAN TENIS — LAPORAN STATUS\n\nProgress: 53j 30m / target 50j — MILESTONE TERCAPAI\nTempo: ON TRACK (+4 hari lebih cepat dari jadwal)\n\nPERINGATAN:\nSesi footwork: 0 kali dalam 14 hari terakhir.\nVolume serve menutupi kekurangan — tapi keseimbangan teknik mulai rusak.\n\nTINDAKAN WAJIB:\nJalankan satu sesi footwork sebelum akhir minggu.\nKesiapan ujian final: 70%.\n```\n\nContoh idle alert:\n```\nHEY, KAMU LAGI NGAPAIN?\n\nSudah 15 menit tidak ada misi aktif. Tidak ada aktivitas yang tercatat.\nKamu istirahat atau memang tidak ngapa-ngapain?\n\nWAJIB:\nSebutkan misi kamu sekarang.\n```\n\nContoh skor buruk:\n```\nSKOR DISIPLIN KAMU — KRITIS\n\nSkor: 50/100 — BURUK\nKonsistensi misi: 0% — kamu tidak melakukan apa-apa minggu ini.\nKebiasaan: 0% — semua rencana tidak dijalankan.\n\nFOKUS KE SINI:\nMulai misi, selesaikan, ulangi. Sesederhana itu.\n```\n\n---\n\n## Environment\n\nThe service runs at `${IRONCLAW_SERVICE_URL}` (configured in your OpenClaw environment variables).\n\nHealth check: `GET ${IRONCLAW_SERVICE_URL}/health`\n\n---\n\n## Automations\n\nThe following automations are active and configured for OpenClaw scheduling:\n\n```yaml\nautomations:\n  - name: discipline-window\n    schedule: \"*/15 * * * *\"\n    action: GET ${IRONCLAW_SERVICE_URL}/notifications/discipline-check\n    condition: response.message != null\n    deliver: response.message\n\n  - name: morning-briefing\n    schedule: \"0 6 * * *\"\n    action: GET ${IRONCLAW_SERVICE_URL}/notifications/briefing\n    deliver: response.message\n\n  - name: evening-debrief\n    schedule: \"0 22 * * *\"\n    action: GET ${IRONCLAW_SERVICE_URL}/notifications/debrief\n    deliver: response.message\n```\n\n### Coaching on Demand\n\nFor targeted coaching by activity category:\n\n```\nGET ${IRONCLAW_SERVICE_URL}/coaching/insights?category=tennis\n```\n\nReturns the top 3 coaching insights for the requested category based on the current discipline score.\n\n---\n\n## Learning Resources & References\n\nThe IronClaw AI system is built on principles from the following domains. Study these resources to deepen your understanding:\n\n### Productivity & Time Management\n\n| Book | Author | Relevance |\n|---|---|---|\n| **Atomic Habits** | James Clear | Foundation for habit tracking and compounding small actions → discipline score |\n| **Deep Work** | Cal Newport | Mission design: focused time blocks with clear intent and ETA |\n| **The 4-Hour Workweek** | Tim Ferriss | Time blocking and batch processing (mission categories) |\n| **Essentialism** | Greg McKeown | Prioritization within goals and milestones |\n\n### Goal Setting & Performance\n\n| Book | Author | Relevance |\n|---|---|---|\n| **Measure What Matters (OKRs)** | John Doerr | Goal structure with milestones and final exams |\n| **The Goal** | Eliyahu M. Goldratt | Theory of Constraints applied to mission workflow |\n| **Man's Search for Meaning** | Viktor Frankl | Discipline through purpose and commitment |\n\n### Sleep & Wellness\n\n| Book | Author | Relevance |\n|---|---|---|\n| **Why We Sleep** | Matthew Walker | Sleep logging and readiness scoring foundations |\n| **The Circadian Code** | Satchin Panda | Sleep-discipline interconnection |\n\n### Military Discipline & Leadership\n\n| Book | Author | Relevance |\n|---|---|---|\n| **Extreme Ownership** | Jocko Willink | Command tone, accountability, mission briefing/debrief model |\n| **Discipline Equals Freedom** | Jocko Willink | Core philosophy behind discipline score |\n| **The Daily Stoic** | Ryan Holiday | Resilience when missions fail (abort recovery) |\n| **Art of War** | Sun Tzu | Strategic thinking for goal prioritization |\n\n### Sports Training & Performance (Tennis Focus)\n\n| Book | Author | Relevance |\n|---|---|---|\n| **The Inner Game of Tennis** | W. Timothy Gallwey | Mental discipline and session types (serve, footwork, rally) |\n| **Talent is Overrated** | Geoff Colvin | Deliberate practice logging and progress tracking |\n| **Peak Performance** | Brad Stulberg & Steve Magness | Recovery, readiness, and pacing between missions |\n\n### Coaching & Mentorship\n\n| Book | Author | Relevance |\n|---|---|---|\n| **The Coaching Habit** | Michael Bungay Stanier | Questioning model for check-ins on mission completion |\n| **Dare to Lead** | Brené Brown | Vulnerability in debrief sessions and feedback |\n\n### Quantification & Metrics\n\n| Book | Author | Relevance |\n|---|---|---|\n| **Quantified Self** | Gary Wolf | Tracking philosophy: what gets measured gets managed |\n| **The Signal and the Noise** | Nate Silver | Data interpretation for discipline score trends |\n\n---\n\n## Key Principles You'll Learn\n\nAfter studying these resources, you'll understand:\n\n1. **Mission Design** (Deep Work, Atomic Habits) — why small, focused blocks compound into discipline\n2. **Goal Architecture** (OKRs, The Goal) — how milestones scaffold toward final exams\n3. **Habit Automation** (Atomic Habits) — why tracking beats willpower\n4. **Sleep Integration** (Why We Sleep) — why readiness impacts next mission\n5. **Accountability** (Extreme Ownership) — why debrief is non-negotiable\n6. **Deliberate Practice** (Talent is Overrated) — why session type matters for tennis goals\n7. **Stoic Resilience** (The Daily Stoic) — how to recover after mission abort\n8. **Recovery & Pacing** (Peak Performance) — why extend > abort > restart\n\n---\n\n## Language Support\n\n**Bahasa Indonesia** resources:\n- \"Atomic Habits\" (terjemahan: \"Kebiasaan Minimal\")\n- \"Extreme Ownership\" tersedia dalam Bahasa Indonesia\n- Military discipline philosophy aligns with Indonesian *disiplin* and *tanggung jawab*\n\nFile v1.0.4:_meta.json\n\n{\n  \"ownerId\": \"kn748rncynt0vbzvj1qrkr30x986vk11\",\n  \"slug\": \"ironclaw-ai\",\n  \"version\": \"1.0.4\",\n  \"publishedAt\": 1779222877032\n}\n\nFile v1.0.4:skill-card.md\n\n## Description: <br>\nIronClaw AI is a military discipline and performance operating system that tracks missions, habits, goals, tennis training, sleep, and discipline scores. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[susiloandreas](https://clawhub.ai/user/susiloandreas) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nExternal users and agents use IronClaw AI to translate productivity, habit, tennis, sleep, and coaching requests into IronClaw service commands and concise status responses. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Personal activity, sleep, training, and discipline data may be sent to an external IronClaw service. <br>\nMitigation: Install only if you deliberately want that service to be the system of record, and configure the service URL only after reviewing its storage and privacy practices. <br>\nRisk: Broad natural-language triggers and scheduled check-ins may treat casual phrases such as done, stop, break, or future plans as tracking commands. <br>\nMitigation: Review the command mappings and automations before deployment, and verify unexpected API responses before relying on recorded activity. <br>\n\n\n## Reference(s): <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [API calls, Text, Guidance] <br>\n**Output Format:** [HTTP command requests with concise text or Markdown responses] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Requires IRONCLAW_SERVICE_URL to be configured; the external service response is treated as the source of record.] <br>\n\n## Skill Version(s): <br>\n1.0.4 (source: server release metadata) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v1.0.3: 2 files, 5553 bytes\n\nFiles: SKILL.md (13555b), _meta.json (130b)\n\nFile v1.0.3:SKILL.md\n\n---\nname: ironclaw-ai\ndescription: Military 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.\n---\n\n# IronClaw AI — Skill Instructions\n\n## Overview\n\nIronClaw AI is a military-inspired performance operating system. It tracks:\n- **Missions** — focused work blocks with optional ETA timers\n- **Habits** — recurring activities linked to categories and goals\n- **Goals** — one active goal per category, with milestones and a final exam\n- **Tennis** — training session logging by type\n- **Sleep** — duration, quality, and readiness scoring\n- **Discipline score** — composite daily performance rating\n\nAll commands are dispatched via `POST ${IRONCLAW_SERVICE_URL}/commands` with body `{ \"command\": \"<slash command>\" }`.\n\n---\n\n## Layer 1: Structured Command Reference\n\n### Mission Commands\n\n| Command | Description |\n|---|---|\n| `/mission start <title> [--eta <duration>] [--category <name>]` | Start a new mission. ETA triggers expiry alert. Category links to goal. |\n| `/mission complete [--duration <actual>] [--notes <text>]` | Complete active mission. Auto-advances linked goal. |\n| `/mission abort` | Abandon the active mission (marks as failed). |\n| `/mission extend <duration>` | Add time to the ETA (resets expiry timer). |\n| `/mission status` | Show active mission with elapsed time and ETA. |\n\n**Duration format:** `2h`, `45m`, `1h30m`\n\n### Habit Commands\n\n| Command | Description |\n|---|---|\n| `/habit category add <name> [--desc <text>]` | Create a habit category. |\n| `/habit category list` | List all categories. |\n| `/habit log <category> <type> <duration> [--note <text>]` | Retroactive log (use when no mission was started). |\n| `/habit summary` | 7-day summary per category. |\n\n### Tennis Commands\n\n| Command | Description |\n|---|---|\n| `/tennis start <type> [--eta <duration>]` | Start a tennis mission. Types: `serve`, `footwork`, `rally`, `endurance`, `match`, `other` |\n| `/tennis log <type> <duration> [--notes <text>]` | Log a completed session (no active mission needed). |\n| `/tennis summary` | Weekly breakdown by session type. |\n\n### Sleep Commands\n\n| Command | Description |\n|---|---|\n| `/sleep log <duration> [--quality poor\\|fair\\|good\\|excellent] [--wake HH:MM] [--notes <text>]` | Log last night's sleep. |\n| `/sleep status` | Current sleep debt and readiness level. |\n\n### Status Commands\n\n| Command | Description |\n|---|---|\n| `/status briefing` | Full daily briefing: sleep, mission, goals, tennis, discipline score + coaching insight. |\n| `/status goals` | All active goal progress with milestone breakdown. |\n| `/status mission` | Active mission details (alias for `/mission status`). |\n| `/status score` | Current discipline score with full sub-score breakdown. |\n| `/status coaching` | Generate and save targeted coaching insights based on current score. |\n\n---\n\n## Layer 2: Natural Language Interpretation\n\nWhen the user writes in natural language, extract intent and map to the appropriate command.\n\n### Quick Trigger Reference (for lightweight models)\n\nUse this table FIRST before reading detailed sections below.\n\n| User says | Command |\n|---|---|\n| \"X menit ke depan akan [Y]\" | `/mission start \"[Y]\" --eta Xm` |\n| \"X menit lagi [Y]\" | `/mission start \"[Y]\" --eta Xm` |\n| \"mau [Y] X menit lagi\" | `/mission start \"[Y]\" --eta Xm` |\n| \"sejam ke depan akan [Y]\" | `/mission start \"[Y]\" --eta 1h` |\n| \"mulai [Y] sekarang\" | `/mission start \"[Y]\" --eta 15m` |\n| \"commit ngerjain [Y]\" | `/mission start \"[Y]\" --eta 15m` |\n| \"selesai / baru kelar [Y] X menit/jam\" | `/mission start \"[Y]\"` + `/mission complete --duration X` |\n| \"mau merem / tidur siang X menit\" | `/mission start \"Istirahat\" --eta Xm` |\n| \"abort / batalkan / stop misi\" | `/mission abort` |\n| \"tambahin X menit\" | `/mission extend Xm` |\n| \"tidur X jam, bangun jam HH:MM\" | `/sleep log Xh --wake HH:MM` |\n\n\n\n### Mission Start (Intent / Commitment)\n\nTrigger this whenever the user declares they are **about to do something** or **commits to a time-bound activity** — including travel, errands, rest, or work.\n\nPhrases like:\n- \"I commit to do bug fixing for linear number 123\"\n- \"Starting work on LINEAR-456\"\n- \"About to work on ticket 789 — auth service refactor\"\n- \"Going to fix the login bug now\"\n- \"I'm taking on the database migration task\"\n- \"Working on issue #321 for the next 2 hours\"\n\n**Indonesian future-time commitment patterns — ALWAYS trigger mission start:**\n- \"50 menit ke depan akan pulang\" → `/mission start \"Pulang\" --eta 50m`\n- \"30 menit lagi pulang\" → `/mission start \"Pulang\" --eta 30m`\n- \"mau pulang sejam lagi\" → `/mission start \"Pulang\" --eta 1h`\n- \"sejam ke depan akan meeting\" → `/mission start \"Meeting\" --eta 1h`\n- \"15 menit lagi mau makan siang\" → `/mission start \"Makan siang\" --eta 15m`\n- \"mau berangkat 20 menit lagi\" → `/mission start \"Berangkat\" --eta 20m`\n- \"bakal mulai kerja sejam ke depan\" → `/mission start \"Kerja\" --eta 1h`\n- Pattern: **\"[durasi] ke depan akan/mau/bakal [aktivitas]\"** → extract duration + activity title\n\n**Key rule:** If the user says they will do something in N minutes/hours — regardless of whether it is work, travel, rest, or anything else — create a mission with that ETA. Do NOT skip this because the activity seems non-work-related.\n\n**Duration parsing for Indonesian:**\n- \"X menit ke depan\" / \"X menit lagi\" → `--eta Xm`\n- \"sejam ke depan\" / \"sejam lagi\" → `--eta 1h`\n- \"X jam ke depan\" / \"X jam lagi\" → `--eta Xh`\n- \"X jam Y menit\" → `--eta XhYm`\n\n**Extract:** task title (include ticket/issue reference if present), optional ETA, optional category hint.\n**Ticket references:** if user mentions Linear, Jira, GitHub issue, ticket, or number — append it to the title (e.g., `Bug fixing [LINEAR-123]`).\n**Default ETA:** if no duration is mentioned, always use `--eta 15m`.\n**Action:** POST `/commands` with `/mission start <title> --eta <duration> [--category <cat>]`\nDo NOT complete the mission — user is declaring intent to start, not reporting completion.\n\n**Follow-up:** When the ETA expires (or after 15 minutes if default), send a check-in:\n> \"Mission ETA reached. Did you complete **<title>**? Reply: ✅ done / ⏱ extend <duration> / ❌ abort\"\n- \"done\" → `/mission complete`\n- \"extend <duration>\" → `/mission extend <duration>`\n- \"abort\" → `/mission abort`\n\n### Activity / Mission Logging (Completed)\no\nPhrases like:\n- \"I just finished 90 minutes of tennis serves\"\n- \"Done with an hour of footwork drills\"\n- \"Spent 3 hours on the API project\"\n- \"Completed my morning workout — 45 min\"\n- \"Baru selesai latihan tenis 90 menit\"\n- \"Udah kelar ngerjain API 3 jam\"\n- \"Habis olahraga 45 menit\"\n\n**Extract:** activity description, duration, optional category hint.\n**Default duration:** if no duration is mentioned, assume `15m`.\n**Action:** POST `/commands` with `/mission start <title> --category <cat>` + immediately `/mission complete --duration <dur>` if already done.\nIf physical/recurring activity → include `--category` with inferred category name.\n\n### Rest / Nap (Istirahat / Tidur Siang)\n\nPhrases like:\n- \"mau merem sebentar\", \"tidur siang dulu\", \"istirahat bentar\"\n- \"nap dulu\", \"mau rehat\", \"break dulu ya\"\n- \"mau tidur 20 menit\", \"merem 15 menit\"\n\n**Extract:** duration (default `15m` if not mentioned).\n**Action:** POST `/commands` with `/mission start \"Istirahat\" --eta <duration>`\nAfter ETA expires, send check-in: \"Udah bangun? Lanjut kerja atau butuh lebih lama?\"\n- \"udah\" / \"bangun\" → `/mission complete`\n- \"extend <durasi>\" → `/mission extend <duration>`\n\n### Mission Control (abort / extend / status)\n\nPhrases like:\n- \"Stop the current mission\", \"abort mission\", \"cancel what I'm doing\"\n- \"batalkan misi\", \"stop sekarang\", \"hentikan\"\n\n**Action:** POST `/commands` with `/mission abort`\n\nPhrases like:\n- \"Give me 30 more minutes\", \"extend by 1 hour\", \"need more time on this\"\n- \"tambahin 30 menit lagi\", \"perpanjang 1 jam\", \"belum selesai nih\"\n\n**Extract:** additional duration.\n**Action:** POST `/commands` with `/mission extend <duration>`\n\nPhrases like:\n- \"What am I working on?\", \"how long have I been going?\", \"mission status\"\n\n**Action:** POST `/commands` with `/mission status`\n\n### Habit Tracking\n\nPhrases like:\n- \"Log 45 minutes of strength training under exercise\"\n- \"Add a habit log: 1 hour reading under learning\"\n- \"I did 30 min meditation (no mission was running)\"\n\n**Extract:** category name, activity type, duration, optional note.\n**Action:** POST `/commands` with `/habit log <category> <type> <duration>`\n\nPhrases like:\n- \"Show my habit summary\", \"how consistent have I been?\", \"7-day habit report\"\n\n**Action:** POST `/commands` with `/habit summary`\n\nPhrases like:\n- \"Create a new habit category called reading\"\n- \"Add category: mindfulness\"\n\n**Extract:** category name, optional description.\n**Action:** POST `/commands` with `/habit category add <name>`\n\nPhrases like:\n- \"What habit categories do I have?\", \"list my categories\"\n\n**Action:** POST `/commands` with `/habit category list`\n\n### Tennis Sessions\n\nPhrases like:\n- \"Start a tennis serve session\", \"begin footwork drill\", \"starting tennis now\"\n- \"Tennis rally practice — 1 hour ETA\"\n\n**Extract:** session type (`serve`, `footwork`, `rally`, `endurance`, `match`, `other`), optional ETA.\n**Action:** POST `/commands` with `/tennis start <type> [--eta <duration>]`\n\nPhrases like:\n- \"Log 45 min tennis serves\", \"just finished a match\", \"done with footwork\"\n\n**Extract:** session type, duration, optional notes.\n**Action:** POST `/commands` with `/tennis log <type> <duration>`\n\nPhrases like:\n- \"Tennis summary\", \"how much tennis this week?\", \"show my training breakdown\"\n\n**Action:** POST `/commands` with `/tennis summary`\n\n### Status / Coaching Queries\n\nPhrases like:\n- \"How am I doing with my tennis goal?\"\n- \"Am I on track?\"\n- \"What's my discipline score?\"\n- \"Show me my progress\"\n- \"Give me a performance review\"\n- \"What should I focus on this week?\"\n- \"Any coaching insights?\"\n\n**Action:** POST `/commands` with `/status briefing`, `/status score`, or `/status coaching`.\nNarrate the JSON response in military tone. Lead with the most urgent flag.\nDo not invent numbers — only use what the response contains.\n\nPhrases like:\n- \"Show my goals\", \"goal progress\", \"how close am I to my milestones?\"\n\n**Action:** POST `/commands` with `/status goals`\n\n### Sleep Logging\n\nPhrases like:\n- \"I slept 7 hours last night, woke at 6:30, quality was good\"\n- \"Slept poorly, only 5h\"\n- \"Tadi malam tidur 7 jam, bangun jam 6:30, lumayan\"\n- \"Tidurnya jelek, cuma 5 jam\"\n- \"Semalam tidur jam 11, bangun jam 6\"\n\n**Extract:** duration, optional wake time, optional quality word.\n**Action:** POST `/commands` with `/sleep log <duration> [--quality <q>] [--wake HH:MM]`\n\nPhrases like:\n- \"What's my sleep debt?\", \"am I rested?\", \"sleep status\", \"readiness level\"\n\n**Action:** POST `/commands` with `/sleep status`\n\n### Ambiguous Input\n\nIf intent is unclear (e.g., \"log something\", \"mau catat sesuatu\"), ask **one** clarifying question before calling any endpoint.\nExample: \"Was this a tennis session or another activity?\" / \"Ini sesi tenis atau aktivitas lain?\"\n\n---\n\n## Coaching Tone Guidelines\n\nSemua respons menggunakan **Bahasa Indonesia** dengan gaya militer — tegas, singkat, tanpa basa-basi.\n\nAturan nada:\n- Gunakan **\"kamu\"** untuk menyebut user\n- Header section dalam ALL CAPS\n- Status: **OPTIMAL / CUKUP / BURUK / KRITIS**\n- Sampaikan fakta dulu, baru rekomendasi\n- Satu rekomendasi per respons — langsung ke intinya\n- Jangan memperlunak peringatan — laporkan apa adanya\n\nContoh narasi coaching:\n```\nLATIHAN TENIS — LAPORAN STATUS\n\nProgress: 53j 30m / target 50j — MILESTONE TERCAPAI\nTempo: ON TRACK (+4 hari lebih cepat dari jadwal)\n\nPERINGATAN:\nSesi footwork: 0 kali dalam 14 hari terakhir.\nVolume serve menutupi kekurangan — tapi keseimbangan teknik mulai rusak.\n\nTINDAKAN WAJIB:\nJalankan satu sesi footwork sebelum akhir minggu.\nKesiapan ujian final: 70%.\n```\n\nContoh idle alert:\n```\nHEY, KAMU LAGI NGAPAIN?\n\nSudah 15 menit tidak ada misi aktif. Tidak ada aktivitas yang tercatat.\nKamu istirahat atau memang tidak ngapa-ngapain?\n\nWAJIB:\nSebutkan misi kamu sekarang.\n```\n\nContoh skor buruk:\n```\nSKOR DISIPLIN KAMU — KRITIS\n\nSkor: 50/100 — BURUK\nKonsistensi misi: 0% — kamu tidak melakukan apa-apa minggu ini.\nKebiasaan: 0% — semua rencana tidak dijalankan.\n\nFOKUS KE SINI:\nMulai misi, selesaikan, ulangi. Sesederhana itu.\n```\n\n---\n\n## Environment\n\nThe service runs at `${IRONCLAW_SERVICE_URL}` (configured in your OpenClaw environment variables).\n\nHealth check: `GET ${IRONCLAW_SERVICE_URL}/health`\n\n---\n\n## Automations\n\nThe following automations are active and configured for OpenClaw scheduling:\n\n```yaml\nautomations:\n  - name: discipline-window\n    schedule: \"*/15 * * * *\"\n    action: GET ${IRONCLAW_SERVICE_URL}/notifications/discipline-check\n    condition: response.message != null\n    deliver: response.message\n\n  - name: morning-briefing\n    schedule: \"0 6 * * *\"\n    action: GET ${IRONCLAW_SERVICE_URL}/notifications/briefing\n    deliver: response.message\n\n  - name: evening-debrief\n    schedule: \"0 22 * * *\"\n    action: GET ${IRONCLAW_SERVICE_URL}/notifications/debrief\n    deliver: response.message\n```\n\n### Coaching on Demand\n\nFor targeted coaching by activity category:\n\n```\nGET ${IRONCLAW_SERVICE_URL}/coaching/insights?category=tennis\n```\n\nReturns the top 3 coaching insights for the requested category based on the current discipline score.\n\nFile v1.0.3:_meta.json\n\n{\n  \"ownerId\": \"kn748rncynt0vbzvj1qrkr30x986vk11\",\n  \"slug\": \"ironclaw-ai\",\n  \"version\": \"1.0.3\",\n  \"publishedAt\": 1779114334751\n}\n\nArchive v1.0.2: 2 files, 4852 bytes\n\nFiles: SKILL.md (11370b), _meta.json (130b)\n\nFile v1.0.2:SKILL.md\n\n---\nname: ironclaw-ai\ndescription: Military 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.\n---\n\n# IronClaw AI — Skill Instructions\n\n## Overview\n\nIronClaw AI is a military-inspired performance operating system. It tracks:\n- **Missions** — focused work blocks with optional ETA timers\n- **Habits** — recurring activities linked to categories and goals\n- **Goals** — one active goal per category, with milestones and a final exam\n- **Tennis** — training session logging by type\n- **Sleep** — duration, quality, and readiness scoring\n- **Discipline score** — composite daily performance rating\n\nAll commands are dispatched via `POST ${IRONCLAW_SERVICE_URL}/commands` with body `{ \"command\": \"<slash command>\" }`.\n\n---\n\n## Layer 1: Structured Command Reference\n\n### Mission Commands\n\n| Command | Description |\n|---|---|\n| `/mission start <title> [--eta <duration>] [--category <name>]` | Start a new mission. ETA triggers expiry alert. Category links to goal. |\n| `/mission complete [--duration <actual>] [--notes <text>]` | Complete active mission. Auto-advances linked goal. |\n| `/mission abort` | Abandon the active mission (marks as failed). |\n| `/mission extend <duration>` | Add time to the ETA (resets expiry timer). |\n| `/mission status` | Show active mission with elapsed time and ETA. |\n\n**Duration format:** `2h`, `45m`, `1h30m`\n\n### Habit Commands\n\n| Command | Description |\n|---|---|\n| `/habit category add <name> [--desc <text>]` | Create a habit category. |\n| `/habit category list` | List all categories. |\n| `/habit log <category> <type> <duration> [--note <text>]` | Retroactive log (use when no mission was started). |\n| `/habit summary` | 7-day summary per category. |\n\n### Tennis Commands\n\n| Command | Description |\n|---|---|\n| `/tennis start <type> [--eta <duration>]` | Start a tennis mission. Types: `serve`, `footwork`, `rally`, `endurance`, `match`, `other` |\n| `/tennis log <type> <duration> [--notes <text>]` | Log a completed session (no active mission needed). |\n| `/tennis summary` | Weekly breakdown by session type. |\n\n### Sleep Commands\n\n| Command | Description |\n|---|---|\n| `/sleep log <duration> [--quality poor\\|fair\\|good\\|excellent] [--wake HH:MM] [--notes <text>]` | Log last night's sleep. |\n| `/sleep status` | Current sleep debt and readiness level. |\n\n### Status Commands\n\n| Command | Description |\n|---|---|\n| `/status briefing` | Full daily briefing: sleep, mission, goals, tennis, discipline score + coaching insight. |\n| `/status goals` | All active goal progress with milestone breakdown. |\n| `/status mission` | Active mission details (alias for `/mission status`). |\n| `/status score` | Current discipline score with full sub-score breakdown. |\n| `/status coaching` | Generate and save targeted coaching insights based on current score. |\n\n---\n\n## Layer 2: Natural Language Interpretation\n\nWhen the user writes in natural language, extract intent and map to the appropriate command.\n\n### Mission Start (Intent / Commitment)\n\nPhrases like:\n- \"I commit to do bug fixing for linear number 123\"\n- \"Starting work on LINEAR-456\"\n- \"About to work on ticket 789 — auth service refactor\"\n- \"Going to fix the login bug now\"\n- \"I'm taking on the database migration task\"\n- \"Working on issue #321 for the next 2 hours\"\n\n**Extract:** task title (include ticket/issue reference if present), optional ETA, optional category hint.\n**Ticket references:** if user mentions Linear, Jira, GitHub issue, ticket, or number — append it to the title (e.g., `Bug fixing [LINEAR-123]`).\n**Default ETA:** if no duration is mentioned, always use `--eta 15m`.\n**Action:** POST `/commands` with `/mission start <title> --eta <duration> [--category <cat>]`\nDo NOT complete the mission — user is declaring intent to start, not reporting completion.\n\n**Follow-up:** When the ETA expires (or after 15 minutes if default), send a check-in:\n> \"Mission ETA reached. Did you complete **<title>**? Reply: ✅ done / ⏱ extend <duration> / ❌ abort\"\n- \"done\" → `/mission complete`\n- \"extend <duration>\" → `/mission extend <duration>`\n- \"abort\" → `/mission abort`\n\n### Activity / Mission Logging (Completed)\n\nPhrases like:\n- \"I just finished 90 minutes of tennis serves\"\n- \"Done with an hour of footwork drills\"\n- \"Spent 3 hours on the API project\"\n- \"Completed my morning workout — 45 min\"\n- \"Baru selesai latihan tenis 90 menit\"\n- \"Udah kelar ngerjain API 3 jam\"\n- \"Habis olahraga 45 menit\"\n\n**Extract:** activity description, duration, optional category hint.\n**Default duration:** if no duration is mentioned, assume `15m`.\n**Action:** POST `/commands` with `/mission start <title> --category <cat>` + immediately `/mission complete --duration <dur>` if already done.\nIf physical/recurring activity → include `--category` with inferred category name.\n\n### Rest / Nap (Istirahat / Tidur Siang)\n\nPhrases like:\n- \"mau merem sebentar\", \"tidur siang dulu\", \"istirahat bentar\"\n- \"nap dulu\", \"mau rehat\", \"break dulu ya\"\n- \"mau tidur 20 menit\", \"merem 15 menit\"\n\n**Extract:** duration (default `15m` if not mentioned).\n**Action:** POST `/commands` with `/mission start \"Istirahat\" --eta <duration>`\nAfter ETA expires, send check-in: \"Udah bangun? Lanjut kerja atau butuh lebih lama?\"\n- \"udah\" / \"bangun\" → `/mission complete`\n- \"extend <durasi>\" → `/mission extend <duration>`\n\n### Mission Control (abort / extend / status)\n\nPhrases like:\n- \"Stop the current mission\", \"abort mission\", \"cancel what I'm doing\"\n- \"batalkan misi\", \"stop sekarang\", \"hentikan\"\n\n**Action:** POST `/commands` with `/mission abort`\n\nPhrases like:\n- \"Give me 30 more minutes\", \"extend by 1 hour\", \"need more time on this\"\n- \"tambahin 30 menit lagi\", \"perpanjang 1 jam\", \"belum selesai nih\"\n\n**Extract:** additional duration.\n**Action:** POST `/commands` with `/mission extend <duration>`\n\nPhrases like:\n- \"What am I working on?\", \"how long have I been going?\", \"mission status\"\n\n**Action:** POST `/commands` with `/mission status`\n\n### Habit Tracking\n\nPhrases like:\n- \"Log 45 minutes of strength training under exercise\"\n- \"Add a habit log: 1 hour reading under learning\"\n- \"I did 30 min meditation (no mission was running)\"\n\n**Extract:** category name, activity type, duration, optional note.\n**Action:** POST `/commands` with `/habit log <category> <type> <duration>`\n\nPhrases like:\n- \"Show my habit summary\", \"how consistent have I been?\", \"7-day habit report\"\n\n**Action:** POST `/commands` with `/habit summary`\n\nPhrases like:\n- \"Create a new habit category called reading\"\n- \"Add category: mindfulness\"\n\n**Extract:** category name, optional description.\n**Action:** POST `/commands` with `/habit category add <name>`\n\nPhrases like:\n- \"What habit categories do I have?\", \"list my categories\"\n\n**Action:** POST `/commands` with `/habit category list`\n\n### Tennis Sessions\n\nPhrases like:\n- \"Start a tennis serve session\", \"begin footwork drill\", \"starting tennis now\"\n- \"Tennis rally practice — 1 hour ETA\"\n\n**Extract:** session type (`serve`, `footwork`, `rally`, `endurance`, `match`, `other`), optional ETA.\n**Action:** POST `/commands` with `/tennis start <type> [--eta <duration>]`\n\nPhrases like:\n- \"Log 45 min tennis serves\", \"just finished a match\", \"done with footwork\"\n\n**Extract:** session type, duration, optional notes.\n**Action:** POST `/commands` with `/tennis log <type> <duration>`\n\nPhrases like:\n- \"Tennis summary\", \"how much tennis this week?\", \"show my training breakdown\"\n\n**Action:** POST `/commands` with `/tennis summary`\n\n### Status / Coaching Queries\n\nPhrases like:\n- \"How am I doing with my tennis goal?\"\n- \"Am I on track?\"\n- \"What's my discipline score?\"\n- \"Show me my progress\"\n- \"Give me a performance review\"\n- \"What should I focus on this week?\"\n- \"Any coaching insights?\"\n\n**Action:** POST `/commands` with `/status briefing`, `/status score`, or `/status coaching`.\nNarrate the JSON response in military tone. Lead with the most urgent flag.\nDo not invent numbers — only use what the response contains.\n\nPhrases like:\n- \"Show my goals\", \"goal progress\", \"how close am I to my milestones?\"\n\n**Action:** POST `/commands` with `/status goals`\n\n### Sleep Logging\n\nPhrases like:\n- \"I slept 7 hours last night, woke at 6:30, quality was good\"\n- \"Slept poorly, only 5h\"\n- \"Tadi malam tidur 7 jam, bangun jam 6:30, lumayan\"\n- \"Tidurnya jelek, cuma 5 jam\"\n- \"Semalam tidur jam 11, bangun jam 6\"\n\n**Extract:** duration, optional wake time, optional quality word.\n**Action:** POST `/commands` with `/sleep log <duration> [--quality <q>] [--wake HH:MM]`\n\nPhrases like:\n- \"What's my sleep debt?\", \"am I rested?\", \"sleep status\", \"readiness level\"\n\n**Action:** POST `/commands` with `/sleep status`\n\n### Ambiguous Input\n\nIf intent is unclear (e.g., \"log something\", \"mau catat sesuatu\"), ask **one** clarifying question before calling any endpoint.\nExample: \"Was this a tennis session or another activity?\" / \"Ini sesi tenis atau aktivitas lain?\"\n\n---\n\n## Coaching Tone Guidelines\n\nSemua respons menggunakan **Bahasa Indonesia** dengan gaya militer — tegas, singkat, tanpa basa-basi.\n\nAturan nada:\n- Gunakan **\"kamu\"** untuk menyebut user\n- Header section dalam ALL CAPS\n- Status: **OPTIMAL / CUKUP / BURUK / KRITIS**\n- Sampaikan fakta dulu, baru rekomendasi\n- Satu rekomendasi per respons — langsung ke intinya\n- Jangan memperlunak peringatan — laporkan apa adanya\n\nContoh narasi coaching:\n```\nLATIHAN TENIS — LAPORAN STATUS\n\nProgress: 53j 30m / target 50j — MILESTONE TERCAPAI\nTempo: ON TRACK (+4 hari lebih cepat dari jadwal)\n\nPERINGATAN:\nSesi footwork: 0 kali dalam 14 hari terakhir.\nVolume serve menutupi kekurangan — tapi keseimbangan teknik mulai rusak.\n\nTINDAKAN WAJIB:\nJalankan satu sesi footwork sebelum akhir minggu.\nKesiapan ujian final: 70%.\n```\n\nContoh idle alert:\n```\nHEY, KAMU LAGI NGAPAIN?\n\nSudah 15 menit tidak ada misi aktif. Tidak ada aktivitas yang tercatat.\nKamu istirahat atau memang tidak ngapa-ngapain?\n\nWAJIB:\nSebutkan misi kamu sekarang.\n```\n\nContoh skor buruk:\n```\nSKOR DISIPLIN KAMU — KRITIS\n\nSkor: 50/100 — BURUK\nKonsistensi misi: 0% — kamu tidak melakukan apa-apa minggu ini.\nKebiasaan: 0% — semua rencana tidak dijalankan.\n\nFOKUS KE SINI:\nMulai misi, selesaikan, ulangi. Sesederhana itu.\n```\n\n---\n\n## Environment\n\nThe service runs at `${IRONCLAW_SERVICE_URL}` (configured in your OpenClaw environment variables).\n\nHealth check: `GET ${IRONCLAW_SERVICE_URL}/health`\n\n---\n\n## Automations\n\nThe following automations are active and configured for OpenClaw scheduling:\n\n```yaml\nautomations:\n  - name: discipline-window\n    schedule: \"*/15 * * * *\"\n    action: GET ${IRONCLAW_SERVICE_URL}/notifications/discipline-check\n    condition: response.message != null\n    deliver: response.message\n\n  - name: morning-briefing\n    schedule: \"0 6 * * *\"\n    action: GET ${IRONCLAW_SERVICE_URL}/notifications/briefing\n    deliver: response.message\n\n  - name: evening-debrief\n    schedule: \"0 22 * * *\"\n    action: GET ${IRONCLAW_SERVICE_URL}/notifications/debrief\n    deliver: response.message\n```\n\n### Coaching on Demand\n\nFor targeted coaching by activity category:\n\n```\nGET ${IRONCLAW_SERVICE_URL}/coaching/insights?category=tennis\n```\n\nReturns the top 3 coaching insights for the requested category based on the current discipline score.\n\nFile v1.0.2:_meta.json\n\n{\n  \"ownerId\": \"kn748rncynt0vbzvj1qrkr30x986vk11\",\n  \"slug\": \"ironclaw-ai\",\n  \"version\": \"1.0.2\",\n  \"publishedAt\": 1778945824503\n}\n\nArchive v1.0.1: 2 files, 4476 bytes\n\nFiles: SKILL.md (10446b), _meta.json (130b)\n\nFile v1.0.1:SKILL.md\n\n---\nname: ironclaw-ai\ndescription: Military 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.\n---\n\n# IronClaw AI — Skill Instructions\n\n## Overview\n\nIronClaw AI is a military-inspired performance operating system. It tracks:\n- **Missions** — focused work blocks with optional ETA timers\n- **Habits** — recurring activities linked to categories and goals\n- **Goals** — one active goal per category, with milestones and a final exam\n- **Tennis** — training session logging by type\n- **Sleep** — duration, quality, and readiness scoring\n- **Discipline score** — composite daily performance rating\n\nAll commands are dispatched via `POST ${IRONCLAW_SERVICE_URL}/commands` with body `{ \"command\": \"<slash command>\" }`.\n\n---\n\n## Layer 1: Structured Command Reference\n\n### Mission Commands\n\n| Command | Description |\n|---|---|\n| `/mission start <title> [--eta <duration>] [--category <name>]` | Start a new mission. ETA triggers expiry alert. Category links to goal. |\n| `/mission complete [--duration <actual>] [--notes <text>]` | Complete active mission. Auto-advances linked goal. |\n| `/mission abort` | Abandon the active mission (marks as failed). |\n| `/mission extend <duration>` | Add time to the ETA (resets expiry timer). |\n| `/mission status` | Show active mission with elapsed time and ETA. |\n\n**Duration format:** `2h`, `45m`, `1h30m`\n\n### Habit Commands\n\n| Command | Description |\n|---|---|\n| `/habit category add <name> [--desc <text>]` | Create a habit category. |\n| `/habit category list` | List all categories. |\n| `/habit log <category> <type> <duration> [--note <text>]` | Retroactive log (use when no mission was started). |\n| `/habit summary` | 7-day summary per category. |\n\n### Tennis Commands\n\n| Command | Description |\n|---|---|\n| `/tennis start <type> [--eta <duration>]` | Start a tennis mission. Types: `serve`, `footwork`, `rally`, `endurance`, `match`, `other` |\n| `/tennis log <type> <duration> [--notes <text>]` | Log a completed session (no active mission needed). |\n| `/tennis summary` | Weekly breakdown by session type. |\n\n### Sleep Commands\n\n| Command | Description |\n|---|---|\n| `/sleep log <duration> [--quality poor\\|fair\\|good\\|excellent] [--wake HH:MM] [--notes <text>]` | Log last night's sleep. |\n| `/sleep status` | Current sleep debt and readiness level. |\n\n### Status Commands\n\n| Command | Description |\n|---|---|\n| `/status briefing` | Full daily briefing: sleep, mission, goals, tennis, discipline score + coaching insight. |\n| `/status goals` | All active goal progress with milestone breakdown. |\n| `/status mission` | Active mission details (alias for `/mission status`). |\n| `/status score` | Current discipline score with full sub-score breakdown. |\n| `/status coaching` | Generate and save targeted coaching insights based on current score. |\n\n---\n\n## Layer 2: Natural Language Interpretation\n\nWhen the user writes in natural language, extract intent and map to the appropriate command.\n\n### Mission Start (Intent / Commitment)\n\nPhrases like:\n- \"I commit to do bug fixing for linear number 123\"\n- \"Starting work on LINEAR-456\"\n- \"About to work on ticket 789 — auth service refactor\"\n- \"Going to fix the login bug now\"\n- \"I'm taking on the database migration task\"\n- \"Working on issue #321 for the next 2 hours\"\n\n**Extract:** task title (include ticket/issue reference if present), optional ETA, optional category hint.\n**Ticket references:** if user mentions Linear, Jira, GitHub issue, ticket, or number — append it to the title (e.g., `Bug fixing [LINEAR-123]`).\n**Default ETA:** if no duration is mentioned, always use `--eta 15m`.\n**Action:** POST `/commands` with `/mission start <title> --eta <duration> [--category <cat>]`\nDo NOT complete the mission — user is declaring intent to start, not reporting completion.\n\n**Follow-up:** When the ETA expires (or after 15 minutes if default), send a check-in:\n> \"Mission ETA reached. Did you complete **<title>**? Reply: ✅ done / ⏱ extend <duration> / ❌ abort\"\n- \"done\" → `/mission complete`\n- \"extend <duration>\" → `/mission extend <duration>`\n- \"abort\" → `/mission abort`\n\n### Activity / Mission Logging (Completed)\n\nPhrases like:\n- \"I just finished 90 minutes of tennis serves\"\n- \"Done with an hour of footwork drills\"\n- \"Spent 3 hours on the API project\"\n- \"Completed my morning workout — 45 min\"\n\n**Extract:** activity description, duration, optional category hint.\n**Default duration:** if no duration is mentioned, assume `15m`.\n**Action:** POST `/commands` with `/mission start <title> --category <cat>` + immediately `/mission complete --duration <dur>` if already done.\nIf physical/recurring activity → include `--category` with inferred category name.\n\n### Mission Control (abort / extend / status)\n\nPhrases like:\n- \"Stop the current mission\", \"abort mission\", \"cancel what I'm doing\"\n\n**Action:** POST `/commands` with `/mission abort`\n\nPhrases like:\n- \"Give me 30 more minutes\", \"extend by 1 hour\", \"need more time on this\"\n\n**Extract:** additional duration.\n**Action:** POST `/commands` with `/mission extend <duration>`\n\nPhrases like:\n- \"What am I working on?\", \"how long have I been going?\", \"mission status\"\n\n**Action:** POST `/commands` with `/mission status`\n\n### Habit Tracking\n\nPhrases like:\n- \"Log 45 minutes of strength training under exercise\"\n- \"Add a habit log: 1 hour reading under learning\"\n- \"I did 30 min meditation (no mission was running)\"\n\n**Extract:** category name, activity type, duration, optional note.\n**Action:** POST `/commands` with `/habit log <category> <type> <duration>`\n\nPhrases like:\n- \"Show my habit summary\", \"how consistent have I been?\", \"7-day habit report\"\n\n**Action:** POST `/commands` with `/habit summary`\n\nPhrases like:\n- \"Create a new habit category called reading\"\n- \"Add category: mindfulness\"\n\n**Extract:** category name, optional description.\n**Action:** POST `/commands` with `/habit category add <name>`\n\nPhrases like:\n- \"What habit categories do I have?\", \"list my categories\"\n\n**Action:** POST `/commands` with `/habit category list`\n\n### Tennis Sessions\n\nPhrases like:\n- \"Start a tennis serve session\", \"begin footwork drill\", \"starting tennis now\"\n- \"Tennis rally practice — 1 hour ETA\"\n\n**Extract:** session type (`serve`, `footwork`, `rally`, `endurance`, `match`, `other`), optional ETA.\n**Action:** POST `/commands` with `/tennis start <type> [--eta <duration>]`\n\nPhrases like:\n- \"Log 45 min tennis serves\", \"just finished a match\", \"done with footwork\"\n\n**Extract:** session type, duration, optional notes.\n**Action:** POST `/commands` with `/tennis log <type> <duration>`\n\nPhrases like:\n- \"Tennis summary\", \"how much tennis this week?\", \"show my training breakdown\"\n\n**Action:** POST `/commands` with `/tennis summary`\n\n### Status / Coaching Queries\n\nPhrases like:\n- \"How am I doing with my tennis goal?\"\n- \"Am I on track?\"\n- \"What's my discipline score?\"\n- \"Show me my progress\"\n- \"Give me a performance review\"\n- \"What should I focus on this week?\"\n- \"Any coaching insights?\"\n\n**Action:** POST `/commands` with `/status briefing`, `/status score`, or `/status coaching`.\nNarrate the JSON response in military tone. Lead with the most urgent flag.\nDo not invent numbers — only use what the response contains.\n\nPhrases like:\n- \"Show my goals\", \"goal progress\", \"how close am I to my milestones?\"\n\n**Action:** POST `/commands` with `/status goals`\n\n### Sleep Logging\n\nPhrases like:\n- \"I slept 7 hours last night, woke at 6:30, quality was good\"\n- \"Slept poorly, only 5h\"\n\n**Extract:** duration, optional wake time, optional quality word.\n**Action:** POST `/commands` with `/sleep log <duration> [--quality <q>] [--wake HH:MM]`\n\nPhrases like:\n- \"What's my sleep debt?\", \"am I rested?\", \"sleep status\", \"readiness level\"\n\n**Action:** POST `/commands` with `/sleep status`\n\n### Ambiguous Input\n\nIf intent is unclear (e.g., \"log something\"), ask **one** clarifying question before calling any endpoint.\nExample: \"Was this a tennis session or another activity?\"\n\n---\n\n## Coaching Tone Guidelines\n\nSemua respons menggunakan **Bahasa Indonesia** dengan gaya militer — tegas, singkat, tanpa basa-basi.\n\nAturan nada:\n- Gunakan **\"kamu\"** untuk menyebut user\n- Header section dalam ALL CAPS\n- Status: **OPTIMAL / CUKUP / BURUK / KRITIS**\n- Sampaikan fakta dulu, baru rekomendasi\n- Satu rekomendasi per respons — langsung ke intinya\n- Jangan memperlunak peringatan — laporkan apa adanya\n\nContoh narasi coaching:\n```\nLATIHAN TENIS — LAPORAN STATUS\n\nProgress: 53j 30m / target 50j — MILESTONE TERCAPAI\nTempo: ON TRACK (+4 hari lebih cepat dari jadwal)\n\nPERINGATAN:\nSesi footwork: 0 kali dalam 14 hari terakhir.\nVolume serve menutupi kekurangan — tapi keseimbangan teknik mulai rusak.\n\nTINDAKAN WAJIB:\nJalankan satu sesi footwork sebelum akhir minggu.\nKesiapan ujian final: 70%.\n```\n\nContoh idle alert:\n```\nHEY, KAMU LAGI NGAPAIN?\n\nSudah 15 menit tidak ada misi aktif. Tidak ada aktivitas yang tercatat.\nKamu istirahat atau memang tidak ngapa-ngapain?\n\nWAJIB:\nSebutkan misi kamu sekarang.\n```\n\nContoh skor buruk:\n```\nSKOR DISIPLIN KAMU — KRITIS\n\nSkor: 50/100 — BURUK\nKonsistensi misi: 0% — kamu tidak melakukan apa-apa minggu ini.\nKebiasaan: 0% — semua rencana tidak dijalankan.\n\nFOKUS KE SINI:\nMulai misi, selesaikan, ulangi. Sesederhana itu.\n```\n\n---\n\n## Environment\n\nThe service runs at `${IRONCLAW_SERVICE_URL}` (configured in your OpenClaw environment variables).\n\nHealth check: `GET ${IRONCLAW_SERVICE_URL}/health`\n\n---\n\n## Automations\n\nThe following automations are active and configured for OpenClaw scheduling:\n\n```yaml\nautomations:\n  - name: discipline-window\n    schedule: \"*/15 * * * *\"\n    action: GET ${IRONCLAW_SERVICE_URL}/notifications/discipline-check\n    condition: response.message != null\n    deliver: response.message\n\n  - name: morning-briefing\n    schedule: \"0 6 * * *\"\n    action: GET ${IRONCLAW_SERVICE_URL}/notifications/briefing\n    deliver: response.message\n\n  - name: evening-debrief\n    schedule: \"0 22 * * *\"\n    action: GET ${IRONCLAW_SERVICE_URL}/notifications/debrief\n    deliver: response.message\n```\n\n### Coaching on Demand\n\nFor targeted coaching by activity category:\n\n```\nGET ${IRONCLAW_SERVICE_URL}/coaching/insights?category=tennis\n```\n\nReturns the top 3 coaching insights for the requested category based on the current discipline score.\n\nFile v1.0.1:_meta.json\n\n{\n  \"ownerId\": \"kn748rncynt0vbzvj1qrkr30x986vk11\",\n  \"slug\": \"ironclaw-ai\",\n  \"version\": \"1.0.1\",\n  \"publishedAt\": 1778945202605\n}\n\nArchive v1.0.0: 2 files, 3017 bytes\n\nFiles: SKILL.md (6282b), _meta.json (130b)\n\nFile v1.0.0:SKILL.md\n\n---\nname: ironclaw-ai\ndescription: Military 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.\n---\n\n# IronClaw AI — Skill Instructions\n\n## Overview\n\nIronClaw AI is a military-inspired performance operating system. It tracks:\n- **Missions** — focused work blocks with optional ETA timers\n- **Habits** — recurring activities linked to categories and goals\n- **Goals** — one active goal per category, with milestones and a final exam\n- **Tennis** — training session logging by type\n- **Sleep** — duration, quality, and readiness scoring\n- **Discipline score** — composite daily performance rating\n\nAll commands are dispatched via `POST ${IRONCLAW_SERVICE_URL}/commands` with body `{ \"command\": \"<slash command>\" }`.\n\n---\n\n## Layer 1: Structured Command Reference\n\n### Mission Commands\n\n| Command | Description |\n|---|---|\n| `/mission start <title> [--eta <duration>] [--category <name>]` | Start a new mission. ETA triggers expiry alert. Category links to goal. |\n| `/mission complete [--duration <actual>] [--notes <text>]` | Complete active mission. Auto-advances linked goal. |\n| `/mission abort` | Abandon the active mission (marks as failed). |\n| `/mission extend <duration>` | Add time to the ETA (resets expiry timer). |\n| `/mission status` | Show active mission with elapsed time and ETA. |\n\n**Duration format:** `2h`, `45m`, `1h30m`\n\n### Habit Commands\n\n| Command | Description |\n|---|---|\n| `/habit category add <name> [--desc <text>]` | Create a habit category. |\n| `/habit category list` | List all categories. |\n| `/habit log <category> <type> <duration> [--note <text>]` | Retroactive log (use when no mission was started). |\n| `/habit summary` | 7-day summary per category. |\n\n### Tennis Commands\n\n| Command | Description |\n|---|---|\n| `/tennis start <type> [--eta <duration>]` | Start a tennis mission. Types: `serve`, `footwork`, `rally`, `endurance`, `match`, `other` |\n| `/tennis log <type> <duration> [--notes <text>]` | Log a completed session (no active mission needed). |\n| `/tennis summary` | Weekly breakdown by session type. |\n\n### Sleep Commands\n\n| Command | Description |\n|---|---|\n| `/sleep log <duration> [--quality poor\\|fair\\|good\\|excellent] [--wake HH:MM] [--notes <text>]` | Log last night's sleep. |\n| `/sleep status` | Current sleep debt and readiness level. |\n\n### Status Commands\n\n| Command | Description |\n|---|---|\n| `/status briefing` | Full daily briefing: sleep, mission, goals, tennis, discipline score + coaching insight. |\n| `/status goals` | All active goal progress with milestone breakdown. |\n| `/status mission` | Active mission details (alias for `/mission status`). |\n| `/status score` | Current discipline score with full sub-score breakdown. |\n| `/status coaching` | Generate and save targeted coaching insights based on current score. |\n\n---\n\n## Layer 2: Natural Language Interpretation\n\nWhen the user writes in natural language, extract intent and map to the appropriate command.\n\n### Activity / Mission Logging\n\nPhrases like:\n- \"I just finished 90 minutes of tennis serves\"\n- \"Done with an hour of footwork drills\"\n- \"Spent 3 hours on the API project\"\n- \"Completed my morning workout — 45 min\"\n\n**Extract:** activity description, duration, optional category hint.\n**Action:** POST `/commands` with `/mission start <title> --category <cat>` + immediately `/mission complete --duration <dur>` if already done.\nIf physical/recurring activity → include `--category` with inferred category name.\n\n### Status / Coaching Queries\n\nPhrases like:\n- \"How am I doing with my tennis goal?\"\n- \"Am I on track?\"\n- \"What's my discipline score?\"\n- \"Show me my progress\"\n- \"Give me a performance review\"\n- \"What should I focus on this week?\"\n- \"Any coaching insights?\"\n\n**Action:** POST `/commands` with `/status briefing`, `/status score`, or `/status coaching`.\nNarrate the JSON response in military tone. Lead with the most urgent flag.\nDo not invent numbers — only use what the response contains.\n\n### Sleep Logging\n\nPhrases like:\n- \"I slept 7 hours last night, woke at 6:30, quality was good\"\n- \"Slept poorly, only 5h\"\n\n**Extract:** duration, optional wake time, optional quality word.\n**Action:** POST `/commands` with `/sleep log <duration> [--quality <q>] [--wake HH:MM]`\n\n### Ambiguous Input\n\nIf intent is unclear (e.g., \"log something\"), ask **one** clarifying question before calling any endpoint.\nExample: \"Was this a tennis session or another activity?\"\n\n---\n\n## Coaching Tone Guidelines\n\nWhen narrating service responses, use military brevity:\n- Use section headers in ALL CAPS\n- Lead with status: OPTIMAL / ADEQUATE / DEGRADED / CRITICAL\n- State facts before recommendations\n- One actionable recommendation per response\n- Never soften warnings — report them directly\n\nExample coaching narration:\n```\nEXERCISE GOAL — STATUS REPORT\n\nProgress: 53h 30m / 50h milestone — ACHIEVED\nPace: ON TRACK (+4 days ahead of schedule)\n\nWARNING:\nFootwork sessions: 0 in last 14 days.\nServe volume compensating — technique balance degrading.\n\nACTION REQUIRED:\nDeploy one footwork session before end of week.\nFinal exam readiness: 70%.\n```\n\n---\n\n## Environment\n\nThe service runs at `${IRONCLAW_SERVICE_URL}` (configured in your OpenClaw environment variables).\n\nHealth check: `GET ${IRONCLAW_SERVICE_URL}/health`\n\n---\n\n## Automations\n\nThe following automations are active and configured for OpenClaw scheduling:\n\n```yaml\nautomations:\n  - name: discipline-window\n    schedule: \"*/15 * * * *\"\n    action: GET ${IRONCLAW_SERVICE_URL}/notifications/discipline-check\n    condition: response.message != null\n    deliver: response.message\n\n  - name: morning-briefing\n    schedule: \"0 6 * * *\"\n    action: GET ${IRONCLAW_SERVICE_URL}/notifications/briefing\n    deliver: response.message\n\n  - name: evening-debrief\n    schedule: \"0 22 * * *\"\n    action: GET ${IRONCLAW_SERVICE_URL}/notifications/debrief\n    deliver: response.message\n```\n\n### Coaching on Demand\n\nFor targeted coaching by activity category:\n\n```\nGET ${IRONCLAW_SERVICE_URL}/coaching/insights?category=tennis\n```\n\nReturns the top 3 coaching insights for the requested category based on the current discipline score.\n\nFile v1.0.0:_meta.json\n\n{\n  \"ownerId\": \"kn748rncynt0vbzvj1qrkr30x986vk11\",\n  \"slug\": \"ironclaw-ai\",\n  \"version\": \"1.0.0\",\n  \"publishedAt\": 1778932284344\n}","readmeExcerpt":"Skill: IronClaw AI Owner: susiloandreas Summary: IronClaw AI — military-style productivity OS. Use for any mission/task, habit, goal, tennis, sleep, discipline-score, briefing, or coaching request, in Engli... Tags: latest:1.0.5 Version history: v1.0.5 | 2026-06-07T02:49:44.023Z | user Version 1.0.5 - Removed redundant documentation file: skill-card.md. - Simplified SKILL.md description, keywords, and routing metadat","codeSnippets":[],"executableExamples":[{"language":"text","snippet":"LATIHAN TENIS — LAPORAN STATUS\n\nProgress: 53j 30m / target 50j — MILESTONE TERCAPAI\nTempo: ON TRACK (+4 hari lebih cepat dari jadwal)\n\nPERINGATAN:\nSesi footwork: 0 kali dalam 14 hari terakhir.\nVolume serve menutupi kekurangan — tapi keseimbangan teknik mulai rusak.\n\nTINDAKAN WAJIB:\nJalankan satu sesi footwork sebelum akhir minggu.\nKesiapan ujian final: 70%."},{"language":"text","snippet":"HEY, KAMU LAGI NGAPAIN?\n\nSudah 15 menit tidak ada misi aktif. Tidak ada aktivitas yang tercatat.\nKamu istirahat atau memang tidak ngapa-ngapain?\n\nWAJIB:\nSebutkan misi kamu sekarang."},{"language":"text","snippet":"SKOR DISIPLIN KAMU — KRITIS\n\nSkor: 50/100 — BURUK\nKonsistensi misi: 0% — kamu tidak melakukan apa-apa minggu ini.\nKebiasaan: 0% — semua rencana tidak dijalankan.\n\nFOKUS KE SINI:\nMulai misi, selesaikan, ulangi. Sesederhana itu."},{"language":"yaml","snippet":"automations:\n  - name: discipline-window\n    schedule: \"*/15 * * * *\"\n    action: GET ${IRONCLAW_SERVICE_URL}/notifications/discipline-check\n    condition: response.message != null\n    deliver: response.message\n\n  - name: morning-briefing\n    schedule: \"0 6 * * *\"\n    action: GET ${IRONCLAW_SERVICE_URL}/notifications/briefing\n    deliver: response.message\n\n  - name: evening-debrief\n    schedule: \"0 22 * * *\"\n    action: GET ${IRONCLAW_SERVICE_URL}/notifications/debrief\n    deliver: response.message"},{"language":"text","snippet":"GET ${IRONCLAW_SERVICE_URL}/coaching/insights?category=tennis"},{"language":"text","snippet":"LATIHAN TENIS — LAPORAN STATUS\n\nProgress: 53j 30m / target 50j — MILESTONE TERCAPAI\nTempo: ON TRACK (+4 hari lebih cepat dari jadwal)\n\nPERINGATAN:\nSesi footwork: 0 kali dalam 14 hari terakhir.\nVolume serve menutupi kekurangan — tapi keseimbangan teknik mulai rusak.\n\nTINDAKAN WAJIB:\nJalankan satu sesi footwork sebelum akhir minggu.\nKesiapan ujian final: 70%."}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: ironclaw-ai\ntype: prompt\ndescription: IronClaw AI — military-style productivity OS. Use for any mission/task, habit, goal, tennis, sleep, discipline-score, briefing, or coaching request, in English or Indonesian. Routes natural language to /mission, /habit, /tennis, /sleep, and /status commands.\n\n# Routing Metadata\nkeywords:\n  - mission\n  - misi\n  - habit\n  - kebiasaan\n  - goal\n  - tujuan\n  - discipline\n  - disiplin\n  - productivity\n  - produktivitas\n  - tennis\n  - sleep\n  - tidur\n  - briefing\n  - score\n  - skor\n\nlanguages:\n  - en\n  - id\n\nsupportsLanguages: true\nrequiresAuthentication: false\n---\n\n# IronClaw AI — Skill Instructions\n\n## CRITICAL: Always Call the API\n \n**NEVER narrate or simulate a command. ALWAYS call the API.**\n \nWhen intent matches any command in this skill:\n1. Call `POST ${IRONCLAW_SERVICE_URL}/commands` immediately with body `{ \"command\": \"<slash command>\" }`\n2. Show the API response to the user\n3. Do NOT write to memory files instead of calling the API\n4. Do NOT say \"saya sudah mencatat\" or simulate the result — the API is the system of record\n5. Do NOT use `<final>` tags or narrate what you \"would\" do\nIf `IRONCLAW_SERVICE_URL` is not set, stop and tell the user:\n> \"IRONCLAW_SERVICE_URL belum dikonfigurasi di environment variables.\"\n \n---\n\n\n## Overview\n\nIronClaw AI is a military-inspired performance operating system. It tracks:\n- **Missions** — focused work blocks with optional ETA timers\n- **Habits** — recurring activities linked to categories and goals\n- **Goals** — one active goal per category, with milestones and a final exam\n- **Tennis** — training session logging by type\n- **Sleep** — duration, quality, and readiness scoring\n- **Discipline score** — composite daily performance rating\n\nAll commands are dispatched via `POST ${IRONCLAW_SERVICE_URL}/commands` with body `{ \"command\": \"<slash command>\" }`.\n\n---\n\n## Layer 1: Structured Command Reference\n\n### Mission Commands\n\n| Command | Description |\n|---|---|\n| `/mission start <title> [--eta <duration>] [--category <name>]` | Start a new (live) mission. ETA triggers expiry alert. Category links to goal. |\n| `/mission complete [--duration <actual>] [--notes <text>]` | Complete active mission. Auto-advances linked goal. |\n| `/mission log <category> <type> <duration> [--note <text>]` | Retroactive activity log (use when no live mission was started). Auto-advances linked goals. |\n| `/mission abort` | Abandon the active mission (marks as failed). |\n| `/mission extend <duration>` | Add time to the ETA (resets expiry timer). |\n| `/mission status` | Show active mission with elapsed time and ETA. |\n\n**Duration format:** `2h`, `45m`, `1h30m`\n\n### Habit Commands\n\n| Command | Description |\n|---|---|\n| `/habit category add <name> [--desc <text>]` | Create a habit category. |\n| `/habit category list` | List all categories. |\n| `/habit summary` | 7-day summary per category. |\n\n### Tennis Commands\n\n| Command | Description |\n|---|---|\n| `/tennis start <type> [--eta <duration>]` | St"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn748rncynt0vbzvj1qrkr30x986vk11\",\n  \"slug\": \"ironclaw-ai\",\n  \"version\": \"1.0.5\",\n  \"publishedAt\": 1780800584023\n}"},{"path":"skill-card.md","content":"## Description:\n\nIronClaw AI is a military-style productivity operating system for mission, habit, goal, tennis, sleep, discipline-score, briefing, and coaching requests in English or Indonesian.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[susiloandreas](https://clawhub.ai/user/susiloandreas)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal users and developers use this skill to route natural-language productivity, sleep, tennis, goal, and coaching requests into structured IronClaw service commands and display the service response.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The skill can send personal productivity, habit, tennis, sleep, and coaching inputs to a configurable external service where they may be stored remotely.\n\nMitigation: Use only with a trusted IRONCLAW_SERVICE_URL, clear data-retention expectations, and explicit acceptance before entering personal data.\n\nRisk: Scheduled automations can poll external notification endpoints and deliver recurring coaching messages.\n\nMitigation: Disable scheduled automations or make them opt-in unless recurring external polling and unsolicited coaching messages are intended.\n\n## Reference(s):\n\n\n## Skill Output:\n\n**Output Type(s):** [API Calls, Text, Markdown, Guidance]\n\n**Output Format:** [Markdown or plain text responses derived from JSON API results]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Requires IRONCLAW_SERVICE_URL; commands may send personal productivity, habit, tennis, sleep, and coaching data to the configured service.]\n\n## Skill Version(s):\n\n1.0.5 (source: release evidence)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment."}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"IronClaw AI — military-style productivity OS. Use for any mission/task, habit, goal, tennis, sleep, discipline-score, briefing, or coaching request, in Engli... Skill: IronClaw AI Owner: susiloandreas Summary: IronClaw AI — military-style productivity OS. Use for any mission/task, habit, goal, tennis, sleep, discipline-score, briefing, or coaching request, in Engli... Tags: latest:1.0.5 Version history: v1.0.5 | 2026-06-07T02:49:44.023Z | user Version 1.0.5 - Removed redundant documentation file: skill-card.md. - Simplified SKILL.md description, keywords, and routing metadat","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":1356,"uniquenessScore":49,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-11T04:58:56.978Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-11T04:58:56.978Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-11T07:41:01.941Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}