8.7 KiB
phase, plan, type, wave, depends_on, files_modified, autonomous, requirements, must_haves
| phase | plan | type | wave | depends_on | files_modified | autonomous | requirements | must_haves | |||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 11-real-world-rollout-feedback | 01 | execute | 1 |
|
false |
|
|
Purpose: RWR-01 requires ImpTune to actually be running somewhere real — not on localhost — before any real package can be pushed. This plan is the "get it on a real host" step.
Output: A deployed, reachable ImpTune container plus .planning/phases/11-real-world-rollout-feedback/deploy/DEPLOYMENT.md recording where it lives.
<execution_context> @C:/Users/SebastienQUEROL/.claude/get-shit-done/workflows/execute-plan.md @C:/Users/SebastienQUEROL/.claude/get-shit-done/templates/summary.md </execution_context>
@.planning/PROJECT.md @.planning/STATE.md @.planning/ROADMAP.md @.planning/REQUIREMENTS.md @.planning/phases/10-real-world-runtime-validation/RUNTIME-VALIDATION.md Task 1: Scaffold DEPLOYMENT.md and lock build metadata .planning/phases/11-real-world-rollout-feedback/deploy/DEPLOYMENT.md Create `.planning/phases/11-real-world-rollout-feedback/deploy/DEPLOYMENT.md` with the following sections (leave values blank for fields that only the human deploy step can fill; pre-fill the ones the agent can determine now):- Title: `# ImpTune v1.1 Rollout Deployment Record`
- Build metadata (pre-fill now from the working tree):
- `commit_sha:` — run `git rev-parse HEAD` and paste the full SHA
- `commit_date:` — run `git show -s --format=%ci HEAD`
- `branch:` — run `git rev-parse --abbrev-ref HEAD`
- `dirty:` — yes/no from `git status --porcelain` (non-empty = yes)
- Docker image (leave blank for the human to fill during deploy):
- `image_tag:` (e.g. `imptune:v1.1-rollout`)
- `image_digest:` (from `docker images --digests` after build)
- Deployment target (leave blank for the human):
- `msp_name:`
- `host:` (hostname or IP of the Docker host inside the MSP env)
- `url:` (full URL the technician will open — http(s)://host:port)
- `deployed_by:`
- `deployed_at:` (ISO8601)
- `container_id:`
- Notes section (free text, optional)
Also pre-fill a short "How this was deployed" checklist placeholder with the three steps the human will perform in Task 2: build image, transfer/pull on MSP host, `docker run` with persistent volume for `imptune.db` + `uploads/`.
Do NOT attempt to `docker build` or `docker run` in this task — this task is metadata scaffolding only.
Built so far: DEPLOYMENT.md scaffold from Task 1 with commit SHA locked.
Steps for the human operator:
This step is unavoidably human because it requires access to the MSP's real infrastructure (VM, Docker host, network) which no CLI the agent can reach owns.
Steps for the human operator:
1. On a workstation with Docker:
- `docker build -t imptune:v1.1-rollout .` (from repo root)
- `docker images --digests imptune:v1.1-rollout` — copy the digest
2. Transfer image to MSP host (choose one):
- `docker save imptune:v1.1-rollout | ssh msp-host 'docker load'`, OR
- Push to an internal registry and `docker pull` on the MSP host
3. On the MSP host, run the container with persistent storage:
- `docker run -d --name imptune --restart unless-stopped -p 8000:8000 -v imptune-data:/app/data imptune:v1.1-rollout`
- (Adjust port / volume path to match the repo's actual Dockerfile — confirm by reading `Dockerfile` + `imptune/config.py` before running.)
4. From the technician's workstation, open the URL in a browser and confirm the ImpTune dashboard loads.
5. Fill DEPLOYMENT.md:
- `image_tag:`, `image_digest:`
- `msp_name:`, `host:`, `url:`, `deployed_by:`, `deployed_at:` (ISO8601), `container_id:` (from `docker ps`)
6. Commit DEPLOYMENT.md.
Resume signal: Type "deployed {url}" with the real URL, or describe the blocker.
Built so far: Deployed ImpTune container + filled DEPLOYMENT.md.
Steps for the human operator:
-
Open
.planning/phases/11-real-world-rollout-feedback/deploy/DEPLOYMENT.md— confirm no placeholder fields are still blank among: image_tag, image_digest, msp_name, host, url, deployed_by, deployed_at, container_id. 2. From any machine with access, open the recordedurl:in a browser — ImpTune dashboard must load. 3. On the MSP host, rundocker ps --filter name=imptune --format '{{.Status}}'— status must beUp. 4. Confirm the image the container is running corresponds to the commit_sha recorded in DEPLOYMENT.md (spot-check: container's/appshould match, or rely on image_digest match).Resume signal: Type "verified" or list the gaps. MISSING — checkpoint is human-gated; verification is operator attestation captured via the resume-signal. Agent should confirm the referenced artifact file was updated (e.g. grep for the newly-filled field in the target doc) before accepting the resume signal. Human operator has performed the steps above, updated the referenced artifact, and replied with the resume signal.
<success_criteria> ImpTune is running in a single Docker container on a real MSP host, reachable at a recorded URL, and DEPLOYMENT.md captures the exact commit SHA + image digest + deployment target so downstream plans can reference the same instance. </success_criteria>
After completion, create `.planning/phases/11-real-world-rollout-feedback/11-01-deploy-container-to-msp-SUMMARY.md`