Skip to content
Back to skills

Camp Projects

ASecurity

Manage a camp's projects. Use when committing inside `projects/*`, deciding status/pull/push scope (root vs submodule vs all), or creating/removing project worktrees.

  • 60 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added October 6, 2026
ai-agentsbashgit

Security analysis

A100/100

Scanned October 6, 2026

npx -y skills add Obedience-Corp/festival --skill camp-projects --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Camp Projects?

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

Security grade badge for Camp Projects
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/obedience-corp-camp-projects/badge)](https://www.skillsdirectory.com/skills/obedience-corp-camp-projects)

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: camp-projects
description: Manage a camp's projects. Use when committing inside `projects/*`, deciding status/pull/push scope (root vs submodule vs all), or creating/removing project worktrees.
---

# Camp Projects

A camp was previously called a campaign; project commands work the same either way.

## Commit in Submodules

```bash
camp p commit -m "fix: message"
```

Pointer sync is intentional and root-level:

```bash
camp refs-sync
camp refs-sync projects/camp
```

## Scope-Safe Status / Sync

```bash
camp status
camp status --sub
camp status all

camp pull --sub
camp push --sub
```

Use `all` commands only when broad workspace churn is intended.

## Rename a Project

```bash
camp project rename <current> <new>
camp project rename <current> <new> --dry-run --json
camp project rename <current> <new> --remote-url git@github.com:org/new-name.git
```

Renames submodules, linked workspace symlinks, and camp-owned directories,
migrating the camp references in one transaction. Dirty checkouts and linked
worktrees are preserved; destination collisions and unmanaged directories are
rejected before anything is written.

Camp never guesses that the upstream repository was renamed too. Pass
`--remote-url` to move origin as part of the same transaction.

## Worktrees

```bash
camp project worktree add <name>
camp project worktree list
camp project worktree remove <name>
```

## Common Mistakes

- Assuming submodule commits should auto-update camp-root pointers.
- Running `camp pull`/`camp push` expecting submodule scope without `--sub`.
- Passing worktree path to remove; command expects worktree name.
- Renaming a project directory by hand instead of `camp project rename`, which
  leaves the camp references pointing at the old name.

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.