assessment-model/.devcontainer/devcontainer.json
Jun-te Kim b914aca3ee chore(devcontainer): add Playwright with chromium and a headed noVNC viewer
Mirrors the Model devcontainer's Playwright setup for this Next.js repo, so
agents and humans can drive the running app in a browser.

The image bakes in chromium's apt libraries (as root) and the browser binary
(as vscode, so it lands in that user's cache), meaning a fresh container is
ready to run with no first-use download. The @playwright/test version and the
Dockerfile's PLAYWRIGHT_VERSION are pinned to the same number because Playwright
ties browser builds to a library version.

Also ports Model's headed viewer stack (Xvfb -> fluxbox -> x11vnc -> noVNC on
:6080) as scripts/start_viewer.sh, for watching a headed run.

Cypress is untouched; Playwright specs live in e2e/.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-14 17:15:38 +00:00

50 lines
1.9 KiB
JSON

{
"name": "assessment-model",
"dockerComposeFile": "docker-compose.yml",
"service": "frontend",
"remoteUser": "vscode",
"workspaceFolder": "/workspaces/assessment-model",
// Host preflight: ensure GitHub auth exists before we try to build.
// Either ~/.config/gh (from `gh auth login`) or a GITHUB_TOKEN env var.
"initializeCommand": "test -d \"$HOME/.config/gh\" || test -n \"$GITHUB_TOKEN\" || { echo >&2 'error: no GitHub auth found. Run `gh auth login && gh auth setup-git` on the host, or export GITHUB_TOKEN, then retry.'; exit 1; }",
// Install Domna's curated skill set (pinned to 0.0.5) into this workspace,
// then install npm deps. `gh repo clone` handles private-repo auth using
// the mounted host ~/.config/gh.
// impeccable (design-guidance skill, github.com/pbakaus/impeccable) is on
// trial for the home-page redesign; drop its `skills add` step to remove it.
"postCreateCommand": "gh repo clone Hestia-Homes/agentic-toolkit /tmp/agentic-toolkit -- --branch 0.0.8 --depth 1 && bash /tmp/agentic-toolkit/setup.sh && npx --yes skills@latest add pbakaus/impeccable --agent claude-code --copy --global --yes && npm install",
"forwardPorts": ["frontend:3000", "pgadmin:80", "frontend:6080"],
"portsAttributes": {
"frontend:3000": {
"label": "Next.js"
},
"frontend:6080": {
"label": "Playwright noVNC desktop",
"onAutoForward": "silent"
}
},
"mounts": [
// Optional, just makes getting from Downloads (local env) easier
"source=${localEnv:HOME},target=/workspaces/home,type=bind"
],
"customizations": {
"vscode": {
"settings": {
"files.defaultWorkspace": "/workspaces/assessment-model",
"editor.formatOnSave": true,
"editor.tabSize": 2,
"editor.insertSpaces": true
},
"extensions": [
"esbenp.prettier-vscode",
"Anthropic.claude-code"
]
}
}
}