myco_propagate
Copy integrated or distilled notes from a source Myco substrate to a destination substrate's raw notes for cross-project knowledge sharing. The receiving substrate then assimilates the propagated content.
Instructions
Copy integrated and/or distilled notes from this substrate to a downstream target substrate's notes/raw/. The receiver's agent then chooses which to assimilate — propagate is the source-side push; the receiver's own metabolism filters. Today's integrated-in-A becomes tomorrow's raw-in-B (per L0 principle 4: 永恒迭代, today's conclusion is tomorrow's raw material).
Use this when: knowledge produced in substrate A should feed substrate B (cross-project knowledge sharing). Do NOT use this as a replacement for git (propagation is a knowledge artifact movement, not version-control). The receiver must have a valid _canon.yaml at dst; propagation refuses if dst is not a substrate (no auto-germinate).
Side effects: writes 1+ files under /notes/raw/ on the DOWNSTREAM substrate (not this one). R6 write_surface check is applied to the destination substrate's canon, not the source. Dry-run available.
Returns: { exit_code, select, src_substrate_id, dst_root, count, propagated: [...source paths...], compat_warnings, dry_run, commit }.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| dst | Yes | Absolute or relative path to the downstream substrate's root (must contain _canon.yaml). When relative, resolved against this substrate's root. The downstream must already be a Myco substrate — propagate will NOT auto-germinate a dst; run myco_germinate there first. | |
| select | No | Which layer of this substrate's metabolism to propagate. One of: 'integrated' (default, notes/integrated/**.md), 'distilled' (notes/distilled/**.md), 'both'. Raw notes are never propagated (they haven't graduated past the intake queue yet). The propagated files land in the destination's notes/raw/ regardless — receiver re-metabolizes. | integrated |
| commit | No | Optional git commit SHA (of the source substrate) to record in the propagated notes' frontmatter as the provenance stamp. When null, 'unknown' is recorded. Useful for traceability: lets downstream agents audit 'what version of source A produced this note'. | |
| dry_run | No | When true, list which notes would be propagated and to where, but write nothing. Default false (writes immediately to the destination). | |
| project_dir | No | Absolute path of the workspace / project whose Myco substrate this call targets. Overrides auto-discovery. When omitted, Myco resolves via MCP roots/list, then MYCO_PROJECT_DIR, then cwd — the substrate_pulse field in every response echoes which source answered. |