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

Orbital Perturbations

ASecurity

Use when you must quantify the J2 secular perturbations of a circular Earth orbit: compute the RAAN drift rate and the argument-of-perigee drift from the mean motion, semimajor axis, and inclination, derive the nodal period change against the Keplerian period, and scale the perturbation magnitude with altitude from LEO to GEO. Produces drift rates in radians per second and degrees per day, the critical inclination, and the oblateness acceleration ratio. Trigger: orbital-perturbations, j2-noda...

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

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 orbital-perturbations --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Orbital Perturbations?

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

Security grade badge for Orbital Perturbations
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/ashfordeou-orbital-perturbations/badge)](https://www.skillsdirectory.com/skills/ashfordeou-orbital-perturbations)

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

Download with Pro
Files
SKILL.md
---
name: orbital-perturbations
description: "Use when you must quantify the J2 secular perturbations of a circular Earth orbit: compute the RAAN drift rate and the argument-of-perigee drift from the mean motion, semimajor axis, and inclination, derive the nodal period change against the Keplerian period, and scale the perturbation magnitude with altitude from LEO to GEO. Produces drift rates in radians per second and degrees per day, the critical inclination, and the oblateness acceleration ratio. Trigger: orbital-perturbations, j2-nodal-regression, raan-drift, argument-of-perigee-drift, secular-drift, nodal-precession, nodal period change, perigee drift."
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: orbit-mechanics
  tags: [orbital-perturbations, j2-nodal-regression, raan-drift, argument-of-perigee-drift, secular-drift, nodal-precession]
  version: 0.1.0
  author: Aero Agent Skills
---

# Orbital Perturbations (space-systems/orbit-mechanics/orbital-perturbations)

Use when the task is secular J2 perturbation analysis of an Earth
orbit: the RAAN drift rate, the argument-of-perigee drift, the nodal
period change, and how the perturbation magnitude falls with
altitude. All numbers below were verified by running
scripts/orbital_perturbations_logic.py and by a J2 numerical
propagation of the circular orbit.

## Domain quick reference

Constants: Re = 6371000 m, mu = 3.986004418e14 m^3/s^2,
J2 = 1.08262668e-3. Semimajor axis a = Re + altitude_km * 1000 (m),
mean motion n = sqrt(mu / a^3), Keplerian period T_K = 2 pi / n.

- RAAN drift rate: om_dot = -1.5 * n * J2 * (Re / a)^2 * cos(i)
  rad/s. At 500 km, i = 30 deg: -1.3403e-6 rad/s, which is
  -6.6352 deg/day. Zero at i = 90 deg, positive for retrograde
  orbits. At GEO (35786 km, i = 30 deg): -0.0116 deg/day, about
  572x smaller because the rate scales as a^-3.5.
- Argument-of-perigee drift: w_dot = 0.75 * n * J2 * (Re / a)^2 *
  (5 cos^2(i) - 1) rad/s. At 500 km, i = 30 deg: +2.1281e-6 rad/s,
  which is +10.5347 deg/day. The drift is zero at the critical
  inclination 63.435 deg, positive below it, negative between
  63.435 deg and 116.565 deg.
- Nodal period: T_n = 2 pi / (n + om_dot) s (the ground-track
  convention, consistent with the ground-track-repeat leaf). At
  500 km, i = 30 deg: T_K = 5668.14 s, T_n = 5675.01 s, so the
  nodal period change dT = T_n - T_K = +6.86 s (prograde orbits
  lengthen). At i = 90 deg, dT = 0; at i = 97.4 deg (sun-
  synchronous retrograde), dT = -1.02 s (shortens).
- Draconitic period (exact ascending-node crossing interval):
  T_d = 2 pi / (M_dot + w_dot), with M_dot = n + 0.75 * n * J2 *
  (Re / a)^2 * (3 cos^2(i) - 1). At 500 km, i = 30 deg: 5652.36 s
  (about 16 s shorter than T_K); at i = 90 deg: 5676.07 s (longer).
- Perturbation magnitude versus altitude: the J2 acceleration ratio
  to two-body is (3/2) * J2 * (Re / a)^2. At 500 km: 1.3962e-3; at
  GEO: 3.7077e-5, about 38x smaller. Drift rates fall even faster,
  as a^-3.5, so LEO-sized drift does not exist at GEO.

## Workflow

1. Take the altitude in km and the inclination in radians; compute
   a, n, and T_K with semimajor_axis, mean_motion, keplerian_period.
2. Compute the RAAN drift with raan_drift_rate and convert to
   degrees per day with rad_per_s_to_deg_per_day.
3. Compute the argument-of-perigee drift with arg_perigee_drift_rate
   and check the sign against the critical inclination
   (critical_inclination_rad).
4. Derive the nodal period and its change with nodal_period and
   nodal_period_change; use the draconitic period
   (draconitic_period) for the true node-crossing cadence.
5. Scale the perturbation with altitude using
   perturbation_magnitude_ratio; compare LEO and GEO magnitudes.
6. Pack the full solution with secular_drift_properties and report
   rates in degrees per day for mission planning.

## Pitfalls

- Confusing this leaf with sun-synchronous-inclination: that leaf
  solves for the inclination that makes the RAAN drift match the
  sun; this leaf takes the inclination as given and quantifies the
  drifts, periods, and magnitudes. Do not call the sun-synchronous
  solver when the task is drift rates for an arbitrary given orbit.
- Confusing this leaf with hohmann-transfer: a Hohmann transfer
  changes the orbit radius with two impulsive burns; perturbations
  drift the elements continuously with no propulsion. A perigee
  drift is not a perigee-raising burn.
- Forgetting the RAAN drift sign: negative for prograde (i < 90
  deg), zero at i = 90 deg, positive for retrograde; cos(i) flips
  the sign.
- Assuming the perigee always advances: w_dot is positive only
  below the critical inclination 63.435 deg, negative between
  63.435 deg and 116.565 deg, and positive again above.
- Using the Keplerian period for node-based cadence: the nodal
  period 2 pi / (n + om_dot) differs from T_K by about 7 s per
  orbit at 500 km, i = 30 deg, and the difference accumulates over
  a mission.
- Mixing the two period conventions: the nodal period 2 pi / (n +
  om_dot) (ground-track convention) is not the draconitic period
  2 pi / (M_dot + w_dot); they differ by about 23 s at 500 km,
  i = 30 deg.
- Expecting LEO-sized drift at high altitude: the magnitude ratio
  falls as (Re / a)^2 and the drift rates as a^-3.5; at GEO the
  RAAN drift is about 572x smaller than at 500 km.
- Feeding degrees into radian-based functions, or quoting rad/s
  rates as deg/day without conversion.

## Behavior contract (gate 3)

The RAAN drift, argument-of-perigee drift, nodal period change,
draconitic period, and magnitude logic is exercised by the gate 3
contract test: scripts/test_orbital_perturbations.py against
scripts/orbital_perturbations_logic.py (stdlib unittest, offline,
27 test methods). Run:
python3 scripts/test_orbital_perturbations.py

## Compliance

- Standards referenced, not reproduced: the ECSS series text is
  copyright ESA; the J2 secular rates and the draconitic period are
  common astrodynamics, summary-only per standards-map.yaml (ecss
  is a free ESA download).
- 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 →