feat(module): add vlc, ibus-rime, cheese, v4l-utils, gnome-shell-extension-manager desktop modules - #384
Merged
Merged
Conversation
…nsion-manager desktop modules
Five desktop-only apt-archetype modules for the small-tools modularization
program (module/<name>.module.sh + test/unit/module/<name>_spec.bats each).
All are SUPPORTED_PLATFORMS=("desktop") optional modules wired via
module_use_apt_archetype, installing their named apt package (vlc, ibus-rime,
cheese, v4l-utils, gnome-shell-extension-manager).
Each has a module-defined detect() and a desktop-gated is_recommended()
(recommended only on the desktop form factor), plus a real doctor() that goes
beyond the dpkg check by verifying the runtime binary resolves on PATH:
command -v vlc / cheese / v4l2-ctl / extension-manager (the last two have a
binary name that differs from the package). ibus-rime is a data/engine package
with no like-named binary, so its doctor probes the ibus framework binary plus
the Rime engine data directory.
Each declares an en + zh-TW DESCRIPTION, SUPPORTED_UBUNTU=("22.04" "24.04"
"26.04"), and a TEST_VERIFY_CMD matching its doctor probe. All satisfy the
10-function module contract (ADR-0002, enforced by
test/unit/module/contract_conformance_spec.bats / #305). doc/module/INDEX.md
regenerated (69 modules); [Unreleased] CHANGELOG updated. All three CI gates
(test-unit / test-integration / coverage) pass in Docker.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NX5H2vuMTv4mBmjpPYoS3s
# Conflicts: # doc/module/INDEX.md
ycpss91255
enabled auto-merge (squash)
July 11, 2026 14:28
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.
Summary
Adds five desktop-only apt-archetype modules for the small-tools modularization program, each as
module/<name>.module.sh+test/unit/module/<name>_spec.bats:vlcvlccommand -v vlcibus-rimeibus-rimecommand -v ibus+ Rime engine data dircheesecheesecommand -v cheesev4l-utilsv4l-utilscommand -v v4l2-ctl(binary != package)gnome-shell-extension-managergnome-shell-extension-managercommand -v extension-manager(binary != package)All five are
optional,RISK_LEVEL=low,VERSION_PROVIDED=apt-managed, wired viamodule_use_apt_archetype, and scopedSUPPORTED_PLATFORMS=("desktop")withSUPPORTED_UBUNTU=("22.04" "24.04" "26.04").Details
detect()(apt-get present) and a desktop-gatedis_recommended()— recommended only on thedesktopform factor, nonzero on headless / SBC / unknown factors (mirrors theanydeskQ49 pattern).doctor()on every module: beyond the dpkgis_installedcheck, it verifies the runtime binary actually resolves on PATH (catching a half-configured package where the binary name differs from the package name).ibus-rimeships no like-named binary, so its doctor probes theibusframework binary plus the Rime engine data directory.DESCRIPTION;TEST_VERIFY_CMDmatches the doctor probe.test/unit/module/contract_conformance_spec.bats/ test(module): module-iterating contract conformance meta-test #305).doc/module/INDEX.mdregenerated via./script/gen-module-index.sh(69 modules);[Unreleased]CHANGELOG updated.Test plan
All three CI gates run green blocking-foreground in Docker:
just -f justfile.ci test-unit— full unit tree, 0 failures (vlc/cheese/v4l-utils/gnome-shell-extension-manager 58 each, ibus-rime 59; contract-conformance test(module): module-iterating contract conformance meta-test #305 green)just -f justfile.ci test-integration— 0 failuresjust -f justfile.ci coverage— exit 0, AC-17 gate satisfiedGenerated with Claude Code
https://claude.ai/code/session_01NX5H2vuMTv4mBmjpPYoS3s