Asi gf3-pr-verify

Verify GF(3) skill conservation on pull requests. Ensures every contribution

install
source · Clone the upstream repo
git clone https://github.com/plurigrid/asi
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/plurigrid/asi "$T" && mkdir -p ~/.claude/skills && cp -r "$T/plugins/asi/skills/gf3-pr-verify" ~/.claude/skills/plurigrid-asi-gf3-pr-verify && rm -rf "$T"
manifest: plugins/asi/skills/gf3-pr-verify/SKILL.md
source content

GF(3) PR Verification

Enforces skill coloring requirements on all contributions. PRs without valid GF(3) manifests will be rejected.

Why GF(3) Conservation?

Every contribution uses skills. Recording which skills were used:

  1. Provenance: Track how code was created
  2. Balance: Ensure generator/validator equilibrium
  3. Reproducibility: Others can use same skill triads
  4. Attribution: Credit skill authors

Required PR Format

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 Definitions

TritSymbolValueRoleHue RangeExamples
PLUS+1Generator/Executor0-60°, 300-360° (warm)gay-mcp, gaymove, depth-search
ERGODIC0Coordinator/Synthesizer60-180° (neutral)acsets, aptos-agent, ducklake-walk
MINUS-1Validator/Constrainer180-300° (cold)code-review, narya-proofs, three-match

Conservation Rules

Rule 1: Single PR Conservation

Σ 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) ✗

Rule 2: Cross-PR Triads

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

Rule 3: Thread Linkage

Include thread ID for provenance:

Thread: ⟨6d21⟩

Verification Commands

Check PR Body

# 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)}'

Check All Open PRs

# 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

Generate Skill Manifest

# 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

CI/CD Integration

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"

Common Triads

Development

code-review⊖ ⊗ aptos-agent○ ⊗ gaymove⊕ ⊢ 0

Research

narya-proofs⊖ ⊗ acsets○ ⊗ depth-search⊕ ⊢ 0

Infrastructure

three-match⊖ ⊗ ducklake-walk○ ⊗ gay-mcp⊕ ⊢ 0

This PR

gf3-pr-verify⊖ ⊗ code-review⊖ ⊗ autopoiesis⊕ ⊗ gay-mcp⊕ ⊢ 0
  = (-1) + (-1) + (+1) + (+1) = 0 ✓

Error Messages

ErrorMeaningFix
PR missing GF(3) section
No skill manifestAdd
## 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

Operator Algebra

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.

Scientific Skill Interleaving

This skill connects to the K-Dense-AI/claude-scientific-skills ecosystem:

Graph Theory

  • networkx [○] via bicomodule
    • Universal graph hub

Bibliography References

  • general
    : 734 citations in bib.duckdb

Cat# Integration

This 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

GF(3) Naturality

The skill participates in triads satisfying:

(-1) + (0) + (+1) ≡ 0 (mod 3)

This ensures compositional coherence in the Cat# equipment structure.