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:
- Status flips to Queued (badge with spinner).
- Then Converting while the service extracts text, tables, and (for images) OCRs the picture.
- 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 #
| Category | Formats | Convertible? |
|---|---|---|
| Documents | PDF, DOCX | Yes |
| Spreadsheets | XLSX | Yes |
| Slides | PPTX | Yes |
| Web | HTML, HTM | Yes |
| Text | MD, TXT | Already text |
| Images | PNG, JPG, JPEG, TIFF | Yes (OCR) |
| Images | GIF, WebP | No |
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.mddoes 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.