hugoduncan
- 48 skills
- 0 followers
- 9 hours ago last updated
- ▌ Gordian 2 · hugoduncanUse gordian to analyse Clojure code structure at namespace and executable-unit level. Invoke when asked to audit architecture, assess coupling, identify hidden dependencies, interpret suspicious namespace pairs, review test structure, compare architectural snapshots, inspect a subsystem, find local cyclomatic/LOC hotspots, or find local comprehension-burden hotspots. Produces structural, conceptual, change-coupling, local-metric, and local-burden signals plus triage and workflow commands.
- ▌ Criterium · hugoduncanUse this skill when users ask about benchmarking Clojure code, measuring performance, profiling execution time, or using the criterium library. Covers the 0.5.x API including bench macro, bench plans, viewers, domain analysis, and argument generation.
- ▌ Structural Domain Modeling · hugoduncan bundleBuild rigorous structural entity-relationship models for any domain using category theory, dependent types, and algebraic structures. Use this skill whenever the user asks to model a domain, formalize an entity relationship model, create a structural specification, describe a system's architecture mathematically, or analyze the structure of a codebase/project/system. Also trigger when the user mentions domain modeling, entity relationships, formalisms, structural invariants, schema design, or asks 'what are the entities and relationships in X'. Works from natural language descriptions (requirements docs, design specs, META files, READMEs, user stories) and produces a complete structural model with sorts, arrows, constructions, axioms, and morphisms. Even if the user doesn't mention category theory explicitly — if they want a precise structural description of a domain, use this skill.
- ▌ Bbum Consumer · hugoduncanUse when the user wants to discover, browse, search, or install bbum task libraries from the marketplace, or star a library to signal adoption. Trigger on: "find a bbum library", "search marketplace", "list marketplace libraries", "install from marketplace", "star a library", "find bbum tasks for X", "what task libraries are available".
- ▌ Bbum Publisher · hugoduncanUse when the user wants to publish a bbum task library to the marketplace. Trigger on: "publish my library", "add to marketplace", "submit library", "register my bbum library", "list my library on the marketplace".
- ▌ Bbum · hugoduncanReference for using bbum (Babashka Universal Module Manager) to manage babashka task libraries. Use when installing, removing, updating, or inspecting bbum tasks, or managing bbum sources.
- ▌ Bbum Task Lib · hugoduncanReference for constructing bbum-compatible task libraries. Use when creating, extending, or structuring a library of babashka tasks installable via bbum.
- ▌
- ▌ Namespace Structure · hugoduncanThe ideal Clojure namespace structure — principles for dependency direction, coupling coherence, family boundaries, and test isolation. Tool-agnostic. Use to evaluate, design, or critique namespace organisation in any Clojure project.
- ▌
- ▌ Scry · hugoduncanUse scry to run Clojure tests through the REPL/in-process API for structured inspection and through the CLI for final verification, process status, and failure EDN files. Trigger when debugging Clojure test failures, when an agent needs expected/actual assertion data, per-test output, stack traces, or CLI exit semantics without scraping terminal output, or when working in a project that depends on scry.
- ▌ Emacs · hugoduncanInteract with a running Emacs instance via emacsclient. Evaluate Elisp expressions, open files, manipulate buffers, run commands, and query Emacs state. Use when the user wants to control Emacs, edit buffers, run Emacs commands, or integrate with Emacs workflows.
- ▌ Gordian · hugoduncanUse gordian to analyse Clojure code structure at namespace and executable-unit level. Invoke when asked to audit architecture, assess coupling, identify hidden dependencies, interpret suspicious namespace pairs, rank architectural refactor targets, produce evidence-backed target issue descriptions, review test structure, compare architectural snapshots, inspect a subsystem, find local cyclomatic/LOC hotspots, or find local comprehension-burden hotspots. Produces structural, conceptual, change-coupling, local-metric, local-burden, target-ranking, and issue-description signals plus triage and workflow commands.
- ▌
- ▌
- ▌ Code Shaper · hugoduncanShape code for simplicity, consistency, and robustness. Use this to improve code quality and the ability to mutate and adapt it over time.
- ▌
- ▌ Task Design · hugoduncanCreate or refine a task design. Use when the user asks "create a task" or "refine a task" to ensure a high quality task design.
- ▌ Task Intent · hugoduncanCreate or refine a task intent statement. Use when the user asks "create a task" or "open a task" to ensure we have a clear understanding of the task's intent.
- ▌ Test Shaper · hugoduncanShape tests for clarity, signal, and robustness. Use this to improve test quality and the ability to change code and tests with confidence over time.
- ▌ Session Debug · hugoduncanDebug live psi session issues by using the correct runtime context, EQL surfaces, persisted session files, provider captures, and nREPL introspection.
- ▌ Lambda Compiler · hugoduncancompile and decompile prompts as lambda expressions. Use when you want to compile, decompile or translate between lambda expressions and prose.
- ▌ Clj Paren Repair · hugoduncanRecover structurally broken Clojure/EDN files by rebalancing delimiters with minimal edits. Use this as soon as manual editing causes structural syntax issues, EOF/read errors, unmatched parens, or cascading syntax damage.
- ▌ Issue Bug Triage · hugoduncanTriage a GitHub bug issue by attempting reproduction in an issue-specific worktree, then shape either a precise request for more information or a concrete reproduction handoff into bug-fix execution.
- ▌ Review Task Docs · hugoduncanReviews user-facing documentation changes for an implemented Munera task
- ▌ Task Test Review · hugoduncanReview a task implementation's tests. Use before closing a task, to check the implementation tests quality. Use when the user asks "review task tests".
- ▌ Entity Resolution · hugoduncanResolve ambiguous references in user requests into concrete entities, project-specific terms, and project paths before acting. Use when a request contains pronouns, deixis, aliases, shorthand, informal names, or path-like references that may map to project concepts or files.
- ▌ Work Independently · hugoduncanUse when the user asks the agent to work independently or autonomously.
- ▌ Task Design Choices · hugoduncanCreate or refine task design choices. Use when the user asks "explore a task" or "investigate a task" to ensure we consider multiple task designs.
- ▌ Issue Feature Triage · hugoduncanTriage a feature request issue into intent, problem statement, scope, and acceptance criteria. Use when a GitHub issue or similar request needs a concise feature-analysis reply without implementation planning.
- ▌ Project Meta Compiler · hugoduncanUse when compiling, decompiling or rewriting a project meta description.
- ▌ Testing Without Mocks · hugoduncan bundleApply James Shore's "Testing Without Mocks" pattern language to write tests that are narrow, sociable, state-based, and free of mocks/spies. Use this skill when writing or refactoring tests for any codebase, when the user asks to test code without mocks, when applying Nullable infrastructure patterns, when structuring code with A-Frame Architecture for testability, or when converting legacy mock-heavy tests. Triggers: "test without mocks", "nullable pattern", "sociable tests", "A-Frame architecture", "remove mocks", "testing-without-mocks", "narrow tests", "infrastructure wrapper", "embedded stub".
- ▌ Clojure Coding Standards · hugoduncanComprehensive Clojure coding standards including function formatting, testing patterns, REPL workflows, dependency management, and code organization. Use whenever writing Clojure or babashka code, or tests, reviewing Clojure or babashka projects, or setting up Clojure or babashka development workflows.
- ▌ Review Task Architecture · hugoduncanReviews a Munera task design for architectural fit with the project's architecture and principles
- ▌ Task Implementation Review · hugoduncanReview a task implementation. Use before closing a task, to check the implementation quality. Use when the user asks "review task".
- ▌ Incidental Complexity Finder · hugoduncanChoose the single highest incidental-complexity executable unit to simplify. Use when selecting a behaviour-preserving refactor target by comprehension burden the branching does not explain (high gordian local burden against low/moderate cyclomatic complexity), guarding against essential-complexity false positives. Produces one target plus evidence, or a well-formed no-target report.
- ▌ Workflow · hugoduncanRepository-specific guidance for understanding, creating, and updating psi workflows.
- ▌ Review Implementation Architecture · hugoduncanReview an implemented architecture-level simplification against the selected Gordian target, validation evidence, project architecture, and blast-radius constraints.
- ▌ Extension Development · hugoduncanRepository-specific guidance for creating, modifying, and debugging psi extensions.
- ▌ Clay · hugoduncan bundleREPL-friendly data visualization and literate programming for Clojure with Kindly convention
- ▌ Widget · hugoduncan bundleA guide to using the Emacs Widget Library for creating interactive UI elements in buffers.
- ▌ Selmer · hugoduncan bundleDjango-inspired HTML templating system for Clojure with filters, tags, and template inheritance
- ▌ Timbre · hugoduncan bundlePure Clojure/Script logging library with flexible configuration and powerful features
- ▌ Telemere · hugoduncan bundleStructured logging and telemetry for Clojure/Script with tracing and performance monitoring
- ▌ Magit Section · hugoduncan bundleA guide to using magit-section for building collapsible, hierarchical buffer UIs in Emacs.
- ▌ Babashka CLI · hugoduncan bundleCommand-line argument parsing for turning Clojure functions into CLIs
- ▌ Babashka Process · hugoduncan bundleClojure library for spawning sub-processes and shell operations
- ▌