feat(scaffold): ship team VSCode extension + settings recommendations#95
Merged
Conversation
Add `.vscode/extensions.json` and `.vscode/settings.json` to the scaffold so every project generated with `act new` ships with the toolchain-aligned IDE setup the template already assumes. extensions.json — required (5): - ms-python.python : Python LSP + debugger (Pylance bundled) - charliermarsh.ruff : matches [tool.ruff] + the ruff pre-commit hook - tamasfe.even-better-toml : pyproject.toml editing/validation - redhat.vscode-yaml : .pre-commit-config.yaml + GH workflows - bierner.markdown-mermaid : Mermaid preview for architecting-act's CLAUDE.md extensions.json — unwantedRecommendations: Explicitly block black/isort/flake8/pylint so new members do not introduce formatters that conflict with ruff. settings.json: - Format on save with ruff + fix + organize imports on save - pytest as the test runner, rooted at tests/ - Pyright basic mode (project uses `[tool.pyright]`) - Hide cache / venv directories from explorer and search .gitignore update: The previous `.vscode/` blanket ignore would have masked these team-shared files. Switched to `.vscode/*` plus negations for extensions.json and settings.json — personal launch.json / tasks.json remain ignored. Verified with `git check-ignore`: .vscode/extensions.json → tracked .vscode/settings.json → tracked .vscode/launch.json → ignored Verified end-to-end by regenerating a project with `act new` and inspecting the resulting `.vscode/`. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Contributor
There was a problem hiding this comment.
Code Review
This pull request updates the scaffold template to track team-shared VSCode configurations while ignoring other IDE files. It adds recommended extensions and default settings for Ruff, TOML, and YAML formatting. A review comment suggests changing "python.testing.pytestArgs" to an empty array to prevent potential test execution issues in the VSCode Test Explorer when individual tests are run.
Web research surfaced three more extensions that each map 1:1 to an artifact this template already ships: - hediet.vscode-drawio drawkit.xml (and drawkit_en.xml / drawkit_kr.xml in source) is a draw.io <mxlibrary>. Without this extension VSCode shows it as raw XML; with it, the file opens in the diagrams.net editor. - github.vscode-github-actions Three workflows ship in .github/workflows/ (pr_lint.yml, ruff.yml, uv_lock_upgrade.yml). The official extension validates against the Actions schema, autocompletes expressions, and surfaces job/step references — strictly more than the generic redhat.vscode-yaml. - mikestead.dotenv .env.example ships and users create .env locally. 1M+ install, zero-config syntax highlighting. LangGraph Visualizers (smazee.langgraph-visualizer) was evaluated but intentionally excluded for this round — the extension is at 0.3.x and LangGraph CLI / LangSmith Studio already provide a more authoritative graph view. No settings.json association for drawkit.xml — `*.xml` glob is too broad to safely force the drawio editor; users right-click → Open With → Draw.io on demand. Verified by regenerating with `act new`; `.vscode/extensions.json` renders with all eight recommendations. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Add six settings.json entries that map to this template's existing
toolchain so freshly scaffolded projects need no manual VSCode setup
beyond `Install Recommended Extensions`.
File hygiene (matches what ruff and pre-commit will enforce anyway —
just catches it at the editor so the loop is tighter):
- files.trimTrailingWhitespace = true
- files.insertFinalNewline = true
- files.trimFinalNewlines = true
Python toolchain:
- editor.rulers = [88]
Visual guide at ruff/Black default. The template ignores E501
so this is non-blocking — informational only.
- python.defaultInterpreterPath = "${workspaceFolder}/.venv/bin/python"
`uv sync` writes the venv to .venv; pin so the IDE picks it up
without a `Select Interpreter` prompt on first open.
- python.testing.autoTestDiscoverOnSaveEnabled = true
Pair with the existing `pytest.enabled` / `pytestArgs=["tests"]`
so new tests show up in the side panel as soon as they are saved.
Skipped after evaluation:
- langgraph.json JSON schema (not on SchemaStore; no public schema)
- editor.tabSize (ruff handles Python; setting it globally bleeds
into other languages)
- files.eol "\n" (only useful if the team has Windows members)
Verified by regenerating with `act new`: .vscode/settings.json
renders with all entries intact.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…/.vscode/settings.json Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
🚀 PR Type
act newand inspecting the rendered.vscode/.📝 Summary
act new로 생성되는 모든 신규 프로젝트가 팀 표준 VSCode 추천(필수 익스텐션 5종 + ruff/pytest 자동 활성화 설정)을 즉시 받도록 scaffold에.vscode/extensions.json과.vscode/settings.json을 추가.📄 Description
1.
.vscode/extensions.json이 템플릿의 도구 체인(uv / ruff / pytest / langgraph / Mermaid CLAUDE.md)에 직접 결합된 5개를
recommendations로 둠. 새 멤버가 프로젝트를 열면 VSCode가 자동 "Install Recommended Extensions" 알림 표시.ms-python.python[tool.pyright]설정과 통합charliermarsh.ruff[tool.ruff]/.pre-commit-config.yaml의 ruff hook과 1:1 매칭tamasfe.even-better-tomlpyproject.toml,casts/*/pyproject.toml편집/검증redhat.vscode-yaml.pre-commit-config.yaml,.github/workflows/*.yml편집/검증bierner.markdown-mermaidCLAUDE.mdMermaid 다이어그램 프리뷰unwantedRecommendations로 black/isort/flake8/pylint 명시적 제외 → 신규 멤버가 잘못 설치해서 ruff와 포맷 충돌 나는 사고 차단.2.
.vscode/settings.jsonsource.fixAll.ruff+source.organizeImports.ruff→ pre-commit 실패 사전 방지testpaths = ["tests"]자동 인식3.
.gitignore업데이트기존
.vscode/blanket ignore가 위 두 파일까지 무시했음. 다음 패턴으로 변경:개인 환경 파일(
launch.json,tasks.json,*.code-workspace)은 계속 무시.검증:
✅ Quality Checks
act new로 신규 프로젝트 생성 시.vscode/extensions.json+.vscode/settings.json정상 출력 확인git init && git add .시 두 파일 tracked,launch.json등은 ignored💪 Ownership
💡 Notes
.vscode/extensions.json/settings.json을 동일 형식으로 읽음 — 추가 작업 불필요.idea/(이미 ignore됨)로 관리recommendations에 추가 가능🤖 Generated with Claude Code