@every-env/compound-plugin 0.8.0 → 0.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +3 -3
- package/AGENTS.md +5 -1
- package/CHANGELOG.md +50 -0
- package/CLAUDE.md +3 -3
- package/README.md +52 -14
- package/docs/plans/2026-02-14-feat-auto-detect-install-and-gemini-sync-plan.md +360 -0
- package/docs/plans/2026-02-25-feat-windsurf-global-scope-support-plan.md +627 -0
- package/docs/plans/2026-03-01-feat-ce-command-aliases-backwards-compatible-deprecation-plan.md +261 -0
- package/docs/plans/feature_opencode-commands-as-md-and-config-merge.md +574 -0
- package/docs/solutions/adding-converter-target-providers.md +692 -0
- package/docs/solutions/plugin-versioning-requirements.md +3 -3
- package/docs/specs/kiro.md +171 -0
- package/docs/specs/windsurf.md +477 -0
- package/package.json +1 -1
- package/plans/landing-page-launchkit-refresh.md +2 -2
- package/plugins/compound-engineering/.claude-plugin/plugin.json +2 -2
- package/plugins/compound-engineering/CHANGELOG.md +72 -1
- package/plugins/compound-engineering/CLAUDE.md +9 -7
- package/plugins/compound-engineering/README.md +10 -7
- package/plugins/compound-engineering/agents/research/git-history-analyzer.md +1 -1
- package/plugins/compound-engineering/agents/research/learnings-researcher.md +1 -1
- package/plugins/compound-engineering/agents/review/code-simplicity-reviewer.md +1 -1
- package/plugins/compound-engineering/commands/ce/brainstorm.md +145 -0
- package/plugins/compound-engineering/commands/ce/compound.md +240 -0
- package/plugins/compound-engineering/commands/ce/plan.md +636 -0
- package/plugins/compound-engineering/commands/ce/review.md +525 -0
- package/plugins/compound-engineering/commands/ce/work.md +470 -0
- package/plugins/compound-engineering/commands/create-agent-skill.md +1 -1
- package/plugins/compound-engineering/commands/deepen-plan.md +6 -6
- package/plugins/compound-engineering/commands/deploy-docs.md +1 -1
- package/plugins/compound-engineering/commands/feature-video.md +15 -6
- package/plugins/compound-engineering/commands/heal-skill.md +1 -1
- package/plugins/compound-engineering/commands/lfg.md +3 -3
- package/plugins/compound-engineering/commands/slfg.md +3 -3
- package/plugins/compound-engineering/commands/test-xcode.md +2 -2
- package/plugins/compound-engineering/commands/workflows/brainstorm.md +4 -123
- package/plugins/compound-engineering/commands/workflows/compound.md +4 -234
- package/plugins/compound-engineering/commands/workflows/plan.md +4 -562
- package/plugins/compound-engineering/commands/workflows/review.md +4 -522
- package/plugins/compound-engineering/commands/workflows/work.md +4 -448
- package/plugins/compound-engineering/skills/brainstorming/SKILL.md +3 -3
- package/plugins/compound-engineering/skills/document-review/SKILL.md +1 -1
- package/plugins/compound-engineering/skills/file-todos/SKILL.md +1 -1
- package/plugins/compound-engineering/skills/git-worktree/SKILL.md +5 -5
- package/plugins/compound-engineering/skills/proof/SKILL.md +185 -0
- package/plugins/compound-engineering/skills/resolve-pr-parallel/SKILL.md +1 -1
- package/plugins/compound-engineering/skills/setup/SKILL.md +2 -2
- package/src/commands/convert.ts +101 -23
- package/src/commands/install.ts +102 -41
- package/src/commands/sync.ts +58 -38
- package/src/converters/claude-to-kiro.ts +262 -0
- package/src/converters/claude-to-openclaw.ts +240 -0
- package/src/converters/claude-to-opencode.ts +12 -10
- package/src/converters/claude-to-qwen.ts +238 -0
- package/src/converters/claude-to-windsurf.ts +205 -0
- package/src/sync/gemini.ts +76 -0
- package/src/targets/index.ts +69 -1
- package/src/targets/kiro.ts +122 -0
- package/src/targets/openclaw.ts +96 -0
- package/src/targets/opencode.ts +76 -10
- package/src/targets/qwen.ts +64 -0
- package/src/targets/windsurf.ts +104 -0
- package/src/types/kiro.ts +44 -0
- package/src/types/openclaw.ts +52 -0
- package/src/types/opencode.ts +7 -8
- package/src/types/qwen.ts +48 -0
- package/src/types/windsurf.ts +34 -0
- package/src/utils/detect-tools.ts +46 -0
- package/src/utils/files.ts +7 -0
- package/src/utils/resolve-output.ts +50 -0
- package/src/utils/secrets.ts +24 -0
- package/tests/cli.test.ts +78 -0
- package/tests/converter.test.ts +43 -10
- package/tests/detect-tools.test.ts +96 -0
- package/tests/kiro-converter.test.ts +381 -0
- package/tests/kiro-writer.test.ts +273 -0
- package/tests/openclaw-converter.test.ts +200 -0
- package/tests/opencode-writer.test.ts +142 -5
- package/tests/qwen-converter.test.ts +238 -0
- package/tests/resolve-output.test.ts +131 -0
- package/tests/sync-gemini.test.ts +106 -0
- package/tests/windsurf-converter.test.ts +573 -0
- package/tests/windsurf-writer.test.ts +359 -0
- package/docs/css/docs.css +0 -675
- package/docs/css/style.css +0 -2886
- package/docs/index.html +0 -1046
- package/docs/js/main.js +0 -225
- package/docs/pages/agents.html +0 -649
- package/docs/pages/changelog.html +0 -534
- package/docs/pages/commands.html +0 -523
- package/docs/pages/getting-started.html +0 -582
- package/docs/pages/mcp-servers.html +0 -409
- package/docs/pages/skills.html +0 -611
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
# Kiro CLI Spec (Custom Agents, Skills, Steering, MCP, Settings)
|
|
2
|
+
|
|
3
|
+
Last verified: 2026-02-17
|
|
4
|
+
|
|
5
|
+
## Primary sources
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
https://kiro.dev/docs/cli/
|
|
9
|
+
https://kiro.dev/docs/cli/custom-agents/configuration-reference/
|
|
10
|
+
https://kiro.dev/docs/cli/skills/
|
|
11
|
+
https://kiro.dev/docs/cli/steering/
|
|
12
|
+
https://kiro.dev/docs/cli/mcp/
|
|
13
|
+
https://kiro.dev/docs/cli/hooks/
|
|
14
|
+
https://agentskills.io
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Config locations
|
|
18
|
+
|
|
19
|
+
- Project-level config: `.kiro/` directory at project root.
|
|
20
|
+
- No global/user-level config directory — all config is project-scoped.
|
|
21
|
+
|
|
22
|
+
## Directory structure
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
.kiro/
|
|
26
|
+
├── agents/
|
|
27
|
+
│ ├── <name>.json # Agent configuration
|
|
28
|
+
│ └── prompts/
|
|
29
|
+
│ └── <name>.md # Agent prompt files
|
|
30
|
+
├── skills/
|
|
31
|
+
│ └── <name>/
|
|
32
|
+
│ └── SKILL.md # Skill definition
|
|
33
|
+
├── steering/
|
|
34
|
+
│ └── <name>.md # Always-on context files
|
|
35
|
+
└── settings/
|
|
36
|
+
└── mcp.json # MCP server configuration
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Custom agents (JSON config + prompt files)
|
|
40
|
+
|
|
41
|
+
- Custom agents are JSON files in `.kiro/agents/`.
|
|
42
|
+
- Each agent has a corresponding prompt `.md` file, referenced via `file://` URI.
|
|
43
|
+
- Agent config has 14 possible fields (see below).
|
|
44
|
+
- Agents are activated by user selection (no auto-activation).
|
|
45
|
+
- The converter outputs a subset of fields relevant to converted plugins.
|
|
46
|
+
|
|
47
|
+
### Agent config fields
|
|
48
|
+
|
|
49
|
+
| Field | Type | Used in conversion | Notes |
|
|
50
|
+
|---|---|---|---|
|
|
51
|
+
| `name` | string | Yes | Agent display name |
|
|
52
|
+
| `description` | string | Yes | Human-readable description |
|
|
53
|
+
| `prompt` | string or `file://` URI | Yes | System prompt or file reference |
|
|
54
|
+
| `tools` | string[] | Yes (`["*"]`) | Available tools |
|
|
55
|
+
| `resources` | string[] | Yes | `file://`, `skill://`, `knowledgeBase` URIs |
|
|
56
|
+
| `includeMcpJson` | boolean | Yes (`true`) | Inherit project MCP servers |
|
|
57
|
+
| `welcomeMessage` | string | Yes | Agent switch greeting |
|
|
58
|
+
| `mcpServers` | object | No | Per-agent MCP config (use includeMcpJson instead) |
|
|
59
|
+
| `toolAliases` | Record | No | Tool name remapping |
|
|
60
|
+
| `allowedTools` | string[] | No | Auto-approve patterns |
|
|
61
|
+
| `toolsSettings` | object | No | Per-tool configuration |
|
|
62
|
+
| `hooks` | object | No (future work) | 5 trigger types |
|
|
63
|
+
| `model` | string | No | Model selection |
|
|
64
|
+
| `keyboardShortcut` | string | No | Quick-switch shortcut |
|
|
65
|
+
|
|
66
|
+
### Example agent config
|
|
67
|
+
|
|
68
|
+
```json
|
|
69
|
+
{
|
|
70
|
+
"name": "security-reviewer",
|
|
71
|
+
"description": "Reviews code for security vulnerabilities",
|
|
72
|
+
"prompt": "file://./prompts/security-reviewer.md",
|
|
73
|
+
"tools": ["*"],
|
|
74
|
+
"resources": [
|
|
75
|
+
"file://.kiro/steering/**/*.md",
|
|
76
|
+
"skill://.kiro/skills/**/SKILL.md"
|
|
77
|
+
],
|
|
78
|
+
"includeMcpJson": true,
|
|
79
|
+
"welcomeMessage": "Switching to security-reviewer. Reviews code for security vulnerabilities"
|
|
80
|
+
}
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
## Skills (SKILL.md standard)
|
|
84
|
+
|
|
85
|
+
- Skills follow the open [Agent Skills](https://agentskills.io) standard.
|
|
86
|
+
- A skill is a folder containing `SKILL.md` plus optional supporting files.
|
|
87
|
+
- Skills live in `.kiro/skills/`.
|
|
88
|
+
- `SKILL.md` uses YAML frontmatter with `name` and `description` fields.
|
|
89
|
+
- Kiro activates skills on demand based on description matching.
|
|
90
|
+
- The `description` field is critical — Kiro uses it to decide when to activate the skill.
|
|
91
|
+
|
|
92
|
+
### Constraints
|
|
93
|
+
|
|
94
|
+
- Skill name: max 64 characters, pattern `^[a-z][a-z0-9-]*$`, no consecutive hyphens (`--`).
|
|
95
|
+
- Skill description: max 1024 characters.
|
|
96
|
+
- Skill name must match parent directory name.
|
|
97
|
+
|
|
98
|
+
### Example
|
|
99
|
+
|
|
100
|
+
```yaml
|
|
101
|
+
---
|
|
102
|
+
name: workflows-plan
|
|
103
|
+
description: Plan work by analyzing requirements and creating actionable steps
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
# Planning Workflow
|
|
107
|
+
|
|
108
|
+
Detailed instructions...
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
## Steering files
|
|
112
|
+
|
|
113
|
+
- Markdown files in `.kiro/steering/`.
|
|
114
|
+
- Always loaded into every agent session's context.
|
|
115
|
+
- Equivalent to Claude Code's CLAUDE.md.
|
|
116
|
+
- Used for project-wide instructions, coding standards, and conventions.
|
|
117
|
+
|
|
118
|
+
## MCP server configuration
|
|
119
|
+
|
|
120
|
+
- MCP servers are configured in `.kiro/settings/mcp.json`.
|
|
121
|
+
- **Only stdio transport is supported** — `command` + `args` + `env`.
|
|
122
|
+
- HTTP/SSE transport (`url`, `headers`) is NOT supported by Kiro CLI.
|
|
123
|
+
- The converter skips HTTP-only MCP servers with a warning.
|
|
124
|
+
|
|
125
|
+
### Example
|
|
126
|
+
|
|
127
|
+
```json
|
|
128
|
+
{
|
|
129
|
+
"mcpServers": {
|
|
130
|
+
"playwright": {
|
|
131
|
+
"command": "npx",
|
|
132
|
+
"args": ["-y", "@anthropic/mcp-playwright"]
|
|
133
|
+
},
|
|
134
|
+
"context7": {
|
|
135
|
+
"command": "npx",
|
|
136
|
+
"args": ["-y", "@context7/mcp-server"]
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
## Hooks
|
|
143
|
+
|
|
144
|
+
- Kiro supports 5 hook trigger types: `agentSpawn`, `userPromptSubmit`, `preToolUse`, `postToolUse`, `stop`.
|
|
145
|
+
- Hooks are configured inside agent JSON configs (not separate files).
|
|
146
|
+
- 3 of 5 triggers map to Claude Code hooks (`preToolUse`, `postToolUse`, `stop`).
|
|
147
|
+
- Not converted by the plugin converter for MVP — a warning is emitted.
|
|
148
|
+
|
|
149
|
+
## Conversion lossy mappings
|
|
150
|
+
|
|
151
|
+
| Claude Code Feature | Kiro Status | Notes |
|
|
152
|
+
|---|---|---|
|
|
153
|
+
| `Edit` tool (surgical replacement) | Degraded -> `write` (full-file) | Kiro write overwrites entire files |
|
|
154
|
+
| `context: fork` | Lost | No execution isolation control |
|
|
155
|
+
| `!`command`` dynamic injection | Lost | No pre-processing of markdown |
|
|
156
|
+
| `disable-model-invocation` | Lost | No invocation control |
|
|
157
|
+
| `allowed-tools` per skill | Lost | No tool permission scoping per skill |
|
|
158
|
+
| `$ARGUMENTS` interpolation | Lost | No structured argument passing |
|
|
159
|
+
| Claude hooks | Skipped | Future follow-up (near-1:1 for 3/5 triggers) |
|
|
160
|
+
| HTTP MCP servers | Skipped | Kiro only supports stdio transport |
|
|
161
|
+
|
|
162
|
+
## Overwrite behavior during conversion
|
|
163
|
+
|
|
164
|
+
| Content Type | Strategy | Rationale |
|
|
165
|
+
|---|---|---|
|
|
166
|
+
| Generated agents (JSON + prompt) | Overwrite | Generated, not user-authored |
|
|
167
|
+
| Generated skills (from commands) | Overwrite | Generated, not user-authored |
|
|
168
|
+
| Copied skills (pass-through) | Overwrite | Plugin is source of truth |
|
|
169
|
+
| Steering files | Overwrite | Generated from CLAUDE.md |
|
|
170
|
+
| `mcp.json` | Merge with backup | User may have added their own servers |
|
|
171
|
+
| User-created agents/skills | Preserved | Don't delete orphans |
|
|
@@ -0,0 +1,477 @@
|
|
|
1
|
+
# Windsurf Editor Global Configuration Guide
|
|
2
|
+
|
|
3
|
+
> **Purpose**: Technical reference for programmatically creating and managing Windsurf's global Skills, Workflows, and Rules.
|
|
4
|
+
>
|
|
5
|
+
> **Source**: Official Windsurf documentation at [docs.windsurf.com](https://docs.windsurf.com) + local file analysis.
|
|
6
|
+
>
|
|
7
|
+
> **Last Updated**: February 2026
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Table of Contents
|
|
12
|
+
|
|
13
|
+
1. [Overview](#overview)
|
|
14
|
+
2. [Base Directory Structure](#base-directory-structure)
|
|
15
|
+
3. [Skills](#skills)
|
|
16
|
+
4. [Workflows](#workflows)
|
|
17
|
+
5. [Rules](#rules)
|
|
18
|
+
6. [Memories](#memories)
|
|
19
|
+
7. [System-Level Configuration (Enterprise)](#system-level-configuration-enterprise)
|
|
20
|
+
8. [Programmatic Creation Reference](#programmatic-creation-reference)
|
|
21
|
+
9. [Best Practices](#best-practices)
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## Overview
|
|
26
|
+
|
|
27
|
+
Windsurf provides three main customization mechanisms:
|
|
28
|
+
|
|
29
|
+
| Feature | Purpose | Invocation |
|
|
30
|
+
|---------|---------|------------|
|
|
31
|
+
| **Skills** | Complex multi-step tasks with supporting resources | Automatic (progressive disclosure) or `@skill-name` |
|
|
32
|
+
| **Workflows** | Reusable step-by-step procedures | Slash command `/workflow-name` |
|
|
33
|
+
| **Rules** | Behavioral guidelines and preferences | Trigger-based (always-on, glob, manual, or model decision) |
|
|
34
|
+
|
|
35
|
+
All three support both **workspace-level** (project-specific) and **global** (user-wide) scopes.
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## Base Directory Structure
|
|
40
|
+
|
|
41
|
+
### Global Configuration Root
|
|
42
|
+
|
|
43
|
+
| OS | Path |
|
|
44
|
+
|----|------|
|
|
45
|
+
| **Windows** | `C:\Users\{USERNAME}\.codeium\windsurf\` |
|
|
46
|
+
| **macOS** | `~/.codeium/windsurf/` |
|
|
47
|
+
| **Linux** | `~/.codeium/windsurf/` |
|
|
48
|
+
|
|
49
|
+
### Directory Layout
|
|
50
|
+
|
|
51
|
+
```
|
|
52
|
+
~/.codeium/windsurf/
|
|
53
|
+
├── skills/ # Global skills (directories)
|
|
54
|
+
│ └── {skill-name}/
|
|
55
|
+
│ └── SKILL.md
|
|
56
|
+
├── global_workflows/ # Global workflows (flat .md files)
|
|
57
|
+
│ └── {workflow-name}.md
|
|
58
|
+
├── rules/ # Global rules (flat .md files)
|
|
59
|
+
│ └── {rule-name}.md
|
|
60
|
+
├── memories/
|
|
61
|
+
│ ├── global_rules.md # Always-on global rules (plain text)
|
|
62
|
+
│ └── *.pb # Auto-generated memories (protobuf)
|
|
63
|
+
├── mcp_config.json # MCP server configuration
|
|
64
|
+
└── user_settings.pb # User settings (protobuf)
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## Skills
|
|
70
|
+
|
|
71
|
+
Skills bundle instructions with supporting resources for complex, multi-step tasks. Cascade uses **progressive disclosure** to automatically invoke skills when relevant.
|
|
72
|
+
|
|
73
|
+
### Storage Locations
|
|
74
|
+
|
|
75
|
+
| Scope | Location |
|
|
76
|
+
|-------|----------|
|
|
77
|
+
| **Global** | `~/.codeium/windsurf/skills/{skill-name}/SKILL.md` |
|
|
78
|
+
| **Workspace** | `.windsurf/skills/{skill-name}/SKILL.md` |
|
|
79
|
+
|
|
80
|
+
### Directory Structure
|
|
81
|
+
|
|
82
|
+
Each skill is a **directory** (not a single file) containing:
|
|
83
|
+
|
|
84
|
+
```
|
|
85
|
+
{skill-name}/
|
|
86
|
+
├── SKILL.md # Required: Main skill definition
|
|
87
|
+
├── references/ # Optional: Reference documentation
|
|
88
|
+
├── assets/ # Optional: Images, diagrams, etc.
|
|
89
|
+
├── scripts/ # Optional: Helper scripts
|
|
90
|
+
└── {any-other-files} # Optional: Templates, configs, etc.
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
### SKILL.md Format
|
|
94
|
+
|
|
95
|
+
```markdown
|
|
96
|
+
---
|
|
97
|
+
name: skill-name
|
|
98
|
+
description: Brief description shown to model to help it decide when to invoke the skill
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
# Skill Title
|
|
102
|
+
|
|
103
|
+
Instructions for the skill go here in markdown format.
|
|
104
|
+
|
|
105
|
+
## Section 1
|
|
106
|
+
Step-by-step guidance...
|
|
107
|
+
|
|
108
|
+
## Section 2
|
|
109
|
+
Reference supporting files using relative paths:
|
|
110
|
+
- See [deployment-checklist.md](./deployment-checklist.md)
|
|
111
|
+
- Run script: [deploy.sh](./scripts/deploy.sh)
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
### Required YAML Frontmatter Fields
|
|
115
|
+
|
|
116
|
+
| Field | Required | Description |
|
|
117
|
+
|-------|----------|-------------|
|
|
118
|
+
| `name` | **Yes** | Unique identifier (lowercase letters, numbers, hyphens only). Must match directory name. |
|
|
119
|
+
| `description` | **Yes** | Explains what the skill does and when to use it. Critical for automatic invocation. |
|
|
120
|
+
|
|
121
|
+
### Naming Convention
|
|
122
|
+
|
|
123
|
+
- Use **lowercase-kebab-case**: `deploy-to-staging`, `code-review`, `setup-dev-environment`
|
|
124
|
+
- Name must match the directory name exactly
|
|
125
|
+
|
|
126
|
+
### Invocation Methods
|
|
127
|
+
|
|
128
|
+
1. **Automatic**: Cascade automatically invokes when request matches skill description
|
|
129
|
+
2. **Manual**: Type `@skill-name` in Cascade input
|
|
130
|
+
|
|
131
|
+
### Example: Complete Skill
|
|
132
|
+
|
|
133
|
+
```
|
|
134
|
+
~/.codeium/windsurf/skills/deploy-to-production/
|
|
135
|
+
├── SKILL.md
|
|
136
|
+
├── deployment-checklist.md
|
|
137
|
+
├── rollback-procedure.md
|
|
138
|
+
└── config-template.yaml
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
**SKILL.md:**
|
|
142
|
+
```markdown
|
|
143
|
+
---
|
|
144
|
+
name: deploy-to-production
|
|
145
|
+
description: Guides the deployment process to production with safety checks. Use when deploying to prod, releasing, or pushing to production environment.
|
|
146
|
+
---
|
|
147
|
+
|
|
148
|
+
## Pre-deployment Checklist
|
|
149
|
+
1. Run all tests
|
|
150
|
+
2. Check for uncommitted changes
|
|
151
|
+
3. Verify environment variables
|
|
152
|
+
|
|
153
|
+
## Deployment Steps
|
|
154
|
+
Follow these steps to deploy safely...
|
|
155
|
+
|
|
156
|
+
See [deployment-checklist.md](./deployment-checklist.md) for full checklist.
|
|
157
|
+
See [rollback-procedure.md](./rollback-procedure.md) if issues occur.
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
---
|
|
161
|
+
|
|
162
|
+
## Workflows
|
|
163
|
+
|
|
164
|
+
Workflows define step-by-step procedures invoked via slash commands. They guide Cascade through repetitive tasks.
|
|
165
|
+
|
|
166
|
+
### Storage Locations
|
|
167
|
+
|
|
168
|
+
| Scope | Location |
|
|
169
|
+
|-------|----------|
|
|
170
|
+
| **Global** | `~/.codeium/windsurf/global_workflows/{workflow-name}.md` |
|
|
171
|
+
| **Workspace** | `.windsurf/workflows/{workflow-name}.md` |
|
|
172
|
+
|
|
173
|
+
### File Format
|
|
174
|
+
|
|
175
|
+
Workflows are **single markdown files** (not directories):
|
|
176
|
+
|
|
177
|
+
```markdown
|
|
178
|
+
---
|
|
179
|
+
description: Short description of what the workflow does
|
|
180
|
+
---
|
|
181
|
+
|
|
182
|
+
# Workflow Title
|
|
183
|
+
|
|
184
|
+
> Arguments: [optional arguments description]
|
|
185
|
+
|
|
186
|
+
Step-by-step instructions in markdown.
|
|
187
|
+
|
|
188
|
+
1. First step
|
|
189
|
+
2. Second step
|
|
190
|
+
3. Third step
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
### Required YAML Frontmatter Fields
|
|
194
|
+
|
|
195
|
+
| Field | Required | Description |
|
|
196
|
+
|-------|----------|-------------|
|
|
197
|
+
| `description` | **Yes** | Short title/description shown in UI |
|
|
198
|
+
|
|
199
|
+
### Invocation
|
|
200
|
+
|
|
201
|
+
- Slash command: `/workflow-name`
|
|
202
|
+
- Filename becomes the command (e.g., `deploy.md` → `/deploy`)
|
|
203
|
+
|
|
204
|
+
### Constraints
|
|
205
|
+
|
|
206
|
+
- **Character limit**: 12,000 characters per workflow file
|
|
207
|
+
- Workflows can call other workflows: Include instructions like "Call `/other-workflow`"
|
|
208
|
+
|
|
209
|
+
### Example: Complete Workflow
|
|
210
|
+
|
|
211
|
+
**File**: `~/.codeium/windsurf/global_workflows/address-pr-comments.md`
|
|
212
|
+
|
|
213
|
+
```markdown
|
|
214
|
+
---
|
|
215
|
+
description: Address all PR review comments systematically
|
|
216
|
+
---
|
|
217
|
+
|
|
218
|
+
# Address PR Comments
|
|
219
|
+
|
|
220
|
+
> Arguments: [PR number]
|
|
221
|
+
|
|
222
|
+
1. Check out the PR branch: `gh pr checkout [id]`
|
|
223
|
+
|
|
224
|
+
2. Get comments on PR:
|
|
225
|
+
```bash
|
|
226
|
+
gh api --paginate repos/[owner]/[repo]/pulls/[id]/comments | jq '.[] | {user: .user.login, body, path, line}'
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
3. For EACH comment:
|
|
230
|
+
a. Print: "(index). From [user] on [file]:[lines] — [body]"
|
|
231
|
+
b. Analyze the file and line range
|
|
232
|
+
c. If unclear, ask for clarification
|
|
233
|
+
d. Make the change before moving to next comment
|
|
234
|
+
|
|
235
|
+
4. Summarize what was done and which comments need attention
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
---
|
|
239
|
+
|
|
240
|
+
## Rules
|
|
241
|
+
|
|
242
|
+
Rules provide persistent behavioral guidelines that influence how Cascade responds.
|
|
243
|
+
|
|
244
|
+
### Storage Locations
|
|
245
|
+
|
|
246
|
+
| Scope | Location |
|
|
247
|
+
|-------|----------|
|
|
248
|
+
| **Global** | `~/.codeium/windsurf/rules/{rule-name}.md` |
|
|
249
|
+
| **Workspace** | `.windsurf/rules/{rule-name}.md` |
|
|
250
|
+
|
|
251
|
+
### File Format
|
|
252
|
+
|
|
253
|
+
Rules are **single markdown files**:
|
|
254
|
+
|
|
255
|
+
```markdown
|
|
256
|
+
---
|
|
257
|
+
description: When to use this rule
|
|
258
|
+
trigger: activation_mode
|
|
259
|
+
globs: ["*.py", "src/**/*.ts"]
|
|
260
|
+
---
|
|
261
|
+
|
|
262
|
+
Rule instructions in markdown format.
|
|
263
|
+
|
|
264
|
+
- Guideline 1
|
|
265
|
+
- Guideline 2
|
|
266
|
+
- Guideline 3
|
|
267
|
+
```
|
|
268
|
+
|
|
269
|
+
### YAML Frontmatter Fields
|
|
270
|
+
|
|
271
|
+
| Field | Required | Description |
|
|
272
|
+
|-------|----------|-------------|
|
|
273
|
+
| `description` | **Yes** | Describes when to use the rule |
|
|
274
|
+
| `trigger` | Optional | Activation mode (see below) |
|
|
275
|
+
| `globs` | Optional | File patterns for glob trigger |
|
|
276
|
+
|
|
277
|
+
### Activation Modes (trigger field)
|
|
278
|
+
|
|
279
|
+
| Mode | Value | Description |
|
|
280
|
+
|------|-------|-------------|
|
|
281
|
+
| **Manual** | `manual` | Activated via `@mention` in Cascade input |
|
|
282
|
+
| **Always On** | `always` | Always applied to every conversation |
|
|
283
|
+
| **Model Decision** | `model_decision` | Model decides based on description |
|
|
284
|
+
| **Glob** | `glob` | Applied when working with files matching pattern |
|
|
285
|
+
|
|
286
|
+
### Constraints
|
|
287
|
+
|
|
288
|
+
- **Character limit**: 12,000 characters per rule file
|
|
289
|
+
|
|
290
|
+
### Example: Complete Rule
|
|
291
|
+
|
|
292
|
+
**File**: `~/.codeium/windsurf/rules/python-style.md`
|
|
293
|
+
|
|
294
|
+
```markdown
|
|
295
|
+
---
|
|
296
|
+
description: Python coding standards and style guidelines. Use when writing or reviewing Python code.
|
|
297
|
+
trigger: glob
|
|
298
|
+
globs: ["*.py", "**/*.py"]
|
|
299
|
+
---
|
|
300
|
+
|
|
301
|
+
# Python Coding Guidelines
|
|
302
|
+
|
|
303
|
+
- Use type hints for all function parameters and return values
|
|
304
|
+
- Follow PEP 8 style guide
|
|
305
|
+
- Use early returns when possible
|
|
306
|
+
- Always add docstrings to public functions and classes
|
|
307
|
+
- Prefer f-strings over .format() or % formatting
|
|
308
|
+
- Use pathlib instead of os.path for file operations
|
|
309
|
+
```
|
|
310
|
+
|
|
311
|
+
---
|
|
312
|
+
|
|
313
|
+
## Memories
|
|
314
|
+
|
|
315
|
+
### Global Rules (Always-On)
|
|
316
|
+
|
|
317
|
+
**Location**: `~/.codeium/windsurf/memories/global_rules.md`
|
|
318
|
+
|
|
319
|
+
This is a special file for rules that **always apply** to all conversations. Unlike rules in the `rules/` directory, this file:
|
|
320
|
+
|
|
321
|
+
- Does **not** require YAML frontmatter
|
|
322
|
+
- Is plain text/markdown
|
|
323
|
+
- Is always active (no trigger configuration)
|
|
324
|
+
|
|
325
|
+
**Format:**
|
|
326
|
+
```markdown
|
|
327
|
+
Plain text rules that always apply to all conversations.
|
|
328
|
+
|
|
329
|
+
- Rule 1
|
|
330
|
+
- Rule 2
|
|
331
|
+
- Rule 3
|
|
332
|
+
```
|
|
333
|
+
|
|
334
|
+
### Auto-Generated Memories
|
|
335
|
+
|
|
336
|
+
Cascade automatically creates memories during conversations, stored as `.pb` (protobuf) files in `~/.codeium/windsurf/memories/`. These are managed by Windsurf and should not be manually edited.
|
|
337
|
+
|
|
338
|
+
---
|
|
339
|
+
|
|
340
|
+
## System-Level Configuration (Enterprise)
|
|
341
|
+
|
|
342
|
+
Enterprise organizations can deploy system-level configurations that apply globally and cannot be modified by end users.
|
|
343
|
+
|
|
344
|
+
### System-Level Paths
|
|
345
|
+
|
|
346
|
+
| Type | Windows | macOS | Linux/WSL |
|
|
347
|
+
|------|---------|-------|-----------|
|
|
348
|
+
| **Rules** | `C:\ProgramData\Windsurf\rules\*.md` | `/Library/Application Support/Windsurf/rules/*.md` | `/etc/windsurf/rules/*.md` |
|
|
349
|
+
| **Workflows** | `C:\ProgramData\Windsurf\workflows\*.md` | `/Library/Application Support/Windsurf/workflows/*.md` | `/etc/windsurf/workflows/*.md` |
|
|
350
|
+
|
|
351
|
+
### Precedence Order
|
|
352
|
+
|
|
353
|
+
When items with the same name exist at multiple levels:
|
|
354
|
+
|
|
355
|
+
1. **System** (highest priority) - Organization-wide, deployed by IT
|
|
356
|
+
2. **Workspace** - Project-specific in `.windsurf/`
|
|
357
|
+
3. **Global** - User-defined in `~/.codeium/windsurf/`
|
|
358
|
+
4. **Built-in** - Default items provided by Windsurf
|
|
359
|
+
|
|
360
|
+
---
|
|
361
|
+
|
|
362
|
+
## Programmatic Creation Reference
|
|
363
|
+
|
|
364
|
+
### Quick Reference Table
|
|
365
|
+
|
|
366
|
+
| Type | Path Pattern | Format | Key Fields |
|
|
367
|
+
|------|--------------|--------|------------|
|
|
368
|
+
| **Skill** | `skills/{name}/SKILL.md` | YAML frontmatter + markdown | `name`, `description` |
|
|
369
|
+
| **Workflow** | `global_workflows/{name}.md` (global) or `workflows/{name}.md` (workspace) | YAML frontmatter + markdown | `description` |
|
|
370
|
+
| **Rule** | `rules/{name}.md` | YAML frontmatter + markdown | `description`, `trigger`, `globs` |
|
|
371
|
+
| **Global Rules** | `memories/global_rules.md` | Plain text/markdown | None |
|
|
372
|
+
|
|
373
|
+
### Minimal Templates
|
|
374
|
+
|
|
375
|
+
#### Skill (SKILL.md)
|
|
376
|
+
```markdown
|
|
377
|
+
---
|
|
378
|
+
name: my-skill
|
|
379
|
+
description: What this skill does and when to use it
|
|
380
|
+
---
|
|
381
|
+
|
|
382
|
+
Instructions here.
|
|
383
|
+
```
|
|
384
|
+
|
|
385
|
+
#### Workflow
|
|
386
|
+
```markdown
|
|
387
|
+
---
|
|
388
|
+
description: What this workflow does
|
|
389
|
+
---
|
|
390
|
+
|
|
391
|
+
1. Step one
|
|
392
|
+
2. Step two
|
|
393
|
+
```
|
|
394
|
+
|
|
395
|
+
#### Rule
|
|
396
|
+
```markdown
|
|
397
|
+
---
|
|
398
|
+
description: When this rule applies
|
|
399
|
+
trigger: model_decision
|
|
400
|
+
---
|
|
401
|
+
|
|
402
|
+
- Guideline one
|
|
403
|
+
- Guideline two
|
|
404
|
+
```
|
|
405
|
+
|
|
406
|
+
### Validation Checklist
|
|
407
|
+
|
|
408
|
+
When programmatically creating items:
|
|
409
|
+
|
|
410
|
+
- [ ] **Skills**: Directory exists with `SKILL.md` inside
|
|
411
|
+
- [ ] **Skills**: `name` field matches directory name exactly
|
|
412
|
+
- [ ] **Skills**: Name uses only lowercase letters, numbers, hyphens
|
|
413
|
+
- [ ] **Workflows/Rules**: File is `.md` extension
|
|
414
|
+
- [ ] **All**: YAML frontmatter uses `---` delimiters
|
|
415
|
+
- [ ] **All**: `description` field is present and meaningful
|
|
416
|
+
- [ ] **All**: File size under 12,000 characters (workflows/rules)
|
|
417
|
+
|
|
418
|
+
---
|
|
419
|
+
|
|
420
|
+
## Best Practices
|
|
421
|
+
|
|
422
|
+
### Writing Effective Descriptions
|
|
423
|
+
|
|
424
|
+
The `description` field is critical for automatic invocation. Be specific:
|
|
425
|
+
|
|
426
|
+
**Good:**
|
|
427
|
+
```yaml
|
|
428
|
+
description: Guides deployment to staging environment with pre-flight checks. Use when deploying to staging, testing releases, or preparing for production.
|
|
429
|
+
```
|
|
430
|
+
|
|
431
|
+
**Bad:**
|
|
432
|
+
```yaml
|
|
433
|
+
description: Deployment stuff
|
|
434
|
+
```
|
|
435
|
+
|
|
436
|
+
### Formatting Guidelines
|
|
437
|
+
|
|
438
|
+
- Use bullet points and numbered lists (easier for Cascade to follow)
|
|
439
|
+
- Use markdown headers to organize sections
|
|
440
|
+
- Keep rules concise and specific
|
|
441
|
+
- Avoid generic rules like "write good code" (already built-in)
|
|
442
|
+
|
|
443
|
+
### XML Tags for Grouping
|
|
444
|
+
|
|
445
|
+
XML tags can effectively group related rules:
|
|
446
|
+
|
|
447
|
+
```markdown
|
|
448
|
+
<coding_guidelines>
|
|
449
|
+
- Use early returns when possible
|
|
450
|
+
- Always add documentation for new functions
|
|
451
|
+
- Prefer composition over inheritance
|
|
452
|
+
</coding_guidelines>
|
|
453
|
+
|
|
454
|
+
<testing_requirements>
|
|
455
|
+
- Write unit tests for all public methods
|
|
456
|
+
- Maintain 80% code coverage
|
|
457
|
+
</testing_requirements>
|
|
458
|
+
```
|
|
459
|
+
|
|
460
|
+
### Skills vs Rules vs Workflows
|
|
461
|
+
|
|
462
|
+
| Use Case | Recommended |
|
|
463
|
+
|----------|-------------|
|
|
464
|
+
| Multi-step procedure with supporting files | **Skill** |
|
|
465
|
+
| Repeatable CLI/automation sequence | **Workflow** |
|
|
466
|
+
| Coding style preferences | **Rule** |
|
|
467
|
+
| Project conventions | **Rule** |
|
|
468
|
+
| Deployment procedure | **Skill** or **Workflow** |
|
|
469
|
+
| Code review checklist | **Skill** |
|
|
470
|
+
|
|
471
|
+
---
|
|
472
|
+
|
|
473
|
+
## Additional Resources
|
|
474
|
+
|
|
475
|
+
- **Official Documentation**: [docs.windsurf.com](https://docs.windsurf.com)
|
|
476
|
+
- **Skills Specification**: [agentskills.io](https://agentskills.io/home)
|
|
477
|
+
- **Rule Templates**: [windsurf.com/editor/directory](https://windsurf.com/editor/directory)
|
package/package.json
CHANGED
|
@@ -275,5 +275,5 @@ Review and enhance the `/docs/index.html` landing page using LaunchKit elements
|
|
|
275
275
|
|
|
276
276
|
- LaunchKit Template: https://launchkit.evilmartians.io/
|
|
277
277
|
- Pragmatic Writing Skill: `~/.claude/skills/pragmatic-writing-skill/SKILL.md`
|
|
278
|
-
- Current Landing Page: `/Users/kieranklaassen/
|
|
279
|
-
- Style CSS: `/Users/kieranklaassen/
|
|
278
|
+
- Current Landing Page: `/Users/kieranklaassen/compound-engineering-plugin/docs/index.html`
|
|
279
|
+
- Style CSS: `/Users/kieranklaassen/compound-engineering-plugin/docs/css/style.css`
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "compound-engineering",
|
|
3
|
-
"version": "2.
|
|
4
|
-
"description": "AI-powered development tools. 29 agents, 22 commands,
|
|
3
|
+
"version": "2.38.0",
|
|
4
|
+
"description": "AI-powered development tools. 29 agents, 22 commands, 20 skills, 1 MCP server for code review, research, design, and workflow automation.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Kieran Klaassen",
|
|
7
7
|
"email": "kieran@every.to",
|