dynamic-sufficiency-goblin

Self-regulating Goblins actor implementing Ivan Illich's dynamic sufficiency

16 stars

Best use case

dynamic-sufficiency-goblin is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Self-regulating Goblins actor implementing Ivan Illich's dynamic sufficiency

Teams using dynamic-sufficiency-goblin 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

$curl -o ~/.claude/skills/dynamic-sufficiency-goblin/SKILL.md --create-dirs "https://raw.githubusercontent.com/plurigrid/asi/main/plugins/asi/skills/dynamic-sufficiency-goblin/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/dynamic-sufficiency-goblin/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How dynamic-sufficiency-goblin Compares

Feature / Agentdynamic-sufficiency-goblinStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Self-regulating Goblins actor implementing Ivan Illich's dynamic sufficiency

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

# Dynamic Sufficiency Goblin

**Real Spritely Goblins** actor that self-regulates workforce via load-based spawning. GF(3) conserved.

## Illich's Principle

> "Tools that demand only threshold skill, foster autonomy."

A goblin that:
1. Monitors load (free energy)
2. Spawns helpers when overwhelmed (>80%)
3. Releases helpers when idle (<30%)
4. Maintains `Σ trits ≡ 0 (mod 3)`

## Real Guile Goblins Implementation

```scheme
(use-modules (goblins)
             (goblins actor-lib methods)
             (ice-9 format)
             (srfi srfi-1))

(define (^sufficiency-goblin bcom capacity)
  (define queue '())
  (define helpers '())
  (define my-trit 0)

  (define (load-factor)
    (/ (length queue) (max 1 capacity)))

  (define (gf3-sum)
    (+ my-trit (fold + 0 (map cdr helpers))))

  (define (balanced-trit-for-spawn)
    (case (modulo (+ (gf3-sum) 300) 3)
      ((0) 0) ((1) -1) ((2) 1)))

  (methods
   ((enqueue item)
    (set! queue (cons item queue))
    (when (> (load-factor) 0.8)
      (let* ((helper-trit (balanced-trit-for-spawn))
             (helper (spawn ^sufficiency-goblin 2)))
        (set! helpers (cons (cons helper helper-trit) helpers)))))

   ((release-idle)
    (when (and (< (load-factor) 0.3) (pair? helpers))
      (set! helpers (cdr helpers))))

   ((status)
    `((load . ,(load-factor))
      (helpers . ,(length helpers))
      (gf3 . ,(gf3-sum))
      (conserved? . ,(zero? (modulo (gf3-sum) 3)))))))

;; Usage with actormap (no networking required)
(define am (make-actormap))
(define goblin (actormap-spawn! am ^sufficiency-goblin 3))
(actormap-run! am (lambda () ($ goblin 'enqueue "work")))
```

## Run

```bash
cd ~ && flox activate -- guile -e main /tmp/sufficiency-goblin.scm
```

## Output

```
╔═══════════════════════════════════════════════════════════════╗
║     DYNAMIC SUFFICIENCY GOBLIN (Real Spritely Goblins)        ║
╠═══════════════════════════════════════════════════════════════╣

Created goblin with capacity=3

  Enqueued: 1 items, load=33.3%, helpers=0
  Enqueued: 2 items, load=66.7%, helpers=0
  → Spawned helper with trit 0 (GF(3)=0)
  Enqueued: 3 items, load=100.0%, helpers=1
  → Spawned helper with trit 0 (GF(3)=0)
  Enqueued: 4 items, load=133.3%, helpers=2

  Status:
    queue:     4 items
    helpers:   2
    GF(3) Σ:   0
    conserved: ✓

Processing work...
  Processed: braindance-4
  Processed: braindance-3
  ...

Attempting to release idle helpers...
  ← Released helper (was trit 0)
  ← Released helper (was trit 0)

  Status:
    queue:     0 items
    helpers:   0
    GF(3) Σ:   0
    conserved: ✓
╚═══════════════════════════════════════════════════════════════╝
```

## GF(3) Conservation

```
Spawn rule: helper-trit = -Σ(current) mod 3
  sum=0 → spawn 0  (neutral)
  sum=1 → spawn -1 (balance)
  sum=2 → spawn +1 (balance)

Invariant: Σ(goblin + helpers) ≡ 0 (mod 3) ∀ states
```

## Dependencies (flox)

```bash
flox install guile guile-goblins guile-fibers guile-gnutls
```

## Integration

```
braindance-worlds (0) ⊗ dynamic-sufficiency (+1) ⊗ acsets (-1) = 0 ✓
```

Related Skills

We are still matching the closest adjacent skills for this page. In the meantime, continue through the full directory.