From asi
Verifies GF(3) skill conservation on GitHub pull requests by parsing PR bodies for balanced skill coloring tables with ⊕ (+1), ○ (0), ⊖ (-1) trits summing to 0 mod 3. Provides bash scripts using gh CLI and jq.
npx claudepluginhub plurigrid/asi --plugin asiThis skill uses the workspace's default tool permissions.
Enforces skill coloring requirements on all contributions. PRs without valid GF(3) manifests will be rejected.
Validates skills repository for GF(3) triad conservation, role consistency (GAY/MASTER/SLAVE), and deterministic Gay.jl colors. Includes Python script checking structure, declarations, and sums.
Distills GitHub PR review comments into reusable skills and AGENTS.md guidelines. Filters noise, categorizes feedback on security, performance, style, architecture, and generates actionable patterns.
Analyzes merged GitHub PR review comments to extract lessons learned, identify skill gaps and patterns, then applies fixes to skill files.
Share bugs, ideas, or general feedback.
Enforces skill coloring requirements on all contributions. PRs without valid GF(3) manifests will be rejected.
Every contribution uses skills. Recording which skills were used:
Every PR body or comment MUST include:
## GF(3) Skill Coloring
| Skill | Trit | Color | Role |
|-------|------|-------|------|
| skill-name-1 | ⊕ (+1) | #RRGGBB | Generator |
| skill-name-2 | ○ (0) | #RRGGBB | Coordinator |
| skill-name-3 | ⊖ (-1) | #RRGGBB | Validator |
**Conservation**: Σ = (+1) + (0) + (-1) = 0 ✓
Thread: ⟨xxxx⟩
| Trit | Symbol | Value | Role | Hue Range | Examples |
|---|---|---|---|---|---|
| PLUS | ⊕ | +1 | Generator/Executor | 0-60°, 300-360° (warm) | gay-mcp, gaymove, depth-search |
| ERGODIC | ○ | 0 | Coordinator/Synthesizer | 60-180° (neutral) | acsets, aptos-agent, ducklake-walk |
| MINUS | ⊖ | -1 | Validator/Constrainer | 180-300° (cold) | code-review, narya-proofs, three-match |
Σ trits ≡ 0 (mod 3)
Valid combinations:
⊕ ⊗ ○ ⊗ ⊖ → 1 + 0 + (-1) = 0 ✓⊕ ⊗ ⊕ ⊗ ⊖ ⊗ ⊖ → 1 + 1 + (-1) + (-1) = 0 ✓○ ⊗ ○ ⊗ ○ → 0 + 0 + 0 = 0 ✓Invalid:
⊕ ⊗ ○ → 1 + 0 = 1 ≠ 0 (mod 3) ✗⊕ ⊗ ⊕ → 1 + 1 = 2 ≠ 0 (mod 3) ✗PRs can form balanced triads across the repository:
PR#23○ ⊗ PR#24⊕ ⊗ PR#25⊖ ⊢ Σ = 0 ✓
Document cross-PR links:
### Cross-PR Triad
This PR (⊕) balances with:
- PR#XX (○) - coordinator
- PR#YY (⊖) - validator
Include thread ID for provenance:
Thread: ⟨6d21⟩
# Extract and verify GF(3) from PR
gh pr view $PR --json body | jq -r '.body' | \
grep -oE '[⊕○⊖]' | \
awk 'BEGIN{s=0} {if($0=="⊕")s+=1; if($0=="⊖")s-=1}
END{m=(s%3+3)%3; print "Σ="s" mod3="m; exit(m!=0)}'
# Verify all open PRs have GF(3) manifests
for pr in $(gh pr list --json number -q '.[].number'); do
echo -n "PR#$pr: "
gh pr view $pr --json body | jq -r '.body' | \
grep -q 'GF(3)' && echo "✓" || echo "✗ MISSING"
done
# List skills used in this session
cat << 'EOF'
## GF(3) Skill Coloring
| Skill | Trit | Color | Role |
|-------|------|-------|------|
| gf3-pr-verify | ⊖ (-1) | #3541C7 | Validator |
| code-review | ⊖ (-1) | #3541C7 | Validator |
| gay-mcp | ⊕ (+1) | #FFD700 | Generator |
**Conservation**: Σ = (-1) + (-1) + (+1) = -1 ≡ 2 (mod 3) ⚠️
Need 1 more ⊕ or 2 more ⊖ to balance
EOF
Add to .github/workflows/validate.yml:
- name: Verify PR GF(3) Conservation
if: github.event_name == 'pull_request'
run: |
PR_BODY=$(gh pr view ${{ github.event.pull_request.number }} --json body -q '.body')
# Check for GF(3) section
if ! echo "$PR_BODY" | grep -q 'GF(3)'; then
echo "::error::PR missing GF(3) Skill Coloring section"
exit 1
fi
# Verify conservation
SUM=$(echo "$PR_BODY" | grep -oE '[⊕○⊖]' | \
awk 'BEGIN{s=0} {if($0=="⊕")s+=1; if($0=="⊖")s-=1} END{print s}')
MOD=$((($SUM % 3 + 3) % 3))
if [ "$MOD" -ne 0 ]; then
echo "::error::GF(3) not conserved: Σ=$SUM (mod 3)=$MOD"
exit 1
fi
echo "✓ GF(3) conserved: Σ=$SUM (mod 3)=0"
code-review⊖ ⊗ aptos-agent○ ⊗ gaymove⊕ ⊢ 0
narya-proofs⊖ ⊗ acsets○ ⊗ depth-search⊕ ⊢ 0
three-match⊖ ⊗ ducklake-walk○ ⊗ gay-mcp⊕ ⊢ 0
gf3-pr-verify⊖ ⊗ code-review⊖ ⊗ autopoiesis⊕ ⊗ gay-mcp⊕ ⊢ 0
= (-1) + (-1) + (+1) + (+1) = 0 ✓
| Error | Meaning | Fix |
|---|---|---|
PR missing GF(3) section | No skill manifest | Add ## GF(3) Skill Coloring section |
GF(3) not conserved | Σ ≠ 0 (mod 3) | Add balancing skills |
Invalid trit value | Not in {-1, 0, +1} | Use ⊖/○/⊕ symbols |
Missing thread ID | No ⟨xxxx⟩ | Link to ampcode thread |
Skills combine via tensor product (⊗):
⟦s₁ ⊗ s₂⟧ = (trit₁ + trit₂, mix(color₁, color₂), xor(seed₁, seed₂))
Conservation law:
∀ PR: Σᵢ tritᵢ ≡ 0 (mod 3)
This ensures the skill lattice remains balanced across all contributions.
This skill connects to the K-Dense-AI/claude-scientific-skills ecosystem:
general: 734 citations in bib.duckdbThis skill maps to Cat# = Comod(P) as a bicomodule in the equipment structure:
Trit: 0 (ERGODIC)
Home: Prof
Poly Op: ⊗
Kan Role: Adj
Color: #26D826
The skill participates in triads satisfying:
(-1) + (0) + (+1) ≡ 0 (mod 3)
This ensures compositional coherence in the Cat# equipment structure.