Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsCommunityBlog
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Authors
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

ProTermsPrivacyRefunds
Back to skills

Model Geometry Checks

ASecurity

"Use when verify a finite element model geometry against ECSS-E-ST-32C

2 stars
0 votes
0 copies
0 views
Added 9/27/2026
ai-agentspythongonode

Works with

claude codecli

Security Analysis

A100/100

Scanned 9/27/2026

Install to Claude Code

$npx -y skills add ashfordeOU/aero-agent-skills --skill model-geometry-checks --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Model Geometry Checks?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Model Geometry Checks
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/ashfordeou-model-geometry-checks/badge)](https://www.skillsdirectory.com/skills/ashfordeou-model-geometry-checks)

More formats (shields.io, HTML) on the badges page.

Download with Pro
Files
SKILL.md
---
name: model-geometry-checks
description: "Use when verify a finite element model geometry against ECSS-E-ST-32C
  §5.2 requirements: confirm all node IDs are unique, no two nodes share coordinates
  within the mesh tolerance, no unreferenced free nodes exist, every element references
  valid node IDs, interface node sets from adjacent substructures coincide within
  the specified interface tolerance, and surface element normals are consistently
  oriented. Apply before any FEM analysis (structural static, modal, or thermoelastic)
  to confirm the mesh is geometrically sound. Flag each finding as a geometry defect
  category—duplicate node ID, coincident nodes, free node, broken connectivity,
  interface mismatch, or reversed normal—and report pass or fail per category.
  Trigger: ecss, e-st-32-structures-scope, fem-geometry, node-uniqueness,
  interface-consistency, surface-normals, mesh-quality, free-nodes."
license: Apache-2.0
compliance: STANDARDS-REF
standards:
  - id: ecss
    reference-only: true
gated: false
domain: space-systems
pack: space-systems
compatibility: "agentskills.io SKILL.md; any SKILL.md host (Claude Code, Hermes, OpenClaw)"
metadata:
  domain: space-systems
  subdomain: ecss
  tags: [ecss, e-st-32-structures-scope, fem-geometry, node-uniqueness, interface-consistency, surface-normals, mesh-quality, free-nodes]
  version: 0.1.0
  author: Aero Agent Skills
---

# ECSS Structures — FEM Model Geometry Checks (space-systems/ecss/model-geometry-checks)

Use when the task is verifying the geometric soundness of a finite element
model under ECSS-E-ST-32C §5.2 before any structural analysis run. The
checks cover node consistency, element connectivity, substructure interface
compatibility, and surface element normal orientation.

## Domain quick reference

- ECSS-E-ST-32C §5.2 requires geometry checks on the FEM before analysis.
  The intent is to detect mesh defects that would silently corrupt results
  rather than produce a solver error: coincident nodes, disconnected mesh
  regions, interface gaps, and flipped surface patches.
- **Node uniqueness and coordinate checks**: every node must carry a unique
  ID. Two nodes whose coordinates coincide within the mesh coordinate
  tolerance (typically 1 × 10⁻⁶ model units) are flagged as a coincident
  pair; most solvers merge or ignore one arbitrarily, producing an
  unintended shared degree of freedom.
- **Free-node check**: a node not referenced by any element carries no
  stiffness contribution but consumes a degree of freedom and can produce
  spurious zero-energy modes in modal analysis. Every node must appear in
  at least one element connectivity list.
- **Element connectivity validity**: an element referencing a node ID that
  does not exist in the node table is a broken connectivity entry. The
  solver cannot assemble the element stiffness matrix and will abort or
  silently omit the element.
- **Interface node matching**: at the boundary between two substructure
  meshes (component-to-component, submodel-to-global, or thermal-to-
  structural), the nodes on each side of the interface must coincide within
  the interface tolerance (typically 1 × 10⁻⁴ model units, coarser than
  the coordinate tolerance to accommodate mesh-generation rounding). A gap
  beyond the interface tolerance means the two meshes are not connected and
  loads will not transfer correctly.
- **Surface normal consistency**: adjacent surface elements sharing an edge
  must have compatible winding order so that their outward normals agree in
  direction. The check uses the shared-edge winding rule: if element A
  traverses the shared edge from node P to node Q, element B must traverse
  it from Q to P. Two adjacent elements traversing the same edge in the
  same direction have inconsistent (opposing) normals.

## Workflow

1. Collect the full node table. Check that all node IDs are unique; record
   each duplicate ID as a finding before proceeding.
2. For every pair of nodes, compute the Euclidean distance and compare it
   against the mesh coordinate tolerance. Record each pair whose distance
   falls below the tolerance as a coincident-node finding.
3. Build a set of all node IDs referenced by elements. Any node ID in the
   node table but absent from this set is a free node; record it.
4. For every element, verify that each of its connectivity node IDs exists
   in the node table. Record any reference to a non-existent node ID as a
   broken-connectivity finding under the element ID.
5. For each named interface, retrieve the node lists from both sides (A and
   B). For every node on side A, search side B for a node within the
   interface tolerance; record any unmatched node from either side.
6. For each connected surface patch, apply the shared-edge winding check:
   build a directed edge map (source node → destination node) as each
   element's edges are processed. If an incoming element's edge direction
   already exists in the map (same direction as a prior element), record an
   inconsistent-normal-orientation finding for that element and its
   conflicting neighbor.
7. Aggregate all findings per category. The model geometry passes only when
   every category returns an empty finding list.

## Pitfalls

- Applying a coordinate tolerance that is too tight (e.g., machine epsilon)
  causes floating-point noise from mesh generation to appear as coincident-
  node findings. Use a tolerance matched to the model's unit system and
  mesh density, typically 1 × 10⁻⁶ of the characteristic part dimension.
- Applying an interface tolerance that is too loose masks genuine mesh gaps
  where substructure meshes are physically separated. Interface tolerance
  should be at most one order of magnitude larger than the coordinate
  tolerance.
- A free node in the model interior is almost always a mesh stitching error
  at a component boundary or a leftover node from a geometry cleanup step.
  Do not suppress the finding — trace it to the originating geometry
  operation.
- Single isolated surface elements have no shared edges and therefore
  produce no winding findings. A disconnected patch of one element cannot
  be verified for orientation; check it against the global outward-normal
  direction manually.
- Coincident nodes across an interface are not the same as a matched
  interface: a coincident-node pair within the same substructure at an
  interface location is still a defect, even if the interface check passes.

## Behavior contract (gate 3)

The node-uniqueness, coincident-coordinate, free-node, element-
connectivity, interface-matching, and surface-winding logic is exercised by
the gate 3 contract test: scripts/test_model_geometry_checks.py against
scripts/model_geometry_checks_logic.py (stdlib unittest, offline). Run:

```
python3 scripts/test_model_geometry_checks.py
```

Expected output: `OK` with 15 or more tests passing.

## Compliance

- ECSS standards are freely downloadable (ESA); cite the source and
  paraphrase per standards-map.yaml.
- compliance: STANDARDS-REF, gated: false.
- Normative anchor: ECSS-E-ST-32C §5.2 (geometry checks).

Attribution

ashfordeOUashfordeOU
View sourceMore from ashfordeOU →
SSkills DirectorySkills Directory

Know which skills are safe — weekly.

Best new skills + every skill we flagged as malicious. From the team that scanned 103,619.

Join free

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Know which skills are safe — weekly.

Best new skills + every skill we flagged as malicious. From the team that scanned 103,619.

Join free

Related Skills

Caveman

Ultra-compressed communication mode that cuts output tokens while keeping technical accuracy. Levels: lite, full, ultra and the wenyan variants. Use for /caveman, "caveman mode", "talk like caveman", "be brief" or "less tokens".

1074701 votes

Hyperplan

Adversarial multi-agent planning skill. Self-orchestrates 5 hostile category members (unspecified-low, unspecified-high, deep, ultrabrain, artistry) via team-mode for ruthless cross-critique debate, distills only the defensible insights, then MANDATORILY hands the distilled insight bundle to the `plan` agent for executable plan formalization. Use when planning needs maximum rigor and surfacing of weak assumptions, blind spots, and over-engineering. Triggers: 'hyperplan', 'hpp', '/hyperplan', ...

694821 votes

Mcp Code Execution

Routes multi-tool workflows through MCP servers for large datasets and pipelines. Use when Bash tool overhead is limiting throughput on data-heavy tasks.

3351 votes

catchup

Recovers the conversation and failed tool calls of a previous Codex, Claude Code, Antigravity, Cline, Copilot CLI, Cursor, DeepSeek Harness, Kimi, OpenCode, Pi Agent, or ZCode session. Use when the user says "catch up", "what did the last session do", "get me up to speed", "I switched agents", asks to recover/summarize a previous session before continuing, or asks to diagnose or report a catchup failure. Do NOT use for the current conversation, git history, or any non-agent log.

691 votes

math-skill

A comprehensive mathematical reasoning skill for AI assistants — handles arithmetic to research-level problems with rigorous step-by-step reasoning, systematic verification, and transparent uncertainty handling

381 votes
View all in ai-agents →