ies/music-topos/.agents/skills/geodesic-manifold/SKILL.md
# Geodesic Manifold Skill Spherical geometry, great circles, and Riemannian manifolds with Gay.jl coloring. ## Trigger - Geodesic calculations, great circle routes - Spherical trigonometry, haversine distance - Riemannian geometry on Earth's surface - Flight paths, navigation, ship routing ## GF(3) Trit Assignment - **+1 (Generator)**: Creates geodesic paths, generates waypoints - **0 (Ergodic)**: Distance calculations, coordinate transforms - **-1 (Validator)**: Verifies shortest path optima
npx skillsauth add plurigrid/asi ies/music-topos/.agents/skills/geodesic-manifoldInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Spherical geometry, great circles, and Riemannian manifolds with Gay.jl coloring.
import math
def haversine(lat1, lon1, lat2, lon2):
"""Distance in km between two points on Earth."""
R = 6371 # Earth radius km
phi1, phi2 = math.radians(lat1), math.radians(lat2)
dphi = math.radians(lat2 - lat1)
dlambda = math.radians(lon2 - lon1)
a = math.sin(dphi/2)**2 + math.cos(phi1) * math.cos(phi2) * math.sin(dlambda/2)**2
c = 2 * math.atan2(math.sqrt(a), math.sqrt(1-a))
return R * c
def geodesic_waypoints(lat1, lon1, lat2, lon2, n_points, seed):
"""Generate colored waypoints along great circle."""
from math import radians, degrees, sin, cos, atan2, sqrt
# Convert to radians
phi1, lambda1 = radians(lat1), radians(lon1)
phi2, lambda2 = radians(lat2), radians(lon2)
waypoints = []
for i in range(n_points + 1):
f = i / n_points # Fraction along path
# Spherical interpolation (slerp)
d = haversine(lat1, lon1, lat2, lon2) / 6371
a = sin((1 - f) * d) / sin(d)
b = sin(f * d) / sin(d)
x = a * cos(phi1) * cos(lambda1) + b * cos(phi2) * cos(lambda2)
y = a * cos(phi1) * sin(lambda1) + b * cos(phi2) * sin(lambda2)
z = a * sin(phi1) + b * sin(phi2)
lat = degrees(atan2(z, sqrt(x**2 + y**2)))
lon = degrees(atan2(y, x))
# Color from seed + index
wp_seed = (seed + i * 0x9E3779B97F4A7C15) & 0x7FFFFFFFFFFFFFFF
color = color_from_seed(wp_seed)
waypoints.append({
'index': i,
'lat': lat,
'lon': lon,
'fraction': f,
'color': color['hex'],
'trit': color['trit']
})
return waypoints
def spherical_metric(lat, lon):
"""
Riemannian metric tensor at point (lat, lon).
ds² = R²(dφ² + cos²φ dλ²)
Returns 2x2 metric tensor g_ij.
"""
R = 6371 # km
phi = math.radians(lat)
g = [
[R**2, 0],
[0, R**2 * math.cos(phi)**2]
]
return g
def christoffel_symbols(lat):
"""
Christoffel symbols for sphere.
Non-zero: Γ^φ_λλ = sin(φ)cos(φ), Γ^λ_φλ = -tan(φ)
"""
phi = math.radians(lat)
return {
'phi_lambda_lambda': math.sin(phi) * math.cos(phi),
'lambda_phi_lambda': -math.tan(phi)
}
-- Install spatial extension
INSTALL spatial;
LOAD spatial;
-- Create geodesic table with colors
CREATE TABLE geodesic_routes (
route_id VARCHAR,
origin GEOMETRY,
destination GEOMETRY,
distance_km DOUBLE,
seed BIGINT,
gay_color VARCHAR,
gf3_trit INTEGER
);
-- Calculate great circle distance
SELECT ST_Distance_Spheroid(
ST_Point(-122.4194, 37.7749), -- San Francisco
ST_Point(-0.1276, 51.5074) -- London
) / 1000 as distance_km;
The sphere S² is a 2-dimensional Riemannian manifold:
Geodesic: Hom(I, S²) where I = [0,1]
Parallel Transport: Functor from Path groupoid to GL(T_p S²)
Holonomy: π₁(S²) → Aut(fiber)
Tangent Bundle: TS² → S²
Frame Bundle: F(S²) → S² with fiber GL(2,ℝ)
Spinor Bundle: Spin(S²) → S² (for quantum geography)
def color_flight_route(origin, destination, seed=42):
"""Color a flight route with GF(3) balanced waypoints."""
waypoints = geodesic_waypoints(
origin['lat'], origin['lon'],
destination['lat'], destination['lon'],
n_points=10,
seed=seed
)
# Verify GF(3) balance
trit_sum = sum(wp['trit'] for wp in waypoints)
return {
'origin': origin,
'destination': destination,
'waypoints': waypoints,
'total_distance_km': haversine(
origin['lat'], origin['lon'],
destination['lat'], destination['lon']
),
'gf3_sum': trit_sum,
'gf3_mod3': trit_sum % 3
}
# San Francisco to Tokyo
route = color_flight_route(
{'lat': 37.7749, 'lon': -122.4194, 'name': 'SFO'},
{'lat': 35.6762, 'lon': 139.6503, 'name': 'NRT'},
seed=69
)
development
BDD-Driven Mathematical Content Verification Skill Combines Behavior-Driven Development with mathematical formula extraction, verification, and transformation using: - Cucumber/Gherkin for specification - RSpec for implementation verification - mathpix-gem for LaTeX/mathematical content extraction - Pattern matching on syntax trees for formula validation Enables iterative discovery and verification of mathematical properties through executable specifications.
tools
Meta-skill that generates domain-specific AI skills from tool documentation
development
Code Query with AI-enhanced deterministic analysis via SplitMix ternary classification
development
Directed Yoneda lemma as directed path induction. Riehl-Shulman's key insight for synthetic ∞-categories.