2.13.0-beta.20). Features may change before the next stable release.Switch to stable →Skills
Organize project marketing assets with ak:assets-organizing
Plan and apply reviewable names and paths under assets while preventing accidental moves, overwrites, deletions, or scope expansion.
Use ak:assets-organizing to choose consistent paths and filenames for
marketing files under a project-owned assets/ tree. The Skill supplies naming,
date, directory, and asset-type conventions for new outputs and for an approved
reorganization of existing files.
It is a convention and file-organization workflow. It does not upload assets, publish them, validate their content, deduplicate by file contents, or manage a digital-asset platform.
Choose ak:assets-organizing for local file structure
Use ak:assets-organizing when
- A new marketing output needs a predictable project-local destination.
- Existing assets need a proposed mapping into
assets/categories. - A campaign or multi-file deliverable should remain self-contained.
- You need consistent kebab-case slugs, date prefixes, variants, platform folders, or scene numbering.
Choose another workflow when
- You need to create or edit the asset itself. Use the relevant writing, design, image, video, audio, or analysis Skill.
- You need cloud sync, CDN publication, provider metadata, rights management, or a remote asset catalog.
- You need binary deduplication, checksums, media validation, or a reversible migration tool. This Skill ships no dedicated organizing script.
- You cannot review exact source and destination paths before files change.
Prepare the project and authority boundary
Before running the Skill:
- Complete Onboarding and install Marketing Kit for the current runtime and scope.
- Open the project whose
assets/directory you intend to inspect. - Preserve unrelated and untracked work.
- State whether the run is preview-only or may create directories, move files, or rename files after approval.
- Define collision behavior. The safe default is never overwrite, delete, or replace an existing path.
- Identify sensitive, licensed, client-owned, or source-controlled files that must not be moved or exposed.
| Runtime | Invocation | Availability boundary |
|---|---|---|
| Claude Code | /ak:assets-organizing ... | Native delivery is the default; explicit plugin delivery is also supported. Actual filesystem mutations depend on the tools and authority granted in the session. |
| Cursor | /ak:assets-organizing ... | Slash invocation is user-verified. This does not prove identical file-operation safeguards across runtime setups. |
| Codex | $ak:assets-organizing ... | Native Skill discovery is supported. Hook projection is partial, so inspect the proposed filesystem diff directly. |
See Runtime adapters for component-level differences.
Start with a preview-only mapping
/ak:assets-organizing Audit ./incoming-assets and propose target paths under assets/. Return a source-to-destination table. Do not create, move, rename, delete, or overwrite any file until I approve the exact mapping/ak:assets-organizing Audit ./incoming-assets and propose target paths under assets/. Return a source-to-destination table. Do not create, move, rename, delete, or overwrite any file until I approve the exact mapping$ak:assets-organizing Audit ./incoming-assets and propose target paths under assets/. Return a source-to-destination table. Do not create, move, rename, delete, or overwrite any file until I approve the exact mappingThe public argument hint is [directory or asset-type]. Always add the desired
outcome and mutation boundary; a directory alone does not say whether you want
an audit, a proposed structure, or approved file changes.
Apply the canonical naming rules
| Rule | Contract |
|---|---|
| Slug | Lowercase, replace spaces with hyphens, remove special characters, keep numbers, remove edge hyphens, and cap at 50 characters at a word boundary |
| Default date | Use CK_PLAN_DATE_FORMAT when set; otherwise use YYMMDD-HHmm |
| Date-only form | YYMMDD for date-sensitive assets that do not need a time |
| Variant | Use {name}-{width}x{height}.{ext}, {name}-{size}.{ext}, {name}-{platform}.{ext}, {name}-v{N}.{ext}, or {name}-{variant}.{ext} as appropriate |
| Scene | Use scene-{NN}-{position}.{ext} with two-digit numbering for storyboard frames |
| Multi-file output | Keep related files in one self-contained folder |
| Platform output | Use a platform subfolder when the content is platform-specific |
The packaged references conflict on article dating: the quick path uses
assets/articles/{date}-{slug}/, while the asset-type guidance calls articles
evergreen and says to omit the date prefix. Do not silently choose. Ask the
owner whether the article is time-bound, then record the selected convention.
Use the smallest useful path pattern
| Asset class | Canonical pattern |
|---|---|
| Article bundle | assets/articles/{date}-{slug}/ or an explicitly approved evergreen variant |
| Storyboard | assets/storyboards/{date}-{slug}/ |
| Video bundle | assets/videos/{date}-{slug}/ |
| Transcript | assets/transcripts/{slug}.md |
| Banner | assets/banners/{campaign}/{variant}-{size}.{ext} |
| Design bundle | assets/designs/{project}/ |
| Social post | assets/posts/{platform}/{date}-{slug}.{ext} |
| General report | assets/reports/{category}/{date}-{descriptive-slug}.md |
| Copy | assets/copy/{type}/ |
| Campaign bundle | assets/campaigns/{date}-{slug}/ with briefs/, creatives/, reports/, and assets/ as needed |
| Generated asset | assets/generated/{type}/{date}-{slug}.{ext} |
Do not create every listed directory preemptively. Create only the parent and
children required by the approved deliverable. If an intentionally empty
directory must be tracked in Git, the source convention uses .gitkeep, which
is another file creation to review.
Understand the stages
- Inventory the requested scope. List source files, types, sizes, current locations, and relevant relationships without reading or moving unrelated content.
- Classify each deliverable. Choose the narrowest asset class and determine whether it is a single file, multi-file bundle, campaign group, or platform-specific output.
- Generate names. Apply the approved slug, date, variant, and scene rules.
- Check collisions. Compare every destination with existing files and identify case-only, extension, version, and folder conflicts.
- Present a mapping. Show source, proposed destination, rule used, and any unresolved choice. No mutation occurs in preview-only mode.
- Apply only approved changes. Create the minimum directories, then write, move, or rename only the accepted paths without overwriting.
- Verify. Confirm every expected file exists at its destination and report unchanged sources, skipped conflicts, and any partial failure.
Keep file effects safe and reversible
Organization changes project state
A clean-looking tree can still break links, imports, embeds, scripts, Git history, or publishing pipelines. Approve a complete mapping and dependency update plan before moving existing files.
- Preview is read-only. Directory creation, file creation, rename, move, copy, overwrite, and delete are separate mutations.
- Default to copy-and-verify or version-control-backed moves when recovery is important. Do not delete the source as part of an unreviewed cleanup.
- Search for references to every moved path and update them only within the approved scope.
- Preserve file bytes, metadata that matters to the workflow, and unrelated user changes. A naming convention is not permission to rewrite contents.
- Organization is local only. It does not authorize upload, publication, provider requests, account changes, or spend.
Verify outputs and evidence
A complete run should provide:
- A source-to-destination mapping with the chosen naming rule for every file.
- A list of created directories and changed paths.
- Collision decisions and skipped files.
- Evidence that expected destination files exist and required references still resolve.
- A list of source files intentionally preserved or removed, with approval for any removal.
- Remaining ambiguities, especially the article date convention or an unknown asset type.
Troubleshoot or continue
| Symptom | Safe next step |
|---|---|
| A destination already exists | Stop that item, preserve both files, and choose a new variant or version name. |
| The same asset fits several categories | Choose the category of its primary deliverable and link or reference it elsewhere instead of duplicating bytes without a reason. |
| Moved files break links or embeds | Stop further moves, restore or update only the approved references, and verify the dependent workflow. |
| Date guidance conflicts | Ask whether the asset is time-bound or evergreen and record the chosen pattern. |
| The Skill proposes broad cleanup | Narrow the input directory and require an explicit mapping; do not authorize recursive deletion. |
Runtime cannot find ak:assets-organizing | Follow Runtime cannot find a Skill or Agent. |
Continue with Projects, artifacts, and checkpoints before recovery, or return to the Marketing Kit overview.
Know the current limits
- The Skill supplies conventions but no dedicated script for atomic moves, rollback, checksums, content deduplication, or reference rewriting.
- Several source examples still use legacy command names. Treat the canonical
runtime Skill name as
ak:assets-organizingand use examples only as path guidance. - Asset-type references contain broad templates with placeholder claims, metrics, pricing, and ROI fields. Never fill those with invented data.
Preserve local conventions with ak:folder-context
Create a compact subfolder CLAUDE.md and linked AGENTS.md without changing root project instructions.
Preview files and generate visuals with ak:preview
View project content or create Markdown and HTML explanations while controlling file writes, browser launches, local servers, network exposure, and Git reads.