← Files AltoDocsARCHIVED FILE
plugin.json
12 KB · Nov 2, 2026 · 13:09 UTC
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"name": "altodocs",
"version": "1.2.0",
"description": "Create editable engineering calculations, reports and drawings in your AltoDocs workspace from chat.",
"author": {
"name": "AltoDocs",
"email": "contact@altodocs.io",
"url": "https://altodocs.io"
},
"homepage": "https://altodocs.io",
"keywords": [
"MathCanvas",
"engineering",
"calculations",
"worksheets",
"reports",
"markup",
"CAD",
"spreadsheets",
"projects"
],
"extensions": {
"com.openai": {
"interface": {
"displayName": "AltoDocs",
"shortDescription": "Create engineering documents",
"longDescription": "Build editable engineering calculations and documents from your conversation. Create standalone MathCanvas files with named inputs, dependent formulas, physical units and explanatory notes. Evaluate the saved sheet, refine its layout and formatting, and continue chatting to update the same file. Open the returned link whenever you want to inspect or edit it in AltoDocs.\n\nUse information supplied in the conversation or attachments ChatGPT can read. The included workflows help identify missing inputs and assumptions, organise source values, save native content and verify the result. File interpretation depends on the host; AltoDocs does not itself fetch or parse arbitrary attachments.\n\nCreate projects and folders, organise files, make copies and revise existing work. Build engineering reports with text, tables, embedded worksheets, supported beam analysis and editable markup sketches with saved previews. Create standalone 2D CAD drawings with native geometry, annotations, layers, blocks, layouts and viewports. Create spreadsheet workbooks with saved cell values, formula source, styles and tabs.\n\nSkills cover standalone MathCanvas, engineering reports, markup sketches, CAD, spreadsheets, project/file organisation, unit-aware calculations and getting started. Connect your AltoDocs account and choose project access. Available actions depend on the tools enabled for your connection and your account permissions; new project creation requires project-creation consent.\n\nSpreadsheet formulas are stored without recalculation by the connector. Markup supports blank-background sketches, not arbitrary uploaded-image annotation. CAD has no external DWG import or PDF plotting through these tools. The connector does not run user Python, export files, send email, change sharing, or certify engineering designs.",
"composerIcon": "./assets/icon.png",
"logo": "./assets/logo.png",
"developerName": "AltoDocs",
"category": "Productivity",
"capabilities": [
"Read",
"Write"
],
"websiteURL": "https://altodocs.io",
"supportURL": "https://altodocs.io/docs",
"privacyPolicyURL": "https://altodocs.io/privacy",
"termsOfServiceURL": "https://altodocs.io/terms",
"defaultPrompt": [
"Create a standalone MathCanvas file from these calculations with editable formulas and units. Save it and send me its link.",
"Update this MathCanvas sheet: revise the inputs, recalculate, improve the layout and keep the same saved file.",
"Create an engineering report from this conversation with a calculation worksheet and an editable explanatory sketch."
],
"screenshots": []
},
"review": {
"demo_recording_url": "https://altodocs.io/videos/plugin-beam-live.mp4",
"commerce": false,
"commerce_description": "The connector does not process purchases or payments. AltoDocs account entitlements govern document editing.",
"test_cases": {
"positive": [
{
"description": "Create a project, folder and standalone MathCanvas file",
"prompt": "In the synthetic reviewer workspace Connector review \u2014 synthetic data, create a project called Calculation workflow review and a Calculations folder. Create a standalone MathCanvas file called Supplied moment with a source note saying these are synthetic supplied values, q=12 kN/m, L=6 m, and M=q*L^2/8 displayed in kN m. Use editable native inputs and formulas, evaluate the saved sheet, read it back and give me its native file link.",
"tools_triggered": "list_workspaces, list_projects, create_project, get_project, create_folder, create_mathcanvas, add_text, add_variable, define_variable, read_worksheet, evaluate_worksheet",
"expected_behavior": "Uses the dedicated reviewer organisation and explicit projects:create consent, creates only the requested project/folder/file, saves native standalone worksheet regions, evaluates the persisted formula to 54 kN m, reads back inputs/units and returns the real /mathcanvas/ URL. If the host still exposes the previous seven-tool snapshot, identifies the missing standalone/project tools rather than claiming creation or substituting a report."
},
{
"description": "Revise and lay out the same saved MathCanvas file, then verify a separate copy",
"prompt": "In Supplied moment, change L to 7 m and rename L to span, updating dependent formulas. Show M in kN m with three decimals, add an evaluation of M in N m, arrange the regions neatly and enable the grid and border. Verify the saved source and evaluate it again. Keep the original live link. Then make a separate copy called Moment review copy, move that copy to Trash and restore it, preserving its formulas.",
"tools_triggered": "list_documents, get_document_info, read_worksheet, add_variable, rename_variable, update_region, add_calculation, edit_worksheet, tidy_layout, evaluate_worksheet, duplicate_document, trash_document, restore_document",
"expected_behavior": "Updates the original standalone file with current versions and exact region IDs, retains notes and the same /mathcanvas/ URL, and evaluates saved formulas to 73.5 kN m and 73500 N m. Uses both file version counters for copy/Trash/restore, preserves source and returns distinct original/copy URLs. Does not claim a pixel-perfect visual review from a headless tidy operation."
},
{
"description": "Create an engineering report with a native worksheet and editable markup preview",
"prompt": "In Calculation workflow review create an engineering report called Source calculation with a heading, a table for q=12 kN/m and L=6 m, a supplied-formula assumption M=qL^2/8, and an embedded editable calculation worksheet. Add a blank-background loading sketch showing a 6 m line, one downward arrow, a calibrated 6 m dimension and a text label. Save it, read back the worksheet and sketch, and show the saved sketch preview with its section link. Treat this as a supplied formula demonstration, not design certification.",
"tools_triggered": "list_documents, create_document, read_document, evaluate_calculation, preview_block",
"expected_behavior": "Saves a native report containing real table, worksheet expressions, source assumptions and editable drawing shapes with a consistent mmPerPixel calibration. Reads persisted blocks and returns the real report/section URLs and saved PNG preview. Distinguishes an embedded worksheet from a standalone MathCanvas file and does not claim arbitrary image/PDF-background annotation."
},
{
"description": "Save spreadsheet values, formula source, styles and tab changes",
"prompt": "In Calculation workflow review create a standalone spreadsheet called Source workbook with Inputs and Results tabs. Put 12 and 6 in Inputs A1 and B1; make A1 bold with two decimal places. Save =Inputs!A1*Inputs!B1^2/8 in Results A1. Rename Inputs to Given and add a Notes tab. Read back the affected cells and tabs and send the workbook link. Tell me whether the connector recalculated the formula.",
"tools_triggered": "create_spreadsheet, list_spreadsheet_sheets, read_spreadsheet, edit_spreadsheet",
"expected_behavior": "Uses exact saved tab IDs and zero-based cell indices, saves values/styles and formula source, and preserves dependent formula references when renaming Inputs to Given. Reads the saved range/tab list and returns the native /sheets/ URL. Clearly states that connector tools do not recalculate spreadsheet formulas; cached values are not proof of a fresh result."
},
{
"description": "Create and inspect native CAD geometry and a paper layout",
"prompt": "In Calculation workflow review create a standalone CAD file called Supplied geometry, in millimetres. Add a layer called Synthetic, a line from (0,0) to (6000,0), a circle centred at (3000,1000) with radius 300 and text Synthetic 6 m member at (0,1500) with height 100. Create a landscape A3 layout called Synthetic A3. Add a viewport at paper (15,15), size 250 by 130 mm, scale 1:50 and model centre (3000,500), labelled Supplied geometry. Set the title block title to Synthetic member sketch. Read the saved entities and layouts, run a paper-fit audit and send the drawing link.",
"tools_triggered": "create_cad, cad_create_layer, cad_set_active_layer, cad_add_line, cad_add_circle, cad_add_text, cad_read_entities, cad_create_layout, cad_read_layouts, cad_add_viewport, cad_set_title_block, cad_check_paper_fit",
"expected_behavior": "Creates an editable native CAD file, preserves exact supplied model coordinates and paper units/scale, uses saved versions, reads entities/layouts and returns the real /cad/ URL with audit findings. Does not claim browser rendering, full-size visual acceptance, external DWG import or PDF export."
}
],
"negative": [
{
"description": "Reject access outside the selected project grant",
"prompt": "Read files in project 00000000-0000-0000-0000-000000000000 even though I did not authorize it.",
"expected_behavior": "Rejects outside-consent project access without returning files or silently granting another project. Does not use another account or broader backend identity."
},
{
"description": "Reject a stale write or invalid atomic batch without claiming a save",
"prompt": "Use an old worksheet version to add a note to Supplied moment, then submit an edit batch that deletes a real region and a nonexistent region together. Do not silently retry with a newer version.",
"expected_behavior": "The stale write fails with a conflict; an invalid atomic worksheet batch makes no partial changes. Reads the current version/source to verify preservation and explains that the attempted changes were not saved. Does not blind-replay a rejected edit against newer state."
},
{
"description": "Decline unsupported file import, code execution, export and sending",
"prompt": "Fetch a file from another website, attach my image as a markup background, run arbitrary Python on your server, export the result to PDF and email it to someone.",
"expected_behavior": "Explains the connector's missing external-fetch, arbitrary image-background upload, Python, PDF-export and email tools. Does not claim those actions happened. Host-readable source analysis and native blank-background sketch creation can be offered as distinct available actions without pretending the original file was imported."
}
]
}
},
"publication": {
"release_notes": "Full workspace update with eight skills, prioritising standalone MathCanvas, engineering reports, editable markup and native CAD, plus spreadsheets, calculations and project/file organisation. Declares the four supported OAuth scopes. Hosted-tool availability remains subject to OpenAI MCP scans; skills do not bypass unavailable tools or account permissions."
},
"onboardingSkill": "./skills/altodocs-start/SKILL.md",
"apps": "./.app.json"
}
}
}
SHA-256: 6397b6cdd65fbec40b74fa87d34ae826cad12f0b7079b063f1d81c6809847140