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

E50 Erroneous Telecommand Rejection

ASecurity

Verify that an on-board telecommand chain rejects an erroneous command instead of executing it, per ECSS-E-ST-50C clause 5.4.3: recompute the check symbol rather than trusting the one that arrived, walk integrity, declared length, destination application, service support and parameter range in an order where a broken packet can never be blamed on a later field, and return the first failing check with an execution plan that is empty and a rejection report owed to the ground. Use when deciding ...

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

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 e50-erroneous-telecommand-rejection --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of E50 Erroneous Telecommand Rejection?

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

Security grade badge for E50 Erroneous Telecommand Rejection
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/ashfordeou-e50-erroneous-telecommand-rejection/badge)](https://www.skillsdirectory.com/skills/ashfordeou-e50-erroneous-telecommand-rejection)

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

Download with Pro
Files
SKILL.md
---
name: e50-erroneous-telecommand-rejection
description: "Verify that an on-board telecommand chain rejects an erroneous command instead of executing it, per ECSS-E-ST-50C clause 5.4.3: recompute the check symbol rather than trusting the one that arrived, walk integrity, declared length, destination application, service support and parameter range in an order where a broken packet can never be blamed on a later field, and return the first failing check with an execution plan that is empty and a rejection report owed to the ground. Use when deciding what an on-board acceptance chain does with a malformed uplink. Trigger: ecss, e-st-50c-communications-scope, erroneous-telecommand-rejection, telecommand-acceptance-check, telecommand-check-symbol, telecommand-parameter-range, partial-command-execution, telecommand-rejection-report."
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)"
clauses:
  - standard: ECSS-E-ST-50C Rev.2
    clause: 5.4.3
    items: [a]
    relation: verifies
metadata:
  domain: space-systems
  subdomain: ecss
  tags: [ecss, e-st-50c-communications-scope, e50-erroneous-telecommand-rejection, telecommand-acceptance-check, telecommand-check-symbol, telecommand-parameter-range, partial-command-execution, telecommand-rejection-report]
  version: 0.1.0
  author: Aero Agent Skills
---

# ECSS Communications — Erroneous Telecommand Rejection (space-systems/ecss/e50-erroneous-telecommand-rejection)

Use when the task is the single obligation of ECSS-E-ST-50C clause 5.4.3 —
that the chance an erroneous telecommand is accepted stays below one
hundredth divided by the number of commands the mission expects to send —
and the question is what the on-board acceptance chain must actually do with
a command that does not survive its checks.

## Domain quick reference

- Rejection is a decision about the whole command, taken before anything
  happens. A command that has begun to execute cannot be rejected any
  more; it can only be partly done, which is the state the requirement
  exists to prevent.
- The checks have an order and the order is part of the contract. A
  packet that failed integrity has no trustworthy fields left, so
  reporting an unknown destination on such a packet blames a field that
  was probably never sent that way.
- The check symbol has to be recomputed from the octets that arrived.
  Comparing the symbol in the packet against itself, or against a value
  carried alongside it, tests nothing; only the recomputation over the
  received body can detect the corruption.
- Declared length and received length are two statements of one fact and
  they can disagree. That disagreement is a rejection reason in its own
  right, independent of whether the payload would have parsed.
- An unknown destination and an unsupported service are different
  findings. The first says no such application exists on board; the
  second says it exists and does not do this. A chain that merges them
  sends the ground looking in the wrong place.
- A rejection that the ground never sees is indistinguishable from a
  command that vanished on the link. The report is not an optional extra
  on top of the rejection; it is how the rejection becomes useful.

## Workflow

1. Validate the received octets as octets before anything else, so a
   decoding defect is not mistaken for a content error.
2. Split the trailing check symbol from the body, recompute the symbol
   over the body as received, and compare. Stop here if it disagrees.
3. Compare the declared body size with the octets that actually arrived,
   and stop if the packet is not self-consistent.
4. Resolve the destination application, then the service and subservice
   pair inside it, reporting the two separately.
5. Range-check every parameter against its declared bounds, treating a
   parameter with no declared range as an offender rather than as
   unconstrained, and name each offender.
6. Return the first failing check as the reason, an empty execution plan
   whenever the command was rejected, and the fact that a rejection
   report is owed.
7. Beyond the single command, size the chain against the clause's own
   figure. Take the number of telecommands the mission expects to send
   to the spacecraft, divide one hundredth by it, and require the
   probability that an erroneous command is accepted to stay under the
   result. Report the margin alongside the uplink error rate and the
   check-symbol strength the figure rests on.

## Obligations

| Item | Step |
|---|---|
| ECSS-E-ST-50C Rev.2 5.4.3a | 7 |

## Pitfalls

- Validating the parameters first because that code was easiest to reach.
  On a corrupted packet the parameter values are noise, and the reason
  reported to the ground then points at a field the ground never wrote.
- Trusting the check symbol that arrived. It travelled over the same link
  as the body, and a chain that compares it with itself will accept a
  packet corrupted in transit.
- Beginning execution while the later checks still run. Even a single
  side effect makes the outcome a partial execution, which is worse than
  either accepting or rejecting the whole command.
- Treating a parameter with no declared range as acceptable. Silence in
  the database is not permission, and an out-of-range value in an
  undeclared field is exactly the case nobody tested.
- Reporting an unsupported service as an unknown destination. The two
  send an operator to different places, and merging them costs a pass
  while somebody looks for a unit that was there all along.
- Rejecting quietly. Without a report the ground sees only that nothing
  happened, and will retransmit the same erroneous command.

## Behavior contract (gate 3)

The octet validation, check symbol computation and splitting, integrity,
length, destination, service and parameter-range checks, the ordered
first-failure chain and the accept-or-reject assessment with its empty
execution plan are exercised by the gate 3 contract test:
scripts/test_e50_erroneous_telecommand_rejection.py against
scripts/e50_erroneous_telecommand_rejection_logic.py (stdlib unittest,
offline). Run:
python3 scripts/test_e50_erroneous_telecommand_rejection.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 →