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 Managing Directories

ASecurity

Perform and adjudicate the four requests that change the shape of an on-board repository tree under ECSS-E-ST-70-41C clause 6.23.4.5. Use when a create, delete, rename or move against a spacecraft file system was refused and the operator needs the reason rather than a retry: refusing a delete of anything holding a file or a sub-repository because nothing on board is recoverable, separating a rename that changes the last segment from a move that changes the parent, re-pathing the whole subtree...

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

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-managing-directories --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of E7041 Managing Directories?

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

Security grade badge for E7041 Managing Directories
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/ashfordeou-e7041-managing-directories/badge)](https://www.skillsdirectory.com/skills/ashfordeou-e7041-managing-directories)

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

Download with Pro
Files
SKILL.md
---
name: e7041-managing-directories
description: "Perform and adjudicate the four requests that change the shape of an on-board repository tree under ECSS-E-ST-70-41C clause 6.23.4.5. Use when a create, delete, rename or move against a spacecraft file system was refused and the operator needs the reason rather than a retry: refusing a delete of anything holding a file or a sub-repository because nothing on board is recoverable, separating a rename that changes the last segment from a move that changes the parent, re-pathing the whole subtree under either, catching a move into a target's own subtree before it detaches it, and enforcing the declared depth at the request. Trigger: ecss, e-st-70-41c, pus-file-management, on-board-repository-tree, create-sub-repository, delete-non-empty-repository, move-repository-subtree, repository-depth-limit."
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-file-management-scope, e7041-managing-directories, on-board-repository-tree, create-sub-repository, delete-non-empty-repository, move-repository-subtree, repository-depth-limit]
  version: 0.1.0
  author: Aero Agent Skills
---

# ECSS Packet Utilisation — Managing Directories (space-systems/ecss/e7041-managing-directories)

Use when the task is the directory management of ECSS-E-ST-70-41C
clause 6.23.4.5 -- creating, deleting, renaming and moving the
sub-repositories of an on-board file system, where the happy path is
a dictionary insertion and the refusals are the whole subject.

## Domain quick reference

- Four requests act on structure rather than content: create a
  sub-repository under an existing parent, delete one, rename one in
  place, move one under a different parent.
- A delete is refused unless the target holds neither a file nor a
  sub-repository. There is no undo on board and no second copy, so
  the empty-only rule is the only thing that forces an operator to
  look inside before the content goes. A helpful recursive delete
  removes the guard entirely.
- The refusal has to say what was inside. "Not empty" sends the
  operator back to guess; two files and one sub-repository tells
  them what the next request is.
- A rename changes the last segment and keeps the parent. A move
  keeps the name and changes the parent. They are not the same
  request with different arguments, and each fails in a way the
  other cannot.
- Both re-path everything underneath. A subtree that keeps its old
  paths after its parent moved is a tree with two answers for one
  repository.
- A move into the target's own subtree is the one failure that
  corrupts rather than refuses: the subtree detaches from the root
  and nothing reaches it again. Catch it before applying, and note
  that moving a repository onto itself is the same defect.
- The root repository cannot be deleted, renamed or moved. It is the
  anchor every path is expressed against.
- Maximum depth is declared and enforced at the request. A create or
  a move that would exceed it is refused now, not discovered later by
  a path too long for the field that carries it.
- A move checks the depth of the deepest repository in the subtree,
  not of the repository being moved. Moving a shallow parent can push
  a grandchild past the cap.
- Name collisions span both kinds. A new sub-repository may not take
  the name of a file in the same parent, nor of a sibling.

## Workflow

1. Validate every segment and normalise every path before comparing
   anything; two spellings of one path are one repository.
2. Validate the tree: every non-root repository has its parent
   present, no duplicate file names, nothing past the declared depth.
3. For a create, resolve the parent, reject a name already used by a
   file or a sibling, then check the resulting depth and path length.
4. For a delete, refuse the root, refuse an unknown path, then refuse
   a non-empty target and report its file and sub-repository counts.
5. For a rename, refuse the root, accept a rename to the same name as
   a no-op, reject a sibling collision, and re-path the subtree.
6. For a move, refuse the root, resolve the destination parent,
   reject a destination inside the target's own subtree, reject a
   name collision, and only then check the deepest descendant against
   the depth cap.
7. Apply a plan step by step against the tree each step produced, and
   report applied and refused counts and the deepest depth reached.

## Pitfalls

- Recursively deleting to make a delete succeed. The refusal was the
  safety feature and the content is not recoverable.
- Reporting "not empty" without the counts. The operator reissues
  blind and the second refusal teaches nothing new.
- Treating a move as a rename with a path in it. The two collision
  checks are against different parents.
- Moving a subtree without re-pathing it. Half the tree answers to a
  parent that no longer exists.
- Allowing a move into the target's own subtree. The subtree is
  detached and nothing addresses it afterwards.
- Checking the depth of the moved repository instead of its deepest
  descendant. The cap is breached one level down.
- Testing containment on a raw string prefix. A sibling whose name
  begins with the target's name is dragged along.
- Applying a plan against the original tree each step. Later steps
  are then decided against a state that never existed.

## Behavior contract (gate 3)

The segment and path mechanics, whole-segment containment, tree and
parent validation, depth enforcement, create with file and sibling
collision checks, empty-only delete with its counts, root protection,
rename versus move with subtree re-pathing, the move-into-own-subtree
refusal, the deepest-descendant depth check and the step-by-step plan
report are exercised by the gate 3 contract test:
scripts/test_e7041_managing_directories.py against
scripts/e7041_managing_directories_logic.py (stdlib unittest,
offline). Run: python3 scripts/test_e7041_managing_directories.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 →