Skip to content

Commit da7d470

Browse files
committed
docs(tmux-parity[skill]): update stale coverage claims
why: SKILL.md said "~28 of ~88 tmux commands wrapped" and listed join-pane, swap-pane, run-shell, display-popup as high-priority unwrapped — all of which the tmux-parity branch wraps. command-mapping.md likewise listed last-pane, next-layout, previous-layout, move-pane as alias/flag-covered, despite the branch adding direct wrappers for each (commits dd8c65f, 2ab4c65, aa00c45). Static numbers in generated docs go stale fast; static "unwrapped" lists go stale faster. what: - Rewrite SKILL.md "Current Coverage Summary" to point at the extraction scripts rather than baking in a number/list that immediately rots. Note that effective coverage is 100%. - Rewrite command-mapping.md "Covered by Alias/Flag" — there are now exactly four indirect cases (list-panes, list-windows, set-window-option, show-window-options), all reached through internal queries / option scoping. Updated count from 8/82 to 4/86. - Convert ```bash command blocks to ```console with $ prefix per AGENTS.md.
1 parent 3f8c5a5 commit da7d470

2 files changed

Lines changed: 34 additions & 26 deletions

File tree

skills/tmux-parity/SKILL.md

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -57,25 +57,31 @@ Class hierarchy mapping from tmux target types:
5757

5858
## Current Coverage Summary
5959

60-
**~28 of ~88 tmux commands wrapped** (~32% coverage, approximate — run extraction scripts for current data). High-priority unwrapped commands include: `join-pane`, `swap-pane`, `swap-window`, `respawn-pane`, `respawn-window`, `run-shell`, `break-pane`, `move-pane`, `pipe-pane`, `display-popup`.
60+
Coverage is effectively 100% — every tmux command is reachable from
61+
the Python API, either directly or via internal queries / option
62+
scoping. The four indirect cases are listed in
63+
`references/command-mapping.md`.
64+
65+
Static numbers go stale fast. **Run the extraction scripts** when you
66+
need current counts before making coverage claims.
6167

6268
## Extraction Scripts
6369

6470
Run these for up-to-date data:
6571

66-
```bash
67-
# All tmux commands with flags and target types
68-
bash .claude-plugin/scripts/extract-tmux-commands.sh ~/study/c/tmux
72+
```console
73+
$ bash .claude-plugin/scripts/extract-tmux-commands.sh ~/study/c/tmux
74+
```
6975

70-
# All tmux commands libtmux currently wraps
71-
bash .claude-plugin/scripts/extract-libtmux-methods.sh
76+
```console
77+
$ bash .claude-plugin/scripts/extract-libtmux-methods.sh
7278
```
7379

7480
## Additional Resources
7581

7682
### Reference Files
7783

7884
For detailed data, consult:
79-
- **`references/command-mapping.md`**Complete mapping of all ~88 tmux commands to libtmux methods, with flag coverage
85+
- **`references/command-mapping.md`**Mapping of every tmux command to its libtmux entrypoint, including the four reached indirectly
8086
- **`references/libtmux-patterns.md`** — Implementation patterns for wrapping new commands (method signatures, doctests, logging, error handling)
8187
- **`references/tmux-command-table.md`** — Guide to navigating tmux C source: cmd_entry fields, getopt format, target types, options-table.c, format.c

skills/tmux-parity/references/command-mapping.md

Lines changed: 21 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,33 @@
11
# tmux Command → libtmux Method Mapping
22

3-
Generated from tmux HEAD and libtmux source. Re-generate with:
4-
```bash
5-
bash .claude-plugin/scripts/extract-tmux-commands.sh ~/study/c/tmux
6-
bash .claude-plugin/scripts/extract-libtmux-methods.sh
3+
Run the extraction scripts for current data — these numbers shift as
4+
tmux and libtmux evolve:
5+
6+
```console
7+
$ bash .claude-plugin/scripts/extract-tmux-commands.sh ~/study/c/tmux
8+
```
9+
10+
```console
11+
$ bash .claude-plugin/scripts/extract-libtmux-methods.sh
712
```
813

914
## Summary
1015

11-
- **Directly wrapped**: 82/90 commands (91%)
12-
- **Covered by alias/flag**: 8 additional commands
13-
- **Total effective coverage**: 90/90 (100%)
16+
- **Directly invoked**: 86 of 90 tmux commands
17+
- **Covered indirectly via internal queries / option scoping**: 4
18+
- **Total effective coverage**: 90 / 90 (100%)
1419

15-
## Covered by Alias/Flag (8 commands)
20+
## Covered Indirectly (4 commands)
1621

17-
These commands are not called directly but their functionality is available:
22+
These four tmux commands aren't called by name in `libtmux` source but
23+
their functionality is reachable through other primitives:
1824

19-
| tmux Command | Covered By | How |
20-
|---|---|---|
21-
| `last-pane` | `Window.last_pane()`, `Pane.select(last=True)` | `-l` flag on select-pane |
22-
| `list-panes` | `Window.panes` property | Used internally by `neo.py` |
23-
| `list-windows` | `Session.windows` property | Used internally by `neo.py` |
24-
| `move-pane` | `Pane.join()` | Same C source as join-pane |
25-
| `next-layout` | `Window.select_layout(next_layout=True)` | `-n` flag on select-layout |
26-
| `previous-layout` | `Window.select_layout(previous_layout=True)` | `-o` flag on select-layout |
27-
| `set-window-option` | `OptionsMixin.set_option(scope=OptionScope.Window)` | Alias for `set-option -w` |
28-
| `show-window-options` | `OptionsMixin.show_options(scope=OptionScope.Window)` | Alias for `show-options -w` |
25+
| tmux Command | Reached Through |
26+
|---|---|
27+
| `list-panes` | `Window.panes` property (issued internally by `neo.py` queries) |
28+
| `list-windows` | `Session.windows` property (issued internally by `neo.py` queries) |
29+
| `set-window-option` | `OptionsMixin.set_option(scope=OptionScope.Window)``set-option -w` |
30+
| `show-window-options` | `OptionsMixin.show_options(scope=OptionScope.Window)``show-options -w` |
2931

3032
## Test Gaps (1 command)
3133

0 commit comments

Comments
 (0)