Skip to content

Prompts

Virgile Thonnier edited this page Aug 29, 2026 · 2 revisions

Prompts

Every AI stage in SenseTree is driven by a system prompt, and all of them are yours to change. This is how you tune "meaning extraction" without recompiling — and how you fix a model that drifts into the wrong language or adds preamble to everything.

Edit them in Settings → Prompts; they are stored under prompts in settings.json.

An empty field means "use the built-in default." Override only what you want; clear a field to revert.

The ten prompts

Key Drives Output contract In the UI
folder_classify Recursive vs block decision for a folder Strict JSON {"mode":"block"|"recursive"}
folder_describe One-sentence description of a block folder A single plain sentence
file_extract Pulling meaning out of an unknown file type A summary, or exactly NO_CONTENT
doc_qualify Qualifying a document: what it is + key facts 2–4 factual sentences, no preamble ⚠️ file only
context_guess Guessing an unreadable file's nature from its path and neighbours 1–2 sentences, hedged if uncertain ⚠️ file only
vision_caption Captioning an image 1–2 descriptive sentences
vision_ocr Reading a rendered PDF page One sentence on what the page shows, then the transcribed text
video_describe Describing what a video shows Factual, concise, no speech transcription
chat_system Extra instructions for the chat agent Free text — appended to, not replacing, the agent rules
reorganize The one-shot reorganization planner Strict plan JSON (summary + operations)

⚠️ doc_qualify and context_guess are fully honoured by the backend but have no field in Settings yet. Override them by editing settings.json directly.

What the defaults encode

They are the accumulated conventions of the app, and worth reading before replacing:

  • folder_classify — choose recursive whenever there is exploitable meaning inside (documents, courses, projects, notes, source code, personal photos). Choose block only for technical/opaque bundles: virtualenvs, dependencies, app bundles, DAW sample packs, caches, build artifacts, folders of opaque binaries. Extrapolate the folder's role from its full path — the parent gives essential context. When in doubt, recursive.
  • doc_qualify — say what it is first (invoice, ID card, contract, course, article, bank statement, CV, correspondence), what or whom it relates to, then the key facts (dates, amounts, subject, people, organisation). Concrete and factual, no introductory formula.
  • context_guess — infer the most likely nature from name, extension, location and neighbours (VM disk image, archive, executable, cache, database, a program's project file, backup). Stay factual; phrase uncertainty as a hypothesis.
  • vision_ocr — describe what the image shows in one sentence before transcribing. This exists because a transcription alone loses what a page depicts: a sheet of six passport photos next to a till receipt was summarised as the receipt, and the document was filed as "photo-booth receipt" instead of "identity photos". The model has the image in front of it — ask for both.
  • video_describe — what is seen, where, who or what is present, the actions, any on-screen text. Explicitly not what is said: the soundtrack is handled separately by transcription.
  • chat_system — your text is added under "additional instructions" after the built-in agent rules (which tools exist, use them before answering, cite files, propose_actions executes nothing, remember for durable facts). You extend the agent; you do not silence its safety rules.

Editing guidelines

  • Keep the output contract. folder_classify and reorganize are parsed as strict JSON. Loosen the "respond only in JSON" instruction and classifications or plans get dropped.
  • Keep path faithfulness. For the planner, keep the rule that paths must be exactly those provided — that is what stops the model inventing files. (Out-of-root paths are refused by the backend regardless, but an invented in-root path just fails at apply time.)
  • Force a language, ban preamble. The most common real fix. Adding "answer in English, no preamble" cures a model that drifts or prefixes everything with "Sure! Here is…". The built-in defaults are written in French; if your reasoning model answers better in English, translating them is a legitimate and effective change.
  • Shorter prompts, cheaper indexing. doc_qualify and context_guess run once per file — thousands of times. Every sentence you add is paid for on every file.
  • Test on a folder, not a library. Change a prompt, re-qualify a single folder (Explorer → qualify), inspect the results, then commit to it.

Making a change take effect

Prompt To apply it
chat_system, reorganize Immediate — next message.
vision_caption, vision_ocr, video_describe, file_extract, doc_qualify, context_guess Applies to files indexed afterwards. Re-index a path, or use per-file / per-folder qualification, to apply it retroactively.
folder_classify Changing it forgets existing folder classifications on save. Save, then Re-index.

One exception worth knowing: a pinned sense — one you or the agent corrected via requalify — is never regenerated, whatever the prompt says. That is the point of pinning.

Where the defaults live

They are the single source of truth in the app: get_default_prompts returns them, Settings displays them as placeholders, and the backend falls back to them whenever an override is empty or whitespace-only.

Clone this wiki locally