Search documentation

Search documentation

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.

ElementWhat it isTool
QuestionWhat is still to be settledopen_question
EvidenceWhat backs an answer: a citation, a retained value, an observationsave_finding
OptionA way of settling the question, named when it is openedlisted in open_question
DecisionWhat the engineer confirmed, and whyrecord_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:

KindWhat it isExpected fields
referenceWhat the norm saysnormCode, sectionPath, page
hypothesisThe value the engineer retains, and whyvalue, detail, confidence
observationWhat the site showeddetail 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 norm
  • judgement: chosen by the engineer between several possible values
  • to_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.

namestringrequired

How you refer to the project, for example "Villa Morges, roof". This is the name you will use to resume it.

referencestring

Your 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.

dossierIdstringrequired

Returned by open_dossier or list_dossiers.

titlestringrequired

The question in one line, phrased as a question.

bodystring

What is at stake and why it is not settled, in two or three sentences. Not a list of sub-questions.

optionsarray

The 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.

dossierIdstringrequired

The dossier.

attachmentsarray

id, 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.

attachmentIdstringrequired

From list_attachments or search_in_dossier.

fromnumberdefault: 1

First page.

tonumberdefault: last

Last page.

maxCharsnumberdefault: 12000

Characters per call (500 to 40000). When truncated is true, call again with from set to nextPage.

markdownstring

The 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.

dossierIdstringrequired

The dossier.

keywordstringrequired

Search terms in the language of the documents.

limitnumberdefault: 10

Maximum hits (1 to 30).

hitsarray

attachmentId, 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.

templatesarray

id, 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.

dossierIdstringrequired

The dossier.

templateIdstringrequired

From list_templates.

resultobject

questionsOpened, 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.

dossierIdstringrequired

Returned by open_dossier or list_dossiers.

questionIdstring

The 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.

kindstringrequired

reference, hypothesis or observation. See the table above.

titlestringrequired

The fact in one line, as an engineer would write it in a report.

detailstring

The reasoning: why this value, what it rests on, what disagreed.

valuestring

The retained value with its unit, for example 30° or 1.25 kN/m².

confidencestring

established, judgement or to_confirm.

normCodestring

Source norm, for example SIA 267.

sectionPathstring

Exact section path, for example 9.5.2.1.

pagenumber

Page in the norm, so you can verify it in your own PDF.

normEditionstring

The 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.

questionIdstringrequired

Returned by open_question or load_dossier.

retainedOptionstring

The option that was retained, by name, when the question listed some. An option not listed yet is created on the fly.

titlestringrequired

The decision in one line.

detailstring

The reasoning.

valuestring

The retained value with its unit, when the decision carries one.

confidencestring

established, judgement or to_confirm.

normCodestring

Source norm.

sectionPathstring

Exact section path.

pagenumber

Page in the norm.

normEditionstring

The 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.

dossierIdstring

Preferred when the agent already has it.

namestring

The 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.

questionIdstringrequired

Returned by open_question or load_dossier.

resolvedboolean

Defaults to true. Pass false to reopen a question.


Limits

To bound a looping agent, without any of it being billed:

LimitValue
Dossiers per organisation200
Questions per dossier200
Options per question10
Entries per dossier500
Comments per dossier500

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.