This repository contains APM-installable skill packages for coding agents.
The current packages are:
common-lisp-skills: reusable Common Lisp development skillstools: reusable tooling skills, currently includingnix-shell-playwright
The recommended installation method is APM (Agent Package Manager), because APM can install these skills directly from GitHub into multiple agent runtimes, including Codex and OpenCode.
The APM-installable packages are located in:
plugins/common-lisp-skills/plugins/tools/
Includes skills for:
- writing Common Lisp code
- working with the REPL
- testing with Rove
- handling JSON
- logging with
log4cl - defining CLOS classes
- writing 40ants-doc documentation
- avoiding common Lisp pitfalls
- clearing stale ASDF fasl cache
- linting Common Lisp projects with Mallet and 40ants-linter
Includes skills for:
- bootstrapping a reproducible Playwright environment with
nix-shell - generating static smoke tests for local HTML pages
- running local browser-based smoke tests with screenshot capture
- deploying, updating, and rolling back 40ants pet-project services on VPS hosts (
/srv/servicesscheme with Caddy and systemd isolation)
APM is the recommended way to consume these packages from another project.
- Install APM.
macOS / Linux:
curl -sSL https://aka.ms/apm-unix | shWindows (PowerShell):
irm https://aka.ms/apm-windows | iex- From the root of your own project, install the package you want for your target agent.
apm install 40ants/ai/plugins/common-lisp-skills --target codexapm install 40ants/ai/plugins/tools --target codexapm install 40ants/ai/plugins/tools --target opencodeapm install 40ants/ai/plugins/tools --target codex --skill nix-shell-playwrightapm install 40ants/ai/plugins/common-lisp-skills --target codex,opencode
apm install 40ants/ai/plugins/tools --target codex,opencodeAPM installs into the target runtime's native directories. According to the current APM docs, codex deploys to .codex/ plus .agents/ for skills, and opencode deploys to .opencode/.
After installation, start a new agent session or thread so the new skills are available for invocation.
Instead of running the full command each time, declare the package in your project's apm.yml:
name: my-project
version: 0.1.0
dependencies:
apm:
- 40ants/ai/plugins/common-lisp-skills
- 40ants/ai/plugins/toolsThen run:
apm install --target codexIf your project depends on these packages through APM, rerun install in your own project:
apm install --target codexOr, if you installed a package directly as a package reference:
apm install 40ants/ai/plugins/tools --target opencodeIf your agent does not pick up updated skills in the current session, start a new thread or session.
plugins/common-lisp-skills/apm.ymlplugins/common-lisp-skills/plugin.jsonplugins/common-lisp-skills/skills/plugins/tools/apm.ymlplugins/tools/plugin.jsonplugins/tools/skills/
If you want to validate plugin structure with the OpenAI scaffold validator:
python3 /Users/art/.codex/skills/.system/plugin-creator/scripts/validate_plugin.py /Users/art/projects/lisp/ai/plugins/common-lisp-skills
python3 /Users/art/.codex/skills/.system/plugin-creator/scripts/validate_plugin.py /Users/art/projects/lisp/ai/plugins/toolsNote: this validator requires PyYAML in the active Python environment.