← All skills
owner-goals
75 / 100 · Review before installing
Check before installing. Some of what it can do is expected: a coding skill usually runs build and test commands.
By thedotmack/claude-mem (GitHub) · coding · 116,045 stars · scanned at commit 22d148e
Map what the owner wants from the prompts they typed themselves (prompts an agent wrote are left out), then sort it into focus areas, asks and rules, each with dated quotes, and save them to My Work (areas as My Focus suggestions, rules as My Rules suggestions). Use when asked for "owner goals", "my goals", "what do I want", "what am I asking for", "map my prompts", or to refresh Goals in My Work.
Works with any agent that supports SKILL.md skills.
What this skill can do
Runs commands on your computer
The author does not mention this. It runs automatically when the plugin is installed. Expected for a coding skill.
Found in 46 places.
Show 17 more
- plugin/skills/owner-goals/scripts/export_owner_prompts.py, line 215
if subprocess.run(["git", "-C", out_dir, "rev-parse", "--is-inside-work-tree"], capture_output=True).returncode != 0: - plugin/skills/owner-goals/scripts/export_owner_prompts.py, line 217
if subprocess.run(["git", "-C", out_dir, "check-ignore", "-q", "."], capture_output=True).returncode == 0: - plugin/skills/owner-goals/scripts/export_owner_prompts.py, line 219
top = subprocess.run(["git", "-C", out_dir, "rev-parse", "--show-toplevel"], capture_output=True, text=True, check=True).stdout.strip() - plugin/skills/owner-goals/scripts/export_owner_prompts.py, line 220
exclude = subprocess.run(["git", "-C", out_dir, "rev-parse", "--git-path", "info/exclude"], capture_output=True, text=True, check=True).stdout.strip() - plugin/skills/owner-goals/scripts/export_owner_prompts.py, line 227
except (OSError, subprocess.CalledProcessError) as error: - plugin/scripts/ensure-launcher.cjs, line 5
`,He=/^[a-z0-9]+(?:-[a-z0-9]+)*$/;function me(e){if(e===void 0)return new Set;let t=typeof e=="string"?e.split(","):e;if(!Array.isArray(t)||t.some(r=>typeof r!= - plugin/scripts/ensure-launcher.cjs, line 13
`).pop()??""}`;let X=ye(r.platform,d);if(u.kind==="launcher")throw new Error(`${U}; kept the existing launcher at ${s} (protocol ${u.protocol})${X}`);t.warn(`${ - plugin/.mcp.json, line 5
"command": "node", - plugin/hooks/codex-hooks.json, line 9
"command": "/bin/sh -c '_HP=$(printenv PATH 2>/dev/null || true); if [ -z \"$_HP\" ] && [ -n \"${SHELL:-}\" ]; then _HP=$(\"$SHELL\" -lc '\\''printf %s \"$PATH\ - plugin/hooks/codex-hooks.json, line 11
"commandWindows": "node -e \"const fs=require('fs'),p=require('path'),o=require('os'),c=require('child_process');const h=o.homedir();const C=process.env.CLAUDE_ - plugin/hooks/codex-hooks.json, line 21
"command": "/bin/sh -c '_HP=$(printenv PATH 2>/dev/null || true); if [ -z \"$_HP\" ] && [ -n \"${SHELL:-}\" ]; then _HP=$(\"$SHELL\" -lc '\\''printf %s \"$PATH\ - plugin/hooks/codex-hooks.json, line 23
"commandWindows": "node -e \"const fs=require('fs'),p=require('path'),o=require('os'),c=require('child_process');const h=o.homedir();const C=process.env.CLAUDE_ - plugin/hooks/codex-hooks.json, line 34
"command": "/bin/sh -c 'if [ \"${CLAUDE_MEM_DISABLE_TOOL_HOOKS:-}\" = 1 ] || [ \"${CLAUDE_MEM_DISABLE_FILE_CONTEXT:-}\" = 1 ]; then exit 0; fi; _HP=$(printenv P - plugin/hooks/codex-hooks.json, line 36
"commandWindows": "node -e \"if(process.env.CLAUDE_MEM_DISABLE_TOOL_HOOKS==='1'||process.env.CLAUDE_MEM_DISABLE_FILE_CONTEXT==='1')process.exit(0);const fs=requ - plugin/hooks/codex-hooks.json, line 47
"command": "/bin/sh -c 'if [ \"${CLAUDE_MEM_DISABLE_TOOL_HOOKS:-}\" = 1 ] || [ \"${CLAUDE_MEM_DISABLE_OBSERVATION:-}\" = 1 ]; then exit 0; fi; _HP=$(printenv PA - plugin/hooks/codex-hooks.json, line 49
"commandWindows": "node -e \"if(process.env.CLAUDE_MEM_DISABLE_TOOL_HOOKS==='1'||process.env.CLAUDE_MEM_DISABLE_OBSERVATION==='1')process.exit(0);const fs=requi - plugin/hooks/codex-hooks.json, line 59
"command": "/bin/sh -c '_HP=$(printenv PATH 2>/dev/null || true); if [ -z \"$_HP\" ] && [ -n \"${SHELL:-}\" ]; then _HP=$(\"$SHELL\" -lc '\\''printf %s \"$PATH\
and 26 more places
Connects to the internet
The author does not mention this.
Found in 3 places.
Downloads and installs other software
The author does not mention this.
Found in 5 places.
Show 2 more
Safer alternatives
Low-risk skills in the same category (coding) that look related. Check that one does what you need.
Install
Paste this into your terminal. It downloads exactly the version we scanned, not whatever is newest.
if [ -e ~/.agents/skills/'owner-goals' ] || [ -L ~/.agents/skills/'owner-goals' ]; then echo 'A skill folder named owner-goals already exists — not replacing it' >&2; false; else d=$(mktemp -d) && git clone --quiet --filter=blob:none --no-checkout 'https://github.com/thedotmack/claude-mem' "$d" && git -C "$d" checkout --quiet '22d148ea6f34b86ea9a6e0911c7a7a0c71431b31' -- 'plugin/skills/owner-goals' && mkdir -p ~/.agents/skills && cp -R "$d"/'plugin/skills/owner-goals' ~/.agents/skills/'owner-goals' && rm -rf "$d"; fi
Codex reads ~/.agents/skills directly. For Claude Code, Cursor, Copilot, Gemini CLI, Antigravity or OpenCode, also link it. For Claude Code: ln -s ~/.agents/skills/'owner-goals' ~/.claude/skills/'owner-goals' (other agents: ~/.cursor/skills, ~/.copilot/skills, ~/.gemini/skills, ~/.gemini/config/skills, ~/.config/opencode/skills). Or install through the finder skill, which does both.
Badge for your README
The badge for thedotmack/claude-mem shows the score of its lowest-scoring skill.

[](https://zalavijaysinh.github.io/skilltrust/repos/thedotmack/claude-mem/)
Score history
| Date | Version | Score |
|---|
| 2026-11-11 | 22d148e | 75 |
| 2026-11-08 | 3ab6e1a | 75 |
| 2026-11-07 | 2d8c08c | 75 |