Zulip Cogen Skill πΈβ‘
/plugin marketplace add plurigrid/asi/plugin install asi-skills@asi-skillsThis skill inherits all available tools. When active, it can use any tool Claude has access to.
frog_pipeline.orgfrog_pipeline.pygeodesics/frog_pipeline.geodesic.pygeodesics/zulip_cogen.geodesic.pyzulip_cogen.orgzulip_cogen.pyTrit: +1 (PLUS - Generator)
GF(3) Triad: dynamic-sufficiency (-1) β proof-of-frog (0) β zulip-cogen (+1) = 0
Code generator from Category Theory Zulip knowledge base with dynamic sufficiency gating. Transforms 121k messages into executable artifacts only when sufficient context is verified via Ξ΅-machine coverage.
"No generation without sufficient witness. The Ξ΅-machine observes, the gate permits."
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β ZULIP COGEN β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β INPUT OUTPUT β
β ββββββββββββββββ βββββββββββββββββββββββββββ β
β β CT Zulip βββββββββΆβ Lean4 proofs β β
β β 121k msgs β β Mermaid diagrams β β
β β 81 ponds β β Julia/Python impls β β
β ββββββββββββββββ β ACSet schemas β β
β βββββββββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
| Mode | Input | Output |
|---|---|---|
proof | Math discussion | Lean4 theorem |
diagram | Category description | Mermaid/tikzcd |
impl | Algorithm discussion | Julia/Python code |
schema | Data structure talk | ACSet definition |
skill | Topic cluster | SKILL.md |
# Generate Lean4 proof from discussion
zulip-cogen proof "adjoint functors" --pond theory:-category-theory
# Generate diagram from thread
zulip-cogen diagram --thread-id 12345 --format mermaid
# Generate implementation
zulip-cogen impl "kan extension" --lang julia
# Generate ACSet schema
zulip-cogen schema "simplicial sets"
# Generate skill from pond
zulip-cogen skill --pond theory:-topos-theory
Input: Discussion about "left adjoints preserve colimits"
Output:
```lean
theorem left_adjoint_preserves_colimits
{C D : Category} (F : Functor C D) (G : Functor D C)
(adj : F β£ G) : PreservesColimits F := by
intro J K c hc
exact adj.leftAdjointPreservesColimits c hc
Input: "The Yoneda embedding is fully faithful"
Output:
```mermaid
graph LR
C[C] -->|y| PSh["[Cα΅α΅, Set]"]
subgraph "Yoneda"
y["y: C β Hom(-, C)"]
end
style y fill:#08bed5
Input: Discussion on "computing left Kan extensions"
Output:
```julia
function left_kan(F::Functor, K::Functor)
# Lan_K(F)(d) = colim_{(c,k) β (Kβd)} F(c)
d -> begin
comma = comma_category(K, d)
colimit(c -> F(c.source), comma)
end
end
class ZulipCogen:
def __init__(self, db_path: str):
self.db = duckdb.connect(db_path)
self.gay_seed = 0x6761795f636f6c6f
def generate(self, mode: str, query: str, **kwargs) -> str:
# 1. Retrieve relevant messages
context = self.retrieve(query, kwargs.get('pond'))
# 2. Extract structure
structure = self.extract_structure(context, mode)
# 3. Generate artifact
return self.synthesize(structure, mode, kwargs.get('lang'))
def retrieve(self, query: str, pond: str = None) -> List[Message]:
sql = """
SELECT content, sender, color
FROM ct_zulip_messages m
JOIN ct_zulip_streams s ON m.stream_id = s.id
WHERE m.content LIKE ?
"""
if pond:
sql += " AND s.name LIKE ?"
return self.db.execute(sql, params).fetchall()
Before ANY generation, verify sufficient context:
def pre_generation_gate(query: str, mode: str) -> Verdict:
"""Gate generation on sufficient Zulip context."""
messages = retrieve(query)
coverage = compute_coverage(query, messages)
if coverage.score >= 0.7: # 70% threshold for generation
return Verdict.PROCEED
elif coverage.score >= 0.3:
return Verdict.WARN(f"Low coverage: {coverage.score:.0%}")
else:
return Verdict.ABORT(f"Insufficient context: {len(messages)} msgs")
| Causal State | Required Coverage | Artifact |
|---|---|---|
PROOF_READY | 3+ math discussions | Lean4 theorem |
DIAGRAM_READY | 2+ structural mentions | Mermaid |
IMPL_READY | 5+ code references | Julia/Python |
SCHEMA_READY | 3+ type discussions | ACSet |
min(sufficiency) β€ generation β€ max(fanout)
dynamic-sufficiency GATES: Prevents generation without context
zulip-cogen GENERATES: Synthesizes artifacts from sufficient context
| Stage | Trit | Cogen Phase | Sufficiency Check |
|---|---|---|---|
| π₯ TADPOLE | -1 | Retrieve context | Ξ΅-machine inference |
| πΈ FROGLET | 0 | Extract structure | Coverage β₯ 0.7 |
| π¦ MATURE | +1 | Synthesize artifact | Generate if sufficient |
Generated artifacts feed back into skill ecosystem:
zulip-cogen skill --pond theory:-type-theory
β
~/.claude/skills/type-theory-ct/SKILL.md
β
proof-of-frog verifies GF(3) balance
Each generation gets deterministic color based on query hash:
def generation_color(query: str, mode: str) -> str:
h = fnv1a(f"{query}:{mode}")
seed = splitmix64(GAY_SEED ^ h)
return seed_to_color(seed)
| Path | Purpose |
|---|---|
~/ies/hatchery.duckdb | CT Zulip archive |
~/ies/zulip_cogen.py | Generator implementation |
~/.claude/skills/zulip-cogen/ | Skill definition |