Skip to content

feat(module): add bpytop, gpustat, thefuck pipx tool modules - #385

Merged
ycpss91255 merged 2 commits into
mainfrom
auto/modules-pipx-c
Jul 11, 2026
Merged

feat(module): add bpytop, gpustat, thefuck pipx tool modules#385
ycpss91255 merged 2 commits into
mainfrom
auto/modules-pipx-c

Conversation

@ycpss91255

Copy link
Copy Markdown
Owner

Summary

Three custom-archetype (archetype D) tool modules for the small-tools
modularization program, mirroring the existing tmuxp / claude-monitor
pipx pattern. Each DEPENDS_ON=("pipx") and installs as the invoking user
via pipx install <name> (no inline pipx bootstrap — the engine installs
the pipx module first), with pipx upgrade / pipx uninstall for the
rest of the lifecycle.

Module Tags Install Doctor
bpytop monitoring cli pipx install bpytop bpytop --version
gpustat monitoring gpu pipx install gpustat gpustat --version
thefuck shell cli pipx install thefuck command -v thefuck

thefuck uses command -v thefuck for its doctor/verify probe because
thefuck --version needs the shell alias to behave, so presence on PATH is
the reliable signal. Its POST_INSTALL_MESSAGE explains the required
eval "$(thefuck --alias)" shell-rc setup (fish: thefuck --alias | source).

Contract conformance

Each module hand-defines all 10 mandatory lifecycle functions with a real
doctor() (ADR-0002, enforced by test/unit/module/contract_conformance_spec.bats,
the #305 contract-conformance meta-test). Each declares an en + zh-TW
DESCRIPTION, SUPPORTED_UBUNTU=("22.04" "24.04" "26.04"),
VERSION_PROVIDED="pipx-managed", SUPPORTS_USER_HOME=true,
INSTALL_TARGET_DEFAULT="user-home", and a TEST_VERIFY_CMD matching its
doctor probe, plus the dual-mode standalone/engine entry convention.

Tests

Each module ships a per-module unit spec (metadata sanity, is_installed
via pipx ownership, dry-run no-ops, no-side-effects, idempotency, sidecar
lifecycle ADR-0001, standalone CLI, and verify/doctor with a
real-binary probe). doc/module/INDEX.md regenerated (67 modules) and a
[Unreleased] CHANGELOG entry added.

Test plan

All gates run green in Docker on this branch:

Generated with Claude Code

https://claude.ai/code/session_01NX5H2vuMTv4mBmjpPYoS3s

ycpss91255 and others added 2 commits July 11, 2026 22:33
Three custom-archetype (archetype D) tool modules for the small-tools
modularization program, mirroring the tmuxp / claude-monitor pipx pattern.
Each DEPENDS_ON=("pipx") and installs as the invoking user via
`pipx install <name>` (no inline pipx bootstrap — the engine installs the
pipx module first), with `pipx upgrade` / `pipx uninstall` for the rest of
the lifecycle:

- bpytop  — terminal resource monitor; tags monitoring cli;
            doctor: bpytop --version.
- gpustat — compact per-GPU status monitor; tags monitoring gpu;
            doctor: gpustat --version.
- thefuck — corrects the previous mistyped console command; tags shell cli;
            doctor: command -v thefuck (a --version check needs the shell
            alias, so presence on PATH is the reliable signal); its
            POST_INSTALL_MESSAGE explains the required
            eval "$(thefuck --alias)" shell-rc setup.

Each hand-defines all 10 mandatory lifecycle functions with a real doctor()
(ADR-0002, #305 contract-conformance), declares en + zh-TW DESCRIPTION,
SUPPORTED_UBUNTU=(22.04 24.04 26.04), VERSION_PROVIDED="pipx-managed", and a
TEST_VERIFY_CMD matching its doctor probe, plus the dual-mode
standalone/engine entry convention. Adds a per-module unit spec each
(metadata sanity, is_installed via pipx ownership, dry-run no-ops,
idempotency, sidecar lifecycle ADR-0001, standalone CLI, verify/doctor with
a real-binary probe). Regenerates doc/module/INDEX.md (67 modules) and
records a CHANGELOG entry.

Gates green in Docker: test-unit (incl. contract_conformance / #305),
test-integration, coverage, lint.

Claude-Session: https://claude.ai/code/session_01NX5H2vuMTv4mBmjpPYoS3s

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
# Conflicts:
#	doc/module/INDEX.md
@ycpss91255
ycpss91255 enabled auto-merge (squash) July 11, 2026 14:35
@ycpss91255
ycpss91255 merged commit 2aae1c6 into main Jul 11, 2026
14 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant