Skip to main content

Share run learnings

@farmslot/handoff turns a completed task's report and learnings into a validated, scrubbed Learning Package. Capture is separate from analysis: sharing records the run; a later process may decide whether anything should change.

Configure once

Local staging needs no setup. To configure sharing, create $FARMSLOT_HOME/handoff/learning.config.json (default: ~/.farmslot/handoff/learning.config.json):

{
"schemaVersion": 1,
"destination": "~/dev/experimental-agentic-learnings"
}

The destination is a local clone of the shared git repository. It is optional until you choose to share.

Callers that already own an opt-in setting may pass the clone directly instead of creating a config file:

handoff closeout <task-dir> --share --destination <local-git-clone>

Close out a task

After the task writes SIGNAL.json, artifacts/report.md, and artifacts/learnings.md, provide task-local inputs/handoff.json metadata:

handoff closeout <task-dir>

This stages locally and prints the exact destination path. It does not write to the shared repository.

Only after a human explicitly approves that package:

handoff closeout <task-dir> --share

Every share requires fresh approval and writes the exact staged bytes, not a rebuild from changed task files. Secret detection blocks sharing and keeps only a sanitized local audit. Closeout failure never changes the task verdict.

Fleet callers pass the active farm's config with --config <farm-root>/handoff/learning.config.json. Farms may share one destination, where project/domain indexes keep packages distinct, or use separate destinations. The caller selects the farm; Handoff has no routing map.