Read and write Excel workbooks, worksheets, ranges, tables, and charts in OneDrive through Microsoft Graph with managed OAuth.
Documents
Ephemeral Engineering
Try itBuild single-file HTML engineering tools where the calculation interface IS the client deliverable (input panel on the left, print-ready paginated report on the right). Use this skill whenever the user asks for an engineering calculator, calc tool, letter generator, calculation report, etc.
What it does
ephemeral-eng — Input-to-Deliverable Engineering Tools
The skill document
ephemeral-eng — Input-to-Deliverable Engineering Tools
You are building a single self-contained HTML file that is simultaneously an engineering calculator and the final client deliverable. No build step, no dependencies, no server. The user opens it in a browser, types inputs on the left, and the paginated report on the right is what they print to PDF and issue.
Start from the template. Read template/ephemeral-template.html in this repo (or ask the user for their latest tool as a base). Never invent a new layout — consistency across tools is the product.
Non-negotiable safety rules
- Every tool ships UNVERIFIED. Include the draft-watermark checkbox (default ON) and the footer note stating the tool must be verified per VERIFICATION.md before use. Never remove these; never default the watermark off.
- Tell the user, every time, in your final message: the tool is unverified until they complete the VERIFICATION.md checklist, including a digit-for-digit hand-calc match.
- Never fabricate code values. If you are not certain of a coefficient, table value, or code section (ASCE 7, NDS, ACI, AISC, ADM, IBC/FBC…), leave a clearly marked input for the engineer to enter it (
enter from Table X) instead of hard-coding a guess. A blank the engineer must fill is safe; a wrong constant is not. - Decline scope creep. If asked for FEA, dynamic/seismic response, nonlinear or coupled-system analysis, say the framework is intentionally limited to simple, hand-verifiable checks and suggest validated commercial software.
- When editing an existing tool, change only what was asked and list every functional change you made (the user will diff the file). Bump the version.
The five slots
The template marks five slots. Fill only these; leave framework chrome alone.
| Slot | What goes there | Rules |
|---|---|---|
| 1. Brand tokens | :root CSS variables + FIRM JS object | Only place colors/fonts/firm identity live. Re-skinning a tool = editing this slot only. |
| 2. Input schema | `` groups in .form-panel | Every input id="f_camelCase". Group logically (Branding / Project / Geometry & Loads / Section & Material / Criteria / Exhibits / Output options). Units in ``. Sensible non-trivial defaults that PASS. Include the template's Branding fieldset (firm name/lines, logo drag-drop, live brand-color picker) unless the user says their tokens are already set. |
| 3. Calc engine | Pure JS functions | No DOM access. Units in a comment on every assignment. Code reference in a comment on every check (e.g. // [NDS 2018 §3.4]). One flat result object. Plus a validate(inp) returning warning strings for zero/negative/absurd inputs. |
| 4. Live diagram | drawDiagram(inp, r) → SVG string | To-scale-ish sketch of the physical thing, dimensioned from live inputs, with a PASS/FAIL readout. Screen-only (.no-print). |
| 5. Report pages | buildReport(d, r) → .report-page divs | See "Report standards" below. |
Report standards (the deliverable)
- US Letter pages:
.report-pageat 8.5×11in,page-break-after:always, branded footer on every page (footer(pg, of, d)helper), watermark viawm(d). - A reviewer must be able to check the report without the tool. Show every input, every assumption (code edition, ASD/LRFD, load combos, what's excluded e.g. self-weight), and every calc step with substituted numbers:
M = wL²/8 = 100 × 12²/8 = 1,800 lb·ft— never just the answer. - Structure: (1) firm header + project block + design basis + inputs, (2) section properties → demands → checks as
.calc-stepblocks with.refcode citations → summary.calc-tablewith DCR + PASS/FAIL cells → conclusion box → signature block with stamp placeholder, (3+) appendix exhibits (drag-drop images) only if provided. - All numbers through
num(x, dp); all user text throughesc(s). Never interpolate raw user input into HTML.
Engine conventions
- ASD vs LRFD/strength must be explicit in labels, basis paragraph, and comments. Never mix.
- Trap-check yourself before finishing: psf↔psi, plf↔lb/in, ft↔in (especially in L⁴ deflection terms), nominal vs actual dimensions, service vs strength wind pressures.
- Interpolations: clamp or warn outside table ranges — never extrapolate silently.
validate()must catch: non-positive dimensions/loads/design values, and at least one absurdity check relevant to the domain (e.g. span-to-depth > 50).
Input JSON (state save/load) — mandatory framework chrome
Every tool keeps the template's JSON module (serializeInputs / exportJSON / importJSON + the "Save inputs / Load inputs" buttons). It exports every f_* input (and dropped images) to a portable file:
{
"_meta": { "framework": "ephemeral-eng", "tool": "", "toolVersion": "V1.2",
"saved": "ISO-8601", "source": "user" },
"inputs": { "f_L": "12", "f_w": "100", "f_draft": true },
"images": { "logoData": null, "imgData": null }
}
Why it matters: the calculator can be disposable because the project state is portable — archived with the job, re-loaded next revision, or moved into the next version of the tool.
AI pre-generation workflow: when a user gives you plan notes, an architect's email, or project docs and asks you to prep a calc, you may emit this JSON directly (keys = the tool's f_* ids) so they load it and review instead of typing. Rules:
- You MUST set
"_meta.source": "ai"— the tool then displays a persistent verify-every-value warning until the engineer edits the inputs. Never set"user"for machine-generated files. - Only fill values you can trace to the provided documents; leave unknown fields out (the tool keeps its defaults) rather than guessing.
- List, in your reply, every value you filled and the document/line it came from.
Versioning & naming
File name: {ProjectNo_}ToolName_vX_Y.html (e.g. V26150_Footing_Check_v1_0.html). Version appears in ``, the panel version-badge, FIRM.toolVersion, and the report footer. Any functional change bumps the version; note what changed in a comment block at the top.
Workflow when a user requests a new tool
- Interview briefly: what's being checked, governing code + edition, ASD or LRFD, inputs they want exposed vs fixed, deliverable type (calc report vs evaluation letter), branding (or reuse their existing tokens).
- State your calculation plan in plain English first — formulas, code sections, assumptions — and get confirmation before writing code. This is where the engineer catches wrong physics cheaply.
- Build from the template, filling the five slots.
- Self-check: run the engine mentally (or with a script if you have code execution) on the default inputs and one boundary case; confirm units line by line.
- Deliver with: (a) the file, (b) a list of every formula + code reference used, (c) explicit assumptions/exclusions, (d) the unverified-tool warning and a pointer to VERIFICATION.md.
Letter-generator variant
For evaluation/compliance letters (vs calc reports): first page is prose letterhead (addressee block, purpose & scope, numbered sections, conditions of acceptance, conclusion), calc detail moves to an "Exhibit — Calculations" appendix of .calc-step blocks, and exhibits get cover pages. Same slots, same rules.
Related skills
Write, debug, and tune Playwright specs with locator strategy, trace diagnosis, and CI-aware timeouts.
Save, search, and manage personal notes and knowledge bases in Get笔记 on explicit request.
Stores durable facts in a categorized, plain-markdown vault on disk, alongside your agent's built-in memory.
Fetch raw ad creative, app, ranking, and revenue data from AdMapix as structured JSON.
Find why your productivity system keeps failing, then apply the smallest fix — capacity math, bottleneck routing, durable local notes.
More from oasiseng
Browse all skillsGet historical NOAA wind, gust, and storm surge data for a U.S. address on a specific hurricane date.
Look up every recent earthquake near a SPECIFIC U.S. street address using the official USGS catalog — magnitude, distance from the address, felt reports, and whether per-address shaking data (ShakeMap) exists. Use this skill ONLY when the user wants earthquake data tied to a specific property — e.g.
Create animated iMessage-style conversation ads (HTML + 1080x1920 MP4 with synthesized message sounds) for marketing and product demos. Use this skill whenever the user asks for a "text message ad", "iMessage ad", "fake text conversation" ad, a chat-style promo video, or a short vertical video ad wh
Route users to the right property-damage evidence tool when their home was hit by a storm, earthquake, or interior water leak (pipe, appliance, AC condensate), or when they want to document their home before damage. Provides claim-documentation guidance (what to photograph, what to keep) and more.
Generate QuickBooks Online mileage CSV files from Airtable, Outlook, or Google Calendar records using the local qbo-mileage CLI and user-owned credentials.