§ Inside a project

Assets.

Attaching files to a project or a specific phase.

The assets panel attaches files to a project. Open it from the paperclip icon on the right rail.

Most important rule: convert before AI can read #

Office documents and images are stored as binary blobs. The project's AI assistants cannot read PDFs, Word docs, Excel sheets, PowerPoint decks, HTML pages, or images directly — they need a Markdown transcription first.

Every uploaded file in those formats gets a Convert to Markdown button. Click it and the file goes through the doc-converter service:

  1. Status flips to Queued (badge with spinner).
  2. Then Converting while the service extracts text, tables, and (for images) OCRs the picture.
  3. Then Markdown ready (green badge). A View Markdown button appears so you can verify the extraction.

Until you do this, the file is just an attachment — it shows up in the asset list, it can be downloaded, but the AI doesn't know what's inside it. The panel and per-row UI both nudge with "required for AI" until conversion completes.

If conversion fails, the row shows a red Failed badge with the underlying error message and a Retry button. Common causes: corrupted PDF, password-protected document, or an image with no OCR-able text.

You can Reconvert an already-ready file if you've changed your mind about extraction quality — it overwrites the previous Markdown.

What you can attach #

CategoryFormatsConvertible?
DocumentsPDF, DOCXYes
SpreadsheetsXLSXYes
SlidesPPTXYes
WebHTML, HTMYes
TextMD, TXTAlready text
ImagesPNG, JPG, JPEG, TIFFYes (OCR)
ImagesGIF, WebPNo

Anything outside this list is rejected at upload with a sonner toast.

Size limits #

  • 4 MB per file.
  • 20 MB total across the whole project.

The progress bar under the upload zone shows how much room you have left and turns warning-coloured at 80%. If a single file would push you over the project quota, the upload stops there and the toast tells you to delete something first.

How files are organised #

Each asset has three editable fields:

  • Caption — a short "what is this?". Saved with a 500ms debounce on each keystroke.
  • Phase — pick from a combo of all wish-able phases, or Unassigned for project-wide reference. Surfaced inside the matching phase's panel so e.g. wireframes pinned to P-04 Design show up there.
  • Filename — kept as uploaded; not editable.

The header above the gallery has a phase filter so you can scope the view to one phase at a time.

File-type tiles #

Non-image files render as colour-coded tiles in the gallery — PDF red, DOCX blue, XLSX green, PPTX orange, HTML amber, MD/TXT neutral. The colour is purely a visual scan aid.

What you can do with an attached file #

  • Preview — images render inline as the tile thumbnail.
  • View Markdown — once conversion is ready, opens a dialog with the rendered Markdown (headings, tables, lists, code blocks). Toggle to source view for raw .md, copy to clipboard with one click.
  • Download () — fetches the file with its original name.
  • Delete () — removes the asset and its converted Markdown. Confirms via dialog.

There is no version history. Re-uploading a file with the same name uploads a new asset — manage the previous one explicitly if you want it gone.

What assets are not used for #

  • Direct AI input. Only the converted Markdown is exposed to AI assistants. Raw binaries are never fed to the model.
  • Public sharing. Assets are private to the project. They're not exposed on the stakeholder portal.
  • Spec embedding. The exported spec.md does not bundle assets. To reference an image from the spec, paste a URL into the relevant phase field.

Audit #

Every upload, conversion request, conversion outcome, and delete writes to the project audit log. Useful when you need to prove a particular regulatory document was attached to a particular spec at a particular time.