---
name: Deploy Skill - Operating Sequence
description: The exact order of operations the deploy skill follows on invocation. Reference document; the skill itself encodes the sequence as behavior.
type: reference
---

# Deploy Skill - Operating Sequence

- **Last reviewed:** 2026-04-28
- **Review cadence:** on-event (refresh when SKILL.md changes the sequence)
- **Status:** active

This is the canonical operating sequence the `deploy` skill follows on every invocation. The skill's SKILL.md encodes this sequence as behavior; this file exists for human-readable verification of correctness.

## Pre-flight

```
0. Confirm kit contents intact:
   - BOOTSTRAP-BRIEF.md exists
   - QUESTIONS.md exists
   - templates/ has 15 files including README.md
   - examples/martech-mature-instance/ exists
   - decisions/ has at least ADR-0001, ADR-0002, ADR-0003
   - skills/validate/SKILL.md exists
   - skills/architect-kit-mirror/SKILL.md exists

   On any miss: refuse to proceed; report which artifact is missing.
```

## Standard load

```
1. Read BOOTSTRAP-BRIEF.md end-to-end before any operator interaction.
   Output: "Loading operating-model standard. Reading the brief now."
```

## Localization gate

```
2. For Q in [Q1, Q2, Q3, Q4, Q5, Q6, Q7, Q8, Q9, Q10]:
     Read Q's section in QUESTIONS.md.
     Output: question text + acceptance criteria + default suggestion (if any).
     Wait for operator answer.
     If answer fails acceptance criteria:
       Ask follow-up naming the missing criterion.
     If operator says "skip" or "use default":
       Confirm explicit acceptance OR capture `unknown - {reason}`.
       Refuse silent skip.
     Confirm captured answer to operator.
   End for.

3. Write captured answers to {instance_root}/LOCALIZATION-ANSWERS.md
   per QUESTIONS.md "Captured-answers structure" section.
```

## Render

```
4. For T in render order (per templates/README.md):
     T = L0-strategy.md         -> {instance_root}/policies/strategy.md
     T = L1-brand-posture.md    -> {instance_root}/policies/brand-posture.md
                                   (mark N/A if Q1 type is internal-tool/internal-platform/external-api)
     T = L2-philosophy.md       -> {instance_root}/policies/philosophy.md
     T = L3-framework-contract  -> {instance_root}/policies/framework-contract.md
     T = L4-platform-kit.md     -> {instance_root}/kit/PLATFORM-KIT.md
                                   (select Q6-posture branch; emit only that branch)
     T = L7-cross-platform-glue -> {instance_root}/cross-platform/L7-glue.md
     T = L5-instance-dossier.md -> {instance_root}/platforms/{platform}/dossier.md
                                   (one per Q7 platform)
     T = inbox-topology.md      -> {instance_root}/inbox-topology.md
     T = handoff-template.md    -> {instance_root}/HANDOFF.md
     T = OPERATING-MODEL-template.md -> {instance_root}/OPERATING-MODEL.md
   End for.

5. Copy without substitution (per-instance shapes):
     templates/ADR-template.md            -> {instance_root}/decisions/ADR-template.md
     templates/session-log-template.md    -> {instance_root}/sessions/SESSION-TEMPLATE.md
     templates/MATURITY-SCORECARD-template.md -> {instance_root}/MATURITY-SCORECARD.md
     (the scorecard's actual content gets populated by validate in Step 7)
```

## Scaffold

```
6. Create supporting structure:
     {instance_root}/CLAUDE.md         (thin context file)
     {instance_root}/BACKLOG.md        (frontmatter + heading; entries TBD)
     {instance_root}/inbox/SCHEMA.md   (typed-entry schema)
     {instance_root}/outbox/           (empty directory)
     {instance_root}/runbooks/         (empty directory)
     {instance_root}/decisions/        (contains ADR-template; first 1-3 ADR stubs based on Q1, Q4, Q6)

   If Q6 posture is `greenfield`:
     scaffold {instance_root}/kit/{prompts,eval-harness,eval-data,guardrails,telemetry,contracts}/
     per L4-platform-kit.md Branch A.
```

## Validate

```
7. Invoke skills/validate/SKILL.md against {instance_root}/.

   Validate produces:
     - {instance_root}/MATURITY-SCORECARD.md (populated)
     - findings (if any)

   Findings categories:
     - Blocking: refuse to declare complete; surface to operator
     - Non-blocking: include in scorecard; surface as next-move candidates
```

## Decision

```
8. If validate returns no blocking findings:
     Output landing-complete summary:
       - Instance name + root path
       - Per-layer maturity summary
       - Single highest-leverage next move (from scorecard)
       - "Read OPERATING-MODEL.md to begin."
   Else:
     Output paused-on-findings summary:
       - List blocking findings
       - "Resolve or accept these as initial state before declaring complete."
       - Wait for operator to resolve or accept.
```

## Iron Man test (BOOTSTRAP-BRIEF Section XVI)

A landing succeeded when the deployed instance can:

1. Read BOOTSTRAP-BRIEF (kit-internal copy reachable from {instance_root}/CLAUDE.md)
2. Answer the 10 localization questions (captured in LOCALIZATION-ANSWERS.md)
3. Produce a populated mature instance (eight layers classified, relationships declared, ADRs catalogued, scorecard filled)
4. Refuse to declare any layer "complete" without evidence
5. Begin operating on the function deployed for

If any step is skipped or stubbed at landing time, the landing has failed. Land again or escalate.

## Concurrent invocation handling

The deploy skill should not run twice on the same `{instance_root}` simultaneously. If the skill detects an existing `{instance_root}/LOCALIZATION-ANSWERS.md` with `Status: captured`, it must:

1. Ask the operator: "Instance already exists at {instance_root}. Re-run as revision (preserves prior answers; treats revision as supersession), or refuse?"
2. If revision: load prior answers; ask only changed questions; write supersession entries to LOCALIZATION-ANSWERS.md revision-log
3. If refuse: stop; report the conflict; let the operator decide

## Self-update at start of every invocation

Re-read BOOTSTRAP-BRIEF.md even if cached. The brief evolves; cached behavior drifts.

If brief and skill conflict: brief wins; flag the discrepancy as a kit BACKLOG finding.
