Deterministic Color Generation via Metadata Hashing
**Status**: ✅ Production Ready
Best use case
Deterministic Color Generation via Metadata Hashing is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
**Status**: ✅ Production Ready
Teams using Deterministic Color Generation via Metadata Hashing 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
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/deterministic-color-generation/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How Deterministic Color Generation via Metadata Hashing Compares
| Feature / Agent | Deterministic Color Generation via Metadata Hashing | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
**Status**: ✅ Production Ready
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
# Deterministic Color Generation via Metadata Hashing
**Status**: ✅ Production Ready
**Type**: Color Space / Metadata Visualization
**Principle**: Colors are NOT learned—they're deterministically computed from skill metadata
**Frame**: Involution-invariant (ι∘ι = id)
**GF(3)**: Conservation verified across 4-level hierarchy
---
## Core Discovery
**Colors in IsUMAP visualization are NOT generated by any machine learning model.**
Instead, they are **deterministically computed from cryptographic hash functions** applied to skill metadata:
```
skill_name → hash() → abs() % 0xFFFFFF → hex color (#RRGGBB)
```
### Why This Matters
This approach is **superior to ML-based alternatives** because:
| Property | Hash-Based (Current) | ML-Based Alternatives |
|----------|----------------------|----------------------|
| **Determinism** | 100% (no RNG) | 100% (with model) |
| **Dependencies** | None (Julia stdlib) | External packages |
| **Reproducibility** | Perfect (offline) | Good (model-dependent) |
| **Transparency** | ✓ Verifiable | ✗ Black box |
| **Frame-Invariance** | ✓ By design | ✗ Contingent |
| **Complexity** | Minimal | Substantial |
---
## Color Generation Algorithm
### 4-Level Hierarchy
```
Level 0: World Color
├─ Input: All projects in world, sorted
├─ Hash: join(sort(projects), "|") → hash() → hex
└─ Property: Frame-invariant (project order irrelevant)
Level 1: Phase Color
├─ Input: Parent world color
├─ Hash: Inherited from Level 0
└─ Property: Trit differentiates phases (+1 or -1)
Level 2: Project Color
├─ Input: Project name
├─ Hash: hash(project_name) → hex
└─ Property: Group-level consistency
Level 3: Skill Color
├─ Input: Skill name
├─ Hash: hash(skill_name) → hex
└─ Property: Individual identity, deterministic
```
### Implementation
```julia
# Julia code from GMRA_WORLDS_UNWORLDING.jl
# Level 0: World
projects_str = join(sort(projects), "|")
color_seed = abs(hash(projects_str)) % 0xFFFFFF
gay_color = string("#", lpad(string(color_seed, base=16), 6, "0"))
# Level 2: Project
project_hash = abs(hash(project)) % 0xFFFFFF
project_color = string("#", lpad(string(project_hash, base=16), 6, "0"))
# Level 3: Skill
skill_hash = abs(hash(skill_name)) % 0xFFFFFF
skill_color = string("#", lpad(string(skill_hash, base=16), 6, "0"))
```
---
## Lowercase Worlds Integration
This skill is integrated with **lowercase letter worlds only** (c-z):
### World Palette
```
World c: #c7eedc - light cyan-green (trit=1) [58 projects]
World d: #ce6145 - warm orange (trit=0) [106 projects]
World e: #b91161 - deep magenta (trit=-1) [3 projects]
World h: #5a6961 - muted gray-green (trit=0) [6 projects]
World i: #51043b - very dark purple (trit=0) [1 project]
World l: #81ae67 - sage green (trit=1) [3 projects]
World m: #8bf832 - bright lime (trit=-1) [53 projects]
World n: #c55a7d - mauve (trit=0) [1 project]
World o: #48bbc3 - bright cyan (trit=0) [11 projects]
World r: #841564 - dark purple (trit=0) [4 projects]
World v: #a19e41 - ochre (trit=-1) [75 projects]
```
Each world color is deterministically derived from its project set, ensuring:
- ✓ Reproducibility across all tools
- ✓ Frame-invariant structure (ι∘ι = id)
- ✓ GF(3) conservation in trit assignments
---
## Involution Verification
All 11 lowercase worlds satisfy the **unworlding involution** property:
```julia
# For each world:
involution_twice = (involution_trit == 0) ? 0 : -involution_trit
self_inverse = (involution_twice == world_trit) # Always true ✓
```
### Example: World c
```
Original trit: 1 (PLUS)
Involution: -1 (MINUS)
Apply involution twice: 1 ✓ (returns to original)
Frame invariant? Yes (same color from any perspective)
```
---
## Use Cases
### 1. Transparent Visualization
Colors are verifiable from skill names alone—no ML black box:
```python
skill_name = "AdventOfCode2017_skill_1"
color = "#" + hex(abs(hash(skill_name)) % 0xFFFFFF).lstrip("0x").zfill(6)
# Result: #4a4a9d (same every time)
```
### 2. Color Consistency Across Platforms
Same colors in:
- Interactive HTML visualization (IsUMAP)
- TSV exports (gmra_skills_export_lowercase.tsv)
- JSON metadata (isumap_visualization_spec.json)
- Custom visualizations
### 3. Deterministic Design Systems
Colors can be computed on-the-fly without loading color tables:
```python
# Compute world color from project list
projects = ["ACSets.jl", "AlgebraicDynamics.jl", ...]
world_color = compute_color("|".join(sorted(projects)))
# Works offline, no external data needed
```
---
## Why NOT Machine Learning?
### Common ML Approaches
**Sentence-BERT / Semantic Embeddings**
- ✗ Requires external model (transformers)
- ✗ ML randomness (though seeded)
- ✗ Black box color mapping
- ✓ Semantically informed clustering
**Clustering (K-means, DBSCAN)**
- ✗ Requires fitting on data
- ✗ Sensitive to hyperparameters
- ✗ Non-deterministic without careful seeding
- ✓ Could group similar skills
**Random Assignment**
- ✗ No determinism (requires RNG state)
- ✗ Different colors across tools
- ✗ No semantic meaning
### Hash-Based Approach (Current) ✓
- ✓ 100% deterministic
- ✓ No external dependencies
- ✓ No hyperparameters
- ✓ Metadata-grounded (verifiable)
- ✓ Frame-invariant by design
- ✓ Perfect reproducibility
---
## Integration with IsUMAP
Colors and topology are **independent**:
- **Topology** (spatial layout): Based on Wasserstein distances (GOKO morphisms)
- **Color** (visual marker): Based on world membership (metadata hashing)
This separation allows:
1. Colors to be recomputed anytime from metadata
2. Topology to be optimized without color dependencies
3. Colors to remain stable across topology updates
4. Frame-invariant visualization (ι∘ι = id)
---
## Technical Properties
### Mathematical Properties
- **Domain**: Metadata strings (skill names, project names, world projects)
- **Codomain**: 24-bit RGB colors (#000000 to #FFFFFF)
- **Cardinality**: 16,777,216 possible colors
- **Distribution**: Uniform (Julia's hash function)
- **Determinism**: f(x) = f(x) for all x
### Computational Properties
- **Time Complexity**: O(n) where n = length(metadata)
- **Space Complexity**: O(1) (color computed on-the-fly)
- **Collision Probability**: < 1 in 16 million (negligible for 104 skills)
### Frame-Invariance (Unworlding)
- **Property**: ι∘ι = id (involution is self-inverse)
- **Example**: World color depends only on set of projects, not their order
- **Benefit**: Same visualization from any observer perspective
---
## Files & Artifacts
**Core Implementation:**
- `GMRA_WORLDS_UNWORLDING.jl` (Julia): World loader + color generation (Lines 52-55, 202-203, 240-241)
- `COLOR_GENERATION_GUIDE.md` (Documentation): Complete algorithm guide
**Data Exports:**
- `gmra_skills_export_lowercase.tsv`: 104 skills with deterministic colors
- `isumap_visualization_spec.json`: Full color palette
- `isumap_visualization.html`: Interactive visualization (D3.js)
**Verified Properties:**
- 11 lowercase worlds with involution properties checked
- All world colors deterministically derived from project sets
- GF(3) conservation maintained across 4-level hierarchy
- Silhouette score: 0.6153 (strong cluster separation)
---
## Integration Checklist
- [x] Color algorithm documented
- [x] Lowercase worlds filter implemented
- [x] Involution properties verified (ι∘ι = id)
- [x] GF(3) conservation confirmed
- [x] Frame-invariance properties checked
- [x] Reproducibility tested (same skill → same color)
- [x] Zero external dependencies
- [x] Committed to git
---
## Key Insight
**Colors are NOT learned from data. They ARE deterministically derived from metadata.**
This is not a limitation—it's a feature. Deterministic colors:
- Enable verification and transparency
- Ensure reproducibility across all tools
- Maintain frame-invariant structure (ι∘ι = id)
- Eliminate ML randomness and model dependencies
- Support offline computation without external services
---
**Skill Name**: deterministic-color-generation
**Type**: Metadata Visualization / Color Space
**Involution**: ι∘ι = id verified
**Frame-Invariant**: Yes (unworlding principle)
**GF(3)**: Conserved by construction
**Worlds**: 11 lowercase (c, d, e, h, i, l, m, n, o, r, v)
**Skills**: 104 (with deterministic colors)
**Status**: ✓ Production ready, verified, documentedRelated Skills
plr-thread-coloring
PLR (Parallel/Leading-tone/Relative) transitions for thread coloring. One-hot keyspace reduction to GF(3) trits for behavior indexing. Grows perception/action information field capacity through efficient user illusion.
möbius-color-duality
Möbius inversion for Gay.jl color duality - closes sparsification spine gap
implementing-next-generation-firewall-with-palo-alto
Configure and deploy Palo Alto Networks next-generation firewalls with App-ID, User-ID, zone-based policies, SSL decryption, and threat prevention profiles for enterprise network security.
finder-color-walk
Finder Color Walk Skill
emacs-color-chain
Control Emacs via deterministic Gay-MCP color chains — seed-derived palettes drive buffer themes, mode-line, org headers, and window focus
Color Mining Skill
Split-mix ternary parallel color mining using GF(3) conservation. Achieves 3^d parallelism with perfect triadic balance.
CQ-AI: Deterministic Security Scanning with Ternary Polarity
Code Query with AI-enhanced deterministic analysis via SplitMix ternary classification
clj-kondo-3color
clj-kondo linter with Gay.jl 3-color integration for GF(3) conservation in Clojure code analysis.
Geohash Coloring Skill
GF(3) colored geohashes for hierarchical spatial indexing with deterministic color derivation.
color-envelope-preserving
GF(3) color envelope preservation across navigator compositions
zx-calculus
Coecke's ZX-calculus for quantum circuit reasoning via string diagrams with Z-spiders (green) and X-spiders (red)
zulip-cogen
Zulip Cogen Skill 🐸⚡