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:
- Read relevant files under
findings/. - Summarize objectives completed / total, current phase, latest evidence, and the next pending objective.
- Ask: "Continue from where we left off?"
- Resume the execution loop after confirmation.
Step 3B: Build a New OPPLAN
When no OPPLAN exists but the planning documents are present:
- Read CONOPS goals and kill-chain dependencies.
- Create one bounded objective per sub-agent context window with
add_objective. - Present the complete OPPLAN for approval.
- Enter the execution loop after confirmation. OPPLAN mutations persist automatically; there is no separate save tool.
Constraints
- The orchestrator has no shell. Never call
bashfrom 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.