con

Skills and workflows

A skill is a slash command backed by a SKILL.md file. In con, that matters because the skill runs through an agent that understands the terminal you are already using.

This is the workflow loop con is built for:

  1. Do the work once with the agent in the loop.
  2. Keep the parts that worked.
  3. Ask the agent to turn the routine into a skill.
  4. Review the SKILL.md.
  5. Run it next time with /skill-name.

The point is not to hide the terminal. The point is to turn a messy terminal routine into something you can rerun with context, panes, SSH, tmux, and approvals still visible.

Why skills fit con

Most agents can run a prompt. con can run a prompt while seeing the terminal shape around it:

That lets a skill say things like:

This is still human-in-the-loop. Dangerous tools keep the approval flow unless you deliberately enable auto-approve for a trusted workspace.

A release workflow example

The first time through, you might ask the agent:

Prepare a beta release. Use this repo, staging over SSH, and the release notes
we already have. Show me each irreversible step before running it.

The agent can work with the terminal instead of starting from a blank chat:

After the run is good, ask:

Turn this release routine into a project skill. Keep approval points for tag,
upload, deploy, and anything destructive. Save it under .con/skills/release/SKILL.md.

The next release can start with:

/release 0.1.0-beta.60

You still review the plan and approvals. The difference is that the hard-won routine now lives with the project instead of in your memory.

Pair skills with layout profiles

Skills describe behavior. Layout profiles describe workspace shape.

Use a layout profile when the workflow benefits from the same starting layout:

Use a skill when the workflow has repeatable judgment:

Together, they give you a repeatable starting point without turning con into a closed workflow runner.

Where skills live

Project skills travel with the workspace:

Global skills follow you across projects:

On Windows, the con config skills folder is:

Project skills override global skills with the same name. That lets a repo define its own /release without changing your personal /release elsewhere.

Skill file shape

Each skill is a folder with a SKILL.md file:

.con/skills/release/SKILL.md

Minimal example:

---
name: release
description: Prepare and verify a project release.
---

# Release

You are helping with a project release from inside con.

First inspect the current panes and working directory. Reuse existing local,
SSH, and tmux workspaces when they match the task. Do not create duplicate panes
unless no reusable target exists.

Before tagging, uploading, deploying, or editing release notes, show the exact
action and wait for approval.

When finished, summarize:
- version
- checks run
- artifacts produced
- release or deploy actions completed
- anything left for the user

Invoke it from the input bar or agent panel:

/release 0.1.0-beta.60

Additional text after the skill name is passed as context for that run.

What to put in a skill

Good skills are opinionated about the workflow, not over-specific about the machine.

Include:

Avoid:

Use stable intent instead: "reuse the staging SSH workspace" is better than "use pane 3" unless the layout profile owns that shape.