published-consumer-e2e · git:20261027.733819f · 2026-10-27 · sha256 427652e1faaf908a

published-consumer-e2e git:20261027.733819fA

Immutable. This exact content never changes and is served at /api/v1/blob/427652e1faaf908a.

---
name: published-consumer-e2e
description: Re-run PMX Canvas like an external user by packing the repo, installing the tarball into a clean temp workspace, seeding the SDLC demo, and validating it in a browser. Use when asked to verify the published-package workflow, artifact/json-render coverage, or the full outside-in demo.
---

# Published Consumer E2E

Use this skill when the goal is to test PMX Canvas from the outside instead of the repo dev path.

This helper requires a **source checkout**, Bun, Python 3, curl, and (for browser checks) Node
and the repo's Playwright dependencies/browser. The npm package ships this skill but not
`examples/`, `tests/`, or the source test runner. Installing the skill alone is not sufficient.
For an installed-only consumer, verify public CLI/MCP/HTTP/SDK operations in a disposable
workspace instead; do not claim this source helper ran.

## Default Path

From the source checkout, install dependencies and build the publishable assets first:

```bash
bun install
bun run build
bash skills/published-consumer-e2e/scripts/run-published-consumer-e2e.sh
```

That script will:

1. run `bun pm pack` against the real `package.json` publish surface, including skills,
   docs, plugins and TypeScript declarations,
2. create a clean temp consumer workspace,
3. install the tarball with Bun,
4. copy `examples/published-consumer-sdlc/` into that workspace,
5. start the seeded demo through the package's public SDK,
6. run the existing `tests/e2e/published-consumer.pw.ts` through the Node Playwright runner,
   headed by default, asserting visible artifact/JSON/graph content, context pins, node types
   and the saved baseline snapshot.

This proves a local packed install, not the identity or integrity of a registry release.

## Flags

- `--port=4600` to change the server port
- `--skip-playwright` to stop after pack/install + HTTP smoke
- `--headless` only when explicitly requested
- `--keep-running` to leave the temp consumer server alive after the script exits
- `--workdir=/tmp/custom-dir` to choose an empty temp location (existing files are never replaced)

## Notes

- Install the repo's matching browser with `bun run test:install-browsers` if needed.
- Default to headed browser validation so the human can watch the run.
- Prefer the script over manually rebuilding the temp consumer.
- If you change the example assets or this browser test, rerun the full script instead of repo-only tests.
- Run on a dedicated port. In Amp orbs the server uses a supervised service; otherwise it reports
  a process ID. With `--keep-running`, stop the printed `PMX_SERVER_SERVICE` using
  `amp orb service stop <name>`, or terminate the printed `PMX_SERVER_PID` outside an orb.
- The browser runner also starts the repo config's separate fixture server. Set
  `PMX_PLAYWRIGHT_PORT` to a free port when running alongside another browser suite.
- Logs, tarball and browser failure artifacts remain in the printed temp workspace for inspection.
- On failure, inspect the temp workspace log path printed by the script before changing code.