ecosystem-init

ecosystem-init is a command for Claude Code from terrene-foundation/kailash-coc-claude-py. It costs 41 tokens per session (2,294 once invoked), scanned A, original, Apache-2.0.

An initialization command for setting up a new project ecosystem, including its shared configuration and initial trust root. A trust root is the starting identity used to establish who controls the ecosystem.

In plain words
What is it for?
Use it once when creating an ecosystem in a new fork, configure its project rules, and prepare its initial identity and non-Kailash project structure.
Why use it?
It creates the shared foundation needed before operators can use or join the ecosystem safely.

Command for Claude Code

Written for Claude Code: installed under .claude/. Also seen: reads .claude/ paths.

Good fit Use it once when creating an ecosystem in a new fork, configure its project rules, and prepare its initial identity and non-Kailash project structure.

Compare 6 commands from other repositories ↓
Install with agentmods
npx agentmods add commands/terrene-foundation/kailash-coc-claude-py/ecosystem-init
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Clone the repo
git clone --depth 1 https://github.com/terrene-foundation/kailash-coc-claude-py

Made for: Claude Code.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for ecosystem-init

README.md
[![agentmods](https://agentmods.dev/badge/commands/terrene-foundation/kailash-coc-claude-py/ecosystem-init/github.svg)](https://agentmods.dev/commands/terrene-foundation/kailash-coc-claude-py/ecosystem-init)
Your own site
<a href="https://agentmods.dev/commands/terrene-foundation/kailash-coc-claude-py/ecosystem-init"><img src="https://agentmods.dev/badge/commands/terrene-foundation/kailash-coc-claude-py/ecosystem-init/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for ecosystem-init

Your own site · 80×15
<a href="https://agentmods.dev/commands/terrene-foundation/kailash-coc-claude-py/ecosystem-init"><img src="https://agentmods.dev/badge/commands/terrene-foundation/kailash-coc-claude-py/ecosystem-init.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 41 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 2,294 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00041 $0.02294
Opus 5 $0.00020 $0.01147
Sonnet 5 $0.00008 $0.00459
Haiku 4.5 $0.00004 $0.00229

Measured 6d ago against content hash a4967036d4e3, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-10, from the pricing page.

Security

Grade A, and why

ecosystem-init scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 6d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

.claude/commands/ecosystem-init.md · 127 lines

How it starts

The opening of the file, as written. The whole thing — 127 lines — stays where its author put it; the contents beside it link to each section on GitHub.

/ecosystem-init — Onboard an Ecosystem (once per fork)

The once-per-fork ceremony that configures a NEW ecosystem (canon, or a client fork that copied the loom↔build↔use ecosystem). One of the three onboarding surfaces — distinct from /enroll (once per operator) and /onboard (read-only, every session); see (loom-internal reference). The three share ZERO write-authority: /onboard writes nothing, /enroll writes roster + local-links, /ecosystem-init writes the ecosystem-config + genesis trust-root.

Usage: /ecosystem-init (no args; runs in the current fork's loom checkout)

Strictly dependency-ordered BEFORE this command, for a client fork: /clean-instantiate — the once-per-clone CLEAR ceremony (.claude/commands/clean-instantiate.md) — MUST have run to a 0-exit fail-closed assert-zero gate on any repo templated or cloned FROM canon. C3 below re-anchors genesis to the CLIENT's owner; it MUST NOT run over a clone that still carries canon's trust-identity (roster, journal, ecosystem.json) at rest — re-anchoring on top of un-cleared identity leaves canon's substrate readable underneath the new root. Canon itself (never cloned FROM anything) has no such precursor and runs /ecosystem-init directly. For a client whose clone is not yet clear, /ecosystem-init is NOT the first command to run — /clean-instantiate is.

Strictly dependency-ordered after this command: an operator runs /enroll (identity), then /onboard (reads each session). /ecosystem-init does NOT silently enroll the initiating operator — it hands off to /enroll (C5). Procedure detail (input prompts, the D6 schema field set, the disclosure-scan invocation shape, the genesis-ceremony call) lives in .claude/skills/43-ecosystem-init/SKILL.md per cc-artifacts.md Rule 3; this command is the entry point.

The five invariants (load-bearing — the redteam surface)

  1. C1 disclosure gate fires BEFORE the ecosystem-config write. The config names real org slugs (the #255/#252 disclosure class). node .claude/bin/scan-synced-disclosure.mjs --check --root <fork-checkout> MUST run and exit 0 BEFORE .claude/bin/ecosystem.json is written; ANY finding → HALT, genericize + relocate, re-scan. Placement does not proceed on a non-zero exit (the artifact-flow.md Intake-Scrub shape, applied at ecosystem-config write time). The scan covers the SURROUNDING synced surface, NOT ecosystem.json's own slugs (the scan runs BEFORE the config is written, and the scanner self-excludes the config at loom-source) — those slugs are fenced by PATH (invariant 5: loom-only never-synced + publish-excluded), not by this scrub (the SKILL § "Disclosure isolation" carries the full nuance).
  2. Human gate confirms the org slugs. For a CLIENT fork, the human MUST confirm each slug points at the CLIENT's org, never canon's — a fork AUTHORS its OWN ecosystem.json (it never inherits canon's; the structural basis of cross-ecosystem isolation, D6 plan §A1). Automated org-slug placement is BLOCKED.
  3. Genesis trust-root is established via the EXISTING ceremony. C3 invokes .claude/hooks/lib/genesis-ceremony.js::runEnrollmentCeremony (the org-owned-bootstrap path, multi-operator-coordination.md §6 + §1 issue-#358 relaxation) — it does NOT re-implement genesis. Owner-class gate; fail-CLOSED (any failed gh-api verification refuses to anchor). On a client fork, C3 MUST NOT run until /clean-instantiate's fail-closed assert-zero gate has exited 0 (see above) — the CLEAR precedes the establish-new-root step it gates.
  4. C5 does NOT silently enroll the initiating operator. The ceremony ends by handing off to /enroll; enrolling the operator is /enroll's job, gated separately (knowledge-convergence.md MUST-5 forbids /onboard-class commands auto-running roster/genesis writes for an operator).
  5. ecosystem.json is ecosystem-private by path. It is written to .claude/bin/ecosystem.json — committed-but-never-synced (sync-manifest.yaml::loom_only), never-published (publish-to-public.mjs EXCLUDE+KILL), and scanner-self-excluded ONLY at loom-source (REPO_ROOT_ACTIVE === REPO_ROOT); a DESTINATION --root scan of another repo DOES scan a stray copy, failing loud on bare org slugs — the belt-and-suspenders backstop. A fork carries its OWN file; no canon→client sync path exists, so canon org slugs cannot travel into a client (D6 plan §4 fence-i).

Read the full file on GitHub · 127 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 6d ago First seen · 127 lines · 41 tokens per session scan A a4967036d4e3

Subscribe to this mod's changes

ecosystem-init is a command published in the GitHub repository terrene-foundation/kailash-coc-claude-py (12 stars, last pushed 22d ago), licensed Apache-2.0. It adds 41 tokens to every session and 2,294 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-03.