You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: .claude/skills/add-icon/SKILL.md
+10-2Lines changed: 10 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -43,9 +43,17 @@ pnpm run icons:svgo # Optimize SVGs
43
43
pnpm run build:icons # Generate font (runs svgo + fantasticon + apply + export)
44
44
```
45
45
46
-
### 4. Update Font References
46
+
### 4. Verify Font Cache-Busting
47
47
48
-
Copy the new `glicons.woff2?{hash}` URL from `src/webviews/apps/shared/glicons.scss` and search-replace the old URL across the codebase.
48
+
`pnpm run build:icons` (via `scripts/applyIconsContribution.mjs`) now automatically propagates the new `glicons.woff2?{hash}` cache-bust hash into **both**`src/webviews/apps/shared/glicons.scss`**and** every per-app webview `*.html` file (each declares its own `@font-face`). No manual search-replace needed.
49
+
50
+
Verify they're all unified (every reference must be the same hash):
-**`read_logs` uses `pattern`, NOT `filter`.** A wrong/unknown arg is silently ignored and it falls back to `pattern: "GitLens"` — so you only ever see the activation banner and wrongly conclude "no logs". Always: `read_logs({ pattern: "<tag>", last_n })`.
40
+
-`read_logs` DOES capture extension-**host**`console.log/warn/error` and GitLens `Logger.warn`/`info`/`error` (info+). It reads the GitLens **LogOutputChannel**, also on disk at `.vscode-test/user-data/logs/<TS>/window1/exthost/eamodio.gitlens/GitLens.log`. `read_console` is webview-only (does not see host logs).
41
+
-**`@debug`/`@trace` decorator logs are filtered out.** The channel defaults to `info`; GitLens' rich tracing is `debug`/`trace`. Console-mirroring (`Logger.isDebugging`) is gated on `ExtensionMode.Development`, but the inspector runs in **Test** mode → off. `gitlens.enableDebugLogging` (which runs `workbench.action.output.activeOutputLogLevel.debug`) does NOT take headless. So for ad-hoc host tracing, **instrument with `Logger.warn('[tag] …')`** (info+, always written) and read via `read_logs({ pattern: "[tag]" })`. `gitlens.outputLevel` is deprecated — don't rely on it.
Copy file name to clipboardExpand all lines: .claude/skills/worktree/SKILL.md
+33-10Lines changed: 33 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,7 +5,14 @@ description: Use when starting feature work that needs isolation from current wo
5
5
6
6
# GitLens Worktree Creation
7
7
8
-
This project uses a custom worktree convention. The `WorktreeCreate` and `WorktreeRemove` hooks in `.claude/settings.json` handle automatic worktree creation. This skill documents the conventions for manual worktree operations.
8
+
This project uses a custom worktree convention: worktrees live in a sibling `<repo-name>.worktrees/` directory (the layout the `worktree.mts` hook in `.claude/settings.json` is built around), **not** in the `EnterWorktree` default location.
9
+
10
+
Because of that, the flow has two steps:
11
+
12
+
1.**Create** the worktree with `git worktree add` following the convention below (so it lands in the sibling `.worktrees/` dir with the right name).
13
+
2.**Switch into it** by calling the built-in `EnterWorktree` primitive with `path`. This moves the session's working directory into the worktree — a plain `cd` in Bash does not.
14
+
15
+
> **Do not** call `EnterWorktree` with `name` to create the worktree. Inside a git repo it ignores the hook and places the worktree in `.claude/worktrees/` (which is not gitignored) on a branch off `origin/main`, breaking this project's convention. Always create first, then enter by `path`.
9
16
10
17
## Directory Convention
11
18
@@ -40,30 +47,46 @@ Follow the conventions in AGENTS.md:
40
47
| Tech debt |`debt/`|`debt/library`|
41
48
| With issue | include `#N`|`feature/#1234-search-natural-language`|
42
49
43
-
## Manual Worktree Creation
44
-
45
-
When creating a worktree manually (not via the hook):
50
+
## Creating and Entering a Worktree
46
51
47
52
```bash
48
53
# 1. Find the worktrees root
49
54
REPO_ROOT=$(git rev-parse --path-format=absolute --git-common-dir | sed 's|/.git$||')
Then switch the session into it with the **`EnterWorktree`** primitive, passing the path you just created:
66
+
67
+
```
68
+
EnterWorktree({ path: "<absolute path to $WORKTREES_ROOT/<type>/<name>>" })
59
69
```
60
70
61
-
## Setup After Creation
71
+
`EnterWorktree` requires an absolute path that already appears in `git worktree list` — which is why creation comes first. After this, all subsequent tool calls run inside the worktree.
72
+
73
+
## Leaving a Worktree
74
+
75
+
When the work is done (or you need to return to the original repo), call **`ExitWorktree`**:
76
+
77
+
```
78
+
ExitWorktree({ action: "keep" })
79
+
```
80
+
81
+
Use `action: "keep"` — `ExitWorktree` will **not** remove a worktree that was entered by `path` (only ones it created via `name`), so `keep` is the correct, non-destructive choice here. The worktree and its branch stay on disk; remove them later with `git worktree remove` if needed.
82
+
83
+
## Setup Notes
62
84
63
-
The `WorktreeCreate` hook automatically runs `pnpm install` in the new worktree. No manual setup is needed. Skip test baseline verification — builds are expensive in this project; verify after implementation instead.
85
+
- Skip test baseline verification — builds are expensive in this project; verify after implementation instead.
64
86
65
87
## Key Differences from Default Superpowers Skill
66
88
67
89
- Worktrees are **outside** the repo (sibling `.worktrees/` directory), not inside
68
90
- No `.gitignore` verification needed — the directory is outside the repo
91
+
- Create with `git worktree add` first, then enter via `EnterWorktree({ path })` — never create with `EnterWorktree({ name })` (it bypasses the convention)
69
92
- Skip test baseline (build is too slow for setup)
0 commit comments