Skip to content
Back to skills

Extension Patterns

ASecurity

"Add and inspect Habitat-Lab registry extensions for tasks,

  • 247 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 8, 2026
developmentpythongobashnodeapi

Works with

  • api

Security analysis

A100/100

Pro scans all 5 files and shows the line behind each finding

Scanned September 8, 2026

npx -y skills add VectorSpaceLab/AREX-Skill --skill extension-patterns --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Extension Patterns?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Extension Patterns
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/vectorspacelab-extension-patterns/badge)](https://www.skillsdirectory.com/skills/vectorspacelab-extension-patterns)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: extension-patterns
description: "Add and inspect Habitat-Lab registry extensions for tasks,
  sensors, measures, actions, datasets, simulators, and baselines components."
disable-model-invocation: true
metadata:
  disco-role: operating
license: MIT
---

# Habitat-Lab Extension Patterns

Use this sub-skill when you need to add, inspect, debug, or review custom Habitat-Lab extension classes that are discovered through `habitat.registry` or `baseline_registry`. It covers registration and config alignment; it does not run environments or train agents.

## Fast Route

- For exact decorator/getter names, ownership boundaries, and config-name alignment, read [references/registry-api.md](references/registry-api.md).
- For recipes for sensors, measures, actions, tasks, datasets, simulators, policies, trainers, storage, updaters, and observation transforms, read [references/extension-patterns.md](references/extension-patterns.md).
- For failure diagnosis around missing keys, duplicate registrations, action spaces, measure dependencies, and transform shapes, read [references/troubleshooting.md](references/troubleshooting.md).
- To safely inspect currently importable registry keys without creating a simulator or `Env`, run `scripts/inspect_registry_extensions.py` from a checkout or installed environment.

## Working Rules

1. Define the extension class in an importable Python module and decorate it with the matching registry decorator.
2. Ensure the module is imported before config construction or before a factory calls `registry.get_*` or `baseline_registry.get_*`.
3. Align every config `type` value with the registry key, not necessarily with the config dictionary key or emitted observation/action UUID.
4. Keep runtime tests narrow: registry lookup, config-node creation, observation/action space compatibility, and shape contracts can be checked without full simulator assets.
5. Escalate full `Env` execution, dataset loading, and training/evaluation to the task/env and baselines sub-skills.

## Common Extension Flow

1. Pick the registry surface: `habitat.registry` for lab runtime components, `baseline_registry` for training/inference components.
2. Pick a stable registry key with `@...register_*(name="...")` when the public config name should differ from the class name.
3. Create or update the matching structured config class so its `type` field equals that registry key.
4. Add the config node under the correct collection, such as `habitat.task.lab_sensors`, `habitat.task.measurements`, `habitat.task.actions`, `habitat.dataset`, `habitat.simulator`, `habitat_baselines.trainer_name`, `habitat_baselines.rl.policy.name`, or `habitat_baselines.rl.agent.type`.
5. Import the module containing the decorator before the lookup site runs.
6. Probe with registry lookups and shape/space checks before attempting asset-backed execution.

## Safe Probe

From this sub-skill directory, run the bundled probe to list registered keys:

```bash
python scripts/inspect_registry_extensions.py --all
```

Useful narrow probes:

```bash
python scripts/inspect_registry_extensions.py --category sensor --category measure
python scripts/inspect_registry_extensions.py --import-module my_project.habitat_extensions --category task_action --category policy
python scripts/inspect_registry_extensions.py --key measure:MyMeasure --key trainer:ppo
```

The script imports registries and optional extension modules, then prints mapping keys. It does not instantiate `Env`, datasets, simulators, trainers, or policies.

Files in this skill

  • SKILL.md3.5 KB
  • references/extension-patterns.md10.7 KB
  • references/registry-api.md5.8 KB
  • references/troubleshooting.md6.4 KB
  • scripts/inspect_registry_extensions.py8 KB

Attribution

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

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.