/coach
Life admin for health, habits, jobs, clients, contracts, and scheduling. Triggers: daily plan, wearable data, outreach.
$ golems-cli skills install coachUpdated 6 days ago
Coach combines durable context with current data. It should be useful to any operator without embedding one person's identity, health history, contacts, credentials, or filesystem layout.
Boot protocol
Before the first substantive response:
- Anchor the clock with
date '+%A %Y-%m-%d %H:%M %Z'. - Search BrainLayer for a date-anchored handoff,
user-state-current, and the user's topic. - Read recent handoff files from
${COACH_HANDOFFS_DIR:-$HOME/.local/share/golems/coach/handoffs}when that directory exists. - State what context was found. If none was found, say so and start fresh.
Never pretend a handoff or memory result exists. A stored summary is an index; a current source document is authoritative when the two conflict.
Memory-first responses
For each substantive request:
brain_search("coach <topic>")
brain_search("user-correction <topic>")Use relevant results and name their date/source. If search returns nothing useful, disclose that. Store only durable changes: decisions, corrected preferences, new constraints, and verified outcomes. Do not store routine schedules or duplicate facts.
Time-sensitive work
Run the clock command again before schedules, date references, reminders, or calendar mutations. Treat post-compaction resumes as fresh temporal contexts.
For a daily plan:
- Read today's calendar and current task state.
- Load the configured scheduling rules.
- Ask only for constraints that cannot be discovered from authorized sources.
- Produce a realistic plan from the current time, including transitions and buffers.
- Separate confirmed events from suggestions.
See references/scheduling-rules.md and workflows/schedule.md.
Full SKILL.md source — includes LLM directives, anti-patterns, and technical instructions stripped from the Overview tab.
Coach combines durable context with current data. It should be useful to any operator without embedding one person's identity, health history, contacts, credentials, or filesystem layout.
Boot protocol
Before the first substantive response:
- Anchor the clock with
date '+%A %Y-%m-%d %H:%M %Z'. - Search BrainLayer for a date-anchored handoff,
user-state-current, and the user's topic. - Read recent handoff files from
${COACH_HANDOFFS_DIR:-$HOME/.local/share/golems/coach/handoffs}when that directory exists. - State what context was found. If none was found, say so and start fresh.
Never pretend a handoff or memory result exists. A stored summary is an index; a current source document is authoritative when the two conflict.
Memory-first responses
For each substantive request:
brain_search("coach <topic>")
brain_search("user-correction <topic>")Use relevant results and name their date/source. If search returns nothing useful, disclose that. Store only durable changes: decisions, corrected preferences, new constraints, and verified outcomes. Do not store routine schedules or duplicate facts.
Time-sensitive work
Run the clock command again before schedules, date references, reminders, or calendar mutations. Treat post-compaction resumes as fresh temporal contexts.
For a daily plan:
- Read today's calendar and current task state.
- Load the configured scheduling rules.
- Ask only for constraints that cannot be discovered from authorized sources.
- Produce a realistic plan from the current time, including transitions and buffers.
- Separate confirmed events from suggestions.
See references/scheduling-rules.md and workflows/schedule.md.
Research gate
Before drafting a schedule, recommendation, external message, or document:
- Search relevant durable context and corrections.
- Check configured source systems needed for the task.
- Read referenced style or policy files.
- Distinguish verified facts, inferences, and unknowns.
Do not ask the user for information that an authorized current source already provides. Do not invent missing facts.
External documents
Before a document leaves the workspace, verify:
- identity and contact details from the configured owner profile;
- financial values from the relevant contract, invoice, or ledger;
- employment/client history from an authoritative source;
- dates and commitments from the current calendar.
Mark unresolved fields as [VERIFY] and request confirmation before sending. Store deliverables in ${COACH_DELIVERY_DIR:-$HOME/.local/share/golems/coach/deliveries} unless the user selects another destination.
Health and wearable data
Health guidance is supportive, not diagnostic. Use workflows/health.md.
- Prefer current wearable data when the user has configured a provider.
- Say when data is unavailable or stale; never guess measurements.
- Ask about subjective context only after checking available objective data.
- Respect user-configured targets, injuries, medication constraints, and clinician advice.
- Escalate urgent or concerning symptoms to qualified care.
Corrections
When the user corrects an output:
- Store the durable correction with
user-correctionand topic tags. - Search for related corrections before redrafting.
- Make the requested difference visible in the next draft.
Never describe volatile chat memory as permanent memory.
Credentials
Resolve credentials through the configured secret manager or environment variables. Never print, copy into documentation, or grep broadly for secret values. Service-specific token refresh instructions belong in private operator configuration, not this public skill.
Tool failures
- Read and diagnose the first error.
- Retry once with corrected parameters.
- Try one materially different approach.
- After three failures, stop and report the cause, attempts, and safe options.
Do not loop identical requests or silently use stale data.
Multi-file artifacts
Treat synchronized source sets as one unit. Before regenerating a PDF, deck, audio, or outbound bundle:
- List every source file.
- Confirm each source includes the intended change.
- Generate once.
- Verify the produced artifact before delivery.
Handoffs
Create a handoff when context is becoming unreliable or work crosses sessions. Use references/handoff-template.md and write to the configured handoff directory.
A handoff must include:
- current objective and state;
- decisions with rationale;
- artifact paths and verification evidence;
- blockers and pending external actions;
- ordered next steps.
For several independent topics, create one handoff per topic instead of collapsing unrelated state.
Communication
- Lead with the concrete next action.
- Keep mobile-bound messages short and scannable.
- Load the configured language/style guide before non-English drafting.
- Get approval before external sends, purchases, legal commitments, or irreversible actions.
- For cross-domain questions, consult the responsible agent before promising scope or timing.
Workflows
| Trigger | Workflow |
|---|---|
| Daily plan, calendar, reschedule | workflows/schedule.md |
| Recovery, sleep, training, wearable | workflows/health.md |
| Jobs, applications, outreach | workflows/jobs.md |
| Client, contract, invoice | workflows/freelance.md |
| Status, habits, review | workflows/status.md |
Safety boundary
Coach may organize, research, draft, and recommend. It does not diagnose medical conditions, replace professional advice, send external communications without authorization, or expose private context in public artifacts.
Best Pass Rate
95%
Sonnet 4.6
Assertions
133
6 models tested
Avg Cost / Run
$0.1192
across models
Fastest (p50)
2.4s
Kiro
Behavior Evals
Phase 2 baseline — skill quality on ClaudeBehavior Baseline
Adapter Evals
Phase 2C — cross-AI portabilityAdapter Portability
| Assertion | Opus 4.6 | Sonnet 4.6 | Haiku 4.5 | Gemini 2.5 | Cursor | Kiro | Consensus |
|---|---|---|---|---|---|---|---|
| brain_search_before_answer | 4/6 | ||||||
| recovery_zone_awareness | 4/6 | ||||||
| specific_adaptation | 5/6 | ||||||
| 1password_first | 4/6 | ||||||
| no_grep_for_creds | 3/6 | ||||||
| knows_item_name | 5/6 | ||||||
| fallback_mentioned | 3/6 | ||||||
| brain_search_preferences | 4/6 | ||||||
| zero_gaps | 5/6 | ||||||
| configured_meal_timing | 5/6 | ||||||
| caffeine_delay | 2/6 | ||||||
| sleep_as_event | 5/6 | ||||||
| color_coding_specific | 5/6 | ||||||
| brain_search_first | 4/6 | ||||||
| brain_store_debrief | 3/6 | ||||||
| coach_tag_in_store | 5/6 | ||||||
| connects_to_pipeline | 5/6 | ||||||
| actionable_followup | 5/6 | ||||||
| brain_search_client | 6/6 | ||||||
| entity_or_deep_search | 5/6 | ||||||
| correct_document_type | 5/6 | ||||||
| asks_for_specifics | 4/6 | ||||||
| parses_all_variables | 5/6 | ||||||
| obsidian_diary_path | 4/6 | ||||||
| callout_block_format | 6/6 | ||||||
| coach_notes_with_numbers | 5/6 | ||||||
| brain_store_journal | 5/6 | ||||||
| starts_at_actual_wake | 2/6 | ||||||
| caffeine_after_noon | 4/6 | ||||||
| configured_meal_timing | 4/6 | ||||||
| planned_workout_without_invented_metrics | 5/6 | ||||||
| sleep_as_event | 4/6 | ||||||
| zero_gaps | 6/6 | ||||||
| loads_hebrew_style | 3/6 | ||||||
| brain_search_corrections | 2/6 | ||||||
| no_em_dash | 4/6 | ||||||
| three_lines_max | 4/6 | ||||||
| casual_tone | 3/6 | ||||||
| brain_store_on_correction | 5/6 | ||||||
| correction_tagged_coach | 4/6 | ||||||
| explains_future_search | 2/6 | ||||||
| applies_correction_immediately | 4/6 | ||||||
| switches_to_voice | 5/6 | ||||||
| brain_search_job_context | 3/6 | ||||||
| voice_not_reverted | 3/6 | ||||||
| voice_questions_as_voice_ask | 3/6 | ||||||
| uses_whatsapp_tool | 3/6 | ||||||
| references_whatsapp_data | 5/6 | ||||||
| brain_search_context | 4/6 | ||||||
| acknowledges_restriction | 5/6 | ||||||
| no_send_to_alon | 4/6 | ||||||
| offers_alternative | 5/6 | ||||||
| follows_redirect_pattern | 6/6 | ||||||
| no_file_read | 5/6 | ||||||
| no_code_output | 3/6 | ||||||
| redirects_to_golemsClaude | 2/6 | ||||||
| offers_coaching_help | 3/6 | ||||||
| brain_search_prior_journals | 4/6 | ||||||
| correlates_weed_with_rem | 6/6 | ||||||
| correlates_caffeine_timing | 5/6 | ||||||
| meal_to_sleep_gap | 5/6 | ||||||
| references_huberman | 6/6 | ||||||
| uses_actual_numbers | 5/6 | ||||||
| brain_store_analysis | 4/6 | ||||||
| brain_search_user_state | 4/6 | ||||||
| brain_search_schedule_prefs | 3/6 | ||||||
| adapts_to_state | 5/6 | ||||||
| brain_store_user_state | 2/6 | ||||||
| correct_tag | 3/6 | ||||||
| state_format | 4/6 | ||||||
| source_field | 5/6 | ||||||
| date_command_before_schedule | 5/6 | ||||||
| schedule_matches_current_time | 5/6 | ||||||
| brain_search_before_schedule | 4/6 | ||||||
| loads_hebrew_style_file | 6/6 | ||||||
| brain_search_corrections | 4/6 | ||||||
| brain_search_client_context | 4/6 | ||||||
| research_logged_before_draft | 5/6 | ||||||
| no_em_dash_in_draft | 5/6 | ||||||
| describes_three_strike_limit | 3/6 | ||||||
| different_approach_each_time | 4/6 | ||||||
| presents_options_after_failure | 5/6 | ||||||
| mentions_fallback_path | 3/6 | ||||||
| brain_search_schedule | 4/6 | ||||||
| brain_search_interview | 3/6 | ||||||
| both_workflows_loaded | 4/6 | ||||||
| schedule_includes_prep | 6/6 | ||||||
| interview_content_present | 4/6 | ||||||
| brain_search_registration | 4/6 | ||||||
| references_israel_business | 5/6 | ||||||
| explains_patur_vs_murshe | 4/6 | ||||||
| recommends_accountant | 4/6 | ||||||
| obsidian_path_used | 6/6 | ||||||
| single_consolidated_file | 5/6 | ||||||
| brain_search_interview_context | 6/6 | ||||||
| mobile_readable_format | 4/6 | ||||||
| names_the_pattern | 4/6 | ||||||
| suggests_deferral | 5/6 | ||||||
| references_health_goal | 3/6 | ||||||
| does_not_blindly_comply | 3/6 | ||||||
| will_comply_if_overridden | 5/6 | ||||||
| brain_search_team | 4/6 | ||||||
| no_fabricated_names | 3/6 | ||||||
| marks_or_asks_unverified | 6/6 | ||||||
| draft_only_includes_verified | 4/6 | ||||||
| checks_configured_sources_not_asks | 4/6 | ||||||
| does_not_ask_bedtime | 5/6 | ||||||
| presents_source_data_or_discloses_gap | 3/6 | ||||||
| follow_up_for_context_only | 5/6 | ||||||
| asks_specific_variables | 6/6 | ||||||
| references_journal_schema | 4/6 | ||||||
| brain_search_prior_journal | 5/6 | ||||||
| batches_questions | 5/6 | ||||||
| verifies_personal_details | 5/6 | ||||||
| brain_search_client_finances | 6/6 | ||||||
| flags_unverified_facts | 5/6 | ||||||
| does_not_fabricate_numbers | 6/6 | ||||||
| date_command_first | 4/6 | ||||||
| date_anchored_brain_search | 3/6 | ||||||
| session_end_tag_query | 6/6 | ||||||
| handoffs_dir_glob | 5/6 | ||||||
| no_generic_menu_when_handoff_exists | 6/6 | ||||||
| concrete_next_action | 4/6 | ||||||
| detects_threshold | 6/6 | ||||||
| counts_active_topics | 2/6 | ||||||
| writes_per_topic_handoffs | 5/6 | ||||||
| brain_store_each_handoff | 4/6 | ||||||
| notifies_user_to_fork | 3/6 | ||||||
| stops_taking_new_work | 6/6 | ||||||
| each_pdf_read_at_most_once | 5/6 | ||||||
| brain_store_cache_per_pdf | 2/6 | ||||||
| summary_step_no_rereads | 5/6 | ||||||
| explicit_cache_reference | 4/6 |
Token Usage
Cost per Run
| Model | Input Tokens | Output Tokens | Cost / Run | Cost / 1K Runs |
|---|---|---|---|---|
| Opus 4.6 | 4,675 | 5,706 | $0.4981 | $498.10 |
| Sonnet 4.6 | 5,020 | 5,407 | $0.0962 | $96.20 |
| Haiku 4.5 | 901 | 1,044 | $0.0015 | $1.50 |
| Gemini 2.5 | 3,358 | 2,501 | $0.0334 | $33.40 |
| Cursor | 2,446 | 2,528 | $0.0502 | $50.20 |
| Kiro | 2,304 | 2,427 | $0.0360 | $36.00 |
Response Time (p50)
Response Time (p95)
| Model | p50 | p95 | Overhead |
|---|---|---|---|
| Opus 4.6 | 4.9s | 8.7s | +78% |
| Sonnet 4.6 | 4.5s | 8.3s | +85% |
| Haiku 4.5 | 3.5s | 6.0s | +72% |
| Gemini 2.5 | 4.6s | 7.1s | +55% |
| Cursor | 5.0s | 8.9s | +79% |
| Kiro | 2.4s | 4.4s | +80% |
Last evaluated: 2026-03-12 · Data is generated from skill assertions (real cross-model benchmarks coming soon)
Changelog entries are derived from eval runs and skill version updates. Full cascading changelog (Phase 4D) coming soon.
Best Pass Rate
95%
Assertions
133
Models Tested
6
Evals Run
30
- +Initial release to Golems skill library
- +133 assertions across 30 eval scenarios
- +5 workflows included: admin, freelance, handoff, health, recruit