user-insight-research
Skill9 starsChanged 6 months agoApache-2.0View on GitHub
Generate a weekly plan of 7 user-insight research topics (one per day) from users/{userId}/USER.md by combining profile context with recent web_search signals. Saves the result as a JSON file in the user's root folder for downstream consumption by create-project (UserInsight type).
In this repository18 other files it gives its agents.
- archive-card-writerSkill
- article-to-scriptSkill
- blogSkill
- blog-style-htmlSkill
- brainstormSkill
- compareSkill
- curated-content-writerSkill
- deep-diveSkill
- diff-storySkill
- explore-siteSkill
- gemini-tts-fastSkill
- learnSkill
- quizSkill
- resumeSkill
- screenshotSkill
- script-to-remotionSkill
- terminal-slide-deckSkill
- x-auto-engagementSkill
The file
We split this skill into the rules it gives an agent
12 rules. About 0 are common, 4 are distinctive, and 8 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈4
Distinctive · estimate
This author's own choices. Worth a look.
8
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 11
Read profile from users/{userId}/USER.md
- Very specific: line 12
Search recent external signals with web_search
- Distinctive: line 27
Do not use fallback paths.
- Very specific: line 33
Always output exactly 7 topics, each assigned a unique scheduled_date.
- Very specific: line 35
Every topic must set kind to "insights".
- Very specific: line 44
Read users/{userId}/USER.md and extract:
- Very specific: line 55
Use web_search to gather recent information (prefer last 90-180 days):
- Distinctive: line 89
Write the complete JSON to:
- Very specific: line 131
If users/{userId}/USER.md does not exist or is unreadable, return strict JSON (do not write file):
- Very specific: line 141
If external signals are limited, still return 7 topics and state in each rationale that it is based on limited public signals.
- Distinctive: line 145
Before writing the output file, validate:
- Distinctive: line 150
all topics are user-insight oriented and independent of each other
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
User Insight Research Weekly Topic Planner
This skill generates exactly 7 user-insight research topics as strict JSON — one topic per day for a 7-day period starting from today. The JSON is saved as a file in the user's root folder.
It is designed for one workflow only:
- Read profile from
users/{userId}/USER.md - Search recent external signals with
web_search - Generate 7-topic JSON and write it to file
users/{userId}/YYYYMMDD-user-insight.json
The output file is consumed by the create-project skill (UserInsight type) to create 7 projects and a daily cron job.
Required Input
userId(string)
Input Source
Always read:
users/{userId}/USER.md
Do not use fallback paths.
Core Rules
- Support both subject types: company or person (auto-detect from USER.md content).
- Generate user-insight topics only.
- Always output exactly 7 topics, each assigned a unique
scheduled_date. scheduled_datevalues are 7 consecutive days starting from the current date (the day this skill is invoked). The start day can be any day of the week.- Every topic must set
kindto"insights". - The 7 topics must be independent of each other — each covers a different user-insight angle.
- Output must be strict JSON only (no markdown code fences, no extra prose).
- The JSON must be written to file, not just returned as text output.
Workflow
Step 1: Load and Parse USER.md
Read users/{userId}/USER.md and extract:
subjectname (company name or personal name/identity)- subject type (
companyorperson, internal use only) - product/service or personal business focus
- target users/customers/audience
- business model or monetization context
- key goals, constraints, and open questions
Step 2: Gather Recent External Signals
Use web_search to gather recent information (prefer last 90-180 days):
- Subject recent moves (product, positioning, partnership, channel, narrative)
- Industry and category shifts relevant to target users
- Competitor or substitute behavior changes
- Regulation/platform/environment changes if relevant
For company subjects, prioritize company + product + industry queries. For person subjects, prioritize role/track + audience + creator/professional ecosystem queries.
Step 3: Generate 7 User-Insight Topics
Generate 7 distinct, independent topics that focus on user behavior and decisions, not generic strategy.
Each topic must include:
scheduled_date: the date this topic should be executed (YYYY-MM-DD), assigned sequentially from today for 7 daystitle: concise research topic titlecontent: direct, execution-ready research prompt text for atypica study creation (in Chinese)rationale: why this topic matters based on USER.md + recent external signalskind: always"insights"
Coverage should span 7 different user-insight angles, such as:
- decision journey and trigger events
- motivation vs friction
- segmentation by context or role
- value perception and willingness-to-pay logic
- switching behavior and retention dynamics
- trust, risk, and objection patterns
- information sources and influence chain
Step 4: Write JSON to File
Write the complete JSON to:
users/{userId}/YYYYMMDD-user-insight.json
Where YYYYMMDD is the week_start date (the first topic's scheduled_date).
Example: if today is 2026-02-12, the file path is users/{userId}/20260212-user-insight.json.
Output Contract
The JSON written to file must have this exact top-level structure:
{
"generated_at": "YYYY-MM-DD",
"subject": "string",
"week_start": "YYYY-MM-DD",
"week_end": "YYYY-MM-DD",
"topics": [
{
"scheduled_date": "YYYY-MM-DD",
"title": "string",
"content": "string",
"rationale": "string",
"kind": "insights"
}
]
}Constraints:
topics.lengthmust be 7- all
topics[*].kindmust be"insights" generated_atuses current date inYYYY-MM-DDweek_startis the current date (same asgenerated_at)week_endisweek_start+ 6 daystopics[0].scheduled_date==week_start,topics[6].scheduled_date==week_end- each
scheduled_datemust be unique and consecutive
Error Handling
If users/{userId}/USER.md does not exist or is unreadable, return strict JSON (do not write file):
{
"error_code": "USER_PROFILE_NOT_FOUND",
"message": "Cannot read users/{userId}/USER.md",
"user_id": "string"
}If external signals are limited, still return 7 topics and state in each rationale that it is based on limited public signals.
Quality Checklist
Before writing the output file, validate:
- strict JSON only
- top-level keys:
generated_at,subject,week_start,week_end,topics - exactly 7 topics
- all topics are user-insight oriented and independent of each other
- each topic has
scheduled_date,title,content,rationale,kind - each
kindis"insights" scheduled_datevalues are 7 consecutive days starting fromweek_start- each
contentis directly reusable as research input (in Chinese) - file is written to
users/{userId}/YYYYMMDD-user-insight.json
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

