Skip to content

0xHoneyJar/loa-constructs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,373 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Constructs Network

version doctrine license

a construct is expertise you install. constructs pipe like unix stages. what's active is always checkable.

constructs.network · Loa framework · construct-base


What this is

A package distribution network for AI agent expertise.

A construct is a self-contained pack — identity, skills, and boundaries — that you install into a Claude Code session. After install, the agent can be invoked by slug, name, command, or persona handle. Multiple constructs can be composed into a pipeline with typed streams between stages (Unix philosophy, applied to LLM expertise).

The network handles discovery, install, version sync, and composition. Authors publish packs. Operators install them. Agents resolve them deterministically.


Quick start

# Install — inject a construct into the current Claude session
constructs-install.sh observer

# See what's active right now (the agent can see this too, always)
constructs-active                   # one line · <1s
constructs-active --orient          # multi-line orientation · ~2s
constructs-active --intervene       # JSON · pipeable

# Enumerate installed packs with provenance
constructs-list                     # table · 3 read-modes

# Invoke — four surface forms, all resolve to the same construct
@artisan          # persona handle
Artisan           # display name (case-insensitive)
artisan           # slug
/feel             # registered command → routes to the-arcade (cycle-004)

Browse and install from the web at constructs.network.

Honest status: the web discovery UI is live but the public index is still bootstrapping. CLI install from 0xHoneyJar/construct-* repos is the reliable path today.


Why

Agents without constructs give you generic output. Agents with constructs give you depth — a Craftsman that decomposes "design" into feel, motion, and material; a Researcher that synthesizes evidence into hypotheses; a Strategist that maps capability to market position.

Same agent. Different expertise installed. Different way of seeing the problem.

graph LR
    You([You]) --> Agent([Your Agent])
    Agent --> |without constructs| Generic["'help me with design'<br/><i>generic output</i>"]
    Agent --> |with constructs| Craftsman["Craftsman — depth-5 Design Systems<br/><i>decomposes into feel, motion, material</i>"]
    Agent --> |with constructs| Researcher["Researcher — depth-5 User Research<br/><i>synthesizes evidence into hypotheses</i>"]
    Agent --> |with constructs| Strategist["Strategist — depth-5 Positioning<br/><i>maps capabilities to market</i>"]

    style Generic fill:#1c1c1c,stroke:#555,color:#888
    style Craftsman fill:#1a1a2e,stroke:#8B5CF6,color:#e8e8ea
    style Researcher fill:#1a1a2e,stroke:#8B5CF6,color:#e8e8ea
    style Strategist fill:#1a1a2e,stroke:#8B5CF6,color:#e8e8ea
Loading

Invoke

Agents resolve a construct reference through five tiers — first match wins, collisions warn explicitly.

Tier Form Example Resolves via
1 Slug artisan construct.yaml slug (case-insensitive)
2 Display name Artisan construct.yaml name
3 Command /feel, /dig, /ceremony, /forge commands/*.yaml registration
4 Persona handle @ALEXANDER, @STAMETS, @OSTROM identity/<HANDLE>.md filename
5 No match warn, list closest matches

Cycle-004 L2 sweep wired command-tier routing end-to-end. /feelthe-arcade. /digk-hole. /ceremony and /forgenoether. Full contract, tested across 12 of 14 reference forms: cycle-004-L2-invocation-contract.md.

Agent-facing transparency is a first-class invariant. constructs-active answers the question "what expertise is loaded in this session right now?" in under a second, in three read-modes suited to glance, orient, or pipe.


Compose

Constructs chain through typed streamsUnix philosophy over LLM expertise. Five primitive stream types flow between stages:

Signal · Verdict · Artifact · Intent · Operator-Model

# grimoires/compositions/discovery/audit-feel.yaml — canonical 3-stage reference
kind: workflow
chain:
  - { construct: artisan,  skill: decomposing-feel,   writes: [Signal] }
  - { construct: artisan,  skill: scoring-experience, reads: [Signal],  writes: [Verdict] }
  - { construct: observer, skill: analyzing-gaps,     reads: [Verdict], writes: [Verdict] }

This repo owns the schema (composition.schema.json) + the runner (compose-run.sh) + one canonical reference composition (audit-feel) for teaching and runner smoke-tests. The full curated registry of compositions lives in loa-compositions, organized by Hivemind Lab workstream (discovery / delivery / experimentation / tech-debt / sorry-for-ur-loss). One contract, two homes.

Full doctrine: bonfire-construct-pipe-doctrine.md.


Cluster index

Cycles that ship a bundle of related composition lanes index their per-lane verdicts here.


Create

Three files. Push. Done.

  1. construct.yaml — name, slug, author
  2. skills/example-simple/SKILL.md — one skill's instructions
  3. CLAUDE.md — identity injected on install
gh repo create my-org/construct-my-expertise \
  --template 0xHoneyJar/construct-base --private --clone

CI validates on push. Placeholder text (your-name, TODO, template markers) is blocked — you can't accidentally publish unedited scaffolding.

Start here: construct-base.


Responsibility boundary

This repo owns a narrow slice of the network's concerns: distribution + registry API + license-verify hooks.

Layer Lives in Owns
Apps (UI + checkout) World repos — sprawl-world, purupuru, etc Payment-initiation, wallet connect, checkout UI
Network API This repo (apps/api, apps/docs, packages/shared, packages/loa-registry) Construct distribution + registry API + license-verify hooks
Ledger loa-freeside Author payouts + revenue share + single-source-of-truth for receipts

N-rails invariant: the network supports N payment rails (Stripe, NOWPayments, x402, future) via freeside hooks. NONE live here. Adding a rail means apps adopt it + freeside adapter ingests it; this repo stays rail-agnostic.

Full details: docs/architecture/payment-responsibility.md.

Per cycle-007: apps/explorer (wallet/wagmi bleed) lifted to sprawl-world as @sprawl-world/constructs-network. loa-freeside/packages/adapters/billing/polar/ stub removed — if a billing adapter ever ships, it lives in Jani's freeside repo.


Operator OS (optional)

Some operators layer a mode-and-lens workflow on top of raw construct invocation — FEEL for zoomed-in craft, ARCH for zoomed-out structure, DIG for research, SHIP for scope discipline. This is a personal workflow pattern, not part of the network itself.

One operator's worked example lives at operator-os-starter as a template to fork and adapt. Constructs work without any OS layer — adopt, modify, or ignore it.


Develop

bun install
bun --filter api dev            # API on localhost:3000
bun --filter explorer dev       # Explorer on localhost:3001

The toolchain that makes constructs visible to agents (constructs-active.sh, constructs-list.sh, feedback-v3-emit.sh) is shell-first — 700+ net new lines across cycle-003/004, zero new TypeScript. Shell for the agent-runtime layer, TypeScript for the web and API only.


Links


AGPL-3.0

About

Packaged expertise for AI agents — ridden with Loa. Install, invoke, compose via typed streams.

Topics

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors