youmd 0.4.9 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (179) hide show
  1. package/dist/__tests__/api.test.d.ts +2 -0
  2. package/dist/__tests__/api.test.d.ts.map +1 -0
  3. package/dist/__tests__/api.test.js +84 -0
  4. package/dist/__tests__/api.test.js.map +1 -0
  5. package/dist/__tests__/compiler.test.d.ts +2 -0
  6. package/dist/__tests__/compiler.test.d.ts.map +1 -0
  7. package/dist/__tests__/compiler.test.js +127 -0
  8. package/dist/__tests__/compiler.test.js.map +1 -0
  9. package/dist/__tests__/config.test.d.ts +2 -0
  10. package/dist/__tests__/config.test.d.ts.map +1 -0
  11. package/dist/__tests__/config.test.js +79 -0
  12. package/dist/__tests__/config.test.js.map +1 -0
  13. package/dist/__tests__/decompile.test.d.ts +2 -0
  14. package/dist/__tests__/decompile.test.d.ts.map +1 -0
  15. package/dist/__tests__/decompile.test.js +102 -0
  16. package/dist/__tests__/decompile.test.js.map +1 -0
  17. package/dist/__tests__/hash.test.d.ts +2 -0
  18. package/dist/__tests__/hash.test.d.ts.map +1 -0
  19. package/dist/__tests__/hash.test.js +44 -0
  20. package/dist/__tests__/hash.test.js.map +1 -0
  21. package/dist/__tests__/integration.test.d.ts +2 -0
  22. package/dist/__tests__/integration.test.d.ts.map +1 -0
  23. package/dist/__tests__/integration.test.js +277 -0
  24. package/dist/__tests__/integration.test.js.map +1 -0
  25. package/dist/__tests__/skill-renderer.test.d.ts +2 -0
  26. package/dist/__tests__/skill-renderer.test.d.ts.map +1 -0
  27. package/dist/__tests__/skill-renderer.test.js +68 -0
  28. package/dist/__tests__/skill-renderer.test.js.map +1 -0
  29. package/dist/commands/add.d.ts.map +1 -1
  30. package/dist/commands/add.js +6 -3
  31. package/dist/commands/add.js.map +1 -1
  32. package/dist/commands/agents.d.ts +2 -0
  33. package/dist/commands/agents.d.ts.map +1 -0
  34. package/dist/commands/agents.js +93 -0
  35. package/dist/commands/agents.js.map +1 -0
  36. package/dist/commands/build.d.ts.map +1 -1
  37. package/dist/commands/build.js +96 -21
  38. package/dist/commands/build.js.map +1 -1
  39. package/dist/commands/chat.d.ts.map +1 -1
  40. package/dist/commands/chat.js +110 -11
  41. package/dist/commands/chat.js.map +1 -1
  42. package/dist/commands/diff.d.ts +1 -1
  43. package/dist/commands/diff.d.ts.map +1 -1
  44. package/dist/commands/diff.js +402 -16
  45. package/dist/commands/diff.js.map +1 -1
  46. package/dist/commands/export.js +1 -1
  47. package/dist/commands/export.js.map +1 -1
  48. package/dist/commands/init.d.ts +1 -0
  49. package/dist/commands/init.d.ts.map +1 -1
  50. package/dist/commands/init.js +138 -0
  51. package/dist/commands/init.js.map +1 -1
  52. package/dist/commands/link.d.ts +1 -0
  53. package/dist/commands/link.d.ts.map +1 -1
  54. package/dist/commands/link.js +77 -13
  55. package/dist/commands/link.js.map +1 -1
  56. package/dist/commands/login.d.ts.map +1 -1
  57. package/dist/commands/login.js +48 -27
  58. package/dist/commands/login.js.map +1 -1
  59. package/dist/commands/logs.d.ts +7 -0
  60. package/dist/commands/logs.d.ts.map +1 -0
  61. package/dist/commands/logs.js +115 -0
  62. package/dist/commands/logs.js.map +1 -0
  63. package/dist/commands/mcp.d.ts +6 -0
  64. package/dist/commands/mcp.d.ts.map +1 -0
  65. package/dist/commands/mcp.js +258 -0
  66. package/dist/commands/mcp.js.map +1 -0
  67. package/dist/commands/preview.d.ts.map +1 -1
  68. package/dist/commands/preview.js +191 -7
  69. package/dist/commands/preview.js.map +1 -1
  70. package/dist/commands/private.d.ts.map +1 -1
  71. package/dist/commands/private.js +248 -0
  72. package/dist/commands/private.js.map +1 -1
  73. package/dist/commands/prompts.d.ts +12 -0
  74. package/dist/commands/prompts.d.ts.map +1 -0
  75. package/dist/commands/prompts.js +245 -0
  76. package/dist/commands/prompts.js.map +1 -0
  77. package/dist/commands/publish.d.ts.map +1 -1
  78. package/dist/commands/publish.js +69 -6
  79. package/dist/commands/publish.js.map +1 -1
  80. package/dist/commands/pull.d.ts.map +1 -1
  81. package/dist/commands/pull.js +110 -137
  82. package/dist/commands/pull.js.map +1 -1
  83. package/dist/commands/push.d.ts +1 -0
  84. package/dist/commands/push.d.ts.map +1 -1
  85. package/dist/commands/push.js +236 -38
  86. package/dist/commands/push.js.map +1 -1
  87. package/dist/commands/register.d.ts.map +1 -1
  88. package/dist/commands/register.js +40 -84
  89. package/dist/commands/register.js.map +1 -1
  90. package/dist/commands/skill.d.ts +8 -0
  91. package/dist/commands/skill.d.ts.map +1 -0
  92. package/dist/commands/skill.js +1226 -0
  93. package/dist/commands/skill.js.map +1 -0
  94. package/dist/commands/status.d.ts.map +1 -1
  95. package/dist/commands/status.js +221 -69
  96. package/dist/commands/status.js.map +1 -1
  97. package/dist/commands/sync.d.ts.map +1 -1
  98. package/dist/commands/sync.js +12 -0
  99. package/dist/commands/sync.js.map +1 -1
  100. package/dist/commands/whoami.d.ts.map +1 -1
  101. package/dist/commands/whoami.js +62 -33
  102. package/dist/commands/whoami.js.map +1 -1
  103. package/dist/index.js +187 -6
  104. package/dist/index.js.map +1 -1
  105. package/dist/lib/api.d.ts +169 -12
  106. package/dist/lib/api.d.ts.map +1 -1
  107. package/dist/lib/api.js +183 -33
  108. package/dist/lib/api.js.map +1 -1
  109. package/dist/lib/ascii.d.ts.map +1 -1
  110. package/dist/lib/ascii.js +20 -48
  111. package/dist/lib/ascii.js.map +1 -1
  112. package/dist/lib/compiler.d.ts +16 -33
  113. package/dist/lib/compiler.d.ts.map +1 -1
  114. package/dist/lib/compiler.js +499 -84
  115. package/dist/lib/compiler.js.map +1 -1
  116. package/dist/lib/config.d.ts +27 -0
  117. package/dist/lib/config.d.ts.map +1 -1
  118. package/dist/lib/config.js +50 -0
  119. package/dist/lib/config.js.map +1 -1
  120. package/dist/lib/decompile.d.ts +21 -0
  121. package/dist/lib/decompile.d.ts.map +1 -0
  122. package/dist/lib/decompile.js +304 -0
  123. package/dist/lib/decompile.js.map +1 -0
  124. package/dist/lib/hash.d.ts +3 -0
  125. package/dist/lib/hash.d.ts.map +1 -0
  126. package/dist/lib/hash.js +31 -0
  127. package/dist/lib/hash.js.map +1 -0
  128. package/dist/lib/onboarding.d.ts +4 -4
  129. package/dist/lib/onboarding.d.ts.map +1 -1
  130. package/dist/lib/onboarding.js +228 -81
  131. package/dist/lib/onboarding.js.map +1 -1
  132. package/dist/lib/skill-catalog.d.ts +57 -0
  133. package/dist/lib/skill-catalog.d.ts.map +1 -0
  134. package/dist/lib/skill-catalog.js +245 -0
  135. package/dist/lib/skill-catalog.js.map +1 -0
  136. package/dist/lib/skill-renderer.d.ts +55 -0
  137. package/dist/lib/skill-renderer.d.ts.map +1 -0
  138. package/dist/lib/skill-renderer.js +382 -0
  139. package/dist/lib/skill-renderer.js.map +1 -0
  140. package/dist/lib/skills.d.ts +130 -0
  141. package/dist/lib/skills.d.ts.map +1 -0
  142. package/dist/lib/skills.js +876 -0
  143. package/dist/lib/skills.js.map +1 -0
  144. package/dist/lib/vault.d.ts +40 -0
  145. package/dist/lib/vault.d.ts.map +1 -0
  146. package/dist/lib/vault.js +187 -0
  147. package/dist/lib/vault.js.map +1 -0
  148. package/dist/mcp/server.d.ts +21 -0
  149. package/dist/mcp/server.d.ts.map +1 -0
  150. package/dist/mcp/server.js +1283 -0
  151. package/dist/mcp/server.js.map +1 -0
  152. package/examples/houston/directives/agent.md +13 -0
  153. package/examples/houston/preferences/agent.md +14 -0
  154. package/examples/houston/profile/about.md +15 -0
  155. package/examples/houston/profile/links.md +10 -0
  156. package/examples/houston/profile/projects.md +37 -0
  157. package/examples/houston/profile/values.md +9 -0
  158. package/examples/houston/voice/voice.md +13 -0
  159. package/examples/jordan/directives/agent.md +13 -0
  160. package/examples/jordan/preferences/agent.md +16 -0
  161. package/examples/jordan/profile/about.md +15 -0
  162. package/examples/jordan/profile/links.md +10 -0
  163. package/examples/jordan/profile/projects.md +29 -0
  164. package/examples/jordan/profile/values.md +9 -0
  165. package/examples/jordan/voice/voice.md +12 -0
  166. package/examples/priya/directives/agent.md +13 -0
  167. package/examples/priya/preferences/agent.md +15 -0
  168. package/examples/priya/profile/about.md +15 -0
  169. package/examples/priya/profile/links.md +9 -0
  170. package/examples/priya/profile/projects.md +28 -0
  171. package/examples/priya/profile/values.md +9 -0
  172. package/examples/priya/voice/voice.md +12 -0
  173. package/package.json +15 -6
  174. package/skills/claude-md-generator.md +91 -0
  175. package/skills/meta-improve.md +84 -0
  176. package/skills/proactive-context-fill.md +52 -0
  177. package/skills/project-context-init.md +77 -0
  178. package/skills/voice-sync.md +89 -0
  179. package/skills/you-logs.md +71 -0
