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

Laminate First Ply Failure

ASecurity

Use when you must compute the first-ply-failure load of a composite laminate: recover the mid-plane strains of a symmetric balanced laminate from its in-plane compliance under applied load resultants, transform the strains to each ply material axis, compute the per-ply Tsai-Wu failure index, and return the critical ply. Produces the mid-plane strains, the per-ply failure indices, the critical ply, the first-ply-failure load scale factor, the FPF load resultant, and the reserve factor. Trigger...

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

Works with

claude code

Security Analysis

A100/100

Scanned 9/27/2026

Install to Claude Code

$npx -y skills add ashfordeOU/aero-agent-skills --skill laminate-first-ply-failure --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Laminate First Ply Failure?

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

Security grade badge for Laminate First Ply Failure
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/ashfordeou-laminate-first-ply-failure/badge)](https://www.skillsdirectory.com/skills/ashfordeou-laminate-first-ply-failure)

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

Download with Pro
Files
SKILL.md
---
name: laminate-first-ply-failure
description: "Use when you must compute the first-ply-failure load of a composite laminate: recover the mid-plane strains of a symmetric balanced laminate from its in-plane compliance under applied load resultants, transform the strains to each ply material axis, compute the per-ply Tsai-Wu failure index, and return the critical ply. Produces the mid-plane strains, the per-ply failure indices, the critical ply, the first-ply-failure load scale factor, the FPF load resultant, and the reserve factor. Trigger: first-ply-failure load, first ply failure, critical ply, tsai-wu failure index, reserve factor, mid-plane strain recovery, in-plane load resultant, symmetric balanced laminate, quasi-isotropic laminate, laminate failure envelope, FPF load, per-ply failure index, composite laminate strength."
license: Apache-2.0
compliance: STANDARDS-REF
standards:
  - id: cmh-17
    reference-only: true
  - id: far-25
    reference-only: true
gated: false
domain: structures
pack: composites
compatibility: "agentskills.io SKILL.md; any SKILL.md host (Claude Code, Hermes, OpenClaw)"
metadata:
  domain: structures
  subdomain: composites
  tags: [laminate-first-ply-failure, tsai-wu-failure-index, first-ply-failure-load, critical-ply, reserve-factor, midplane-strain-recovery, laminate-failure-envelope]
  version: 0.1.0
  author: AeroSkills
---

# First-Ply-Failure of a Composite Laminate (structures/composites/laminate-first-ply-failure)

Use when the task is laminate-level first-ply-failure (FPF) strength:
finding the load at which the first ply of a symmetric balanced
composite laminate fails under in-plane load resultants. This leaf
implements the strength chain in pure Python, stdlib only: mid-plane
strain recovery from the A-matrix inverse compliance, per-ply strain
transformation to the material axes, per-ply stress recovery with the
material 2D stiffness, the Tsai-Wu failure index in every ply, and the
FPF load scale factor k* = 1 / max(FI) with the critical ply and the
reserve factor. It pairs with structures/composites/laminate-stiffness,
which assembles the stiffness this leaf inverts, and
structures/composites/failure-criteria, which owns the lamina-level
index formula for user-supplied stresses.

## Domain quick reference

- Loads: in-plane resultants {Nx, Ny, Nxy} in N/mm act on the laminate;
  the leaf works in units of N/mm, MPa and dimensionless strain.
- Mid-plane strains: {ex, ey, gxy} = [A]^-1 {N}. A balanced symmetric
  laminate decouples shear, so ex = a11 Nx + a12 Ny, ey = a12 Nx +
  a22 Ny and gxy = a66 Nxy, where a_ij are the A-inverse compliance
  entries in mm/N.
- Ply k at angle theta: material-axis strains {e1, e2, g12} come from
  the rotation e1 = ex c^2 + ey s^2 + gxy c s, e2 = ex s^2 + ey c^2 -
  gxy c s, g12 = 2 (ey - ex) c s + gxy (c^2 - s^2), with c = cos(theta),
  s = sin(theta).
- Material-axis stresses: {s1, s2, t12} = [Q] {e1, e2, g12} with the
  plane-stress stiffness q11 = E1/(1 - nu12 nu21), q22 = E2/(1 - nu12
  nu21), q12 = nu12 E2/(1 - nu12 nu21), q66 = G12 and nu21 = nu12 E2/E1.
- Tsai-Wu index: FI = F1 s1 + F2 s2 + F11 s1^2 + F22 s2^2 + F66 t12^2 +
  2 F12 s1 s2 with F1 = 1/Xt - 1/Xc, F2 = 1/Yt - 1/Yc, F11 = 1/(Xt Xc),
  F22 = 1/(Yt Yc), F66 = 1/S^2 and F12 = -0.5 sqrt(F11 F22). FI >= 1.0
  marks ply failure.
- First ply failure: the ply with the largest index is critical; the
  FPF scale factor is k* = 1 / max(FI) and the FPF load resultant for
  the uniaxial case is k* Nx, with the reserve factor equal to k*. The
  index is quadratic in stress, so k* = 1 / FI is a linearized reserve
  factor; it is exact at the failure boundary itself and is the
  convention of this leaf.
- CMH-17 frames the ply allowables and lamina data context; the
  relations above are standard mechanics, summary-only.

## Workflow

1. Fix the material: engineering constants E1, E2, nu12, G12 and the
   allowables Xt, Xc, Yt, Yc, S in MPa (q_matrix_from_constants builds
   [Q] without importing the laminate-stiffness module).
2. Get the laminate in-plane compliance: assemble the A block with
   a_matrix_from_plies (angles in degrees, ply thickness in mm) and
   invert it with a_inverse_compliance into (a11, a12, a22, a66); or
   take the compliance directly from the laminate-stiffness leaf.
3. Recover the mid-plane strains with midplane_strains from the applied
   resultants (Nx, Ny, Nxy in N/mm).
4. Per ply, transform the strains with ply_material_strains and recover
   the material stresses with ply_material_stresses; ply_failure_indices
   runs the whole per-ply loop and returns the index list in ply order.
5. Evaluate the laminate: first_ply_failure returns the dict with
   max_fi, critical_ply_index, critical_ply_deg, fpf_scale_k,
   fpf_load_nx and reserve_factor (first_ply_failure_load is an alias).
6. Confirm the deterministic checks with the contract test
   scripts/test_laminate_first_ply_failure.py.

## Worked example

T300/5208: E1 = 181 GPa, E2 = 10.3 GPa, G12 = 7.17 GPa, nu12 = 0.28;
Xt = Xc = 1500 MPa, Yt = 40 MPa, Yc = 246 MPa, S = 68 MPa. Laminate
[0/90/45/-45]s, ply thickness 0.125 mm (8 plies), Nx = 100 N/mm. Real
module outputs:

- Material stiffness: q11 = 181811.1 MPa, q12 = 2896.9 MPa,
  q22 = 10346.2 MPa, q66 = 7170.0 MPa.
- Laminate A block: A11 = A22 = 76368.2 N/mm, A12 = 22607.4 N/mm,
  A66 = 26880.4 N/mm; compliance a11 = a22 = 1.4352e-5 mm/N,
  a12 = -4.2487e-6 mm/N, a66 = 3.7202e-5 mm/N.
- Mid-plane strains: ex = 1.4352e-3, ey = -4.2487e-4, gxy = 0
  (uniaxial load on a balanced symmetric laminate).
- Per-ply failure indices: [0.0254, 0.3130, 0.1827, 0.1827, 0.1827,
  0.1827, 0.3130, 0.0254]; the 90-degree plies are critical. The
  90-degree transverse stress s2 = 13.62 MPa dominates its index through
  the F2 linear term; the 0-degree fiber stress s1 = 259.7 MPa stays far
  below Xt.
- FPF summary: max_fi = 0.313007, critical_ply_index = 1 (90 degrees),
  fpf_scale_k = 3.1948, FPF load Nx = 319.5 N/mm, reserve factor 3.195.


## Pitfalls

- Forgetting the failure index is quadratic: FI is a sum of linear
  and quadratic stress terms, so the scale factor k* = 1 / max(FI) is
  a linearized reserve factor - exact at the failure boundary, and an
  approximation away from it.
- Reading the critical ply off the wrong stress: in the worked
  [0/90/45/-45]s case the 90-degree ply is critical through its
  transverse stress s2 (13.62 MPa against Yt = 40 MPa), not the
  0-degree fiber stress (259.7 MPa against 1500 MPa); the largest
  stress is not the failing one.
- Feeding unbalanced or unsymmetric resultants: the strain recovery
  ex = a11 Nx + a12 Ny, ey = a12 Nx + a22 Ny, gxy = a66 Nxy assumes a
  balanced symmetric laminate; coupling terms outside that model
  need the full laminate-stiffness ABD treatment.
- Swapping units between resultants and stiffness: loads are in
  N/mm and moduli in MPa, with ply thickness in mm; the A-matrix
  entries come out in N/mm and the compliance in mm/N, so mixing SI
  meters into the stack breaks the strain scale.
- Using a singular Poisson product: nu12 * nu21 >= 1 makes the
  plane-stress denominator invalid and raises ValueError; the nu21 =
  nu12 E2/E1 consistency must hold for the material input.
- Treating FPF as ultimate laminate failure: first-ply failure is
  the first ply event under the Tsai-Wu convention; post-FPF load
  redistribution and delamination growth are different leaves.
## Verification

- Confirm first_ply_failure on the worked laminate returns max_fi about
  0.3130 with the critical ply at 90 degrees and FPF Nx about 319.5 N/mm.
- Unidirectional identity: a [0]8 laminate under Nx fails in the fiber
  direction; with sigma1 = Nx/t and Xt = Xc the index is (sigma1/Xt)^2,
  so at sigma1 = Xt the index is 1.0 and k* = Xt/sigma1 = 1. The 0-ply
  stress recovered from the strain equals E1 ex exactly.
- Mirror symmetry: reversing the ply list order leaves the A block and
  the FPF result unchanged for the same set of ply angles.
- Determinism: identical inputs give bit-identical floats run to run.
- ValueError rejection of non-physical inputs: non-positive allowables,
  non-positive engineering constants, a singular Poisson product, empty
  ply lists, non-positive ply thickness, and non-positive diagonal
  compliance terms all raise.
- Run the contract test offline: python3
  scripts/test_laminate_first_ply_failure.py (34 tests, deterministic).

## Related leaves

- structures/composites/laminate-stiffness: ABD assembly, the strain
  recovery start point.
- structures/composites/failure-criteria: lamina-level index from given
  stresses.
- structures/composites/laminate-hygrothermal-response: thermal and
  moisture strain response before the mechanical load step.
- structures/composites/delamination-growth: energy-based growth, not
  stress-based ply failure.

## Behavior contract (gate 3)

Run the deterministic contract test (stdlib unittest, offline):

    python3 scripts/test_laminate_first_ply_failure.py

The test covers the T300/5208 worked example (A block about
76368/22607/26880 N/mm, ex about 1.435e-3, ey about -4.25e-4, max
Tsai-Wu index about 0.3130 in the 90-degree ply, FPF load about
319.5 N/mm, reserve factor about 3.195), the [Q] builder from
engineering constants including its isotropic reduction, the [0]8
unidirectional closed forms (fiber-direction failure at sigma1 = Xt and
the quadratic index scaling), the stress-strain round trip, mirror
symmetry under reversed ply order, determinism, the exact result-dict
keys, and ValueError rejection of non-physical inputs.

## Compliance

- Standards referenced, not reproduced: CMH-17 (Composite Materials
  Handbook, SAE) and FAR-25 (14 CFR Part 25) frame the ply data and
  airframe certification context; the lamination-theory relations are
  common mechanics, summary-only per standards-map.yaml.
- compliance: STANDARDS-REF, gated: false.

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 →