Skip to content

Commit f3c37a2

Browse files
committed
vscode-devcontainer-20260507 and update tools
1 parent 6f4f455 commit f3c37a2

7 files changed

Lines changed: 251 additions & 202 deletions

File tree

.devcontainer/compose.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
services:
22
workspace:
33
# https://github.com/supinf/dockerized-tools/blob/master/vscode-devcontainer/versions/go1.26-node25/Dockerfile
4-
image: ghcr.io/supinf/vscode-devcontainer:20260501
4+
image: ghcr.io/supinf/vscode-devcontainer:20260507
55
volumes:
66
- ../:/workspace
77
- $HOME/.config/gcloud:/root/.config/gcloud

.github/workflows/main.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,12 @@ jobs:
2323
matrix:
2424
include:
2525
- image_name: vscode-devcontainer
26-
image_tag: 20260504
26+
image_tag: 20260507
2727
filter_ref: gh-devcontainer
2828
dockerfile_path: vscode-devcontainer/versions/node25/
2929
platforms: linux/amd64,linux/arm64
3030
- image_name: vscode-devcontainer
31-
image_tag: go-20260504
31+
image_tag: go-20260507
3232
filter_ref: gh-devcontainer
3333
dockerfile_path: vscode-devcontainer/versions/go1.26-node25/
3434
platforms: linux/amd64,linux/arm64

.rulesync/rulesync.sh

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,23 @@
11
#!/bin/bash
22
set -euo pipefail
33

4+
# OS detection for sed -i compatibility
5+
if [ "$(uname)" == "Darwin" ]; then
6+
SED_INPLACE=(-i '')
7+
else
8+
SED_INPLACE=(-i)
9+
fi
10+
411
# .claude/settings.local.json を事前に退避する(rm -rf .claude で消えるため)
512
SAVED_SETTINGS_LOCAL=""
613
if [ -f .claude/settings.local.json ]; then
714
SAVED_SETTINGS_LOCAL=$(cat .claude/settings.local.json)
815
fi
916

10-
rm -rf .claude .codex .cursor .gemini .roo .cursorignore .geminiignore .rooignore .mcp.json AGENTS.md CLAUDE.md GEMINI.md
17+
rm -rf .cursor .claude .codex .gemini .cursorignore .geminiignore .mcp.json AGENTS.md CLAUDE.md GEMINI.md
1118

12-
rulesync generate --targets cursor,claudecode,codexcli,geminicli --features commands,subagents,skills,hooks
13-
rulesync generate --targets roo --features commands,subagents,skills --simulate-subagents
14-
rulesync generate --targets cursor,roo,claudecode,geminicli,codexcli --features mcp,rules,ignore,permissions
19+
rulesync generate --targets cursor,claudecode,geminicli --features commands,rules,skills,ignore
20+
rulesync generate --targets codexcli --features rules,skills
1521

