hugoduncan/bbum/bbum-task-lib

Trust tier 3
  • community
Source check pending

Checking that the SKILL.md file is still in the repository.

Reference for constructing bbum-compatible task libraries. Use when creating, extending, or structuring a library of babashka tasks installable via bbum.

Install

npx vskill@latest install hugoduncan/bbum/bbum-task-lib

SKILL.md

bbum Task Library Construction

A bbum task library is a repo (or local path) containing a bbum.edn manifest and Clojure source files that implement each task.


Repository Layout

bbum.edn ← library manifest (required)
src/
<org>/<lib>/<task_name>.clj ← one namespace per task (convention)

Files under src/ are installed into .bbum/lib/ with the src/ prefix stripped. Use a namespaced path to avoid collisions across libraries.


bbum.edn Manifest

clojure
{:lib <org>/<lib-name> ; qualified library name (symbol-like string)
:tasks
{:<task-kw>
{:doc "One-line description shown by `bbum list`"
:files ["src/org/lib/task_name.clj"] ; all files to install
:depends [:<other-task-kw>] ; optional — intra-library deps
:task {:doc "Description shown in bb help"
:requires ([org.lib.task-name :as task-name])
:task (task-name/run)}}}}
Field reference
FieldRequiredNotes
:libyesIdentifies the library in the project manifest
:tasksyesMap of task keyword → task entry
:doc (outer)yesShown by bbum list <source>
:filesyesPaths relative to repo root; all copied on install
:dependsnoKeywords of other tasks in this library; installed implicitly
:taskyesSpliced verbatim into bb.edn under the task key
:task :docrecommendedShown by bb help <task>
:task :requiresyesBabashka :requires vector for the task namespace
:task :taskyesExpression evaluated when the task runs

Task Implementation

Each task is a Clojure namespace with a run entry point:

clojure
(ns org.lib.task-name
(:require [clojure.string :as str]))
(defn run
"Brief docstring."
[]
;; access CLI args via *command-line-args*
)
  • Use *command-line-args* for CLI argument parsing.
  • Call (System/exit 1) on failure.
  • Keep each task in its own namespace/file.

Dependencies Between Tasks

If task :b requires task :a to also be installed:

clojure
:tasks
{:a {:doc "..." :files [...] :task {...}}
:b {:doc "..." :files [...] :depends [:a] :task {...}}}

bbum add <source> b will install both :b (explicit) and :a (implicit). bbum remove b will warn about the orphaned implicit :a; use --with-deps to remove both.


Multiple Files Per Task

List every file the task needs:

clojure
:files ["src/org/lib/task_name.clj"
"src/org/lib/shared_util.clj"]

Shared files across tasks are deduplicated at install time but are tracked per task in the manifest.


Minimal Example

clojure
;; bbum.edn
{:lib acme/bb-tasks
:tasks
{:lint
{:doc "Run clj-kondo on src/ and test/"
:files ["src/acme/bb_tasks/lint.clj"]
:task {:doc "Run clj-kondo linter"
:requires ([acme.bb-tasks.lint :as lint])
:task (lint/run)}}}}
clojure
;; src/acme/bb_tasks/lint.clj
(ns acme.bb-tasks.lint
(:require [babashka.process :as proc]))
(defn run []
(let [{:keys [exit]} (proc/shell "clj-kondo" "--lint" "src" "test")]
(System/exit exit)))

Checklist

  • [ ] bbum.edn at repo root with :lib and :tasks
  • [ ] Every file in :files exists at the listed path
  • [ ] Each task namespace has a (defn run [] ...)
  • [ ] :task :requires matches the namespace in the source file
  • [ ] :doc present at both the task level and inside :task
  • [ ] Namespace paths are collision-safe (use org/lib prefix)

Security

  • Security scanPassed, 90 of 100Pattern checks on the skill's files.
  • Model reviewPassed

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

7-day trend score
0

Not refreshed yet.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/hugoduncan/bbum/bbum-task-lib/badge)](https://verified-skill.com/skills/hugoduncan/bbum/bbum-task-lib)

Something wrong with this skill or its page? Tell us.