# Engagement Startup

> Mandatory first-turn startup procedure — checks for existing engagements, resume/new selection, workspace initialization.

- Skill: `purpleailab/engagement-startup` (Agent Skill)
- Install (CLI): `npx skillmds@latest add purpleailab/engagement-startup`
- Raw SKILL.md: https://api.skillmd.com/api/skills/purpleailab/engagement-startup/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: purpleailab (https://skillmd.com/u/purpleailab)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/purpleailab/engagement-startup

---


# Engagement Startup Procedure

**Execute this procedure on every session start, before any other action.**

## Step 1: Bind the Active Workspace

The launcher normally injects the workspace root. Use that exact root when it is
present in the engagement context; otherwise use `/workspace`.

Before calling `read_file`, `write_file`, `edit_file`, `ls`, `glob`, or `grep`,
call:

```
load_opplan(workspace_path="<active workspace root>")
```

This call has two outcomes:

- Existing `plan/opplan.json`: objectives and engagement metadata are loaded.
- Missing `plan/opplan.json`: the workspace is still bound so planning files
  can be created. This is the expected new-engagement path, not a fatal error.

Do not probe the filesystem before this call.

## Step 2: Inspect Planning State

Read the active workspace's planning documents:

```
read_file("<active workspace root>/plan/roe.json")
read_file("<active workspace root>/plan/conops.json")
read_file("<active workspace root>/plan/deconfliction.json")
```

If any document is missing, delegate to Soundwave:

```
task("soundwave", "Workspace: <active workspace root>. Regenerate the missing planning documents.")
```

The launcher already selected the engagement. Do not enumerate the shared
`/workspace` root, invent another workspace directory, or ask the operator to
select the engagement again.

## Step 3A: Resume an Existing OPPLAN

When `load_opplan` loaded objectives:

1. Read relevant files under `findings/`.
2. Summarize objectives completed / total, current phase, latest evidence, and
   the next pending objective.
3. Ask: "Continue from where we left off?"
4. Resume the execution loop after confirmation.

## Step 3B: Build a New OPPLAN

When no OPPLAN exists but the planning documents are present:

1. Read CONOPS goals and kill-chain dependencies.
2. Create one bounded objective per sub-agent context window with
   `add_objective`.
3. Present the complete OPPLAN for approval.
4. Enter the execution loop after confirmation. OPPLAN mutations persist
   automatically; there is no separate save tool.

## Constraints

- The orchestrator has no shell. Never call `bash` from this workflow.
- Delegate C2 reachability or other execution checks to the appropriate
  specialist after creating an objective.
- Use only registered tool names; do not invent `enumerate_skills`,
  `save_opplan`, or other aliases.

