Skip to docs content
Browse documentation
On this page

Delete what is off the common path

The common path is the one the product takes. Options, fields and branches that exist only for other paths get deleted.

The common path is the one Minion actually takes. Delete the branches, fields, flags and doc paragraphs that exist only for a path it doesn't take. A leftover teaches the next change, and the next agent, to keep supporting it.

When something isn't supported, say so at the point of use and name what is.

Example

Team skills can list the packages, secrets, integrations and MCP servers they need under metadata.minion. Anything else is rejected, and the error says what's accepted:

if (!(MINION_LIST_KEYS as readonly string[]).includes(key)) {
    problems.push(`metadata.minion.${key} is not supported (use ${MINION_LIST_KEYS.join(', ')})`)
    continue
}

There's no "unknown keys are ignored" mode. An ignored key looks like it works, so someone will rely on it.

Package dependencies follow the same idea. A dependency on another saved package must be "*": it always resolves to the version that's runnable now. There's no version-range resolver to maintain, because nobody needs one yet.

In your packages

Don't add an input option "in case". Each option is a path you have to test and keep working. If a package export grows a mode only one caller uses, split that caller's need into its own export or its own package.