Skill Validation GF(3) - SLAVE (-1)
"The validator constrains and verifies."
| Property | Value |
|----------|-------|
| XIP Color | #4857D5 |
| Gay.jl Index | 8 |
| Role | SLAVE (-1) |
| Triad | PR#7 (GAY) + PR#8 (SLAVE) + PR#9 (MASTER) = 0 ✓ |
This skill validates that all skills in the repository:
Every skill must have:
skills/<skill-name>/
├── SKILL.md # Required
├── *.py|*.rb|*.jl # Implementation (optional)
└── tests/ # Validation tests (optional)
Skills should declare their triad membership:
## GF(3) Triad
| Role | Skill | Trit |
|------|-------|------|
| GAY (+1) | skill-a | +1 |
| MASTER (0) | skill-b | 0 |
| SLAVE (-1) | skill-c | -1 |
Sum: (+1) + (0) + (-1) = 0 ✓
Colors must be deterministic via Gay.jl:
from gay_mcp import color_at
# Verify skill color
assert color_at(seed=2025, index=8)['hex'] == '#4857D5'
#!/usr/bin/env python3
"""Validate all skills for GF(3) conservation."""
import os
import re
from pathlib import Path
def validate_skill(skill_path: Path) -> dict:
"""Validate a single skill."""
skill_md = skill_path / "SKILL.md"
if not skill_md.exists():
return {"valid": False, "error": "Missing SKILL.md"}
content = skill_md.read_text()
# Check for role declaration
role_match = re.search(r'\*\*Role\*\*\s*\|\s*(GAY|MASTER|SLAVE)', content)
if not role_match:
return {"valid": False, "error": "Missing role declaration"}
role = role_match.group(1)
trit = {"GAY": 1, "MASTER": 0, "SLAVE": -1}[role]
# Check for color
color_match = re.search(r'#([0-9A-Fa-f]{6})', content)
color = color_match.group(0) if color_match else None
return {
"valid": True,
"role": role,
"trit": trit,
"color": color,
"name": skill_path.name
}
def validate_triads(skills: list) -> list:
"""Check GF(3) conservation across skill triads."""
violations = []
# Group by declared triads
for i in range(0, len(skills) - 2, 3):
triad = skills[i:i+3]
trit_sum = sum(s.get("trit", 0) for s in triad if s.get("valid"))
if trit_sum % 3 != 0:
violations.append({
"triad": [s.get("name") for s in triad],
"sum": trit_sum,
"violation": True
})
return violations
def main():
skills_dir = Path("skills")
if not skills_dir.exists():
print("No skills directory found")
return 1
results = []
for skill_path in sorted(skills_dir.iterdir()):
if skill_path.is_dir():
result = validate_skill(skill_path)
results.append(result)
status = "✓" if result["valid"] else "✗"
print(f"{status} {skill_path.name}: {result.get('role', 'unknown')} ({result.get('trit', '?')})")
violations = validate_triads(results)
if violations:
print(f"\n⚠️ GF(3) Violations: {len(violations)}")
for v in violations:
print(f" - {v['triad']}: sum={v['sum']}")
return 1
print(f"\n✓ All {len(results)} skills validated, GF(3) conserved")
return 0
if __name__ == "__main__":
exit(main())
# tests/test_gf3_validation.py
import pytest
def test_triad_conservation():
"""Verify (+1) + (0) + (-1) = 0."""
assert (1 + 0 + -1) == 0
def test_role_trit_mapping():
"""Verify role to trit mapping."""
roles = {"GAY": 1, "MASTER": 0, "SLAVE": -1}
assert sum(roles.values()) == 0
def test_color_determinism():
"""Verify Gay.jl color is deterministic."""
# Mock: In production, call actual Gay.jl MCP
expected = "#4857D5"
actual = "#4857D5" # color_at(seed=2025, index=8)
assert actual == expected
As the SLAVE (-1) in the bisimulation game:
This skill is predicted as PR#8 in the plurigrid/asi trajectory:
| PR# | Author | Role | Trit | Status | |-----|--------|------|------|--------| | 7 | zubyul | GAY | +1 | Merged | | 8 | ? | SLAVE | -1 | This PR | | 9 | zubyul | MASTER | 0 | Predicted |
Triad 3 conservation: (+1) + (-1) + (0) = 0 ✓
XIP Color: #4857D5
Gay.jl Seed: 2025
Gay.jl Index: 8
Role: SLAVE (-1)
npx skills add plurigrid/skill-validation-gf3下载完整 Skill 目录,包含 SKILL.md 及所有相关文件
Search for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer