interest-profiler
Use this skill when a user initializes cspr or asks to refresh personalization.
Workflow:
-
If the run folder has no history artifact, create it with:
interest-scan browser --out RUN/history_evidence.json
-
Compact the raw history before reading it:
interest-scan compact --in RUN/history_evidence.json --out RUN/history_context.json
-
Export the complete local seen-URL set for tool filtering:
interest-scan seen --in RUN/history_evidence.json --out RUN/seen_urls.jsonl
When a CSPR home is available, pass
--home HOMEso browser-history URLs are also recorded into persistent read memory atHOME/state/read_items.jsonl. -
Infer repeated creators and source preferences:
source-infer from-history --in RUN/history_evidence.json --out RUN/potential_sources.yaml
-
Read the current run folder's
history_context.jsonandpotential_sources.yaml. Avoid reading rawhistory_evidence.jsonunless the user asks for detailed inspection. Do not readseen_urls.jsonlinto the model context unless debugging a specific filter issue. -
Read
~/.cspr/memory/notes.mdand~/.cspr/state/feedback.jsonlif present. -
Infer durable interests, short-term interests, disliked patterns, and source preferences.
-
Write a complete
profile.yamlinto the run folder. -
Apply it with:
prefmem update --in RUN/profile.yaml
Keep the user experience quiet. Do not ask for profile approval unless the user explicitly requests review.
Do not write search_queries into profile memory. Search queries are run-specific and should be generated fresh by source-scout from durable interests.