1622
TMP=$(mktemp)
1723
trap 'rm -f "$TMP"' EXIT
@@ -46,8 +52,8 @@ fi
4652
echo -e "\nFixing prompt format in .gemini/commands/*.toml files...\n"
4753
for f in .gemini/commands/*.toml; do
4854
[ -f "$f" ] || continue
49-
sed -i "s/prompt = \"\"\"/prompt = '''/g" "$f"
50-
sed -i "s/^\"\"\"$/'''/g" "$f"
55+
sed "${SED_INPLACE[@]}" "s/prompt = \"\"\"/prompt = '''/g" "$f"
56+
sed "${SED_INPLACE[@]}" "s/^\"\"\"$/'''/g" "$f"
5157
done
5258

5359
echo -e "\nAll post-generation steps completed successfully.\n"

.rulesync/skills/find-proper-software-version/SKILL.md

Lines changed: 71 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -9,28 +9,67 @@ Given a package name, its current version, and its source type, searches authori
99

1010
## Instructions
1111

12-
### Step 1: Select the Lookup Strategy
12+
### Step 1: Direct API / CLI Lookup (Primary — Always Try First)
1313

14-
Choose the search approach based on source type:
14+
Use Bash commands to query authoritative sources directly. These are faster and more reliable than web searches, which frequently return stale data.
1515

16-
| Source Type | Primary Lookup | Query Pattern |
17-
| ----------------- | ----------------------------- | -------------------------------------------------- |
18-
| `go-module` | pkg.go.dev or GitHub releases | `"<module path>" latest release` |
19-
| `npm-package` | npmjs.com | `site:npmjs.com "<package name>" versions` |
20-
| `github-release` | GitHub releases page | `site:github.com "<owner>/<repo>" releases latest` |
21-
| `maven-central` | search.maven.org | `site:search.maven.org "<groupId>" "<artifactId>"` |
22-
| `debian-snapshot` | snapshot.debian.org | `site:snapshot.debian.org trixie latest snapshot` |
16+
**npm-package:**
17+
```bash
18+
npm view <package-name> version
19+
```
20+
For scoped packages (e.g. `@google/gemini-cli`):
21+
```bash
22+
npm view "@google/gemini-cli" version
23+
```
24+
25+
**github-release** and **go-module** (installed via `go install` from GitHub):
26+
```bash
27+
curl -s "https://api.github.com/repos/<owner>/<repo>/releases/latest" \
28+
| python3 -c "import sys,json; d=json.load(sys.stdin); print(d.get('tag_name','NOT FOUND'))"
29+
```
30+
31+
**debian-snapshot** — find the latest available snapshot date for the `trixie` suite:
32+
```bash
33+
curl -s "https://snapshot.debian.org/archive/debian/?year=YYYY&month=MM" \
34+
| python3 -c "
35+
import sys, re
36+
dates = re.findall(r'(\d{8})T\d+Z', sys.stdin.read())
37+
print('Latest:', max(dates) if dates else 'none found')
38+
"
39+
```
40+
Use the current year and month. If no dates appear for the current month, try the previous month.
41+
42+
**maven-central:**
43+
```bash
44+
curl -s "https://search.maven.org/solrsearch/select?q=g:<groupId>+AND+a:<artifactId>&rows=1&wt=json&core=gav" \
45+
| python3 -c "import sys,json; docs=json.load(sys.stdin)['response']['docs']; print(docs[0]['v'] if docs else 'NOT FOUND')"
46+
```
47+
48+
If the Bash tool is unavailable or the command fails, fall back to Step 2.
49+
50+
### Step 2: WebSearch Fallback
2351

24-
### Step 2: Search and Validate the Version
52+
Use WebSearch only when direct API/CLI lookup is unavailable or fails. Note that search results are often stale by days or weeks — prefer the direct lookup whenever possible.
2553

26-
Use WebSearch with the query above. Then:
54+
| Source Type | Fallback Query Pattern |
55+
| ----------------- | ---------------------------------------------------------- |
56+
| `go-module` | `site:github.com "<owner>/<repo>" releases latest` |
57+
| `npm-package` | `site:npmjs.com "<package name>" versions` |
58+
| `github-release` | `site:github.com "<owner>/<repo>" releases latest` |
59+
| `maven-central` | `site:search.maven.org "<groupId>" "<artifactId>"` |
60+
| `debian-snapshot` | `snapshot.debian.org trixie YYYYMM latest snapshot` |
2761

28-
1. Identify the most recent release tag.
29-
2. **Reject** any version that contains: `-alpha`, `-beta`, `-rc`, `-pre`, `-dev`, or `.dev`.
30-
3. If the latest tag is a pre-release, use the most recent **stable** tag instead.
31-
4. Confirm the version is a proper release (not a draft or yanked).
62+
### Step 3: Validate the Version
3263

33-
### Step 3: Verify the Version String Format
64+
After obtaining a version string via either method:
65+
66+
1. **Reject** any version that contains: `-alpha`, `-beta`, `-rc`, `-pre`, `-dev`, or `.dev`.
67+
2. If the latest tag is a pre-release, use the most recent **stable** tag instead.
68+
3. Confirm the version is a proper release (not a draft or yanked).
69+
70+
For **npm packages**, the `version` field returned by `npm view` reflects the `latest` dist-tag, which is always the current stable release. No additional filtering is needed unless the package is known to publish preview builds to `latest`.
71+
72+
### Step 4: Verify the Version String Format
3473

3574
Match the format already used in the Dockerfile:
3675

@@ -42,27 +81,27 @@ Match the format already used in the Dockerfile:
4281

4382
If the Dockerfile currently uses `v`-prefixed, return `v`-prefixed. Never change the format.
4483

45-
### Step 4: Handle Special Cases
84+
Note: the GitHub API returns tags exactly as published (e.g. `v1.26.3`). Use the tag as-is if it matches the Dockerfile's current format.
4685

47-
**`gopls` and `goimports`** — installed with `@latest` intentionally.
48-
Return: `SKIP — intentionally unpinned`
86+
### Step 5: Handle Special Cases
4987

50-
**`ARCHGATE_VERSION` + `ARCHGATE_GIT_SHA`**these two must be updated together.
51-
After finding the new `ARCHGATE_VERSION`, run:
88+
**`gopls` and `goimports`**installed with `@latest` intentionally.
89+
Return: `SKIP — intentionally unpinned`
5290

91+
**`ARCHGATE_VERSION` + `ARCHGATE_GIT_SHA`** — these two must be updated together.
92+
After finding the new `ARCHGATE_VERSION` via `npm view archgate version`, retrieve the SHA:
93+
```bash
94+
npm view "archgate@<new_version>" gitHead
5395
```
54-
WebSearch: npm view archgate@<new_version> gitHead
55-
```
56-
5796
Return both the version string and the corresponding SHA.
5897

5998
**`DELVE_VERSION`** — must match the Go major version. When called for Delve, also receive the target Go version as context. The Delve release tag must be `v<go-major>.<x>.<y>` — verify compatibility on the [Delve compatibility table](https://github.com/go-delve/delve/tree/master/Documentation/compatibility) if the Go major version changed.
6099

61-
**`DEBIAN_VERSION`**for a dated Debian snapshot, search for the latest snapshot date available for the `trixie` suite at `https://snapshot.debian.org/`. Return in the format `trixie-YYYYMMDD`.
100+
**`DEBIAN_VERSION`**query `snapshot.debian.org` directly (see Step 1). Return in the format `trixie-YYYYMMDD` using the latest available date.
62101

63102
**`openjdk-25-jdk-headless` (apt package)** — the package name encodes the major version. Do not change the major version number unless a newer JDK major is confirmed available in the Debian `trixie` repo. Return the package name as-is if no major version change is needed.
64103

65-
### Step 5: Return the Result
104+
### Step 6: Return the Result
66105

67106
Return a single structured block:
68107

@@ -72,6 +111,7 @@ Variable: <ENV var name in Dockerfile>
72111
Current: <current version string>
73112
Latest Stable: <new version string>
74113
Source URL: <the specific page or release URL you used>
114+
Lookup Method: <direct-api | websearch>
75115
Format: <v-prefixed | bare | date>
76116
Change Level: <patch | minor | major | none>
77117
Notes: <any caveats, coordination requirements, or breaking change warnings>
@@ -81,8 +121,12 @@ If the current version is already the latest, set `Change Level: none` and expla
81121

82122
## Common Issues
83123

84-
**Version not found via WebSearch**: Fall back to fetching the GitHub releases page or npm registry directly with WebFetch. Prefer the official release page over aggregator sites.
124+
**WebSearch returns a version older than the currently pinned one**: This is a known issue — search indexes lag behind actual releases. Always verify using the direct API/CLI method. Do not downgrade a version based solely on stale search results.
125+
126+
**GitHub API rate limiting**: Unauthenticated requests are limited to 60/hour. If rate-limited, fall back to WebSearch. If a `GITHUB_TOKEN` environment variable is set, pass it via `-H "Authorization: token $GITHUB_TOKEN"`.
85127

86128
**Ambiguous latest**: Some projects maintain multiple stable branches (e.g. LTS vs. current). Default to the **current stable** branch unless the Dockerfile is already on an LTS line — in that case stay on the same LTS branch.
87129

88130
**Version behind a git tag vs. a semver release**: For `go install` packages, prefer the semver tag published on pkg.go.dev over raw git tags, as the former confirms the module is properly versioned.
131+
132+
**`npm view` returns an unexpected older version**: The `latest` dist-tag can occasionally be set to a lower version number than others published. If the currently pinned version is higher than what `npm view` returns, investigate before downgrading — the maintainer may have intentionally rolled back `latest`.

0 commit comments

Comments
 (0)