asset-manager · Asset Manager

A skill for managing everything under outputs/: archive by date/platform/type, tag, search history, and generate asset inventories. It handles only what comes after creation — making past assets searchable and reusable.
Six operations: scan (refresh index), search (by keyword, platform, type, date, tags), archive (into date/platform/type folders), tag, list (asset inventory), and report (type/platform distribution plus output trends).
Example invocation: "Clean up and archive outputs/" or "Find the skincare cards I made before."
Full brief
Positioning
asset-manager is the housekeeper for outputs/ artifacts: post-creation asset management — archiving, tagging, search, statistics. Its job starts when content generation ends, keeping historical assets searchable and reusable instead of recreated.
Core capabilities
- Six operations:
scan(build/refresh index),search,archive,tag,list(inventory),report(statistics). - Multi-facet search: keyword, platform (Xiaohongshu/Weibo/Douyin/Zhihu/WeChat/X), type (image/video/text/card/poster/script), date, tags — combinable filters.
- Structured archiving: files move to
outputs/{date}/{platform}/{type}/; dates come from filenames first, mtime as fallback; platform/type inferred from filename and extension. - Safety guarantees:
archiveis dry-run by default, printing the plan;--applymoves only after confirmation; idempotent; CONFLICT on same-name-different-content targets — never overwrites. - Script-solidified: all side-effecting file operations run through
scripts/assets.py(stdlib only). The LLM routes intent and presents results; it never hand-runs find/mv or writes JSON. Index and tags use atomic writes. - Statistics: type/platform distribution and 30-day output trends.
Workflow
- Map user intent to a script subcommand (scan/search/archive/tag/list/report)
- Refresh the index with
scanif stale; search/list auto-scan when the index is missing - Run
scripts/assets.py - Show the dry-run plan before archiving; apply only after confirmation
- Present script output as Markdown tables
Inputs & outputs
| Input | Notes |
|---|---|
| action | Required — scan / search / archive / tag / list / report |
| query | Optional — search keyword |
| path | Optional — target file or directory; defaults to outputs/ |
| tags | Optional — comma-separated tags to add |
| filter_platform/type/date | Optional — platform / type / date filters |
| profile_name | Optional — filter by account profile |
Output: Markdown tables — asset inventory (filename / type / source skill / date / tags), search results (file / match location / relevance / date), asset statistics (type / platform distribution / trends).
Boundaries with adjacent skills
- Produce-layer skills (card, image-gen, video skills): generate content; this skill manages what comes after — archiving, search, tagging. It never produces assets, only manages them.
Fit
- A cluttered
outputs/that needs structured archiving - Reusing past copy, cards, or scripts instead of starting over
- Periodic asset reviews: per-platform distribution, 30-day output trends
Before you start
- Specify the target directory (default
outputs/); review the dry-run plan before applying an archive. - With a profile, search and archive scope narrows to the account and its platforms.
- No API key or fees; the script is pure-stdlib Python.
asset-manager is part of the Aiglade Skill library. Invoke it from the Aiglade chat box in plain language.