---
name: ssp-ingest
description: Ingest documentation from inputs/ into the Halo SSP asset spine via the six-phase CHANGE-PLAN pipeline with row-level approval
---

# SSP Ingest

Turn documentation inputs (policies, procedures, transcripts, prior SSPs, ad-hoc notes) into Halo SSP asset writes through the six-phase pipeline with CHANGE-PLAN diff-and-propose discipline. **No Halo writes happen without explicit row-level user approval.**

## Usage

```
/grcitsm-analyst:ssp-ingest --site-id N
/grcitsm-analyst:ssp-ingest --client-name "X"
```

Site targeting is required (`--site-id` or `--client-name`). Source documents are read from the project's `inputs/` folder.

## Agents

| Agent | Purpose | When Invoked |
|-------|---------|--------------|
| `ssp-curator` | Phases 1–3: classify inputs, extract content, reconcile against current Halo state → draft CHANGE-PLAN (+ structural CSV manifests projection for `/grcitsm-analyst:ssp-compile`) | Pipeline start |
| `ssp-reviewer` | Phase 4: internal review loop on the CHANGE-PLAN; halts on BLOCKERs | After curation |
| `ssp-writer` | Phase 6 composer: turn the residual approved CHANGE-PLAN rows (system_information, non-manifest UPDATEs, merge resolutions, IR rollups) into `state/actions-02.jsonl` — never calls a Halo write tool | Only after explicit user approval, after `ssp_compile.py` has compiled the structural manifests |

## Process

Load the **`ssp-ingest` skill** and follow it end-to-end. In brief:

1. Resolve the target Site; verify `inputs/` has documents (if empty, suggest `/grcitsm-analyst:ssp-interview` instead).
2. Phases 1–3 (`ssp-curator`): classify → extract → reconcile → draft CHANGE-PLAN. State is checkpointed per `reference-docs/ssp-run-state.md` — runs are resumable.
3. Phase 4 (`ssp-reviewer`): internal review loop until no BLOCKERs (the SSP Review Chain is mandatory — never skip the reviewer).
4. Phase 5: user-edit loop — present the polished CHANGE-PLAN, incorporate feedback, re-render until the user gives **explicit approval**.
5. Phase 6 — compose → apply: `reconcile_ssp_assets` scaffolds the framework spine; `ssp_compile.py` compiles the Phase-3 manifests into `state/actions-01.jsonl`; `ssp-writer` composes the residual rows into `state/actions-02.jsonl`; `/grcitsm-analyst:halo-apply` applies both; the relationship reconcilers run at their spine positions; verify pass + ledger report. Full sequence: `reference-docs/ssp-ingest-phases.md` § Phase 6.

## Error Handling

- No Halo MCP connection → stop and point at `/grcitsm-analyst:setup`.
- Interrupted run → re-invoke; the run-state file drives resume (never restart Phase 6 blind — check the write ledger first).
- Reviewer BLOCKERs that can't be resolved from inputs → surface them as open questions; do not write around them.
