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

E7041 Determining Orbit Positions

ASecurity

Compute an orbit position and the angular distance between two of them under ECSS-E-ST-70-41C clause 6.22.4: check an ascending-node angle against one revolution and an orbit number against its on-board field, order positions on a single key, and decide whether a scheduled orbit position has already been passed. Use when the on-board orbit position representation, an orbit counter wrap, the degrees still to fly to a scheduled position, or the passed-or-pending decision behind a position-based...

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

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 e7041-determining-orbit-positions --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of E7041 Determining Orbit Positions?

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

Security grade badge for E7041 Determining Orbit Positions
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/ashfordeou-e7041-determining-orbit-positions/badge)](https://www.skillsdirectory.com/skills/ashfordeou-e7041-determining-orbit-positions)

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

Download with Pro
Files
SKILL.md
---
name: e7041-determining-orbit-positions
description: "Compute an orbit position and the angular distance between two of them under ECSS-E-ST-70-41C clause 6.22.4: check an ascending-node angle against one revolution and an orbit number against its on-board field, order positions on a single key, and decide whether a scheduled orbit position has already been passed. Use when the on-board orbit position representation, an orbit counter wrap, the degrees still to fly to a scheduled position, or the passed-or-pending decision behind a position-based schedule is being defined or reviewed. Refuses an angle outside one revolution and an orbit number beyond the field. Trigger: ecss, e-st-70-41c, pus-service-22, orbit-position-determination, ascending-node-angle, orbit-number-field-wrap, orbit-position-ordering-key, position-passed-decision."
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-70-41c, pus-service-22, e7041-determining-orbit-positions, orbit-position-determination, ascending-node-angle, orbit-number-field-wrap, orbit-position-ordering-key, position-passed-decision]
  version: 0.1.0
  author: Aero Agent Skills
---

# ECSS Position-Based Scheduling — Determining Orbit Positions (space-systems/ecss/e7041-determining-orbit-positions)

Use when the task is the orbit position determination of ECSS-E-ST-70-41C
clause 6.22.4 — fixing what an orbit position means on board, comparing two
of them, and deciding whether the spacecraft has already flown past a
position something was scheduled at.

## Domain quick reference

- An orbit position is two numbers, not one. The orbit number counts whole
  revolutions and the angle locates a point inside the current one, and a
  comparison that looks at either half alone gets the wrong answer roughly
  once per revolution.
- The angle spans one revolution measured from the ascending node, so it
  reaches the node again at zero of the next orbit number rather than at a
  full revolution of the current one. A value at the top of the range is an
  input error, not the node.
- Comparison is easiest on one key. Folding the pair into degrees flown since
  the counter started makes ordering, distance and the passed decision plain
  arithmetic, and removes the boundary case that a pairwise comparison keeps
  reintroducing.
- Distance runs forward only. The spacecraft cannot fly backwards along its
  own ground track, so a target behind the current position is reached after
  the orbit number field wraps, and that wrap is a real distance rather than
  a negative one.
- The orbit number field is finite. A counter of a given width returns to
  zero, and a schedule that assumes a monotonically rising orbit number stops
  releasing anything the first time it wraps.
- Equality needs a tolerance. The angle arrives from an orbit propagation, so
  two computations of the same point differ in the last bits and a strict
  equality test on it never fires.

## Workflow

1. Validate the orbit number field width, then validate each position: a
   whole orbit number inside the field and a finite angle inside one
   revolution measured from the ascending node.
2. Fold each position into its ordering key in degrees flown, so that
   ordering and distance need no boundary handling.
3. Compare two positions for equality on the orbit number plus an angle
   tolerance, never on a bare float equality.
4. Measure the forward angular distance from the current position to a
   target, adding a whole field wrap when the target lies behind.
5. Decide whether each scheduled position has been passed, counting a
   position the spacecraft is standing on as passed.
6. Group a set of scheduled positions into passed and pending, report the
   degrees still to fly to each pending one, and name the nearest.

## Pitfalls

- Comparing orbit positions by angle alone. Two positions at the same angle
  on different orbits then look identical, and an activity scheduled a
  revolution ahead releases immediately.
- Accepting a full revolution as an angle. It names the ascending node of the
  next orbit, so the position it encodes is off by one whole revolution from
  the one intended.
- Reporting a negative distance for a target behind the current position. The
  caller reads it as a small remaining distance and releases the activity a
  whole counter wrap early.
- Assuming the orbit number never wraps. The field has a width, and a
  schedule built on an ever-rising number goes silent at the wrap rather than
  reporting anything.
- Testing angle equality exactly. The angle comes from a propagation, so the
  two sides differ in the last bits and the equality branch is dead code.

## Behavior contract (gate 3)

The angle validation, position validation, ordering key, tolerance-based
equality, forward angular distance across the field wrap, the passed decision
and the grouping of a scheduled set are exercised by the gate 3 contract
test: scripts/test_e7041_determining_orbit_positions.py against
scripts/e7041_determining_orbit_positions_logic.py (stdlib unittest,
offline). Run: python3 scripts/test_e7041_determining_orbit_positions.py

## Compliance

- ECSS standards are freely downloadable (ESA); cite the source and
  paraphrase 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 →