@@ -0,0 +1,84 @@
1
+ ---
2
+ name: meta-improve
3
+ version: 1.0.0
4
+ scope: shared
5
+ identity_fields: [preferences.agent, directives.agent]
6
+ description: "Self-improvement protocol — agents review their own effectiveness and propose identity updates"
7
+ ---
8
+
9
+ # meta-improve
10
+
11
+ The feedback loop that makes your identity smarter over time. Agents review what worked and what didn't, then propose updates to your identity bundle.
12
+
13
+ ## Identity Context (resolved at review time)
14
+
15
+ - **Agent preferences:** {{preferences.agent}}
16
+ - **Directives:** {{directives.agent}}
17
+
18
+ ## What This Skill Does
19
+
20
+ 1. Read skill-metrics.json for usage data (which skills run, success/fail rates)
21
+ 2. Analyze patterns:
22
+ - Which skills get used most?
23
+ - Which identity fields get referenced most?
24
+ - Are there gaps? (skills that should exist but don't)
25
+ - Are there stale entries? (skills never used)
26
+ 3. Propose changes:
27
+ - New directives based on repeated corrections
28
+ - Voice refinements based on agent interactions
29
+ - Skill additions based on detected workflow patterns
30
+ - Pruning of unused skills
31
+ 4. Present proposals for user approval (never auto-apply)
32
+
33
+ ## Metrics Tracked
34
+
35
+ ```json
36
+ {
37
+ "skills": {
38
+ "claude-md-generator": {
39
+ "uses": 12,
40
+ "lastUsed": "2026-03-25T...",
41
+ "avgDuration": 1200,
42
+ "successRate": 0.92
43
+ }
44
+ },
45
+ "identityFields": {
46
+ "voice.overall": { "references": 45 },
47
+ "preferences.agent": { "references": 38 }
48
+ },
49
+ "proposals": []
50
+ }
51
+ ```
52
+
53
+ ## MCP Server Health Check
54
+
55
+ As part of the self-improvement review, meta-improve should also check MCP server health:
56
+
57
+ 1. **Is the MCP server configured?** Check if `youmd mcp --json` output exists in the user's MCP client config (e.g., `~/.claude/claude_desktop_config.json` or `.claude/settings.json`).
58
+ 2. **Is the server reachable?** Call `get_remote_status` to verify authentication and sync state.
59
+ 3. **Are tools being used?** Check if agents are actively calling MCP tools. Low usage may indicate misconfiguration.
60
+
61
+ ### Suggesting MCP Setup
62
+
63
+ If the MCP server is NOT configured, meta-improve should propose setup as an improvement:
64
+
65
+ ```
66
+ Proposal: Configure You.md MCP server
67
+ Reason: Your identity context is only available via static files. With the MCP server,
68
+ agents get live access to memories, project context, and can save learnings in real time.
69
+
70
+ Setup:
71
+ 1. Run: youmd mcp --json
72
+ 2. Add the output to your MCP client config
73
+ 3. Restart your agent (Claude Code, Cursor, etc.)
74
+
75
+ Impact: All agents get live identity context instead of stale snapshots.
76
+ ```
77
+
78
+ If the MCP server IS configured but `get_remote_status` shows the local bundle is out of sync with remote, propose a `compile_bundle` + `push_bundle` cycle.
79
+
80
+ ## When To Use
81
+
82
+ - Periodically via `youmd skill improve`
83
+ - After a significant number of skill uses (auto-suggested)
84
+ - When onboarding a new project (review what's working)
@@ -0,0 +1,52 @@
1
+ ---
2
+ name: proactive-context-fill
3
+ version: 1.0.0
4
+ scope: shared
5
+ identity_fields: [profile.projects, profile.about, preferences.agent, voice.overall]
6
+ description: Auto-detects empty or thin context sections in the user's you.md bundle and proactively offers to populate them.
7
+ ---
8
+
9
+ # proactive-context-fill
10
+
11
+ Use this skill when starting a new session with a user who has a you.md identity bundle. It detects gaps and offers to fill them.
12
+
13
+ ## Detection rules
14
+
15
+ 1. **Projects:** If profile/projects.md lists projects but private/projects/{name}/ subdirectories don't exist or are empty, offer to scaffold each one.
16
+ 2. **Voice:** If voice/voice.md is < 100 chars, offer to analyze the user's writing samples from sources/ to generate a voice profile.
17
+ 3. **Directives:** If directives/agent.md is empty or generic, offer to extract specific directives from the user's preferences and recent conversations.
18
+ 4. **Sources:** If profile/links.md has social URLs but sources/ is empty, offer to scrape and add them.
19
+ 5. **Memories:** If memory has < 5 entries, offer to seed initial memories from the current conversation.
20
+
21
+ ## Workflow
22
+
23
+ 1. Scan the bundle on session start (read the relevant sections)
24
+ 2. Build a list of detected gaps
25
+ 3. Present the list to the user concisely
26
+ 4. Offer YES/SKIP/ASK_LATER for each gap
27
+ 5. Execute the chosen actions in batches
28
+ 6. Allow skipping individual sub-tasks (e.g. "scaffold all projects but skip BAMF.ai")
29
+
30
+ ## Anti-patterns
31
+
32
+ - DO NOT lecture the user about how their bundle could be better
33
+ - DO NOT make the user feel guilty about empty sections
34
+ - DO NOT auto-fill without asking
35
+ - DO NOT ask 10 questions at once — batch in groups of 2-3
36
+
37
+ ## Example output
38
+
39
+ ```
40
+ i noticed a few things i could help with:
41
+
42
+ 1. your projects/ dir is empty (your profile lists 6 projects)
43
+ 2. voice profile is thin (~50 chars vs typical 300+)
44
+ 3. no directives set yet
45
+
46
+ want me to:
47
+ [a] scaffold all 6 project subdirectories with quick questions per project
48
+ [b] generate a voice profile from your linkedin posts and tweets
49
+ [c] extract directives from your existing preferences
50
+
51
+ reply with letters (e.g. "a c") or skip entirely.
52
+ ```
@@ -0,0 +1,77 @@
1
+ ---
2
+ name: project-context-init
3
+ version: 1.0.0
4
+ scope: project
5
+ identity_fields: [preferences.agent, profile.about]
6
+ description: "Scaffold a project-context/ directory with PRD, TODO, features, changelog, and decision log"
7
+ ---
8
+
9
+ # project-context-init
10
+
11
+ Scaffold a complete project-context/ directory in any repo — the same structure Houston uses across all his projects. Pre-populated with your identity and agent preferences.
12
+
13
+ ## Identity Context (resolved at install time)
14
+
15
+ - **Agent preferences:** {{preferences.agent}}
16
+ - **About you:** {{profile.about}}
17
+
18
+ ## What This Skill Does
19
+
20
+ 1. Detect project root (walk up to .git, package.json, etc.)
21
+ 2. Create `project-context/` directory with:
22
+ - `PRD.md` — Product requirements (empty template with your identity header)
23
+ - `TODO.md` — Task tracking
24
+ - `FEATURES.md` — Feature inventory with status
25
+ - `CHANGELOG.md` — Dated change log
26
+ - `ARCHITECTURE.md` — System architecture notes
27
+ - `CURRENT_STATE.md` — What's deployed, what's broken
28
+ - `STYLE_GUIDE.md` — Design system reference
29
+ - `feature-requests-active.md` — Active request tracker
30
+ 3. Pre-populate headers with your identity
31
+ 4. Skip files that already exist (never overwrite)
32
+
33
+ ## Directory Structure Created
34
+
35
+ ```
36
+ project-context/
37
+ ├── PRD.md
38
+ ├── TODO.md
39
+ ├── FEATURES.md
40
+ ├── CHANGELOG.md
41
+ ├── ARCHITECTURE.md
42
+ ├── CURRENT_STATE.md
43
+ ├── STYLE_GUIDE.md
44
+ └── feature-requests-active.md
45
+ ```
46
+
47
+ ## Analytics & Verified Badges
48
+
49
+ Projects tracked by You.md can leverage the analytics pane and verified badge system:
50
+
51
+ ### Analytics Pane
52
+
53
+ Once a project is registered and pushed, the You.md dashboard shows:
54
+
55
+ - **Activity timeline** — commits, memory additions, context updates over time
56
+ - **Agent usage** — which agents accessed this project's context and how often
57
+ - **Identity field coverage** — which sections of your identity are referenced by project agents
58
+ - **Skill usage** — which skills are triggered in this project's context
59
+
60
+ To enable analytics, ensure the project is linked via `youmd project init <name>` and that you push regularly with `youmd push`.
61
+
62
+ ### Verified Badges
63
+
64
+ Projects with complete context (PRD, architecture, and at least 5 memories) earn a verified badge on your public profile. The badge signals to other agents and collaborators that this project has rich, maintained context. Badge criteria:
65
+
66
+ - PRD.md exists and is non-empty
67
+ - ARCHITECTURE.md exists and is non-empty
68
+ - At least 5 project memories recorded
69
+ - Last push within the past 30 days
70
+
71
+ The badge appears on your you.md profile page and in context links shared via `create_context_link`.
72
+
73
+ ## When To Use
74
+
75
+ - Starting any new project
76
+ - As part of `youmd skill init-project` (compound command)
77
+ - When adopting the project-context pattern in an existing repo
@@ -0,0 +1,89 @@
1
+ ---
2
+ name: voice-sync
3
+ version: 1.0.0
4
+ scope: shared
5
+ identity_fields: [voice.overall, voice.writing, voice.speaking]
6
+ description: "Sync your voice profile across all agent tools — consistent tone everywhere"
7
+ ---
8
+
9
+ # voice-sync
10
+
11
+ Keep your voice profile in sync across every agent tool you use. When your voice changes in one place, it propagates everywhere.
12
+
13
+ ## Identity Context (resolved at sync time)
14
+
15
+ - **Overall voice:** {{voice.overall}}
16
+ - **Writing voice:** {{voice.writing}}
17
+ - **Speaking voice:** {{voice.speaking}}
18
+
19
+ ## What This Skill Does
20
+
21
+ 1. Read your current voice profile from the identity bundle
22
+ 2. Generate agent-specific voice instructions for:
23
+ - **Claude Code** (.claude/skills/youmd/voice.md)
24
+ - **Cursor** (.cursor/rules/youmd-voice.md)
25
+ - **Custom agents** (.youmd/skills/voice-context.md)
26
+ 3. Re-render on every `youmd skill sync` or `youmd push`
27
+ 4. Respect scope — shared voice propagates to all projects
28
+
29
+ ## Sync Targets
30
+
31
+ | Agent | File | Format |
32
+ |---|---|---|
33
+ | Claude Code | .claude/skills/youmd/voice.md | Markdown with voice rules |
34
+ | Cursor | .cursor/rules/youmd-voice.md | Single markdown file |
35
+ | Generic | .youmd/skills/voice-context.md | Universal format |
36
+
37
+ ## Template Variables
38
+
39
+ In addition to the core voice fields, the following variables are available for fine-grained voice control:
40
+
41
+ - `{{voice.overall}}` — Full voice description (tone, cadence, personality)
42
+ - `{{voice.writing}}` — Written communication style (emails, docs, comments)
43
+ - `{{voice.speaking}}` — Verbal communication style (meetings, presentations)
44
+ - `{{voice.tone}}` — Short tone descriptor (e.g., "direct, no fluff")
45
+ - `{{voice.formality}}` — Formality level (e.g., "casual-professional")
46
+ - `{{voice.avoid}}` — Patterns to avoid (e.g., "corporate speak, emoji, verbose explanations")
47
+ - `{{profile.about}}` — Brief identity context for attribution
48
+
49
+ ## Usage Examples
50
+
51
+ ### Claude Code agent config
52
+
53
+ After rendering, paste the output into `.claude/skills/youmd/voice.md`:
54
+
55
+ ```markdown
56
+ # Voice Rules
57
+
58
+ Write all responses in this voice: {{voice.overall}}
59
+
60
+ When writing code comments: {{voice.writing}}
61
+
62
+ Avoid: {{voice.avoid}}
63
+ ```
64
+
65
+ ### Cursor rules file
66
+
67
+ Use in `.cursor/rules/youmd-voice.md`:
68
+
69
+ ```markdown
70
+ # Communication Style
71
+ Tone: {{voice.tone}}
72
+ Formality: {{voice.formality}}
73
+ Writing style: {{voice.writing}}
74
+ Never use: {{voice.avoid}}
75
+ ```
76
+
77
+ ### Custom agent system prompt snippet
78
+
79
+ ```
80
+ You are working with {{profile.about}}.
81
+ Match this voice: {{voice.overall}}
82
+ Formality: {{voice.formality}}
83
+ ```
84
+
85
+ ## When To Use
86
+
87
+ - After updating your voice via `youmd chat`
88
+ - When `youmd skill sync` runs automatically
89
+ - When linking a new agent with `youmd skill link`
@@ -0,0 +1,71 @@
1
+ ---
2
+ name: you-logs
3
+ version: 1.0.0
4
+ scope: shared
5
+ identity_fields: []
6
+ description: View your you.md agent activity log inline. Shows which agents connected to your identity and what they did.
7
+ ---
8
+
9
+ # you-logs — Agent Activity Log
10
+
11
+ Show recent agent activity for the current user.
12
+
13
+ ## Trigger
14
+ - CLI: `/you-logs` in Claude Code, Cursor, or any CLI agent with skills installed
15
+ - Direct: `youmd logs`
16
+
17
+ ## What it does
18
+
19
+ Fetches the recent agent activity log from you.md and renders it as a terminal-friendly table showing:
20
+ - Time of activity
21
+ - Agent name (Claude Code, Cursor, ChatGPT, etc.)
22
+ - Action (read, write, push, memory_add, etc.)
23
+ - Resource (which file/section was touched)
24
+ - Bundle version diffs for writes
25
+
26
+ ## How to use it
27
+
28
+ When the user types `/you-logs`, run:
29
+
30
+ ```bash
31
+ youmd logs --limit 30
32
+ ```
33
+
34
+ If they pass arguments like `/you-logs --agent "Claude Code"` or `/you-logs --action push`, pass those through:
35
+
36
+ ```bash
37
+ youmd logs --limit 30 --agent "Claude Code"
38
+ youmd logs --action push
39
+ ```
40
+
41
+ For live monitoring:
42
+
43
+ ```bash
44
+ youmd logs --tail
45
+ ```
46
+
47
+ (But warn the user this blocks the terminal until ctrl-c.)
48
+
49
+ ## Output format
50
+
51
+ The output looks like:
52
+
53
+ ```
54
+ ─── recent activity ───
55
+
56
+ 14:32 Claude Code read identity
57
+ 14:32 Claude Code read memories/all
58
+ 14:31 Claude Code read project/current
59
+ 14:30 Cursor push bundle v49→v50
60
+ 14:28 Claude.ai read ctx/<token>
61
+ 14:25 Claude Code read identity
62
+
63
+ 6 events — use --tail for live mode
64
+ ```
65
+
66
+ Return this output verbatim to the user. Don't summarize. The raw log IS the value — they want to see exactly what happened.
67
+
68
+ ## Notes
69
+ - This skill requires `youmd` CLI to be installed and the user to be authenticated (`youmd login`)
70
+ - If authentication fails, suggest: "Run `youmd login` to view your activity log"
71
+ - The data is fetched from the user's you.md account in real-time