asi-transient-agenda

Org-agenda-like transient views for ASI skill orchestration via nbb/squint + Emacs hydra

16 stars

Best use case

asi-transient-agenda is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Org-agenda-like transient views for ASI skill orchestration via nbb/squint + Emacs hydra

Teams using asi-transient-agenda 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/asi-transient-agenda/SKILL.md --create-dirs "https://raw.githubusercontent.com/plurigrid/asi/main/.claude/skills/asi-transient-agenda/SKILL.md"

Manual Installation

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

How asi-transient-agenda Compares

Feature / Agentasi-transient-agendaStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Org-agenda-like transient views for ASI skill orchestration via nbb/squint + Emacs hydra

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

# ASI Transient Agenda

**Trit**: +1 (PLUS - synthesis of views)
**Stack**: nbb (Node Babashka) + squint-cljs + Emacs transient/hydra
**Bridge**: emacsclient eval ↔ nbb REPL ↔ plurigrid repo state

## Overview

Org-agenda-style transient dispatcher for navigating 400+ plurigrid repositories,
active ASI skills (616+), and running MCP server state. Renders as Emacs transient
menus (hydra-compatible) with data computed by nbb/squint.

## Architecture

```
nbb/squint (ClojureScript)
  ├── repo-index.cljs     — gh API → repo metadata → DuckDB
  ├── skill-scanner.cljs  — skill directory → status/trit/triad
  └── agenda-render.cljs  — transient menu s-expressions → emacsclient
         │
         ▼
Emacs (transient.el / hydra.el)
  ├── asi-agenda-hydra     — top-level dispatcher
  ├── asi-repo-view        — repo browser with category filters
  └── asi-skill-view       — skill status dashboard
```

## Quick Start

```bash
# Generate agenda data
nbb asi-transient-agenda/repo-index.cljs

# Push transient menu to Emacs
nbb asi-transient-agenda/agenda-render.cljs | emacsclient --eval -

# Or use squint for lightweight JS output
npx squint-cljs compile asi-transient-agenda/agenda-render.cljs
node asi-transient-agenda/agenda-render.mjs
```

## Emacs Hydra Definition

```elisp
(defhydra asi-agenda (:color blue :hint nil)
  "
 ASI Agenda: %(asi-agenda--repo-count) repos | %(asi-agenda--skill-count) skills
 ─────────────────────────────────────────────
 _r_ repos   _s_ skills   _m_ MCP servers
 _t_ triads  _g_ GF(3)    _d_ DuckDB query
 _j_ Julia   _z_ Zig      _c_ Clojure
 _q_ quit
"
  ("r" asi-agenda-repos)
  ("s" asi-agenda-skills)
  ("m" asi-agenda-mcp)
  ("t" asi-agenda-triads)
  ("g" asi-agenda-gf3)
  ("d" asi-agenda-duckdb)
  ("j" asi-agenda-julia)
  ("z" asi-agenda-zig)
  ("c" asi-agenda-clojure)
  ("q" nil))
```

## nbb Repo Index

```clojure
(ns asi-transient-agenda.repo-index
  (:require ["child_process" :as cp]))

(defn gh-repos []
  (-> (cp/execSync "gh repo list plurigrid --limit 400 --json name,description,primaryLanguage,updatedAt"
                   #js {:encoding "utf-8"})
      js/JSON.parse
      (js->clj :keywordize-keys true)))

(defn by-language [repos]
  (group-by #(get-in % [:primaryLanguage :name] "none") repos))

(defn agenda-sexp [repos]
  (let [grouped (by-language repos)]
    (str "(asi-agenda--set-data '"
         (pr-str (into {} (map (fn [[k v]] [k (count v)]) grouped)))
         ")")))

(println (agenda-sexp (gh-repos)))
```

## Squint Variant

```clojure
;; agenda-render.cljs (squint dialect)
(ns asi-transient-agenda.agenda-render)

(defn render-transient [data]
  (let [sections (map (fn [[category items]]
                        (str "[\"" category "\" "
                             (apply str (map (fn [item]
                                              (str "(\"" (first (name (:name item))) "\" "
                                                   "\"" (:name item) "\" "
                                                   "asi-agenda-visit)"))
                                            items))
                             "]"))
                      data)]
    (str "(transient-define-prefix asi-repo-browser ()\n"
         "  \"Plurigrid Repository Browser\"\n"
         "  [" (apply str (interpose "\n   " sections)) "])")))
```

## Canonical Triads

```
emacs (-1) + asi-transient-agenda (+1) + babashka-clj (0) = 0
squint-runtime (0) + asi-transient-agenda (+1) + cider-clojure (-1) = 0
```

## Plurigrid Repo Categories

| Category | Count | Key Repos |
|----------|-------|-----------|
| Scheme/Goblins | ~6 | hoot, leprechauns, goblinshare, shepherd |
| Gay.jl Colors | ~7 | gay-rs, gay-go, gay-terminal, lazygay, lazybjj |
| Julia | ~4 | asi-skills, UnwiringDiagrams.jl, MolotovRibbentropKrylovKit.jl |
| Zig | ~2 | zig-syrup, ies |
| Rust | ~8 | clopen-hypergraphs, sprintathon, saopaulo, duck-kanban |
| Python | ~10 | asi, properon, froggo, oni, panda |
| Clojure | ~3 | agent-o-rama, madonna, agi-tools |
| TypeScript | ~4 | portal, llms-txt-hub, pepepedia |