en un clic
save-research
Save and organize research files with metadata and tags
Installer avec Codex ou Claude Copiez ce prompt, collez-le dans Codex, Claude ou un autre assistant, puis laissez-le vérifier la page du skill et l'installer pour vous.
Menu
Save and organize research files with metadata and tags
Installer avec Codex ou Claude Copiez ce prompt, collez-le dans Codex, Claude ou un autre assistant, puis laissez-le vérifier la page du skill et l'installer pour vous.
Basé sur la classification professionnelle SOC
| name | save-research |
| description | Save and organize research files with metadata and tags |
| user-invocable | true |
Save and organize research content with structured metadata — pasted text, URLs, or existing files are stored as clean markdown with YAML frontmatter in the project's research directory.
Get the content. Accept content from the user. This can be:
download-webpage skill first to fetch and convert the page, then organize the result with save-researchAsk for metadata. Ask the user for:
ai, machine-learning, transformers)Determine the output directory. Default to research/ in the current project (e.g. <project>/research/). If no project is open, use ~/Notesage/research/. Always confirm the output directory with the user before proceeding.
If the input is a URL, run the download-webpage skill first:
execute_skill_script("download-webpage", "scripts/download.mjs", [url, output_dir, "--tags", "tag1,tag2"])
Then use the resulting file path as input to save-research to ensure consistent metadata and organization. If download-webpage already saved the file with the correct metadata, you can skip re-saving and just report the result.
Run the save script:
execute_skill_script("save-research", "scripts/save.mjs", [content_or_path, output_dir, "--title", "Article Title", "--tags", "tag1,tag2"])
Optional flags:
--url "https://..." — source URL for attribution--author "Author Name" — content author--force — overwrite an existing file with the same name or source URLFor pasted text content, pass the text as the first argument. For file paths, pass the absolute path — the script detects whether the argument is an existing file and reads from it.
Output JSON to stdout:
{
"file": "/path/to/saved/article-title.md",
"title": "Article Title",
"tags": ["tag1", "tag2"],
"status": "created"
}
status values:
"created" — new file saved"exists" — file already exists (by filename or matching source_url), nothing was written"overwritten" — existing file was replaced (when --force was used)Handle existing files. If status is "exists", you MUST present exactly these three choices as a numbered list:
--force flag added to the arguments-1 (or -2, etc.) to the filename, then re-run without --forceReport the result. Tell the user:
When processing multiple items (e.g., a list of text snippets or file paths):
status fieldFill missing type, title, and description frontmatter on documents using structured AI output
Download a web page by URL and save it as clean markdown with images
Audit for accessibility — keyboard navigation, ARIA labels, contrast, focus indicators
Produce a full dependency health report (SBOM, vulnerabilities, staleness, upgrades, licenses)
Audit error handling UX — error boundaries, silent failures, loading states, empty states
Audit for unnecessary re-renders — Zustand subscriptions, missing memoization, inline callbacks