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 Communicating Parameters

ASecurity

Validate the parameter interface an on-board control procedure exchanges with the OBCP engine that hosts it, under ECSS-E-ST-70-41C clause 6.18.4.7. Use when an activation is rejected for an argument the ground believes it supplied, or when a procedure runs on a value nobody gave it: binding supplied arguments to declared parameters by name, refusing an undeclared name instead of dropping it, filling an omitted optional input from its declared default, refusing an omitted mandatory one, type-...

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

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-communicating-parameters --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of E7041 Communicating Parameters?

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

Security grade badge for E7041 Communicating Parameters
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/ashfordeou-e7041-communicating-parameters/badge)](https://www.skillsdirectory.com/skills/ashfordeou-e7041-communicating-parameters)

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

Download with Pro
Files
SKILL.md
---
name: e7041-communicating-parameters
description: "Validate the parameter interface an on-board control procedure exchanges with the OBCP engine that hosts it, under ECSS-E-ST-70-41C clause 6.18.4.7. Use when an activation is rejected for an argument the ground believes it supplied, or when a procedure runs on a value nobody gave it: binding supplied arguments to declared parameters by name, refusing an undeclared name instead of dropping it, filling an omitted optional input from its declared default, refusing an omitted mandatory one, type- and range-checking every bound value, blocking a write to an input-only parameter, and listing the outputs the engine must keep observable while the run is in progress. Trigger: ecss, e-st-70-41c, obcp-parameter-communication, obcp-activation-argument-binding, obcp-input-only-parameter-write, obcp-observable-output-parameter, obcp-parameter-default-substitution, obcp-undeclared-activation-argument."
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-41-packet-utilisation-scope, e7041-communicating-parameters, obcp-parameter-communication, obcp-activation-argument-binding, obcp-input-only-parameter-write, obcp-observable-output-parameter, obcp-parameter-default-substitution]
  version: 0.1.0
  author: Aero Agent Skills
---

# ECSS Packet Utilisation — Communicating Parameters with an OBCP (space-systems/ecss/e7041-communicating-parameters)

Use when the task is the parameter communication of ECSS-E-ST-70-41C
clause 6.18.4.7 -- the six requirements that fix how an on-board
control procedure and the engine hosting it hand values to each other,
and what the ground is allowed to see while a procedure runs.

## Domain quick reference

- The interface is declared before anyone activates anything. A
  procedure states each parameter it communicates: a name, a
  direction, a type, and for an input a range and optionally a
  default. An activation cannot introduce a parameter the procedure
  never declared, and the engine is not permitted to guess one.
- Binding is by name, never by position. An activation supplies a
  mapping of names to values, so reordering the arguments changes
  nothing and a renamed parameter fails loudly instead of quietly
  taking the neighbouring value.
- A name the interface does not declare is a rejection, not something
  to ignore. In practice it means the ground is holding a different
  revision of the procedure than the one loaded on board, and letting
  the activation proceed runs the loaded revision on values chosen for
  a different one.
- Direction is a permission, not documentation. An input is written by
  the activation and read by the procedure; an output is written by
  the procedure and read by the ground; an in-out is both. A value
  supplied for an output, and a procedure writing to an input, are
  both interface violations.
- A default is what an omitted optional input takes, and it is a fact
  about the procedure, not about the activation. A parameter that is
  mandatory has no default: the two are alternatives, because a
  mandatory parameter with a default can never be detected as missing.
- The declared outputs are what the engine keeps observable during the
  run. A procedure that declares none can be watched only by its
  completion report, which is an interface decision worth naming
  rather than an accident to discover during an anomaly.
- Range and type checking happens at binding time, on the engine side.
  A procedure that has to defend itself against its own activation
  arguments is carrying the engine's job in its step logic.

## Workflow

1. Normalise every declared parameter: a non-empty name, a direction
   from the permitted set, a known type, both ends of a range or
   neither, and a permitted value list for an enumerated parameter.
2. Refuse a declaration that is mandatory and also carries a default,
   and refuse a default whose type does not match the declaration.
3. Build the interface as a lookup by name and refuse a name declared
   twice -- a duplicate silently shadows one of the two.
4. Bind the activation: for each supplied name find its parameter,
   reject an undeclared name and a value supplied for an output, then
   type-check and range-check what remains.
5. Sweep the declared inputs the activation did not supply: substitute
   a default where one exists, and raise a missing-mandatory finding
   where one does not.
6. Grade the parameters the running procedure writes back, so a write
   to an input-only parameter is caught against the same interface the
   activation was bound against.
7. List the observable outputs and report an interface that declares
   none, then decide acceptance: defaults and the no-output note are
   informational, everything else blocks the activation.

## Pitfalls

- Dropping an unrecognised argument and activating anyway. The run
  then uses defaults the ground never intended, and the telemetry
  looks like a procedure that misbehaved rather than one that was
  misconfigured.
- Binding by position because the ground and the procedure "agree on
  the order". They agree until one of them is revised.
- Giving a mandatory parameter a default so the activation stops
  failing. The failure was the detection; removing it does not supply
  the value.
- Treating direction as a comment. An in-out parameter and an input
  look identical in a parameter table and behave differently the first
  time a procedure writes back.
- Range-checking inside the procedure instead of at binding. The
  procedure has already started, so a bad value now costs a
  termination rather than a rejected activation.
- Declaring no outputs on a long-running procedure. Nothing is wrong
  until an anomaly, at which point the only evidence is that it has
  not finished.

## Behavior contract (gate 3)

The declaration normalisation, duplicate-name refusal,
mandatory-versus-default exclusivity, name-based binding, undeclared
name rejection, output-supplied rejection, type and range checking,
default substitution, missing-mandatory detection, input-only write
detection and the observable-output listing are exercised by the gate 3
contract test: scripts/test_e7041_communicating_parameters.py against
scripts/e7041_communicating_parameters_logic.py (stdlib unittest,
offline). Run:
python3 scripts/test_e7041_communicating_parameters.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 →