--- name: automate-me description: "Use for \"automate me\", \"create/update/refresh my -mode skill\", \"turn/capture my preferences or working style into a skill\", or wanting agents to follow how the user works. Drafts or revises a personal -mode skill via Pi authoring + unslop, optionally pulling fresh evidence from recent transcripts." disable-model-invocation: true --- Read [the Pi integration contract](../../../pi/references/integration.md) before executing this skill. # Automate me A guided flow for turning the user's working conventions into a skill agents will follow. The output is one `-mode` skill tailored to them (e.g. `jay-mode`, `priya-mode`). This skill orchestrates three others: an inline mining pass (see step 1), the [Pi authoring contract](../../../pi/references/authoring.md), and the **unslop** skill (prose discipline). It sequences them. It doesn't replace them. ## Flow ### 0. Check for an existing skill Look in the approved project `.pi/skills/` and approved personal Pi skills directory for a matching mode, preserving any established category. Do not scan or edit installed caches. If one exists, confirm intent in chat or an available interview tool (unless already explicit): - Update the existing skill (default for repeat runs) - Start fresh (rare, ask why before doing it) Update mode changes the rest of the flow: - Step 1 mines only history since its last reviewed evidence cutoff, or a stated bounded window if that cutoff is unknown. See the history contract. - Step 2 asks what's changed or missing, not what to capture from zero. - Step 4 edits the existing file in place. Preserve sections the user hasn't contradicted. Revise ones with new evidence. Add new sections only for genuinely new rules. ### 1. Mine their history Use [the history contract](../../../pi/references/history.md). Select only the authorized workspace and ancestry, default 28 days or the last reviewed cutoff. Exclude current/child/eval/fixture sessions. Call `pistack_history` with `{"action":"sessions","purpose":"automate-me"}`, then `{"action":"read","purpose":"automate-me","sessionId":"","leafId":""}` using the same explicit `since`/`until` on both. Use `since` for an incremental reviewed cutoff, not override mtime. Inspect gaps; a supplied export/digest is incomplete evidence, not a global search substitute. The parent can partition bounded evidence into fresh native analysts using `how explorer`, within configured concurrency. Each returns patterns with stable session/entry/leaf references. Default signals worth hunting: - Response preferences (length, tone, format, "dumb it down" corrections) - Delegation habits (subagents, models, specialized workflows, parallelism) - Verification posture (what "done" means, unit tests vs live repro, reviewers) - Code and prose discipline (style, principles cited, lint/format tools) - Process conventions (worktrees, commits, PRs, review/merge tooling) - Meta preferences (fixing skills mid-task, proposing new ones) Cross-check across slices before elevating a signal. Patterns seen in 2+ slices are high-confidence. Lone signals are weak and usually get dropped. ### 2. Ask the user directly Mining misses intent that hasn't come up yet. Use ordinary chat, native Pi dialogs when available, or the optional interview tool after reading its schema. Lower cognitive load, higher hit rate. Shape: one or two questions with 4-6 options each, multiple selections for category questions only when the available tool supports them. Start broad ("Which areas matter most?"), then follow up on selected areas with specific options. After the structured rounds, one free-form chat question catches anything the options missed. Don't dump 20 questions. ### 3. Cluster findings Group the combined signals into sections. Common ones (use only what applies): - **Response style**: length, tone, format. - **Autonomy**: how much to do without asking, MCP tool use. - **Understand first**: which skills to reach for when scoping or investigating a change. - **Subagents**: default, parallelism, model-to-task, specialized workflows. - **Prose / code discipline**: principles, lint tools, style guides. - **Review and verify**: repro posture, verification skills, live-testing tools. - **Process**: git worktrees, commits, PRs, review/merge tooling. - **Skills**: skill-authoring habits, fix-the-skill-first, proposing new skills. The **poteto-mode** skill shows the shape. Read it for granularity. Don't copy its content. The user's rules are not the same as poteto-mode's. ### 4. Draft the skill Use the Pi authoring contract. Call `pistack_reflection_destination` with the proposed `path` and `scope` (`project`, `personal`, or `development-fork`). Present the full draft and returned canonical destination for explicit approval before writing; eligibility never authorizes edits. Placement: - Path: preserve an existing mode skill's category. For a new mode, use `.pi/skills//-mode/SKILL.md` when the repo has an established personal category for that handle; otherwise default to `.pi/skills/-mode/SKILL.md` in the project (or an approved personal Pi skills directory if the user prefers a personal skill). - Handle: the user's first name or chosen identifier. - Frontmatter `description`: trigger on their name + `/skill:-mode` + "work in their style", not on generic keywords like "write code" or "review PR". - Frontmatter formatting: follow the Pi authoring contract's YAML rules. Keep `description` as one YAML scalar; quote it or use `description: >-` with indented continuation lines when punctuation or wrapping requires it. - Frontmatter `disable-model-invocation: true` by default. Mode skills are heavy and opinionated; they should only apply when the user explicitly invokes them (by name or slash command), not auto-trigger on description matching. Visible description discovery is not persistence. Do not claim a new personal mode applies on every turn. ### 5. Iterate on prose Apply the **unslop** skill and the Pi authoring contract's writing guidelines to every line. Both apply to any agent-read prose, not just skills. Show the draft to the user and take feedback. Expect multiple iterations. Cut ruthlessly. A mode skill is not a manual. ### 6. Land it Apply only approved rows to the approved override or development fork. Reload and verify the selected resource, not just a filename. Commit/open a PR only when separately authorized; a personal skill does not automatically gain persistent piStack mode behavior. ## Guardrails - **Don't overfit to one conversation.** A preference stated once and contradicted another time is noise. Require multiple instances before codifying it. - **Don't be clever.** Restating other skills' contents, inventing metaphors, or writing "poetic" prose for an agent reader is cost without benefit. Keep it operational. - **Reference, don't inline.** Other skills the user relies on should appear as path references, not pasted excerpts. Same for any principle docs they maintain elsewhere. - **Keep sections minimal.** Only add a section if the user has a specific, non-default rule there. "Communicate clearly" is not a section. "Short paragraphs. Tables when comparing options. Bullets only when items are genuinely parallel." is. - **Name conventions generic.** Use "the user" or "the human" in imperatives, not the author's first name. - **Don't force symmetry.** If a user has no process rules worth writing down, skip the Process section entirely. ## Evaluation A `-mode` skill is subjective output. An automated test/iterate benchmark loop isn't useful here. Vibe-check with the user: does it read like them? Did it miss anything? Then ship. Run a description-optimization loop only if the skill's trigger accuracy turns out to be a problem in practice. ## When not to use - User wants a task-specific skill (not working conventions): the Pi authoring contract alone, no mining required. - User wants to capture one narrow workflow (e.g. "how I write commit messages"): that's a regular skill, not a mode skill.