{"id":50973620,"url":"https://github.com/ravikiranvs/template-claude-python-node","last_synced_at":"2026-06-19T05:03:16.741Z","repository":{"id":359779167,"uuid":"1247475521","full_name":"ravikiranvs/template-claude-python-node","owner":"ravikiranvs","description":"Devcontainer template for AI-assisted development with Claude Code — includes Node 22, Python, Playwright CLI, and pre-configured engineering skills.","archived":false,"fork":false,"pushed_at":"2026-05-23T11:31:34.000Z","size":6,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-23T13:23:27.165Z","etag":null,"topics":["claude-code","devcontainer","developer-tools","playwright"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ravikiranvs.png","metadata":{"files":{"readme":"Readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-23T11:17:14.000Z","updated_at":"2026-05-23T11:31:38.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/ravikiranvs/template-claude-python-node","commit_stats":null,"previous_names":["ravikiranvs/template-claude-python-node"],"tags_count":null,"template":true,"template_full_name":null,"purl":"pkg:github/ravikiranvs/template-claude-python-node","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ravikiranvs%2Ftemplate-claude-python-node","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ravikiranvs%2Ftemplate-claude-python-node/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ravikiranvs%2Ftemplate-claude-python-node/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ravikiranvs%2Ftemplate-claude-python-node/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ravikiranvs","download_url":"https://codeload.github.com/ravikiranvs/template-claude-python-node/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ravikiranvs%2Ftemplate-claude-python-node/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34517752,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-19T02:00:06.005Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["claude-code","devcontainer","developer-tools","playwright"],"created_at":"2026-06-19T05:03:15.169Z","updated_at":"2026-06-19T05:03:16.729Z","avatar_url":"https://github.com/ravikiranvs.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Claude Code Devcontainer Template\n\nA ready-to-use devcontainer for AI-assisted development with Claude Code, Playwright CLI, and a curated set of engineering skills. Open any repo with this template and your AI workflow is pre-configured.\n\n## What's included\n\n- **Ubuntu devcontainer** with Node 22, Python 3.12, ripgrep, jq, tree, and the GitHub CLI\n- **Claude Code** pre-installed and configured\n- **`playwright-cli`** for token-efficient browser automation with AI agents\n- **Claude Code skills** from [mattpocock/skills](https://github.com/mattpocock/skills): `setup-matt-pocock-skills`, `grill-with-docs`, `to-prd`, `to-issues`, `tdd`\n- **Persistent volumes** for Claude config and skills — survive container rebuilds\n- **`CLAUDE.md`** at the repo root — Claude Code reads this every session for project context\n\n---\n\n## Prerequisites\n\nBefore you start, make sure you have the following installed and configured on your machine.\n\n**Docker Desktop**\nRequired to build and run the devcontainer.\nhttps://www.docker.com/products/docker-desktop\n\nOn Windows, enable the WSL 2 backend in Docker Desktop settings.\n\n**VS Code**\nhttps://code.visualstudio.com\n\n**Dev Containers extension for VS Code**\nInstall from the VS Code marketplace, or run:\n```bash\ncode --install-extension ms-vscode-remote.remote-containers\n```\n\n**Claude Code authentication**\nYou need a Claude account and an active Claude Code session. If you haven't authenticated yet, run `claude` in a terminal and follow the login prompt before opening the devcontainer.\n\n**GitHub CLI authentication (optional)**\nRequired if you want `to-prd` and `to-issues` to create GitHub issues automatically. Authenticate on your host machine before opening the container:\n```bash\ngh auth login\n```\nThe container inherits your `gh` credentials via the devcontainer.\n\n---\n\n## Usage\n\n### 1. Create your repo from this template\n\nClick **Use this template** at the top of this page and create a new repository.\n\n### 2. Clone your new repo and open it in VS Code\n\n```bash\ngit clone https://github.com/your-username/your-repo\ncode your-repo\n```\n\n### 3. Reopen in container\n\nVS Code will detect the `.devcontainer` folder and prompt you:\n\n\u003e Reopen in Container\n\nClick it. If the prompt doesn't appear, open the command palette (`Ctrl+Shift+P` / `Cmd+Shift+P`) and run:\n\n\u003e Dev Containers: Reopen in Container\n\nThe first build takes a few minutes. Subsequent opens are fast.\n\n### 4. Run first-time setup\n\nOnce the container is ready, open Claude Code and run:\n\n```\n/setup-matt-pocock-skills\n```\n\nThis configures the engineering skills for your repo — issue tracker, triage labels, and domain doc layout. Run it once per repo. All other skills depend on it.\n\nThen open `CLAUDE.md` and follow the instructions in the `## Autonomous issue loop` section — uncomment the block that matches your issue tracker (GitHub or local markdown) and delete the other.\n\n---\n\n## Workflow\n\nUse these slash commands in Claude Code for a structured feature development loop:\n\n| Step | Command | What it does |\n|---|---|---|\n| 1 | `/grill-with-docs` | Stress-tests your plan against the existing domain model and docs |\n| 2 | `/to-prd` | Synthesizes the conversation into a PRD, filed as a GitHub issue or markdown file |\n| 3 | `/to-issues` | Breaks the PRD into vertical-slice issues (HITL and AFK) |\n| 4 | `/goal` | Autonomous loop — works through issues one by one until all are done |\n\n### Autonomous issue loop\n\nAfter `/to-issues`, run `/goal` with the condition that matches your issue tracker:\n\n**GitHub issues:**\n```\n/goal `gh issue list --label afk --state open` returns empty and all tests pass\n```\n\n**Local markdown issues:**\n```\n/goal all markdown files in .scratch/issues/ have status: done and all tests pass\n```\n\nClaude will pick up each open issue, implement it using `/tdd`, close it, and move to the next — without you prompting each step.\n\n---\n\n## Project structure\n\n```\nyour-repo/\n├── .devcontainer/\n│   ├── devcontainer.json       # Container config, mounts, extensions\n│   ├── Dockerfile              # Ubuntu 24.04 + Node 22 + Python 3.12 + gh + playwright-cli\n│   └── postCreateCommand.sh    # Runs once after container is created\n└── CLAUDE.md                   # Project instructions read by Claude Code\n```\n\n---\n\n## Customising for your project\n\n**Add your own conventions to `CLAUDE.md`**\nThe `## Code conventions` section is intentionally minimal. Add anything Claude Code should know about your stack, folder structure, naming conventions, or preferred libraries.\n\n**Add VS Code extensions**\nAdd extension IDs to the `extensions` array in `.devcontainer/devcontainer.json`.\n\n**Add project dependencies**\nUncomment and adapt the example blocks at the bottom of `postCreateCommand.sh`:\n```bash\necho \"[postCreate] Installing dependencies...\"\nnpm ci\n```\n\n**Add more skills**\nBrowse [skills.sh](https://www.skills.sh) or [github.com/mattpocock/skills](https://github.com/mattpocock/skills) and add `--skill` flags to the `npx skills add` call in `postCreateCommand.sh`.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fravikiranvs%2Ftemplate-claude-python-node","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fravikiranvs%2Ftemplate-claude-python-node","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fravikiranvs%2Ftemplate-claude-python-node/lists"}