# Coordination

> Pentest coordination — orchestrates executor and validator agents with context-controlled spawning. Entry point for all engagements.

- Skill: `transilienceai/coordination` (Agent Skill, multi-file: 23 files)
- Install (CLI): `npx skillmds add transilienceai/coordination`
- Raw SKILL.md: https://api.skillmd.com/api/skills/transilienceai/coordination/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: transilienceai (https://skillmd.com/u/transilienceai)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/transilienceai/coordination

---


# Coordination

Runs as a spawned subagent (one per target). Within its own context, the coordinator holds engagement state inline — it does not delegate its thinking to further sub-subagents. Thinks before every action.

The parent orchestrator (main session) **must not** execute this workflow inline. If you find yourself doing P1-P5 in the main session, you skipped the spawn step in `skills/hackthebox/SKILL.md` (or the relevant platform skill) and the bookkeeping discipline is silently disabled.

## Principle (Rule 0)

**Source code first.** Read all accessible source — application code, config, scripts, share contents — before any executor batch. Every answer is in the data you already have. Guessing without reading is the most common failure mode.

## Workflow

```
P0: Ingest scope
 ↓
P1: Recon + read source code → write attack-chain.md → run preflight-checklist
 ↓
┌→ P2: Think — read chain + experiments.md, write 3 hypotheses (≥1 [wildcard]), pick 1-2 to test
│  P2b: Research (conditional) — see reference/creative-research.md
│  P3: Execute — spawn 1-2 executors with CHAIN_CONTEXT [+ RESEARCH_BRIEF]
│  P4: Integrate — materialize each candidate; **validate it now** (interleaved, strict per-finding,
│      fresh blind agents) → CONFIRMED | REJECTED | CURE→re-validate | DROPPED; update chain, revise theory
│      Coverage flips only on VALID (coverage-by-VALID); REJECTED/DROPPED classes stay pending → keep searching
│      No progress 1 batch → consider P2b · goal_attempts ≥ 3 on any conceptual goal → P4b
└─ loop (max 30 experiments; mandatory skeptic at experiments 5, 15, 25)

P4b: Reset — re-read all recon + source + chain. Creative Research (mandatory). Fresh theory.
P5: Engagement-thoroughness validation + Report (validated/ = VALID/REPAIRED only; drop-entirely, no gaps section)
```

### Steps

1. **Recon + Source Code** — read all accessible code (see `formats/reconnaissance.md`). Run pre-flight checklist (`reference/preflight-checklist.md`).
2. **Think** — write 3 hypotheses to `attack-chain.md`, ≥1 tagged `[wildcard]`. Pick 1-2 to spawn.
3. **Test** — 1-2 executors per batch, integrate before next.
4. **Validate (interleaved)** — validate each candidate the instant INTEGRATE materializes it, on fresh blind agents (strict per-finding cure/drop loop → CONFIRMED | REJECTED | CURE | DROPPED); at loop end run the engagement-thoroughness validator (see `reference/validator-role.md`).
5. **Report** — the `VALID`/`REPAIRED` findings in `{OUTPUT_DIR}/artifacts/validated/` (all of them, by construction) → Transilience PDF via `formats/transilience-report-style/SKILL.md`.

## attack-chain.md

`{OUTPUT_DIR}/attack-chain.md`. Updated every batch. Sections: services, surface, theory (3 hypotheses + chosen), tested, next. Bullets, max 50 lines, prune old items to one-liners.

## Bookkeeping

experiments.md ledger, tools/ logs, EXPERIMENT_ID injection, conceptual-goal counting — see `reference/bookkeeping.md`.

## Creative Research (P2b)

Triggers: P4b reset (mandatory), goal_attempts ≥ 3 on any goal, novel error class, source code unreadable, every executor returned negative, no hypothesis at P2, no progress for 1 batch. See `reference/creative-research.md`. Most batches skip P2b.

## Spawning

See `reference/spawning-recipes.md` for copy-paste-ready spawn patterns per role. Context contracts in `reference/context-injection.md`. Role boundaries in `reference/role-matrix.md`.

## Roles

| Role | File | Context | When |
|------|------|---------|------|
| Executor (explore) | `reference/executor-role.md` | Full chain + skills | Recon / breadth |
| Executor (exploit) | `reference/executor-role.md` | Full chain + skills + scenarios | Confirmed theory |
| Skeptic | `reference/skeptic-role.md` | experiments.md + recon (no chain) | Mandatory at experiments 5, 15, 25 |
| Validator (finding) | `reference/validator-role.md` | Evidence only (blind) | Interleaved — each candidate the instant it's materialized; fresh each cure round |
| Executor (cure) | `reference/executor-role.md` | Only named `failed_checks` + `missing_evidence` (no theory) | On a DEMOTED verdict, before re-validation |
| Validator (engagement) | `reference/validator-role.md` | OUTPUT_DIR only (blind) | Once at loop end |

## Rules

1. **Autonomous.** Coordinator MUST NOT call `AskUserQuestion`. If a credential is missing, run `python3 tools/env-reader.py`; if it returns NOT_SET, terminate with `status=BLOCKED` and emit a clear blocker. Asking is the parent orchestrator's job.
2. **Think before acting.** Write 3 hypotheses (≥1 wildcard) to attack-chain.md before every batch. Record rejected ones — they are the search tree.
3. **Max 1-2 executors per batch.** Recon can use more.
4. **Pass chain context + specific PATT_URL** to executors. Not the full PATT map.
5. **30-experiment cap.**
6. **goal_attempts ≥ 3 on a conceptual goal** → P4b reset. Count by *goal*, not literal technique string. Five PKINIT cert variants chasing "use this cert to authenticate" = five strikes against one goal. See `reference/bookkeeping.md` for the goal column.
7. **Mandatory skeptic** at experiments 5, 15, 25 (see `reference/skeptic-role.md`).
8. **All output to OUTPUT_DIR.**
9. **Sequential flag progression** in multi-flag engagements. User-foothold first; root path usually flows from there.
10. **No partial completion as a success state.** A multi-flag engagement is incomplete until every flag submits. `status=FAILED_partial` is a temporary marker, never a final outcome.
11. **Phase 3 (skill-update + Slack + queue) is parent-orchestrator only.** Coordinator emits PHASE3_SUMMARY and exits.
12. **Source for library internals.** Before writing Python against any library API (Impacket, ldap3, pyasn1), read the source. Prefer CLI tools (secretsdump.py, ticketer.py, getST.py).
13. **Background command discipline.** State the specific result a tunnel/relay/listener will produce before spawning.
14. **Report gate.** Validated findings exist → Transilience PDF report required. Read `formats/transilience-report-style/pentest-report.md`.
15. **Validation completeness.** After validators run, every validated finding has `evidence/validation/validation-summary.md`. Flag any without proof.

## Token Discipline

- Internal output (chain, logs, reports): bullets, not prose.
- Executor prompts: 1-2 relevant skill files + the specific PATT_URL.
- attack-chain.md max 50 lines; bookkeeping max 10% of mission tokens.
- User-facing output (reports, summaries): detailed.

## References

`reference/principles.md` · `reference/preflight-checklist.md` · `reference/role-matrix.md` · `reference/bookkeeping.md` · `reference/spawning-recipes.md` · `reference/context-injection.md` · `reference/creative-research.md` · `reference/executor-role.md` · `reference/skeptic-role.md` · `reference/validator-role.md` · `reference/VALIDATION.md` · `reference/ATTACK_INDEX.md` · `reference/OUTPUT_STRUCTURE.md` · `reference/GIT_CONVENTIONS.md` · `formats/INDEX.md`

