Dossier tools
The 7 tools that keep a record of what was decided on a project.
A conversation disappears, a project runs for months. These thirteen tools let your agent write down what was retained into a dossier you reopen, annotate and export from stratta.ch/dossiers.
You don't call them by hand. Your agent does, while it works, following the policy described in
get_methodology.
These tools are open to any member of the organisation, unlike the ingestion tools, which are restricted to owners and admins. A dossier is your own work, not the bureau's shared corpus.
What a dossier holds
A dossier is a set of questions to settle, for example "Can pile P38 be kept?" or "Which φ'k do we retain for the fill?". The question, not the standalone entry, is the unit of work: it is what gets assigned, reviewed and closed.
| Element | What it is | Tool |
|---|---|---|
| Question | What is still to be settled | open_question |
| Evidence | What backs an answer: a citation, a retained value, an observation | save_finding |
| Option | A way of settling the question, named when it is opened | listed in open_question |
| Decision | What the engineer confirmed, and why | record_decision |
A piece of evidence can be recorded before you even know which question it serves: it stays "unclassified", and you file it later from the app. Three kinds of evidence, and the distinction is not decoration:
| Kind | What it is | Expected fields |
|---|---|---|
reference | What the norm says | normCode, sectionPath, page |
hypothesis | The value the engineer retains, and why | value, detail, confidence |
observation | What the site showed | detail with the date |
In structural work a retained value is the output of a formula and recomputing it settles any
argument. In geotechnics it is a judgement made between three boreholes that disagree, and the
only thing reviewable six months later is the reasoning. Hence confidence:
established: computed, or read directly from the normjudgement: chosen by the engineer between several possible valuesto_confirm: provisional, needs a test or a check
Confusing the three is the professional fault this field exists to prevent.
list_dossiers
Lists your organisation's dossiers, most recently touched first. Each row carries the entry count and, more importantly, the count of open questions, which is what points at the dossier to pick up.
No parameters.
open_dossier
Opens a project's dossier, creating it if it does not exist yet.
namestringrequiredHow you refer to the project, for example "Villa Morges, roof". This is the name you will use to resume it.
referencestringYour bureau's project number, if it has one.
Idempotent on the name. Calling it twice with the same name returns the same dossier rather than creating a second one that would split the project's history in two.
Returns { dossierId, created }.
open_question
Opens one question to settle in a dossier, before gathering evidence for it. A question is
the unit of work: "Can pile P38 be kept?", "Which φ'k do we retain for the fill?". Evidence saved
with save_finding and the eventual record_decision hang off it.
One question per thing to settle: never put a list of sub-questions in the body. A question that bundles eight cannot be assigned, answered or closed one at a time. Open eight questions.
dossierIdstringrequiredReturned by open_dossier or list_dossiers.
titlestringrequiredThe question in one line, phrased as a question.
bodystringWhat is at stake and why it is not settled, in two or three sentences. Not a list of sub-questions.
optionsarrayThe ways this could be settled, when the norm or you put several forward: "abandon the pile", "recover it by re-concreting plus integrity tests", "redistribute onto P37/P39". One short name each, ten at most.
Idempotent on the title. Reopening the same wording returns the question already open, with its evidence.
Returns { questionId, created }.
list_attachments
Lists the project attachments of a dossier (site reports, borehole logs, meeting minutes, data sheets), with their extraction status. An agent reads them before answering on a project.
dossierIdstringrequiredThe dossier.
attachmentsarrayid, name, mimeType, bytes, pageCount, status (pending, ready,
failed), note, addedAt.
read_attachment
Reads the text of an attachment as a Markdown document, page by page, in windows.
attachmentIdstringrequiredFrom list_attachments or search_in_dossier.
fromnumberdefault: 1First page.
tonumberdefault: lastLast page.
maxCharsnumberdefault: 12000Characters per call (500 to 40000). When truncated is true, call again with
from set to nextPage.
markdownstringThe pages read, each under a ## p. N heading. A scan without a text layer
says so.
search_in_dossier
Full-text search over the attachments of one dossier, accents and case ignored.
dossierIdstringrequiredThe dossier.
keywordstringrequiredSearch terms in the language of the documents.
limitnumberdefault: 10Maximum hits (1 to 30).
hitsarrayattachmentId, name, page, snippet.
On the local server only, add_attachment uploads a file from the user's
machine (PDF, DOCX, XLSX, PNG, JPEG, TXT, MD, CSV, 25 MB at most, 20 per
dossier). The remote connector has no disk: upload from the dossier page
instead.
list_templates
Lists the dossier templates of the organization: checklists by type of structure, each a set of questions with the clauses they rest on. No parameter.
templatesarrayid, name, description, questions, citations.
apply_template
Opens the questions of a template in a dossier, with their options, and files every clause that
resolves in the corpus as a reference entry under its question. A clause the organization
cannot read is written into the question body as something to establish. Applying twice opens
nothing twice.
dossierIdstringrequiredThe dossier.
templateIdstringrequiredFrom list_templates.
resultobjectquestionsOpened, referencesFiled, unresolved[] (question, normCode,
sectionPath).
save_finding
Records one piece of evidence in a dossier. Your agent calls it as it works, not in a batch at the end: evidence saved when it is found carries the reasoning that produced it.
dossierIdstringrequiredReturned by open_dossier or list_dossiers.
questionIdstringThe question this evidence serves, from open_question or load_dossier.
Omit only when you do not yet know which one: the entry is saved
"unclassified", and you file it later from the app.
kindstringrequiredreference, hypothesis or observation. See the table above.
titlestringrequiredThe fact in one line, as an engineer would write it in a report.
detailstringThe reasoning: why this value, what it rests on, what disagreed.
valuestringThe retained value with its unit, for example 30° or 1.25 kN/m².
confidencestringestablished, judgement or to_confirm.
normCodestringSource norm, for example SIA 267.
sectionPathstringExact section path, for example 9.5.2.1.
pagenumberPage in the norm, so you can verify it in your own PDF.
normEditionstringThe edition cited, for example "2013" or "2020 + rect. 2022", when
list_norms gives it.
record_decision
Settles a question with a decision the engineer has confirmed: what was decided, why, and the clause it rests on. The question leaves the open items and keeps its evidence; the decision becomes the entry a reviewer reads first.
Your agent only calls this once you have confirmed the decision, never on its own reasoning.
questionIdstringrequiredReturned by open_question or load_dossier.
retainedOptionstringThe option that was retained, by name, when the question listed some. An option not listed yet is created on the fly.
titlestringrequiredThe decision in one line.
detailstringThe reasoning.
valuestringThe retained value with its unit, when the decision carries one.
confidencestringestablished, judgement or to_confirm.
normCodestringSource norm.
sectionPathstringExact section path.
pagenumberPage in the norm.
normEditionstringThe edition cited.
Returns { entryId }.
load_dossier
Reloads everything a dossier holds: its questions with their evidence, options and decisions, then the evidence not yet filed under a question, then the comments. Open questions come first, read them before anything else and tell the user what is still open.
Just say "pick the Villa Morges dossier back up": your agent calls this before answering anything about the project, and builds on what was decided instead of deciding it again.
dossierIdstringPreferred when the agent already has it.
namestringThe project name, when you name it rather than giving an id. Matched exactly.
One of the two is required.
resolve_question
Closes a question that stopped mattering without a decision: the variant was abandoned, the
client withdrew the request, the point became moot. The question stays in the dossier, marked
closed, with its evidence. To settle a question with an answer, call record_decision instead.
questionIdstringrequiredReturned by open_question or load_dossier.
resolvedbooleanDefaults to true. Pass false to reopen a question.
Limits
To bound a looping agent, without any of it being billed:
| Limit | Value |
|---|---|
| Dossiers per organisation | 200 |
| Questions per dossier | 200 |
| Options per question | 10 |
| Entries per dossier | 500 |
| Comments per dossier | 500 |
A signed-off dossier takes no further entries or edits. Comments stay open: closing a dossier is not the end of the conversation about it.
What Stratta does not do
The dossier documents the engineer's reasoning; it does not replace it. Stratta never concludes that a structure is compliant, and an agent must not write down an assumption you have not validated.