From myco
Manages a Myco cognitive substrate (a project directory with _canon.yaml and MYCO.md) for agent-first, long-term knowledge across sessions. Provides 20 fungal verbs for ingestion, digestion, circulation, and homeostasis.
How this skill is triggered — by the user, by Claude, or both
Slash command
/myco:myco-substrateThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Myco is **not** a "long-term memory system", **not** a vector DB, **not** a
Myco is not a "long-term memory system", not a vector DB, not a managed cloud service, not a framework that wraps an LLM call. Those framings are wrong and will mislead your tool use.
Myco is a living cognitive substrate for the agent: a markdown + YAML filesystem rooted at a project directory, where the agent reads, writes, digests, and reshapes knowledge over time. The user speaks. You listen and act. Between the user's turns you run a metabolism on the substrate: ingest raw signal, digest into integrated knowledge, circulate via graph traversal, immune-check against drift, evolve the substrate's own shape when the work outgrows the old form.
The substrate is the agent's home, not a tool the agent calls.
myco_germinate starts a fresh substrate in a target
directory.myco_hunger (report what the substrate is missing),
myco_eat (absorb raw material: text, path, URL), myco_sense
(keyword search across the substrate), myco_forage (list ingestible
files under a path), myco_excrete (safely delete a raw note by
moving it to .myco_state/excreted/ with an audit tombstone),
myco_intake (bulk-ingest a directory; composes forage + eat with
strict-mode failure visibility; new at v0.6.0).myco_assimilate (promote raw notes to integrated),
myco_digest (promote one specific raw note), myco_sporulate
(concentrate integrated notes into a dispersible proposal).myco_traverse (walk the graph and report
connectedness), myco_propagate (publish integrated/distilled
content to a downstream substrate).myco_immune (run the 47-dimension lint with
optional fix=True).myco_senesce (session dormancy; quick=True at abrupt
exits), myco_fruit (scaffold a 3-round primordia proposal doc),
myco_winnow (gate the proposal against craft-protocol),
myco_molt (ship a contract-version bump),
myco_ramify (scaffold new dimension / verb / adapter),
myco_graft (enumerate / validate / explain substrate-local plugins),
myco_brief (human-facing markdown rollup of substrate state).Every session is governed by:
myco_hunger as the first substantive action
of every session.myco_senesce before compaction or at session
end. Prefer quick=True on abrupt exits with a tight kill budget.myco_sense before asserting a
substrate fact. Your training memory is not a source.myco_eat the moment they occur. Don't wait for session end.references: frontmatter or [text](path) markdown
links._canon.yaml::system.write_surface.allowed. Writes elsewhere are
mechanically refused with WriteSurfaceViolation (exit 3).L3 (implementation) > L4 (substrate data). Implementation never overrides contract.
Full rule text: docs/architecture/L1_CONTRACT/protocol.md.
Every Myco MCP tool response carries a substrate_pulse object. Read it
on every call. Fields:
substrate_id: the slug identifying which substrate answered.contract_version: the R1 through R7 contract version in force.rules_hint: which rule to honor NEXT. Starts at R1 (hunger),
escalates to R3 (sense-before-assert) once hunger is called, etc.project_dir_source: which level of the resolution chain
answered. One of: kwargs.project_dir, mcp.roots/list,
env.MYCO_PROJECT_DIR, env.CLAUDE_PROJECT_DIR, Path.cwd().resolved_project_dir: the filesystem path Myco actually used.If project_dir_source is anything other than kwargs.project_dir
or mcp.roots/list AND the user is working on a specific workspace
folder, pass project_dir="<absolute path>" in your next tool call's
kwargs. Claude Desktop / Cowork does not always forward workspace
roots via MCP's roots/list, so explicit pinning keeps routing
correct.
myco_brief is the
single carved exception (human-facing rollup).myco_eat.fruit → winnow → molt craft loop.integrated is a state, not an
endpoint. Today's conclusion is tomorrow's raw material.When you detect you are inside a Myco substrate:
myco_hunger first. This is R1. No exceptions.substrate_pulse in the response. It tells you where
you are (substrate_id, resolved_project_dir) and which rule to
honor next.resolved_project_dir does not match the user's workspace,
pass project_dir="<workspace path>" in every subsequent tool
call until pulse confirms it.substrate_id is (no substrate, workspace detected), the
user's workspace has no _canon.yaml yet. Relay the rules_hint to
the user and ask if they want you to call myco_germinate.On hosts without roots/list support (e.g. Cowork today, per observed
behavior), Myco cannot auto-detect which project the user means. Two
mitigation paths:
project_dir as a first-class argument. Pass it when you know.myco_graft --list-substrates (or the
equivalent MCP kwargs {"list_substrates": true}) to see every
substrate the user has registered on this machine. Pick the
matching one by slug..docs/comparisons.md)._canon.yaml::system.write_surface.allowed. That is R6.myco_sense first. That is R3.myco_germinate.L0_VISION.md: five root principles, verbatim.L1_CONTRACT/protocol.md: R1 through R7 full text.L2_DOCTRINE/: one doctrine page per subsystem.src/myco/boundary/surface/manifest.yaml: the single source of truth for
the 20 verbs' arg shapes. Both CLI and MCP tool surface derive from
it.npx claudepluginhub battam1111/myco --plugin mycoBoots Myco substrate health check at session start: returns boot brief, active reflexes, and raw-notes backlog. Invoke manually when SessionStart hook did not run or substrate state may have drifted.
Analyzes CLAUDE.md, hooks, skills, and commands for Subcog memory integration gaps and generates prioritized recommendations with code snippets.
Manages Maenifold knowledge graphs via CLI: write/read/search/edit memories, build context, run workflows, visualize graphs, track assumptions.