Agent Skill
2/7/2026

understanding-context-entropy

Decide how to codify knowledge for reuse. Use when evaluating whether a pattern, solution, or insight should be formalized—and in what form (types, code structure, CLAUDE.md, README, skill, or code comments).

K
kylehughes
1GitHub Stars
2Views
npx skills add kylehughes/knapsack

SKILL.md

Nameunderstanding-context-entropy
DescriptionDecide how to codify knowledge for reuse. Use when evaluating whether a pattern, solution, or insight should be formalized—and in what form (types, code structure, CLAUDE.md, README, skill, or code comments).

Knapsack

Kyle Hughes's dotfiles and development environment configuration for macOS.

Installation

# Clone repository
cd ~ && git clone git@github.com:kylehughes/knapsack.git Knapsack
cd ~/Knapsack

# Run all setup tasks
make set-up/all

Or run individual setup tasks:

make set-up/homebrew        # Install Homebrew
make set-up/dependencies    # Install dependencies from Brewfile
make set-up/submodules      # Initialize git submodules
make set-up/dotfiles        # Install dotfiles
make set-up/local-functions # Create local functions directory

Structure

Dotfiles

Configuration files managed by make set-up/dotfiles:

ConfigurationTypeDescription
claude/CLAUDE.mdSymlinkClaude AI configuration.
config/ghostty/*SymlinkGhostty terminal configuration.
config/zsh/functions/*SymlinkCustom shell functions.
gitconfigSymlinkGlobal git configuration.
gitconfig_localCopyLocal git overrides (not tracked).
tmux.confSymlinktmux configuration.
vim/*Symlinkvim configuration and plugins.
vimrcSymlinkvim configuration.
zshrcSymlinkzsh shell configuration.

Shell Functions

Custom zsh functions for common workflows, autoloaded from ~/.config/zsh/functions/:

Git Workflow Functions

FunctionDescriptionUsage
git-add-amend-force-pushStage all changes, amend commit, and force push.git-add-amend-force-push
git-add-commitStage all changes and commit with message.git-add-commit "message"
git-fetch-pullFetch remote changes and pull with rebase.git-fetch-pull
git-log-dagShow detailed commit graph with author info.git-log-dag [options]
git-log-graphShow commit history as decorated graph.git-log-graph [options]
git-log-prettyShow formatted log with details on one line.git-log-pretty [options]
git-push-upstreamPush current branch and set upstream tracking.git-push-upstream
git-status-diffShow status and diff for review.git-status-diff

Functions follow the tool-action naming convention for clarity and tab completion support.

Local Functions

Machine-specific functions can be placed in ~/.config/zsh/functions-local/ (not tracked in git):

# Create local functions directory
make set-up/local-functions

# Add a local function
echo '#!/usr/bin/env zsh
# my-local-function - Description here.
echo "This function only exists on this machine"' > ~/.config/zsh/functions-local/my-local-function
chmod +x ~/.config/zsh/functions-local/my-local-function

Local functions are autoloaded just like tracked functions but remain private to each machine.

Dependencies

Managed via Brewfile:

brew bundle install    # Install all dependencies
brew bundle check      # Check for missing packages
brew bundle cleanup    # Remove unlisted packages

Development

Documentation Standards

All scripts and configuration files follow consistent documentation patterns:

  • File headers: Simple one-line descriptions with usage information for scripts.
  • Section headers: Title Case sections marked with --- Section Name ---.
  • Comments: Complete sentences with periods, explaining why not what.
  • No decorations: Clean, readable formatting without excessive separators.

Theme

A Gengar-inspired purple theme consistent across all terminal applications:

ColorHexUsage
Background#1c1c1cTerminal background.
Foreground#eeeeeePrimary text.
Purple#af5fffStatus bars, borders.
Bright Purple#d7afffActive elements.
Grey#444444Inactive elements.
Skills Info
Original Name:understanding-context-entropyAuthor:kylehughes