myco_germinate
Bootstraps a new Myco substrate: creates _canon.yaml, MYCO.md, and .myco/state/autoseeded.txt. For initial project setup only.
Instructions
Bootstrap a new Myco substrate: creates _canon.yaml (contract + identity + subsystems), MYCO.md (or the named entry-point), and .myco/state/autoseeded.txt at the target project directory. Call this once per project — for every subsequent action, other verbs take over and this one raises "substrate already exists".
Use this when: starting a brand-new substrate for a project that does not yet have _canon.yaml. Do NOT use this when: the project already has a substrate (pulse reports substrate_id), when the workspace has _canon.yaml in a parent directory (you are already inside a substrate), or when you only want to ingest into an existing substrate (use myco_eat instead).
Side effects: writes 3 files (see germination doctrine for the
exact canon shape); registers the substrate in
~/.myco/substrates.yaml so myco graft --list-substrates finds
it. Honors R6 write_surface (the freshly-stamped canon includes
notes/, docs/, src/, .myco/ by default).
Returns: { exit_code, files_created, preview, dry_run,
project_dir, substrate_id }. The preview dict shows the
first line and byte count of each written file; dry_run=true
returns the same shape without writing.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| project_dir | Yes | Absolute or relative path of the directory that will host the new substrate. Must exist and be writable; the _canon.yaml will be created inside this directory (not a subdirectory). Use forward slashes or escaped backslashes on Windows. | |
| substrate_id | Yes | Stable slug identifying this substrate across the mycelial network. Used in cross-substrate propagation + the ~/.myco/substrates.yaml registry. Recommend kebab-case, human-readable (e.g. 'neurips-2026-research' or 'my-company-infra'). No uniqueness check; reuse silently overwrites registry entries. | |
| tags | No | Free-form affiliation tags attached to the substrate identity (e.g. ['research','production','personal']). Per L0: tags are NOT boundaries — they don't gate writes, they only describe. Stored at _canon.yaml::identity.tags and surfaced in substrate_pulse for grep-friendly discovery. | |
| entry_point | No | Filename of the agent-entry markdown that the substrate opens with. Defaults to MYCO.md (Myco-native convention). Override to 'CLAUDE.md' when you want the substrate to share an entry with Claude-ecosystem conventions. The file gets created if absent; existing files are not overwritten unless --force. | MYCO.md |
| dry_run | No | When true, compute the files that would be written + return their byte count and first line in the preview payload, but do NOT touch disk. Use for 'what would happen if I germinate here' inspection without committing. Default false (writes immediately). |