{"id":51641610,"url":"https://github.com/test1card/femis-skill","last_synced_at":"2026-07-13T19:32:58.978Z","repository":{"id":368062400,"uuid":"1283371391","full_name":"test1card/femis-skill","owner":"test1card","description":"A Claude Agent Skill that turns an AI coding agent into a disciplined FEM/CAE analyst: governs engineering claims with execution-mode gates, GCI mesh-independence and V\u0026V across Ansys, Abaqus, Nastran, OpenFOAM, COMSOL. Governance layer, not a solver driver.","archived":false,"fork":false,"pushed_at":"2026-06-28T22:16:16.000Z","size":538,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-28T23:13:39.201Z","etag":null,"topics":["abaqus","agent-skill","ai-agent","ansys","cae","cfd","claude-skill","computational-mechanics","electromagnetics","fea","fem","finite-element-analysis","finite-element-method","mesh-convergence","nastran","openfoam","simulation","structural-analysis","thermal-analysis","verification-validation"],"latest_commit_sha":null,"homepage":"https://github.com/test1card/femis-skill","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/test1card.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":"NOTICE","maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-06-28T21:20:27.000Z","updated_at":"2026-06-28T22:37:38.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/test1card/femis-skill","commit_stats":null,"previous_names":["test1card/femis-skill"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/test1card/femis-skill","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/test1card%2Ffemis-skill","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/test1card%2Ffemis-skill/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/test1card%2Ffemis-skill/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/test1card%2Ffemis-skill/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/test1card","download_url":"https://codeload.github.com/test1card/femis-skill/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/test1card%2Ffemis-skill/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35434586,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-13T02:00:06.543Z","response_time":119,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["abaqus","agent-skill","ai-agent","ansys","cae","cfd","claude-skill","computational-mechanics","electromagnetics","fea","fem","finite-element-analysis","finite-element-method","mesh-convergence","nastran","openfoam","simulation","structural-analysis","thermal-analysis","verification-validation"],"created_at":"2026-07-13T19:32:58.516Z","updated_at":"2026-07-13T19:32:58.971Z","avatar_url":"https://github.com/test1card.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# FEMis — an Agent Skill for FEM/CAE (structural · thermal · CFD · EM · multiphysics, across many solvers)\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"assets/brand/femis-readme-hero.png\" alt=\"FEMis — FEM claim governance\" width=\"100%\"\u003e\n\u003c/p\u003e\n\n\u003e **FEMis** is an open-source, text-portable **Agent Skill** for **finite-element analysis (FEA / FEM) and CAE\n\u003e governance**: mesh-independence (GCI), verification \u0026 validation (V\u0026V), and a precise headless-vs-human automation\n\u003e contract across **Ansys, Abaqus, MSC / Simcenter Nastran, OpenFOAM, COMSOL, LS-DYNA, Simcenter and Thermal Desktop**.\n\u003e It is a **governance / decision layer, not a solver driver**. The entrypoint `SKILL.md` is plain instruction text and\n\u003e the calculators are dependency-free Python. It is tested primarily under **Claude Code** and **OpenAI Codex**; other\n\u003e agents can use it by loading the same text and scripts — see [Using with other agents](#using-with-other-agents).\n\n**The name.** *FEMis* = **FEM** (finite-element method) + **Themis** (Greek Θέμις), the goddess of justice who holds\nthe scales. Fitting for a skill that weighs the evidence before any engineering claim and refuses to let one cross\ninto **sign-off** without it.\n\n\u003c!-- Machine-readable skill metadata for AI agents and search engines. Canonical manifest: skills_index.json --\u003e\n```yaml\nname: femis\nkind: Agent Skill — CAE/FEM governance \u0026 V\u0026V layer (text-portable)\ntested_agents: [Claude Code, OpenAI Codex]\nportable_to: [opencode, Gemini CLI, GLM/Z.ai, Kimi, any LLM agent that loads instructions]\nentrypoint: SKILL.md\npurpose: Turn an AI coding agent into a disciplined FEM/CAE analyst that governs engineering claims.\nwhen_to_use:\n  - finite-element (FEM / FEA) and CAE analysis; element / solver / unit selection\n  - mesh-independence / Grid Convergence Index (GCI); verification \u0026 validation (V\u0026V) and UQ\n  - headless / batch solving; parsing .rst / .rth / .op2 / .f06 results\n  - deciding what an agent may run headless vs what a human must decide or sign off\nnot_for: [driving solvers (pair with an executor), pure CAD modeling, closed-form hand calcs]\npair_with: [PyMAPDL, PyMechanical, PyFluent, Abaqus, OpenFOAM, MSC/Simcenter Nastran, COMSOL, OASiS, CAE MCP]\nphysics: [structural, thermal, CFD, electromagnetics, vibro-acoustics/NVH, multibody, multiphysics, fracture, fatigue, composites, buckling, explicit-dynamics]\nmanifests: [skills_index.json, references_index.json, agents/openai.yaml]\nlicense: Apache-2.0\nrepo: https://github.com/test1card/femis-skill\n```\n\nAn open **Agent Skill** (`SKILL.md` + `references/` + `scripts/`) that turns an AI coding agent into a disciplined\nfinite-element analyst. It encodes the full CAE workflow — idealization → meshing → connections →\nsolve controls → convergence → mesh independence → V\u0026V — plus the **headless/batch automation and result-parsing\ngotchas** that usually cost hours to rediscover.\n\nFor the current verification boundary, see [`EVIDENCE.md`](EVIDENCE.md). It distinguishes tested calculators and\nmetadata checks from sourced guidance, partial provenance tags, live A/B evidence, and unproven executor integration.\nFor concrete behavior, see [`examples/`](examples/) for runnable GCI and units examples plus a single-mesh claim\nrefusal template.\n\nBeyond textbook methodology it adds two things. First, a precise **agent-headless-vs-human contract**: what an\nautomation agent may run unattended, and what a person still has to do in the GUI. Second, selected\nconfidence-tagged failure-mode recipes — for example, headless thermal-contact settings that pass the solve and\nreturn a wrong answer. Provenance tagging is currently partial, strongest in execution-sensitive automation\nrecipes; untagged reference guidance should be treated as source-backed notes, not author-executed evidence.\n\n**How it fits.** femis is the *methodology / decision layer*, not a solver driver. Pair it with an executor (PyMAPDL,\nPyMechanical, PyFluent, a driver skill, or an Ansys / Abaqus / OpenFOAM MCP server). femis governs that executor: it\nguides and audits the idealization, element, mesh, and connection choices, enforces the execution-mode gates and\nV\u0026V, and uses the headless-vs-human contract to separate what the executor may run unattended from what needs a\nperson. The judgment calls (load basis, contact type, defeature scope, allowables, sign-off) stay with a qualified\nengineer. It is the brain; the executor is the hands.\n\nIt covers **structural / mechanical, thermal, CFD/fluids, electromagnetics, vibro-acoustics/NVH, multibody,\ncoupled multiphysics, and the failure \u0026 durability disciplines** (fracture, fatigue, composites, buckling,\ncrash/explicit dynamics). The methodology is **solver-agnostic**; worked depth is in Ansys (Mechanical/MAPDL, Fluent,\nCFX), Siemens Simcenter (3D, Nastran, STAR-CCM+, TMG) and Ansys Thermal Desktop (SINDA/FLUINT), with breadth +\na cross-solver map for **Abaqus, LS-DYNA, MSC Nastran, COMSOL, OpenFOAM, SU2, CalculiX, Code_Aster** and more.\nIt also includes the **optimization / calibration / model-updating** layer (optiSLang, DesignXplorer,\nPyMAPDL+SciPy, HEEDS/SHERPA, Simcenter \u0026 TMG Correlation, Nastran SOL 200) incl. **transient T(t) curve\ncalibration**, a **V\u0026V/UQ** layer (ASME V\u0026V 10/20/40, NAFEMS), and — importantly — a precise\n**agent-can/can't + headless-vs-human contract** so it's unambiguous what an automation agent runs headless\nversus what a person must do in the GUI.\n\n## Why it exists\n\nMost FEA errors happen in pre-processing — wrong units, a mesh that's too coarse, the wrong contact, a missing\nconstraint — and the solver still reports success, so they slip through. FEMis makes the agent check the things that\ndecide whether a number is usable: it won't quote a stress from a single mesh, it converges the quantity of interest\ninstead of a singular peak, it checks equilibrium and energy balance, and it tags every run with an execution mode\n(SMOKE / DEBUG / ENGINEERING / SIGNOFF) that sets which checks are mandatory and what may be claimed. Before stating a\nnumber it runs a **pre-claim self-check** and writes the result with a **claim template**; for load case, allowable,\ncontact type, and sign-off it asks a human instead of guessing (`references/claim-templates.md`,\n`references/escalation-examples.md`). The eval set (`evals/prompts.json`) records the expected behavior; CI checks the\nset's structure — schema, valid modes, and that every referenced file exists — and `scripts/live_eval.py` runs a\nskill-on vs skill-off A/B to measure the actual change (`evals/RESULTS.md`).\n\n## What's inside\n\n```\nSKILL.md                 # the router: agent contract, execution modes, workflow, decision tables, V\u0026V, triage\nEVIDENCE.md              # what is verified, sourced, and not yet proven\nCHANGELOG.md             # release notes\nSECURITY.md              # private reporting guidance for unsafe automation/security issues\nCODE_OF_CONDUCT.md       # community conduct expectations\nREADME_ASSETS.md         # brand asset inventory and GitHub social-preview guidance\nassets/brand/            # README hero, logo, mark, and social-preview PNG assets\nreferences/\n  # — governance / claim discipline (the moat) —\n  claim-templates.md              # per-mode (SMOKE/DEBUG/ENGINEERING/SIGNOFF) result-phrasing templates + reusable contract phrases\n  escalation-examples.md          # worked refuse/escalate cases (contact type, single-mesh peak, calibration, sign-off, singularity, ...)\n  claims-validation.md            # sourcing map for router claims (claim -\u003e source -\u003e source-backed/qualified verdict)\n  provenance-coverage.md          # generated coverage table for confidence tags across references/*.md\n  # — core workflow —\n  meshing-convergence.md          # element tech, quality metrics, mesh independence (GCI/ZZ-SPR), p-/hp-refinement, DWR, singularities\n  material-modeling.md            # constitutive models (plasticity/creep/hyperelastic/composite/damage), data sources, calibration\n  solver-numerics.md              # equation/eigen solvers, nonlinear, time integration (implicit/explicit), parallelism, diagnostics\n  mechanical-connections.md       # contact types/formulations, mortar/Nitsche, RBE2 vs RBE3, bolts (VDI 2230)/welds (hot-spot)/joints\n  thermal-contact-resistance.md   # TCR/TCC physics, value tables, cryo, correlations\n  thermal-and-coupling.md         # transient thermal, radiation, phase change, spacecraft/vacuum, ECSS correlation, coupling\n  dynamics-nvh-acoustics.md       # modal/harmonic/random/shock, NVH, vibro-acoustics, rotordynamics, flutter\n  cfd.md                          # turbulence (+UQ), y+/near-wall, CFD meshing, discretization, multiphase, compressible, CHT/FSI\n  # — failure \u0026 durability disciplines —\n  fracture-mechanics.md           # LEFM/EPFM, K/J extraction, crack-tip mesh, contour-integral vs VCCT/XFEM/CZM/SMART, FCG\n  fatigue-durability.md           # S-N / ε-N, notch \u0026 mean-stress, rainflow/Miner, multiaxial critical-plane, spectral, TMF, FKM\n  composites-analysis.md          # progressive damage (Hashin/Puck/LaRC), crack-band regularization, delamination, sandwich, draping\n  plasticity-inelastic-assessment.md # shakedown/ratcheting/Bree, limit-load, ASME VIII-2 elastic-plastic, stress linearization, springback\n  buckling-stability.md           # LBA vs GNA-GNIA vs GMNIA, knockdown factors, imperfection seeding, post-buckling, stiffened panels\n  explicit-dynamics-impact.md     # when explicit, contact for explicit, erosion, hourglass, mass-scaling, Lagrangian/SPH/ALE/CEL, blast/drop/ballistic\n  # — additional physics —\n  electromagnetics.md             # CEM by frequency regime, FEM-vs-MoM/FDTD, edge elements, ports/radiation BCs, machines/antenna/RF\n  acoustics-fem.md                # duct acoustics, mufflers, absorption, infinite elements vs PML, acoustics-FEM mistakes\n  coupled-process-simulation.md   # battery/fuel-cell, additive manufacturing, welding, curing, molding, casting/forming process coupling\n  ml-surrogates-and-rom.md        # data-driven ROM (POD/DMD/operator-inference), GP/PCE/neural-operator/PINN surrogates, digital twins\n  # — overview, optimization, V\u0026V —\n  specialized-analyses.md         # overview/router to failure disciplines + submodeling, hyperelastic, cyclic symmetry, creep, DOE/topology\n  advanced-methods.md             # substructuring/CMS/ROM, multibody, optimization/topology, loads \u0026 BC catalog\n  optimization-calibration.md     # optimizer/calibration tool map (PyAEDT/OSS too); transient-T(t) calibration; objective gate\n  topology-optimization.md        # SIMP/RAMP density methods, filtering \u0026 min-length-scale, manufacturing/AM constraints, level-set/lattice\n  vv-uq.md                        # V\u0026V/UQ, credibility scales, ASME V\u0026V 10/20/40, ECSS, SPDM, Bayesian calibration, NAFEMS, governance\n  software-landscape.md           # popular CAE tools (+Physics-AI): use/license/headless/formats + which-tool-for-which-job\n  # — automation \u0026 platform —\n  agent-automation-boundary.md    # per-operation agent-headless vs human-GUI contract across every platform\n  platform-commands.md            # MAPDL / Mechanical / Nastran / NX-Open / OpenTD cheat-sheet\n  pymechanical-headless.md        # PyMechanical/Workbench headless gotchas\n  ansys-thermal-contact-pitfalls.md # headless fix for thermally-inert structural contacts (CONTA174 KEYOPT(1))\n  driving-live-sessions.md        # driving live solver sessions: inspect→step→re-inspect, debug-on-failure\n  comsol.md                       # COMSOL automation: JPype/Java API, .mph offline introspection, batch\nscripts/\n  gci.py                          # Grid Convergence Index (mesh/time-step independence) calculator\n  yplus.py                        # y+ first-cell-height estimator for wall-bounded CFD meshing\n  units_check.py                  # consistent-units + 1g mass sanity check (catches wrong-system density)\n  rainflow.py                     # ASTM E1049 rainflow cycle counting + Palmgren-Miner damage\n  mac.py                          # Modal Assurance Criterion + COMAC (auto/cross-MAC, complex modes, mode pairing)\n  hourglass_check.py              # explicit-dynamics energy-quality gate (hourglass % / energy balance / KE-IE)\n  provenance_coverage.py          # generate/check references/provenance-coverage.md\n  run_skill_evals.py              # validate the activation/behavior eval set + score live agent responses, including numeric checks when present\n  live_eval.py                    # optional live A/B harness (skill-on vs skill-off) — measures behavior change\n  run_manifest_template.json      # per-solve traceability manifest (NAFEMS R0033)\nexamples/\n  gci-known-values/               # runnable GCI example with checked numeric output\n  units-density-corruption/       # runnable density/unit-system warning example\n  single-mesh-claim-refusal/      # governance example for refusing a single-mesh peak claim\nevals/\n  prompts.json                    # 23 adversarial activation/behavior eval cases (expected refs, mode, refuse/claim/escalate; one numeric GCI case)\n  RESULTS.md                      # measured skill-on vs skill-off A/B results (live behavior-change evidence)\nskills_index.json                 # master machine-readable manifest (router, references, scripts, evals)\nreferences_index.json             # machine-readable index of references/ (file → title)\ntests/\n  test_examples.py                # keeps examples runnable and expected outputs synchronized\n  test_scripts.py                 # 59 pytest checks across the 6 calculator scripts (known-good values + error paths)\n  test_eval_scoring.py            # scorer regression tests, including numeric ground-truth matching\n  test_provenance_coverage.py     # keeps provenance coverage table generated from references/*.md\n  test_skill_metadata.py          # validates SKILL.md YAML frontmatter and required discovery metadata\n.github/workflows/\n  ci.yml                          # CI: pytest + script self-tests + eval-set validation + source-hygiene gate (placeholders/caches/links/banned-domains/TOCs), Python 3.10-3.13\n```\n\nProgressive disclosure: `SKILL.md` stays lean (a routing layer); the agent loads a `references/` file only when\nthat topic is in play.\n\nThe `scripts/` are covered by 59 calculator checks in `tests/test_scripts.py`, with additional checks for\nexamples, `SKILL.md` metadata, the eval scorer, and the provenance coverage table. CI runs the suite across Python\n3.10–3.13, so the runnable calculators, examples, skill entrypoint, eval harness, and evidence dashboard stay checked.\n\nCurrent evidence boundaries: pytest covers the calculators, metadata, and eval harness; it does **not** prove that\nevery governance instruction is followed by every agent. `evals/prompts.json` is mostly an activation/behavior suite;\nit now includes one numeric GCI ground-truth case, but it is not a full engineering benchmark set. `evals/RESULTS.md`\nis a single-family live A/B snapshot, not a portability certificate.\n\n## Recommended Agentic CAE Workflow\n\n`femis` is designed to sit at the top of an agentic CAE stack as the **governance layer**. It works best when\npaired with solver executors, geometry/mesh tools, and post-processing scripts.\n\nA robust workflow looks like this:\n\n1. **Intake / requirements** — define the objective, quantity of interest, load cases, constraints, materials,\n   environment, acceptance criteria, solver, and consequence level.\n   *Human-owned decisions:* load basis, allowables, design code, idealization, and sign-off authority.\n\n2. **Governance / claim discipline** — use `femis` to choose the execution mode (SMOKE, DEBUG, ENGINEERING,\n   SIGNOFF). The mode determines which gates are mandatory and what the agent may claim.\n\n3. **Geometry and meshing** — use the appropriate geometry/meshing tool (FreeCAD, Gmsh, PyPrimeMesh,\n   PyMechanical, or a commercial meshing API). `femis` governs mesh adequacy; it is not itself a mesher.\n\n4. **Solver execution** — pair with an executor that runs models, for example:\n   - [OASiS](https://github.com/Hereon-InstituteMS/OASiS)\n   - PyMAPDL / PyMechanical / PyFluent\n   - Abaqus Python or `noGUI`\n   - OpenFOAM scripts or MCPs\n   - COMSOL batch / API workflows\n   - Nastran + pyNastran\n   - PyAEDT for electromagnetics\n   - internal CAE driver skills or MCP servers\n\n   The executor runs the solve. `femis` governs the claim.\n\n5. **Verification** — run units, mass, reaction/balance, convergence, singularity, mesh/time-step, and\n   provenance checks. For sign-off-supporting claims, require GCI or an equivalent documented error bound.\n\n6. **Post-processing** — extract only the quantities of interest and evidence (`qoi.csv`, `checks.md`, plots,\n   convergence tables, `run_manifest.json`). Do not paste full solver logs into the agent context.\n\n7. **V\u0026V / credibility review** — state validation evidence, uncertainty, applicability limits, model-form\n   risk, and the weakest credibility factor.\n\n8. **Human sign-off** — the agent prepares the evidence package; a qualified engineer accepts or rejects the result.\n\nThis separation is intentional: solver executors run models; `femis` decides whether the resulting numbers\nare only SMOKE/DEBUG artifacts, usable ENGINEERING results, or sign-off-supporting evidence.\n\n### Pairing With OASiS\n\n[OASiS](https://github.com/Hereon-InstituteMS/OASiS) is a natural companion for open-source FEM execution.\nIt is an MCP server for multiple FEM backends; `femis` sits above that layer and governs claim quality,\nconvergence evidence, provenance, and human-judgment boundaries. **Use OASiS to execute; use `femis` to\ndecide what may be claimed** — one recommended executor, not a blessed default.\n\n## Install\n\nThis repository **is** the skill: `SKILL.md` lives at the repo root, with `references/` and `scripts/`\nbeside it. Install it by placing the repo contents into a directory named `femis` under a `skills/`\nfolder, so the path ends up `…/skills/femis/SKILL.md`.\n\n**Personal (all projects):** copy the repo contents into `~/.claude/skills/femis/` (macOS/Linux) or\n`%USERPROFILE%\\.claude\\skills\\femis\\` (Windows), with `SKILL.md` at that folder's root.\n\n**Project-scoped:** copy the repo contents into `./.claude/skills/femis/` (again with `SKILL.md` at\nthat folder's root).\n\n**Pin a version** for reproducibility — install from a known tag or commit so an analysis always runs\nagainst a fixed revision of the methodology (after cloning a published copy: `git -C \u003cskill-dir\u003e checkout \u003ctag-or-sha\u003e`).\n\nOr **clone it directly** into the skill path — note the repo is `femis-skill` but the skill folder is\n`femis`:\n\n```bash\n# personal (all projects)\ngit clone https://github.com/test1card/femis-skill ~/.claude/skills/femis\n# project-scoped\ngit clone https://github.com/test1card/femis-skill .claude/skills/femis\n```\n\nThen pin a revision for reproducibility: `git -C \u003cskill-dir\u003e checkout \u003ctag-or-sha\u003e`. See\n[`PRE-PUBLISH.md`](PRE-PUBLISH.md) for the publishing checklist (the repo must be created and pushed first).\n\nUnder Claude Code, the skill activates automatically when the agent's task matches the `description` in `SKILL.md` (e.g. \"run a\ntransient thermal solve\", \"calibrate a cooldown curve\", \"mesh-independence study\", \".rth parse\"). No manual\ninvocation needed.\n\n\u003e Layout note: a bare skill is just the `femis/` folder (with `SKILL.md` at its root) dropped into a\n\u003e `skills/` directory. To distribute it as an installable Claude Code **plugin** (`/plugin` + a marketplace\n\u003e listing), wrap it with a `.claude-plugin/plugin.json`.\n\n## Using with other agents\n\nFEMis is text-portable to any agent that can read instructions and (optionally) run Python, but live behavior has\nonly been exercised on a small set of hosts. Treat untested hosts as compatible in principle, not certified:\n\n- **`SKILL.md`** is the router / system prompt — plain Markdown. Prepend it to the system prompt or context of\n  **OpenAI Codex, opencode, Gemini CLI, GLM / Z.ai, Kimi, Cursor, Continue,** etc.\n- **`references/`** load on demand — have the agent open the file `SKILL.md` names for a topic; `references_index.json`\n  lists every file + title for programmatic lookup.\n- **`scripts/`** are dependency-free **Python 3.10+ stdlib** calculators (GCI, y+, units, rainflow, MAC/COMAC,\n  hourglass) — call them from any tool, no SDK required.\n- **`agents/openai.yaml`** mirrors the `SKILL.md` frontmatter for OpenAI Codex-style hosts; **`skills_index.json`**\n  is the canonical machine-readable manifest for discovery.\n\nThe Claude Code plugin packaging (`.claude-plugin/plugin.json`, `/plugin` install) is just one convenience\nwrapper — not a requirement.\n\n## Scope\n\n**Use for:** static / modal / buckling / nonlinear structural; steady \u0026 transient thermal \u0026 radiation; **CFD**\n(RANS/LES, conjugate heat transfer); **vibro-acoustics / NVH**; **electromagnetics** (machines, antenna/RF);\n**multibody**; coupled multiphysics (thermo-mechanical, FSI) and **coupled process simulation** (AM, welding,\ncuring, battery/fuel-cell); **failure \u0026 durability** (fracture, fatigue, composites, crash/explicit-dynamics);\ncontact \u0026 thermal contact resistance; bolted/welded/rigid connections; meshing \u0026 GCI; substructuring / ROM and\n**ML-surrogates / data-driven ROM / digital twins**; headless/batch solving and result parsing; optimization,\ncalibration / inverse parameter ID \u0026 model updating; V\u0026V/UQ; cryogenic / vacuum / spacecraft thermal.\n\n**Not for:** pure CAD modeling, or problems better served by a closed-form hand calc.\n\n## Provenance \u0026 honesty\n\nSome headless/automation recipes are tagged by confidence: `[AUTHOR-VERIFIED]` (run on a real model), `[DOCS-ONLY]`\n(from documentation, not executed here), `[VERIFIED-web]` / `[NEEDS-HW-TEST]` (vendor-documented; reproduce on\nyour licensed install before relying on it for ENGINEERING/SIGNOFF). Coverage is not yet uniform across the\nreference set; see `references/provenance-coverage.md`. Treat any non-`[AUTHOR-VERIFIED]` or untagged automation\nrecipe as a hypothesis and run a SMOKE reproducer first.\n\nThe short version is:\n\n| Layer | Current evidence |\n|---|---|\n| Helper scripts and small examples | Author-tested in CI with known values and error paths. |\n| Router claims | Source-backed in `references/claims-validation.md`; not an independent audit certificate. |\n| Reference corpus | Cited guidance with partial provenance tags; 7/33 files currently tagged. |\n| Agent behavior | One Claude-family live A/B snapshot plus structural eval cases. |\n| Executor pairing | Documented, but not yet demonstrated end-to-end in this repo. |\n\nFor the full boundary, see [`EVIDENCE.md`](EVIDENCE.md).\n\n## License\n\nApache-2.0 — see [LICENSE](LICENSE). Engineering values quoted are textbook orders-of-magnitude; verify against\nyour own materials and standards.\n\n## Contributing\n\nIssues and PRs welcome — especially additional `[AUTHOR-VERIFIED]` headless recipes and platform gotchas. Keep\n`SKILL.md` a lean router; put depth in `references/`. Follow the skill-authoring conventions in\nAnthropic's [Agent Skills best practices](https://platform.claude.com/docs/en/agents-and-tools/agent-skills/best-practices).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftest1card%2Ffemis-skill","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftest1card%2Ffemis-skill","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftest1card%2Ffemis-skill/lists"}