source-coding

Problem-solving strategies for source coding in information theory

422 stars

Best use case

source-coding is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Problem-solving strategies for source coding in information theory

Teams using source-coding should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/source-coding/SKILL.md --create-dirs "https://raw.githubusercontent.com/vibeeval/vibecosystem/main/skills/math/information-theory/source-coding/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/source-coding/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How source-coding Compares

Feature / Agentsource-codingStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Problem-solving strategies for source coding in information theory

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Source Coding

## When to Use

Use this skill when working on source-coding problems in information theory.

## Decision Tree


1. **Source Coding Theorem**
   - Minimum average code length >= H(X)
   - Achievable with optimal codes
   - `z3_solve.py prove "shannon_bound"`

2. **Huffman Coding**
   - Optimal prefix-free code for known distribution
   - Build tree: combine two least probable symbols
   - Average length: H(X) <= L < H(X) + 1
   - `sympy_compute.py simplify "expected_code_length"`

3. **Kraft Inequality**
   - For prefix-free code: sum 2^{-l_i} <= 1
   - Necessary and sufficient
   - `z3_solve.py prove "kraft_inequality"`

4. **Arithmetic Coding**
   - Approaches entropy for any distribution
   - Encodes entire message as interval [0,1)
   - Practical for adaptive/unknown distributions

5. **Rate-Distortion Theory**
   - Lossy compression: trade rate for distortion
   - R(D) = min_{p(x_hat|x): E[d(X,X_hat)]<=D} I(X;X_hat)
   - Minimum rate to achieve distortion D
   - `sympy_compute.py minimize "I(X;X_hat)" --constraint "E[d] <= D"`


## Tool Commands

### Scipy_Huffman
```bash
uv run python -c "print('Huffman codes for a=0.5, b=0.25, c=0.125, d=0.125: a=0, b=10, c=110, d=111')"
```

### Sympy_Kraft
```bash
uv run python -m runtime.harness scripts/sympy_compute.py simplify "2**(-l1) + 2**(-l2) + 2**(-l3) + 2**(-l4)"
```

### Z3_Shannon_Bound
```bash
uv run python -m runtime.harness scripts/z3_solve.py prove "expected_length >= entropy"
```

## Key Techniques

*From indexed textbooks:*

- [Elements of Information Theory] Elements of Information Theory -- Thomas M_ Cover &amp; Joy A_ Thomas -- 2_, Auflage, New York, NY, 2012 -- Wiley-Interscience -- 9780470303153 -- 2fcfe3e8a16b3aeefeaf9429fcf9a513 -- Anna’s Archive. The Shannon–Fano–Elias coding procedure can also be applied to sequences of random variables. The key idea is to use the cumulative distribution function of the sequence, expressed to the appropriate accuracy, as a code for the sequence.
- [Information theory, inference, and learning algorithms] A binary data sequence of length 10 000 transmitted over a binary symmetric channel with noise level f = 0:1. Dilbert image Copyright c Syndicate, Inc. The physical solution is to improve the physical characteristics of the commu- nication channel to reduce its error probability.
- [Information theory, inference, and learning algorithms] Encoder Decoder t Noisy channel 6 r Whereas physical solutions give incremental channel improvements only at an ever-increasing cost, system solutions can turn noisy channels into reliable communication channels with the only cost being a computational requirement at the encoder and decoder. Coding theory is concerned with the creation of practical encoding and We now consider examples of encoding and decoding systems. What is the simplest way to add useful redundancy to a transmission?

## Cognitive Tools Reference

See `.claude/skills/math-mode/SKILL.md` for full tool documentation.

Related Skills

java-coding-standards

422
from vibeeval/vibecosystem

Java coding standards for Spring Boot services: naming, immutability, Optional usage, streams, exceptions, generics, and project layout.

coding-standards

422
from vibeeval/vibecosystem

Universal coding standards, best practices, and patterns for TypeScript, JavaScript, React, and Node.js development.

workflow-router

422
from vibeeval/vibecosystem

Goal-based workflow orchestration - routes tasks to specialist agents based on user goals

wiring

422
from vibeeval/vibecosystem

Wiring Verification

websocket-patterns

422
from vibeeval/vibecosystem

Connection management, room patterns, reconnection strategies, message buffering, and binary protocol design.

visual-verdict

422
from vibeeval/vibecosystem

Screenshot comparison QA for frontend development. Takes a screenshot of the current implementation, scores it across multiple visual dimensions, and returns a structured PASS/REVISE/FAIL verdict with concrete fixes. Use when implementing UI from a design reference or verifying visual correctness.

verification-loop

422
from vibeeval/vibecosystem

Comprehensive verification system covering build, types, lint, tests, security, and diff review before a PR.

vector-db-patterns

422
from vibeeval/vibecosystem

Embedding strategies, ANN algorithms, hybrid search, RAG chunking strategies, and reranking for semantic search and retrieval.

variant-analysis

422
from vibeeval/vibecosystem

Find similar vulnerabilities across a codebase after discovering one instance. Uses pattern matching, AST search, Semgrep/CodeQL queries, and manual tracing to propagate findings. Adapted from Trail of Bits. Use after finding a bug to check if the same pattern exists elsewhere.

validate-agent

422
from vibeeval/vibecosystem

Validation agent that validates plan tech choices against current best practices

tracing-patterns

422
from vibeeval/vibecosystem

OpenTelemetry setup, span context propagation, sampling strategies, Jaeger queries

tour

422
from vibeeval/vibecosystem

Friendly onboarding tour of Claude Code capabilities for users asking what it can do.