feat: add /add-user-memory skill for structured user profile (USER.md)#1063
feat: add /add-user-memory skill for structured user profile (USER.md)#1063jialing-wu wants to merge 2 commits intoqwibitai:mainfrom
Conversation
Dhebrank
left a comment
There was a problem hiding this comment.
Review: Request Changes
The template structure is well-thought-out (Identity, Communication Preferences, Ongoing Context, Recent Decisions), but the core premise doesn't hold given NanoClaw's container architecture.
Blockers:
-
USER.md at project root is not accessible to non-main containers. Only the main group gets the project root mounted (read-only at
/workspace/project). Non-main groups only see their owngroups/{name}/andgroups/global/. The skill's stated goal of "shared across all agents" fails for every group except main. -
Even main can't write to it — the project root mount is read-only. The instruction "Update USER.md when the user states a new preference" will fail with permission denied.
-
No skills-engine integration. Other
add-*skills usenpx tsx scripts/apply-skill.tswith.nanoclaw/state.yamltracking. This skill has nomodify/directory and no state tracking, making it invisible to/customizeand/setup. -
Character limit enforcement uses line count as proxy —
awk 'END { if (NR > 80) ...'doesn't correlate to the stated 2000-character limit. Usewc -cinstead.
Suggestion: Place USER.md inside groups/global/ (mounted into all containers) or use the existing vault mount pattern. Consider whether this overlaps with existing profile/memory systems that users may have set up.
The template content itself is good — just needs to land in the right place architecturally.
|
Thanks for the thorough review @Dhebrank! All four points are valid, just pushed fixes. Fixed:
On skills-engine integration (apply-skill.ts / .nanoclaw/state.yaml): I could not find scripts/apply-skill.ts or a .nanoclaw/ directory in the current codebase (only scripts/run-migrations.ts exists). Could you point me to an existing skill that uses this pattern, or is this a convention you want introduced here? Happy to add modify/ scaffolding once I understand the expected structure. |
Summary
Adds a new
/add-user-memoryskill that creates a structuredUSER.mdfile at the nanoclaw root, giving all agents a shared, persistent user profile.Closes #910.
What this skill does
USER.mdtemplate with four sections: Identity, Communication Preferences, Ongoing Context, and Recent Decisionsgroups/global/CLAUDE.mdto instruct agents to readUSER.mdat session start and update it when preferences or context changeMotivation
Without a shared user profile, agents repeatedly ask the same onboarding questions and lose context between sessions.
USER.mdgives every agent instant access to who the user is and how they prefer to work, without duplicating that information across multipleCLAUDE.mdfiles.No source code changes
This is a pure skill — no changes to NanoClaw core TypeScript. Users apply it with Claude Code via
/add-user-memory.Test plan
USER.mdis created