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

Attitude Determination Triad

ASecurity

Use when the task is attitude determination from two vector measurements such as a sun sensor and magnetometer pair, coarse attitude estimation for initial acquisition, or computing the attitude quaternion and rotation angle that gate the ADCS attitude reference before fine pointing. Determine the spacecraft attitude matrix from a pair of non-parallel vector observations with the TRIAD algorithm: normalize the measured body frame directions and the matching reference frame directions, build t...

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

Works with

claude codeapi

Security Analysis

A100/100

Scanned 9/27/2026

Install to Claude Code

$npx -y skills add ashfordeOU/aero-agent-skills --skill attitude-determination-triad --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Attitude Determination Triad?

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

Security grade badge for Attitude Determination Triad
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/ashfordeou-attitude-determination-triad/badge)](https://www.skillsdirectory.com/skills/ashfordeou-attitude-determination-triad)

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

Download with Pro
Files
SKILL.md
---
name: attitude-determination-triad
description: "Use when the task is attitude determination from two vector measurements such as a sun sensor and magnetometer pair, coarse attitude estimation for initial acquisition, or computing the attitude quaternion and rotation angle that gate the ADCS attitude reference before fine pointing. Determine the spacecraft attitude matrix from a pair of non-parallel vector observations with the TRIAD algorithm: normalize the measured body frame directions and the matching reference frame directions, build the orthonormal triads from the cross products, assemble the 3 by 3 attitude matrix from the triad outer products, and validate the estimate with the rotation angle, the orthogonality error, and the inter observation angle consistency. Trigger: triad algorithm, attitude determination, vector observation, reference vector, body frame, attitude matrix, coarse attitude, sun sensor, magnetometer."
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: adcs
  tags: [triad-algorithm, triad-attitude-determination, vector-observation, reference-vector, attitude-matrix, coarse-attitude, sun-sensor-magnetometer, orthonormal-triad]
  version: 0.1.0
  author: Aero Agent Skills
---

# TRIAD Attitude Determination (space-systems/adcs/attitude-determination-triad)

Use when the task is spacecraft attitude determination from a pair
of vector observations: building the body and reference triads,
estimating the 3 by 3 attitude matrix, and validating the estimate
before it becomes the ADCS attitude reference.

## Domain quick reference

- TRIAD inputs: two non-parallel unit directions b1 and b2 measured
  in the body frame (for example a sun sensor and a magnetometer
  pair) and the same two directions r1 and r2 known in the
  reference frame (the Sun direction and the Earth field direction
  from an ephemeris or a field model).
- Orthonormal triad per frame: t1 = v1, t2 = normalize(v1 x v2),
  t3 = t1 x t2. The construction fails only when the two vectors
  are parallel or one of them is zero.
- Attitude matrix: A = B * R^T, with B and R the 3 by 3 matrices
  whose columns are the body and reference triad vectors. The
  matrix maps reference vectors into the body frame:
  v_body = A * v_ref.
- Rotation angle of the estimate:
  theta = acos((trace(A) - 1) / 2), in degrees at the API
  boundary.
- Validation: the orthogonality error, the largest element of
  A * A^T - I, must be near zero, and the angle between the two
  body observations must match the angle between the two reference
  vectors within tolerance.
- TRIAD is a deterministic two-observation estimate; it does not
  least-squares more than two vectors. Wahba solvers such as QUEST
  or the q-method generalize it to many observations. ECSS-E-ST-60
  frames attitude determination for European missions.

## Workflow

1. Collect the two measured directions in the body frame and the
   two known directions in the reference frame.
2. Check that neither pair is parallel and that the inter
   observation angle agrees across the frames with
   vector_angle_deg.
3. Build the body and reference triads with orthonormal_triad.
4. Assemble the attitude matrix with triad_matrix.
5. Read the rotation angle with rotation_angle_deg and the
   equivalent quaternion with triad_quaternion.
6. Validate with orthogonality_error and gate the ADCS attitude
   reference on the verdict.

## Pitfalls

- Feeding parallel observations: the cross product collapses and
  the triad is undefined, so the logic raises ValueError.
- Swapping the frames: the body vectors are the measured sensor
  directions and the reference vectors are the same directions
  computed in the inertial or orbit frame; swapping them
  transposes the estimate.
- Skipping the consistency check: when the angle between the body
  observations disagrees with the reference angle (noisy or
  mis-identified directions), the TRIAD estimate is meaningless.
- Forgetting that the inputs are directions: the triad construction
  normalizes internally, but the estimate is only as good as the
  unit-vector assumption.
- Confusing TRIAD with star identification: the star tracker leaf
  matches centroids to a catalog; TRIAD turns a matched pair of
  directions into an attitude.

## Behavior contract (gate 3)

The TRIAD matrix, validation, and quaternion logic is exercised by
the gate 3 contract test:
scripts/test_attitude_determination_triad.py against
scripts/attitude_determination_triad_logic.py (stdlib unittest,
offline). Run:
python3 scripts/test_attitude_determination_triad.py

## Compliance

- Standards referenced, not reproduced: ECSS-E-ST-60 text is
  copyright ESA; the TRIAD method is common attitude-determination
  knowledge published in the open literature, 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 →