plant · git:20261030.6b6d663 · 2026-10-30 · sha256 494c30a75ecbd6b5
plant git:20261030.6b6d663A
Immutable. This exact content never changes and is served at /api/v1/blob/494c30a75ecbd6b5.
---
name: plant
description: Plants a seed skill from the plugin in the person's folder, turning it into a file of theirs (editable and self-modulating). Use when the person runs /pm-chief-of-staff:plant (named /pm-chief-of-staff:plantar up to 0.7.0), with or without a seed name, asks "which seeds are available?" or "que sementes tem disponíveis?", asks in any language to plant a seed by its 0.7.0 name (`fechar-semana` and the others), or after a plugin update when they want to adopt a new skill. Never overwrites an existing skill of the person, including one planted under its 0.7.0 name.
---
# Plant a seed
A seed is a starter skill that lives in the plugin only until it is planted: copied to `.claude/skills/` in the person's folder, it becomes THEIR file, editable, self-modulating, out of reach of any plugin update.
Every message to the person goes in their language: the one the folder's instruction file sets (the `AGENTS.md`; in a folder built before 0.6, the `CLAUDE.md`), or the `**Language:**` line of `.claude/skills/_shared/vocabulary.md`; without either, the one they write in.
## The folder's vocabulary (read before step 1)
Names come from `${CLAUDE_PLUGIN_ROOT}/modules/vocabulary.md` (if the variable does not resolve, the plugin root is the folder two levels above this SKILL.md; only without it, locate the `pm-chief-of-staff` plugin folder in the plugin cache of the agent in use). Which column holds for this folder:
* `.claude/skills/_shared/vocabulary.md` exists: it rules, with the names and labels it records.
* Without it, the folder is from 0.7.0 when it has `navegacao.md`, `setup-notas.md`, `_shared/capacidades.md`, `_shared/gate-de-escrita.md` or any of the six seed folders under its 0.7.0 name (the "Legacy 0.7.0 names" table). Then the `pt-BR` column of "Person-facing vocabulary" applies, and the modules are the ones the folder has (`_shared/capacidades.md`, `_shared/gate-de-escrita.md`). Nothing here renames a file of the folder or creates `_shared/vocabulary.md` in it.
* With neither, ask the language in 1 line and follow the instruction file.
## Flow
1. **List the catalog.** The seeds live in `${CLAUDE_PLUGIN_ROOT}/seeds/`. List the available ones with 1 line of description each, taken from the first sentence of the `description` field of the frontmatter (the line after the title is the seed banner, identical in all of them, and describes nothing). Compare with `.claude/skills/` of the current folder: a seed is planted when its folder exists under the 0.8.0 name or under its 0.7.0 name from the legacy table (`abrir-dia` for `start-day`, `fechar-dia` for `close-day`, `fechar-semana` for `close-week`, `preparar-conversa` for `prep-conversation`, `processar-reuniao` for `process-meeting`, `absorver` for `absorb`). Mark it as planted with the name it has in the folder ("planted as `abrir-dia`").
2. **The person chooses** (or already came with the name in the command). A name asked in its 0.7.0 form (`fechar-semana`) is translated to the 0.8.0 seed by the same table, and you say so in 1 line ("`fechar-semana` is now `close-week`"). A name that is in neither column is not a seed: show the catalog.
3. **Check collision.** If `.claude/skills/{name}/` already exists in their folder, or the folder of the seed's 0.7.0 predecessor does: **never overwrite, and create nothing before the ok**. Name what is there and offer three ways out: keep theirs (the default, and what holds when the answer is unclear); plant the catalog version next to it to compare (under the 0.8.0 name when the predecessor has the 0.7.0 name, or under another name when the names are equal), warning that both skills answer the same triggers and either one can fire until they remove one, which only they do; or show the diff between their copy and the catalog's. Their skill is never deleted, renamed or merged by you.
4. **Copy** the seed folder to `.claude/skills/{name}/` in the person's folder, where `{name}` is always the 0.8.0 name of the seed, never its 0.7.0 name, even when the request used the old one (only the side-by-side copy of step 3, when the names are equal, goes under another name), adapted to the folder's vocabulary before writing: replace each folder and file path of the "Person-facing vocabulary" table, each label of the same table (today's 3 block, balance, seed for tomorrow, reflection, week close, hub sections, superseded and expired marks, rules index, note and agenda frontmatter and sections, doubt mark, consumer line of `absorb`, log entry, date format in labels) and each module path (`_shared/capabilities.md`, `_shared/write-gate.md`) with the name this folder uses. In an 0.7.0 folder the agent side carries its 0.7.0 names too, so also replace each fixed file name the "Legacy 0.7.0 names" table maps (`navigation.md` with `navegacao.md`, and the same with `setup-notes.md` and `tells-draft.md`) and each name of the "Agent-side labels" table (module consumer line, capability names, capabilities module columns and calendar section, `tells.md` sections) with its legacy 0.7.0 column of that table: the folder's `_shared/capacidades.md` has the row `agenda do dia`, not `today's calendar`, and the column `como chamar`, not `how to call`. In a new folder these agent-side names stay in English. A mention of another seed by name uses the name this folder has for it, because that is the skill that exists there: in an 0.7.0 folder, the 0.7.0 name of each seed planted under it (`fechar-dia` where the copy says `close-day`, when the folder has `.claude/skills/fechar-dia/`); a seed the folder does not have keeps its 0.8.0 name, and a path or plugin command that already names both forms stays as it is. The planted seed's own folder and `name` keep the 0.8.0 name. In a language that is neither English nor pt-BR, also add to the `description` the trigger phrases in the folder's language. The instructions themselves stay in English.
**Leftover search, after writing:** search the written copy for every `en` name that this folder maps differently, as a whole word (the character right before it and right after it is not a letter or digit) or, for a label, together with its markup (`**Context:**`, `## Context`); a pt-BR label that starts with the `en` name (`Contexto` for `Context`) is not a leftover. For a label or path with a placeholder, search each fixed piece, the text before the first `{` or `YYYY` and the text after the last placeholder (`meetings/` and `agenda.md` of `meetings/{name}/YYYY-MM-DD agenda.md`), never the whole cell, because the seeds read and write the label and the path by those fixed pieces. In an 0.7.0 folder the search covers `journal/`, `people/`, `projects/`, `meetings/`, `agenda.md`, `context/`, `reference/`, `context/pains.md`, `context/trajectory.md`, `## Today's 3:`, `## Week close:`, `**Balance:**`, `**→ tomorrow:**`, `**Reflection:**`, `Context`, `Facts`, `Current reading`, `Recent signals`, `History`, `superseded on`, `expired on`, `type: meeting-note`, `with:`, `date:`, `**Context:**`, `**Raw:**`, `## Decisions`, `## Signals`, `## Unresolved`, `## Open follow-ups`, `## Decisions to make`, `## Topics`, `## Feedback (1-2)`, `to validate`, `when I use this`, `write-gate.md`, `capabilities.md`, the agent-side names `navigation.md`, `**Loaded by:**`, `today's calendar`, `messages`, `meeting transcript`, `how to call`, and the rest of the column and of the agent-side names the legacy table maps differently. It also covers, as a whole word, the 0.8.0 name of each other seed this folder has under its 0.7.0 name, outside a path or command that names both forms. Any occurrence left over is fixed before declaring the planting, and you say in 1 line what was adapted. A leftover mention makes the first write go to a folder or label nobody reads.
If the copy references the capabilities module and the folder has neither `_shared/capabilities.md` nor `_shared/capacidades.md`, say in 1 line that the seed will keep asking for what it could pull on its own, and offer to run `/pm-chief-of-staff:connect`. If it exists, nothing to say.
After the copy, run in their folder `sh "<plugin root>/modules/codex-bridge.sh"`, with the path in quotes. The bridge keeps `.agents/skills` pointing to `.claude/skills`, so the planted seed also shows up in Codex, and running it again does not touch what is already linked. Warn beforehand, in 1 sentence, that running the command may ask for permission. Exit 2 is something of the person in the way, left untouched: show the conflict lines and decide with them, never delete, rename or merge on your own. Exit 1 or command denied: say that in Codex the seed stays without discovery until the bridge runs.
**Their 0.7.0 `fechar-dia`, after planting `close-week`.** When the planted seed is `close-week` and the folder has `.claude/skills/fechar-dia/SKILL.md` with a line that checks `.claude/skills/fechar-semana/` but not `.claude/skills/close-week/` (step 7 of the 0.7.0 seed, the Friday offer), that file of theirs only knows the old name: every Friday it would offer to plant the week close already planted, through the removed `/pm-chief-of-staff:plantar fechar-semana`. Say so in 1 line and show that line before and after: after, it also recognizes `.claude/skills/close-week/` and cites `/pm-chief-of-staff:plant close-week` in place of the old command, in the line's own language, with the rest of the line as it is. Edit that line only with their ok, and only that line (the `Edit` replaces that line and nothing else of the file). Without a clear ok, nothing changes in their file and the planted copy holds. Their `fechar-dia` without that check, or one that already recognizes `close-week`, is left alone, with nothing to say.
5. **Tell them:** "planted. This skill is now a file of yours: ask me to change anything in it and I edit it on the spot. A plugin update never touches it."
## If the folder has no system set up
The system is set up when the folder has the instruction file (the `AGENTS.md`; in a folder built before 0.6, which has no `AGENTS.md`, the `CLAUDE.md`). Without either (setup never ran), say that the seed works better planted in a set-up system and offer to run `/pm-chief-of-staff:setup` first. If the person wants the standalone seed anyway, plant it.