AddThisFeature

File Manager

Give people a familiar place to browse, rename, move, and delete their files.

involved Documents & Files

What it adds

A folder-based file browser with multi-select, rename, move, copy, delete, and search across the user's stored files.

What your agent is told to do

5
  1. 1

    Build on the files the app already stores. Reuse the existing File Upload for adding files and the existing Secure File Downloads for reading them back, rather than creating a second storage path with its own rules.

  2. 2

    Ship the operations people expect from a file browser and nothing more: navigate folders, create a folder, rename, move, copy, delete, and search by name. Sharing, versioning, and permissions editing are separate features that should be deferred rather than half-built.

  3. 3

    Make every destructive action recoverable. Deleted items go to a trash with a retention window and a restore, because a file browser without an undo will eventually lose someone's work.

  4. 4

    Show a breadcrumb of the current path and keep it in the URL, so a folder can be linked, bookmarked, and returned to with the back button.

  5. 5

    Do not treat folders as a display convenience layered over a flat bucket. Model the hierarchy properly, or move, rename, and delete will each need their own inconsistent special cases.

Edge cases it handles

8
  • Moving or copying into a folder that already holds a file of that name must ask: keep both, replace, or cancel. Silently overwriting is data loss the user never sees happen.
  • Multi-select and drag targets designed for a mouse become unusable on touch. Provide an explicit selection mode and a move-to-folder action that does not require dragging.
  • A folder with thousands of items must paginate or virtualize, and search must run server-side. Loading a whole folder to filter it in the browser will hang the tab.
  • Permissions have to be enforced on every operation, not just on the listing. A user who cannot see a file must not be able to rename, move, or delete it by knowing its identifier.
  • A batch move that fails partway must leave a coherent result. Report which items moved and which did not, and never leave a file recorded in two places or in none.
  • Names arrive with path separators, leading dots, trailing spaces, control characters, and lengths no filesystem accepts. Normalise and validate on the server, not only in the input field.
  • Moving a folder moves everything under it, which can be a very large operation. Run it in the background with progress, and block moving a folder into its own descendant.
  • Two people or two tabs acting on the same folder will collide. Refresh the listing after each operation and report clearly when a target no longer exists.

Definition of done

9
  • Users can browse folders, and create, rename, move, copy, and delete files and folders.
  • Name collisions prompt for a choice and never overwrite silently.
  • Selection, move, and delete are fully usable on a touch screen without dragging.
  • Folders with thousands of items load and search without freezing.
  • Every operation authorises against the acting user, not just the listing.
  • A partially failed batch reports exactly what succeeded and leaves no orphaned records.
  • Deleted items are recoverable from trash for a defined window and the current folder is reflected in the URL.
  • The feature matches the existing design system.
  • No existing functionality is broken.

Related features

How it works

  1. 1

    Copy the link

    Grab the Markdown instruction URL for this feature.

  2. 2

    Give it to your AI

    Paste it into Claude Code, Cursor, v0, Lovable — whatever you build with.

  3. 3

    It inspects, then implements

    Your agent reads your existing app first, then adds the feature to fit it.

Works with your stack

These instructions are written to adapt. They tell the agent to detect your framework, match your existing design system, and reuse what you already have — rather than assuming a particular stack.

Need it tighter than that? Customize the feature and tell it exactly what you're running.