# Deploy Platform Stack

> End-to-end deployment of an infrastructure platform using docker-compose files and Portainer MCP.

- Skill: `knuckles-team/deploy-platform-stack` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add knuckles-team/deploy-platform-stack`
- Raw SKILL.md: https://api.skillmd.com/api/skills/knuckles-team/deploy-platform-stack/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: DevOps & Infra
- Author: Knuckles-Team (https://skillmd.com/u/knuckles-team)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/knuckles-team/deploy-platform-stack

---


# Deploy Platform Stack Workflow

**CONCEPT:INFRA-001**

End-to-end deployment of an infrastructure platform using docker-compose files and Portainer MCP.

## Steps

### Step 0: resolve-portainer-endpoint [skill: portainer-mcp]
**Agent**: `discovery-agent`
**Tools**: `tun_tm_system, tun_tm_hosts`

Use portainer_environment to get the endpoint ID where the stack will be deployed.
Expected: `endpoint, id`

### Step 1: create-portainer-stack [skill: portainer-mcp]
**Agent**: `deployer-agent`
**Tools**: `pt_stack, cnt_cm_compose_operations`

Use portainer_stack to create the standalone stack from the docker-compose file.
Expected: `stack, create`

### Step 2: KG Persistence [depends_on: Step 0, Step 1]
**Agent**: `deployer-agent`
**Tools**: `graph_write`

Persist workflow results as nodes and edges in the Knowledge Graph.
Create appropriate typed nodes with metadata and link to existing domain entities.

## Output
- Deploy Platform Stack results persisted in KG
- Structured report (MD/PDF)
- Audit trail with timestamps and agent attributions

## Execution

Run this workflow as a dependency-ordered DAG. Steps with no unmet `depends_on` run in parallel; dependents run after their prerequisites complete.

- **Run first (in parallel):** Step 0 — resolve-portainer-endpoint; Step 1 — create-portainer-stack
- **After level 0:** Step 2 — KG Persistence

**Execution:** If graph-os is reachable, offload the whole DAG via `graph_orchestrate action=execute_workflow` (or the `kg-delegate` skill) for true parallel/swarm execution. Otherwise execute the steps natively in dependency order: run steps with no unmet `depends_on` in parallel, then their dependents.

