Skip to content
cccskills
FreePublished on GitHub

mobile-files-media

Use this skill when working on camera, gallery, file pick/upload/download, file preview, sharing, or filesystem-backed media. For Preferences keys, use mobile-local-data.

The English summary is being prepared. Showing the original description.

See how to install

Files included (1)

  • SKILL.md2.1 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

mobile-files-media — Canonical Skill

Purpose

Enforce the verified file/media pipeline with platform-safe URI handling.

When to use

Camera capture, photo picking, chunked upload, download/open/share, save to gallery, permissions, scoped-storage/sandbox paths.

Required reading

  • skills/mobile/FILES_MEDIA.md

Relevant project locations

  • src/composables/useFileSystem.ts (active picker/save path), src/composables/useUpload.ts (active upload path)
  • src/composables/useCamera.ts (currently no import callers)
  • src/composables/useFileDownload.ts, src/utils/FileUtils.ts
  • src/api/FileManagerService.ts

Mandatory rules

  1. Camera: getPhoto Uri + webUseInput, pickImages. Web has no gallery: savePicture/saveFile fall back to a browser download.
  2. Save pipeline: base64 → Filesystem.writeFile (Directory.Data) → Media.savePhoto into AppAlbumName album.
  3. Upload defaults: 1 MB chunks, one attempt unless maxRetries is overridden; FormData uploadChunkApi then merge DTO mergeChunkApi. In-memory chunk tracking is not restart-safe resume.
  4. Validate paths, MIME, filenames; respect scoped storage / sandbox; request minimal permissions with isWeb() guards.
  5. Blob URLs from fethCdnData must be released: use useBlobUrls() (track + auto-revoke on unmount), as BaseImage/BaseAvatar do. Downloads that must land on the device use useFileDownload.

Implementation workflow

  1. Trace the caller's capture/pick → convert → store/upload → cleanup chain; do not assume the unreferenced useCamera.ts is the active path.
  2. Handle permission-denied, cancel, retry-exhausted, large-file paths.
  3. Clean temp files; confirm user-visible export location.
  4. Verify per mobile-testing, incl. SECURITY (untrusted files).

Verification

Mocked picker/upload unit tests; real capture/save/share only on device.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Use this skill when adding or changing REST API calls, HTTP client config, error handling, uploads/downloads, or network behavior.

The English summary is being prepared. Showing the original description.

bekaku/vue-ionic-example-app6Updated Oct 5, 2026

Use this skill when working on login, logout, session restore, tokens, route guards, or any authentication and authorization behavior.

The English summary is being prepared. Showing the original description.

bekaku/vue-ionic-example-app6Updated Oct 5, 2026

Use this skill when building, syncing Capacitor, or preparing Android/iOS releases and environment configuration.

The English summary is being prepared. Showing the original description.

bekaku/vue-ionic-example-app6Updated Oct 5, 2026

Use this skill when creating, modifying, or debugging Ionic Vue components, pages, forms, dialogs, or theme/safe-area UI behavior.

The English summary is being prepared. Showing the original description.

bekaku/vue-ionic-example-app6Updated Oct 5, 2026

Use this skill for any Ionic Vue + Capacitor mobile work: Vue architecture, Composition API, TypeScript, state, env config, shared conventions. Required for every implementation task alongside mobile-testing.

The English summary is being prepared. Showing the original description.

bekaku/vue-ionic-example-app6Updated Oct 5, 2026

Use this skill when handling inbound URLs, custom schemes, app links, universal links, or URL-bearing notification payloads.

The English summary is being prepared. Showing the original description.

bekaku/vue-ionic-example-app6Updated Oct 5, 2026

See all skills by bekaku

Report a problem with this skill