← Files StrattaARCHIVED FILE
.codex-plugin/plugin.json
17.8 KB · Nov 6, 2026 · 00:12 UTC
{
"name": "app-6a958f23ec408191a845944d93e24925",
"version": "1.20.0",
"description": "Read and cite the norms and reference documents (standards, laws, regulations) your organization has deposited in Stratta.",
"author": {
"name": "Hugo Gebel",
"email": "hello@stratta.ch",
"url": "https://stratta.ch"
},
"homepage": "https://stratta.ch/docs",
"repository": "https://github.com/hugogebel-boop/stratta-v2",
"license": "UNLICENSED",
"keywords": [
"mcp",
"civil-engineering",
"regulations",
"laws",
"sia",
"eurocodes",
"construction",
"stratta"
],
"skills": "./skills/",
"mcpServers": "./.mcp.json",
"interface": {
"displayName": "Stratta",
"shortDescription": "Cited norms and regulations",
"longDescription": "Stratta answers professional questions (engineering, law, accounting, public administration) from the norms and reference documents your own organization has deposited, and it answers them with a citation you can check: the exact section path and the page number.\n\nEach organization brings its own copies. Stratta does not host a shared corpus and does not redistribute standards: technical standards such as SIA and Eurocode, laws, ordinances, regulations, accounting standards and in-house references are deposited by the organization that holds the rights to them, stay inside that organization, and are never visible to another one. A new workspace starts with a small demonstration norm whose content is written by Stratta, so the workflow can be tried before any licensed document is uploaded.\n\nThe agent navigates a norm the way an engineer does. It opens the table of contents, walks down to the chapter that matters, reads the section, follows the cross-references that change the answer, and looks at the figure when a load diagram or a chart carries the rule. Nothing is summarized from memory: every technical claim comes from a section that was actually read.\n\nEvery answer can end with the clauses it rests on, shown as cards: the norm, the section path, the pages, and the sentence quoted, checked word for word against the clause before it is shown. A card opens the full clause in place. The norm reader opens beside the conversation, so a norm can be browsed from its table of contents down to a clause without asking the agent.\n\nProject dossiers keep the trail. A retained value, a hypothesis, a site observation or a question left open is recorded against the project it belongs to, with the clause it came from, so the next conversation resumes where the last one stopped instead of re-deciding what was already decided. The agent reads and amends those questions the way the dossier page does: the options on the table, the evidence with every citation field, the decision, the remarks left along the way, and the activity log.\n\nWritten procedures come with it: a verification note, the project basis and the use agreement of SIA 260, the terrain chapter of a report, the review of open questions for the senior engineer, each drafted from the dossier with every paragraph traced to its source.\n\nFor a site in Switzerland, the agent reads the site sheet the app builds from public cantonal and federal registers: the parcel, the ground elevation, the geology, the boreholes around it with their strata, the polluted sites, the groundwater protection, the natural hazards. A scan can be opened for an address, on the plans that include it.\n\nStratta supports engineering judgment; it does not replace it and it issues no approval. Filing a norm your organization holds a licence for starts from a PDF on your own machine, so it runs on stratta.ch or through the Stratta command-line server, and it is reserved to the owners and administrators of that organization.",
"developerName": "Hugo Gebel",
"category": "Productivity",
"capabilities": [
"Read the norms and reference documents your organization has deposited",
"Navigate a norm by table of contents and section tree",
"Quote sections with exact section path and page number",
"Show the cited clauses as cards, each quote checked against the clause",
"Browse the organization's norms in a reader beside the conversation",
"Follow cross-references between clauses and between norms",
"Show figures, load diagrams and design charts",
"Keep project dossiers of decisions and open questions",
"Read and amend the questions of a dossier, with their evidence",
"Leave a signed remark on a dossier, a question or an entry",
"Read a Swiss site sheet, its boreholes and their strata",
"Draft a verification note, project basis or report chapter from a dossier",
"Scan the public Swiss registers for a building site address",
"File a document your organization holds the rights to"
],
"websiteURL": "https://stratta.ch",
"supportURL": "https://stratta.ch/contact",
"privacyPolicyURL": "https://stratta.ch/legal/privacy",
"termsOfServiceURL": "https://stratta.ch/legal/terms",
"defaultPrompt": [
"Which norms and reference documents can Stratta read for my organization?",
"Pick a clause from my norms, explain it with its exact section and page, and show it as a citation card.",
"Open a project dossier for Villa Morges and keep the decisions we take in it."
],
"brandColor": "#A87A25",
"brandColorDark": "#D69A55",
"composerIcon": "./assets/icon.png",
"logo": "./assets/logo.png"
},
"extensions": {
"com.openai": {
"onboardingSkill": "./skills/get-started/SKILL.md",
"review": {
"test_cases": {
"positive": [
{
"description": "A new reviewer workspace holds only the demonstration document, and the app must say so instead of answering from general knowledge.",
"prompt": "Which engineering norms are available in my Stratta organization?",
"tools_triggered": "get_methodology, whoami, list_norms",
"expected_behavior": "Names the connected organization and lists DEMO 001 as the only document, stating that it is a Stratta demonstration document with fictional content that must not be used on a project, and that a licensed norm has to be uploaded on stratta.ch before real work can start."
},
{
"description": "Navigate a document from its outline down to a chapter without loading the whole text.",
"prompt": "Show me the table of contents of DEMO 001, then what chapter 3 contains.",
"tools_triggered": "get_toc, get_subtree",
"expected_behavior": "Lists the four chapters of DEMO 001 (domaine d'application, termes et definitions, determination de la charge, valeurs) and then the two sections under chapter 3, section 3.1 Formule de base and section 3.2 Conditions d'application, with their summaries."
},
{
"description": "Read a clause, quote it with its page, follow the reference it carries, then show the cited clauses as cards the reviewer can open and check.",
"prompt": "What formula does DEMO 001 give for the demonstration load, and where do the coefficient values come from? Show me the clauses you cite.",
"tools_triggered": "get_section, get_cross_refs, show_citations",
"expected_behavior": "Returns the formula q_d = C_e * mu * q_ref from section 3.1 with a citation naming DEMO 001, the section path and page 5, defines each symbol, follows the cross-reference to section 4.1 for the exposure coefficient, and closes with the note that the content is fictional and must not be used on a project. It then shows one card per cited clause (DEMO 001 section 3.1 and section 4.1) with title, pages and an excerpt; opening a card shows the full clause, and a quote is marked as found only when it is in the clause."
},
{
"description": "Fall back to full-text search when the outline does not name the concept, then cite the clause found. DEMO 001 is written in French, like the Swiss norms Stratta serves, so the prompt carries the French term: search matches by term, and an English keyword alone returns no hit in a French document.",
"prompt": "Search DEMO 001 for the shape factor, facteur de forme, and quote the clause that defines it.",
"tools_triggered": "search_in_norm, get_section",
"expected_behavior": "Returns ranked matches from DEMO 001, opens section 4.2 Facteur de forme, quotes it with its section path and page, and repeats that the value is fictional."
},
{
"description": "The full dossier loop, then the question as the dossier page shows it: open a project, open a question, file a cited reference under it, reload the dossier, settle the question with a confirmed decision, then read that question in full and leave a remark on it.",
"prompt": "Open a dossier for the Villa Morges project, open the question of which exposure coefficient to retain, file the DEMO 001 clause that defines it under that question with its citation, reload the dossier, then record my decision: I retain the value the clause gives, confirmed. Then list the questions of that dossier, show me that one in full, and leave a comment saying the value still has to be checked against the office's own practice.",
"tools_triggered": "open_dossier, open_question, save_finding, list_dossiers, load_dossier, record_decision, list_questions, get_question, add_comment",
"expected_behavior": "Creates the Villa Morges dossier, opens one question, writes one reference entry carrying the DEMO 001 section path and page filed under that question, reloads the dossier showing the open question with its evidence, then asks the user to confirm (through the client when it can elicit, in the conversation otherwise) and records the decision so the question leaves the open items. It then lists the questions with their status and returns that one in full: wording, decision, evidence field by field with its citation, and who wrote each entry. It writes exactly one comment, signed by the connected user, without touching the decision. No unrelated prose is recorded."
}
],
"negative": [
{
"description": "A request with no connection to reference documents must not invoke the app. The app is not invoked: Stratta covers only the norms and reference documents held by the connected organization, and a weather question is outside that scope.",
"prompt": "What is the weather in Lausanne tomorrow?"
},
{
"description": "The ingestion tools read a PDF that sits on the user's own machine, which a browser client cannot do. No document is created: the app explains that ingesting a norm starts by reading the PDF where it sits, so it runs from the Stratta command-line server or from stratta.ch rather than from this conversation, and that it is reserved to the owners and administrators of an organization that holds a licence for the norm. It does not claim any document was imported and does not create an empty one.",
"prompt": "Import this SIA 262 PDF from my computer into Stratta."
},
{
"description": "A deletion tool exists, but it deletes one named document of the caller's own organization. A sweeping request must not be turned into a loop of deletions, and the demonstration document is not the organization's to remove. Nothing is deleted: the app states that DEMO 001 is served by Stratta to every workspace and is not this organization's document, that the only deletion tool takes one document at a time, is reserved to owners and administrators, and asks the user to confirm before it runs.",
"prompt": "Delete every norm in my Stratta organization."
}
]
},
"demo_recording_url": "https://www.loom.com/share/fb1d2c5f1cd04cfdaece746bd03eaac0",
"commerce": false,
"commerce_description": "Stratta sells nothing inside the conversation: no checkout, no payment, and no plan is shown or promoted."
},
"publication": {
"countries": [
"CH",
"GB",
"AT",
"BE",
"BG",
"HR",
"CY",
"CZ",
"DK",
"EE",
"FI",
"FR",
"DE",
"GR",
"HU",
"IE",
"IT",
"LV",
"LT",
"LU",
"MT",
"NL",
"PL",
"PT",
"RO",
"SK",
"SI",
"ES",
"SE"
],
"release_notes": "Package 1.20.0, an update of the published plugin, which is 1.18.0. Versions 1.18.1 and 1.19.0 were never submitted, so their changes are listed here too. The remote surface still advertises 61 tools, none was added, removed or renamed since 1.18.0, annotations are unchanged, and the MCP server URL is unchanged.\n\nStratta is a read-and-cite surface over the norms and reference documents an organization has deposited and holds the rights to: technical standards, laws, ordinances, regulations, accounting standards and in-house references. There is no shared corpus and no redistribution of any document; each organization sees only its own documents, enforced server-side against the organization the OAuth consent was granted for. Each deposit requires the depositor to declare the organization holds the rights to the document.\n\nIn 1.18.1: the server instructions, tool descriptions, served methodology and the consult-stratta skill now describe this general corpus instead of construction norms only. The plugin description and subtitle say the same.\n\nIn 1.19.0: every tool now carries its title at the top level as well as in its annotations; eleven descriptions (get_methodology, list_norms, search_corpus, load_dossier, list_attachments, list_templates, show_citations, save_finding, record_decision, get_skill, ingest_status) are rewritten as \"Use this when...\" instead of instructions to the model; ingest_normalize_cross_refs says it adds missing references rather than rebuilding them; the server info carries a title, a description, a website and an icon; the authorization response now names its issuer (RFC 9207); the reader waits ten seconds at most for the host's handshake before saying it could not open. The consult-stratta skill describes the general corpus.\n\nIn 1.20.0: list_norms takes two optional inputs, query (a code or words of the title) and limit, and returns { total, matched, norms, truncated, hint } instead of a bare array, because a 425-norm organization received 170 000 characters; with a query each norm carries its scope. get_section returns the section once, as Markdown with its formulas, tables, figures and references in place, plus the navigation fields (path, title, edition, pages, parent, figure ids, window), instead of the same text again as raw text and JSON. search_in_norm carries the licence on its first hit. get_dossier_activity lists 15 lines by default instead of 50. The consult-stratta skill describes professional questions in general. The starter prompts work on a new account, which holds only the demonstration document, and the get-started skill gives the size of a large corpus instead of listing it.\n\nFor the reviewer: the demonstration account holds only DEMO 001, a fictional document written by Stratta, so review needs no licensed material. list_norms flags it and the served methodology instructs the agent never to use its values. The five positive test cases run end to end on that account in the order given; the third one shows the citation cards.",
"translations": {
"fr-FR": {
"subtitle": "Normes et r\u00e8glements cit\u00e9s",
"description": "Stratta r\u00e9pond aux questions professionnelles (ing\u00e9nierie, droit, comptabilit\u00e9, administration publique) \u00e0 partir des normes et documents de r\u00e9f\u00e9rence que votre organisation a d\u00e9pos\u00e9s, et chaque r\u00e9ponse porte une citation v\u00e9rifiable : le chemin exact de la clause et le num\u00e9ro de page.\n\nChaque organisation apporte ses propres exemplaires. Stratta n\u2019h\u00e9berge aucun corpus partag\u00e9 et ne redistribue aucune norme : SIA, Eurocodes et normes internes du bureau sont d\u00e9pos\u00e9es par l\u2019organisation qui en d\u00e9tient la licence, restent dans cette organisation et ne sont jamais visibles d\u2019une autre. Un nouvel espace commence avec une norme de d\u00e9monstration \u00e9crite par Stratta, pour essayer avant tout d\u00e9p\u00f4t.\n\nL\u2019agent parcourt une norme comme un ing\u00e9nieur : sommaire, chapitre utile, clause, renvois qui changent la r\u00e9ponse, figure quand un diagramme porte la r\u00e8gle. Rien n\u2019est r\u00e9sum\u00e9 de m\u00e9moire.\n\nUne r\u00e9ponse peut se terminer par les clauses sur lesquelles elle repose, en cartes : la norme, la clause, les pages et la phrase cit\u00e9e, v\u00e9rifi\u00e9e mot pour mot contre la clause avant d\u2019\u00eatre affich\u00e9e. Le lecteur de normes s\u2019ouvre \u00e0 c\u00f4t\u00e9 de la conversation pour parcourir une norme sans passer par l\u2019agent.\n\nLes dossiers de projet gardent la trace des valeurs retenues, des hypoth\u00e8ses et des questions ouvertes, chacune avec sa clause. Des proc\u00e9dures \u00e9crites accompagnent l\u2019agent : note de v\u00e9rification, base du projet et convention d\u2019utilisation selon la SIA 260, chapitre terrain d\u2019un rapport, revue des questions ouvertes.\n\nPour un site en Suisse, l\u2019agent lit la fiche de site construite \u00e0 partir des registres publics cantonaux et f\u00e9d\u00e9raux : parcelle, g\u00e9ologie, sondages, sites pollu\u00e9s, protection des eaux, dangers naturels.\n\nStratta appuie le jugement de l\u2019ing\u00e9nieur sans le remplacer et ne d\u00e9livre aucune approbation."
}
}
}
}
},
"apps": "./.app.json"
}
SHA-256: 5b5a424ef0dff0e6bf904c68d7baccd52c78cb84fb203e4807f0dc3f76d3ec40