Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
15 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
5 changes: 3 additions & 2 deletions .agents/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,12 @@ This directory contains Agent Skills following the [Agent Skills standard](https
| [attach-gossip-payload](skills/attach-gossip-payload) | Broadcast custom ROS messages to peers via PeerProfile gossip payloads |
| [bump-version-and-release](skills/bump-version-and-release) | Bump `.env` VERSION + CHANGELOG to clear the version-check gate |
| [capture-discovered-knowledge](skills/capture-discovered-knowledge) | Persist hard-won discoveries to AGENTS.md or a skill |
| [configure-multi-robot](skills/configure-multi-robot) | Multi-robot setup: replicas, ROBOT_NAME, ROS_DOMAIN_ID |
| [configure-multi-robot](skills/configure-multi-robot) | Multi-robot setup, fleet-first: fleet files under `config/fleets/` (`--fleet`) primary; `NUM_ROBOTS` is the legacy homogeneous knob |
| [create-module](skills/create-module) | Author a thin module repo (module.yaml manifest, CI, test_stack) |
| [create-stack](skills/create-stack) | Create a stack folder: `airstack stack new`, wiring bootstrap, split stacks + bridge.yaml, doctor |
| [debug-module](skills/debug-module) | Systematic autonomous debugging of ROS 2 modules |
| [docker-build-profiles](skills/docker-build-profiles) | Build-time validation for Docker compose profiles and build args |
| [extract-module](skills/extract-module) | Extract an in-tree capability into a standalone module repo (TRUNK_REMOVAL.md pattern, sequencing rules, module CI) |
| [integrate-module-into-layer](skills/integrate-module-into-layer) | Integrate a module into a **stack** (stack entry include, canonical defaults, wiring.md regen, lint) — the layer-bringup workflow is legacy |
| [run-system-tests](skills/run-system-tests) | Run/extend the pytest system-test harness (marks, MetricsRecorder, /pytest) |
| [test-in-simulation](skills/test-in-simulation) | End-to-end module testing in Isaac Sim |
Expand Down Expand Up @@ -73,4 +74,4 @@ old pattern.
- **Integration Checklist:** [docs/robot/autonomy/integration_checklist.md](../docs/robot/autonomy/integration_checklist.md)
- **Stacks Guide:** [docs/development/stacks.md](../docs/development/stacks.md)
- **Modules Guide:** [docs/development/modules.md](../docs/development/modules.md)
- **AI Agent Guide:** [docs/development/ai_agent_guide.md](../docs/development/ai_agent_guide.md)
- **AI Agent Guide:** [docs/development/advanced/ai_agent_guide.md](../docs/development/advanced/ai_agent_guide.md)
2 changes: 1 addition & 1 deletion .agents/skills/add-behavior-tree-node/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
name: add-behavior-tree-node
description: Create behavior tree nodes for high-level mission logic and decision-making. Use when implementing actions, conditions, or decorators for behavior trees. Covers BT node types, registration, and integration with behavior executive.
license: Apache-2.0
license: BSD-3-Clause-Clear
metadata:
author: AirLab CMU
repository: AirStack
Expand Down
2 changes: 1 addition & 1 deletion .agents/skills/add-ros2-package/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
name: add-ros2-package
description: Create a new ROS 2 package for the AirStack autonomy stack. Use when implementing a new algorithm module (planner, controller, perception, world model, behavior node). Covers package structure, CMakeLists.txt, package.xml, launch files, and configuration.
license: Apache-2.0
license: BSD-3-Clause-Clear
metadata:
author: AirLab CMU
repository: AirStack
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -254,7 +254,7 @@ airstack up isaac-sim robot
# Run test scenario...
```

See [test_in_simulation.md](../../.agents/skills/test_in_simulation.md) for detailed testing procedures.
See the [test-in-simulation skill](../../../test-in-simulation/SKILL.md) for detailed testing procedures.

## Visualization

Expand Down
2 changes: 1 addition & 1 deletion .agents/skills/add-task-executor/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
name: add-task-executor
description: Implement a new task executor as a ROS 2 action server in AirStack. Use when adding a new goal-directed task (coverage, search, counting, trajectory following, etc.) that a user can trigger with parameters, monitor via feedback, and cancel. Reference implementation is random_walk_planner (ExplorationTask).
license: Apache-2.0
license: BSD-3-Clause-Clear
metadata:
author: AirLab CMU
repository: AirStack
Expand Down
2 changes: 1 addition & 1 deletion .agents/skills/add-unit-tests/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
name: add-unit-tests
description: Add Python or C++ unit tests to an AirStack ROS 2 package. Covers the co-location pattern (test source in package/test/), registering the package in colcon_unit_test_packages.yaml so pytest tests/ and airstack test -m unit collect it, and how to extend to sim components.
license: MIT
license: BSD-3-Clause-Clear
metadata:
author: AirLab CMU
repository: AirStack
Expand Down
9 changes: 9 additions & 0 deletions .agents/skills/attach-gossip-payload/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,12 @@
---
name: attach-gossip-payload
description: Broadcast any ROS message to all peer robots via the gossip protocol by attaching it as a PeerProfile payload — config-driven via gossip_payloads.yaml, with the peer_profile.py add_payload/get_payload API for consumers. Use when a module needs to share data (frontier maps, sensor summaries, task status) across robots on the gossip domain.
license: BSD-3-Clause-Clear
metadata:
author: AirLab CMU
repository: AirStack
---

# Skill: Attach Custom Payload to PeerProfile (Gossip Protocol)

## When to use
Expand Down
4 changes: 2 additions & 2 deletions .agents/skills/bump-version-and-release/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
name: bump-version-and-release
description: Bump the AirStack VERSION in .env (semver) before merging a PR that changes Docker image content, and update CHANGELOG. Required to pass the check-version-increment gate and to trigger the docker-build release workflow.
license: Apache-2.0
license: BSD-3-Clause-Clear
metadata:
author: AirLab CMU
repository: AirStack
Expand All @@ -17,7 +17,7 @@ Bump VERSION when the PR touches:

- Any `Dockerfile` under `robot/`, `simulation/isaac-sim/`, `simulation/ms-airsim/`, `gcs/`, `common/`, or `tests/docker/`
- `docker-compose.yaml` or any included sub-compose file (when the change affects what is built or installed into images)
- Code that is **baked into** an image (i.e., copied during build, not bind-mounted at runtime). For `DOCKER_IMAGE_BUILD_MODE="prebuilt"` this includes `robot/ros_ws/src/**`. For `DOCKER_IMAGE_BUILD_MODE="dev"` (the current default in `.env`) the workspace is bind-mounted, so source-only changes there do not strictly require a rebuild — but bumping is still safer if you are unsure.
- Code that is **baked into** an image (i.e., copied during build, not bind-mounted at runtime). The workspace is bind-mounted (`DOCKER_IMAGE_BUILD_MODE` is a tag discriminator only — a real `prebuilt` workspace-baked stage is future work), so source-only changes under `robot/ros_ws/src/**` do not strictly require a rebuild — but bumping is still safer if you are unsure.
- Apt packages, pip requirements, ROS package manifests installed during the build
- Entry-point scripts, tmux configs, or `.bashrc` snippets copied into images
- Submodule pointer updates that affect image contents
Expand Down
2 changes: 1 addition & 1 deletion .agents/skills/capture-discovered-knowledge/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
name: capture-discovered-knowledge
description: Persist hard-won discoveries to AGENTS.md or a new/existing SKILL.md so future agents don't repeat the discovery cost. Trigger after any long context-discovery task (multi-minute grep / file-reading session, parallel research agents, debugging that took several iterations) or whenever you learn something critical, surprising, undocumented, or that contradicted prior assumptions in AGENTS.md or a skill. Decides between updating AGENTS.md, updating an existing skill, or creating a new skill.
license: Apache-2.0
license: BSD-3-Clause-Clear
metadata:
author: AirLab CMU
repository: AirStack
Expand Down
2 changes: 1 addition & 1 deletion .agents/skills/configure-multi-robot/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
name: configure-multi-robot
description: Configure, name, and isolate multiple robots in AirStack — fleet files (config/fleets/, airstack up --fleet) first, legacy NUM_ROBOTS second. Use whenever launching multi-robot, multiple robots, swarm, or fleet scenarios; mixing different stacks/vehicles per robot (heterogeneous fleets, split placement via hosts:); setting ROBOT_NAME; debugging cross-robot topic collisions; choosing a ROS_DOMAIN_ID; or namespacing topics, TF frames, and DDS bridges across robots.
license: Apache-2.0
license: BSD-3-Clause-Clear
metadata:
author: AirLab CMU
repository: AirStack
Expand Down
2 changes: 1 addition & 1 deletion .agents/skills/create-module/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
name: create-module
description: Create a new AirStack module repository by hand — author the thin module.yaml manifest, lay out colcon packages with canonical-default launch args (never remaps), add test_stack/ and CI, and validate with tools/validate_module.py. Use when packaging a capability (planner, estimator, sim extension, vehicle data) as a standalone module repo per RFC #379.
license: Apache-2.0
license: BSD-3-Clause-Clear
metadata:
author: AirLab CMU
repository: AirStack
Expand Down
2 changes: 1 addition & 1 deletion .agents/skills/create-stack/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
name: create-stack
description: Create a new AirStack stack folder — copy a reference stack with `airstack stack new`, edit the entry launch file(s), bootstrap wiring.md, and validate with doctor and the unit lints. Covers stack anatomy, split stacks (multiple entry points + bridge.yaml), the control/trajectory placement hard gate, and gen_dds_router.
license: Apache-2.0
license: BSD-3-Clause-Clear
metadata:
author: AirLab CMU
repository: AirStack
Expand Down
6 changes: 3 additions & 3 deletions .agents/skills/debug-module/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
name: debug-module
description: Systematically debug ROS 2 modules with autonomous diagnostic strategies. Use when a module is not working as expected. Covers node status, topic connections, data flow analysis, parameter checking, and performance profiling.
license: Apache-2.0
license: BSD-3-Clause-Clear
metadata:
author: AirLab CMU
repository: AirStack
Expand Down Expand Up @@ -497,8 +497,8 @@ Solution: Added scipy dependency
- [Debugging with GDB](https://docs.ros.org/en/jazzy/Tutorials/Debugging/Debugging-CPP.html)

- **AirStack:**
- [Integration Checklist](../docs/robot/autonomy/integration_checklist.md)
- [System Architecture](../docs/robot/autonomy/system_architecture.md)
- [Integration Checklist](../../../docs/robot/autonomy/integration_checklist.md)
- [System Architecture](../../../docs/robot/autonomy/system_architecture.md)

- **Related Skills:**
- [add-ros2-package](../add-ros2-package)
Expand Down
Loading
Loading