mirror of
https://github.com/pbakaus/impeccable.git
synced 2026-09-14 07:06:45 +03:00
Add harness support for RovoDev
This commit is contained in:
+18
-16
@@ -18,6 +18,7 @@ Last verified: 2026-03-24
|
||||
| OpenCode | https://opencode.ai/docs/skills/ |
|
||||
| Pi | https://github.com/badlogic/pi-mono/blob/main/packages/coding-agent/docs/skills.md |
|
||||
| Trae | TBD (no official skills docs found yet) |
|
||||
| Rovo Dev | https://support.atlassian.com/rovo/docs/extend-rovo-dev-cli-with-agent-skills |
|
||||
|
||||
## Spec Compliance
|
||||
|
||||
@@ -29,22 +30,22 @@ Provider-specific extensions beyond the spec: `user-invocable`, `argument-hint`,
|
||||
|
||||
Fields marked with * are spec-standard. Others are provider extensions.
|
||||
|
||||
| Field | Claude Code | Cursor | Gemini | Codex | Copilot | Kiro | OpenCode | Pi |
|
||||
|-------|:-----------:|:------:|:------:|:-----:|:-------:|:----:|:--------:|:--:|
|
||||
| `name`* | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
|
||||
| `description`* | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
|
||||
| `license`* | Yes | Yes | Ignored | No | Yes | Yes | Yes | Yes |
|
||||
| `compatibility`* | Yes | Yes | Ignored | No | Yes | Yes | Yes | Yes |
|
||||
| `metadata`* | Yes | Yes | Ignored | No | Yes | Yes | Yes | Yes |
|
||||
| `allowed-tools`* | Yes | No | Ignored | No | No | No | Yes | Yes |
|
||||
| `user-invocable` | Yes | No | No | No | Yes | No | Yes | No |
|
||||
| `argument-hint` | Yes | No | No | No | Yes | No | Yes | No |
|
||||
| `disable-model-invocation` | Yes | Yes | No | No | Yes | No | Yes | Yes |
|
||||
| `model` | Yes | No | No | No | No | No | Yes | No |
|
||||
| `effort` | Yes | No | No | No | No | No | No | No |
|
||||
| `context` | Yes | No | No | No | No | No | No | No |
|
||||
| `agent` | Yes | No | No | No | No | No | Yes | No |
|
||||
| `hooks` | Yes | No | No | No | No | No | No | No |
|
||||
| Field | Claude Code | Cursor | Gemini | Codex | Copilot | Kiro | OpenCode | Pi | Rovo Dev |
|
||||
|-------|:-----------:|:------:|:------:|:-----:|:-------:|:----:|:--------:|:--:|:--------:|
|
||||
| `name`* | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
|
||||
| `description`* | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
|
||||
| `license`* | Yes | Yes | Ignored | No | Yes | Yes | Yes | Yes | Yes |
|
||||
| `compatibility`* | Yes | Yes | Ignored | No | Yes | Yes | Yes | Yes | Yes |
|
||||
| `metadata`* | Yes | Yes | Ignored | No | Yes | Yes | Yes | Yes | Yes |
|
||||
| `allowed-tools`* | Yes | No | Ignored | No | No | No | Yes | Yes | Yes |
|
||||
| `user-invocable` | Yes | No | No | No | Yes | No | Yes | No | Yes |
|
||||
| `argument-hint` | Yes | No | No | No | Yes | No | Yes | No | Yes |
|
||||
| `disable-model-invocation` | Yes | Yes | No | No | Yes | No | Yes | Yes | TBD |
|
||||
| `model` | Yes | No | No | No | No | No | Yes | No | No |
|
||||
| `effort` | Yes | No | No | No | No | No | No | No | No |
|
||||
| `context` | Yes | No | No | No | No | No | No | No | No |
|
||||
| `agent` | Yes | No | No | No | No | No | Yes | No | No |
|
||||
| `hooks` | Yes | No | No | No | No | No | No | No | No |
|
||||
|
||||
Notes:
|
||||
- Gemini CLI validates only `name` and `description`; other spec fields are parsed but ignored.
|
||||
@@ -66,6 +67,7 @@ Notes:
|
||||
| Pi | `.pi/skills/` | `.agents/skills/` |
|
||||
| Trae China | `.trae-cn/skills/` | TBD |
|
||||
| Trae International | `.trae/skills/` | TBD |
|
||||
| Rovo Dev | `.rovodev/skills/` | `~/.rovodev/skills/` (user-level) |
|
||||
|
||||
All harnesses support the `{skill-name}/SKILL.md` directory structure with optional `reference/`, `scripts/`, and `assets/` subdirectories.
|
||||
|
||||
|
||||
@@ -9,5 +9,6 @@ export const transformAgents = createTransformer(PROVIDERS.agents);
|
||||
export const transformKiro = createTransformer(PROVIDERS.kiro);
|
||||
export const transformOpenCode = createTransformer(PROVIDERS.opencode);
|
||||
export const transformPi = createTransformer(PROVIDERS.pi);
|
||||
export const transformRovoDev = createTransformer(PROVIDERS['rovo-dev']);
|
||||
|
||||
export { createTransformer, PROVIDERS };
|
||||
|
||||
@@ -70,4 +70,10 @@ export const PROVIDERS = {
|
||||
displayName: 'Trae',
|
||||
frontmatterFields: ['user-invocable', 'argument-hint', 'license', 'compatibility', 'metadata'],
|
||||
},
|
||||
'rovo-dev': {
|
||||
provider: 'rovo-dev',
|
||||
configDir: '.rovodev',
|
||||
displayName: 'Rovo Dev',
|
||||
frontmatterFields: ['user-invocable', 'argument-hint', 'license', 'compatibility', 'metadata', 'allowed-tools'],
|
||||
},
|
||||
};
|
||||
|
||||
@@ -321,6 +321,12 @@ export const PROVIDER_PLACEHOLDERS = {
|
||||
config_file: 'RULES.md',
|
||||
ask_instruction: 'ask the user directly to clarify what you cannot infer.',
|
||||
command_prefix: '/'
|
||||
},
|
||||
'rovo-dev': {
|
||||
model: 'Rovo Dev',
|
||||
config_file: 'AGENTS.md',
|
||||
ask_instruction: 'ask the user directly to clarify what you cannot infer.',
|
||||
command_prefix: '/'
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user