feat(git-master): add configurable commit footer and co-author options

Add git_master config with commit_footer and include_co_authored_by flags.
Users can disable Sisyphus attribution in commits via oh-my-opencode.json.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
YeonGyu-Kim 2026-01-06 16:34:29 +09:00
parent 919453ebce
commit 185c72c9e3
5 changed files with 100 additions and 2 deletions

View File

@ -917,6 +917,7 @@ Available agents: `oracle`, `librarian`, `explore`, `frontend-ui-ux-engineer`, `
Oh My OpenCode includes built-in skills that provide additional capabilities:
- **playwright**: Browser automation with Playwright MCP. Use for web scraping, testing, screenshots, and browser interactions.
- **git-master**: Git expert for atomic commits, rebase/squash, and history search (blame, bisect, log -S). STRONGLY RECOMMENDED: Use with `sisyphus_task(category='quick', skills=['git-master'], ...)` to save context.
Disable built-in skills via `disabled_skills` in `~/.config/opencode/oh-my-opencode.json` or `.opencode/oh-my-opencode.json`:
@ -926,7 +927,25 @@ Disable built-in skills via `disabled_skills` in `~/.config/opencode/oh-my-openc
}
```
Available built-in skills: `playwright`
Available built-in skills: `playwright`, `git-master`
### Git Master
Configure git-master skill behavior:
```json
{
"git_master": {
"commit_footer": true,
"include_co_authored_by": true
}
}
```
| Option | Default | Description |
| ------ | ------- | ----------- |
| `commit_footer` | `true` | Adds "Ultraworked with Sisyphus" footer to commit messages. |
| `include_co_authored_by` | `true` | Adds `Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>` trailer to commits. |
### Sisyphus Agent

View File

@ -37,7 +37,8 @@
"type": "string",
"enum": [
"playwright",
"frontend-ui-ux"
"frontend-ui-ux",
"git-master"
]
}
},
@ -1999,6 +2000,19 @@
"type": "boolean"
}
}
},
"git_master": {
"type": "object",
"properties": {
"commit_footer": {
"default": true,
"type": "boolean"
},
"include_co_authored_by": {
"default": true,
"type": "boolean"
}
}
}
}
}

View File

@ -30,6 +30,7 @@ export const BuiltinAgentNameSchema = z.enum([
export const BuiltinSkillNameSchema = z.enum([
"playwright",
"frontend-ui-ux",
"git-master",
])
export const OverridableAgentNameSchema = z.enum([
@ -283,6 +284,12 @@ export const NotificationConfigSchema = z.object({
force_enable: z.boolean().optional(),
})
export const GitMasterConfigSchema = z.object({
/** Add "Ultraworked with Sisyphus" footer to commit messages (default: true) */
commit_footer: z.boolean().default(true),
/** Add "Co-authored-by: Sisyphus" trailer to commit messages (default: true) */
include_co_authored_by: z.boolean().default(true),
})
export const OhMyOpenCodeConfigSchema = z.object({
$schema: z.string().optional(),
disabled_mcps: z.array(AnyMcpNameSchema).optional(),
@ -302,6 +309,7 @@ export const OhMyOpenCodeConfigSchema = z.object({
ralph_loop: RalphLoopConfigSchema.optional(),
background_task: BackgroundTaskConfigSchema.optional(),
notification: NotificationConfigSchema.optional(),
git_master: GitMasterConfigSchema.optional(),
})
export type OhMyOpenCodeConfig = z.infer<typeof OhMyOpenCodeConfigSchema>
@ -323,5 +331,6 @@ export type NotificationConfig = z.infer<typeof NotificationConfigSchema>
export type CategoryConfig = z.infer<typeof CategoryConfigSchema>
export type CategoriesConfig = z.infer<typeof CategoriesConfigSchema>
export type BuiltinCategoryName = z.infer<typeof BuiltinCategoryNameSchema>
export type GitMasterConfig = z.infer<typeof GitMasterConfigSchema>
export { AnyMcpNameSchema, type AnyMcpName, McpNameSchema, type McpName } from "../mcp/types"

View File

@ -529,6 +529,34 @@ IF style == SHORT:
3. Is it similar to examples from git log?
If ANY check fails -> REWRITE message.
### 5.5 Commit Footer & Co-Author (Configurable)
**Check oh-my-opencode.json for these flags:**
- `git_master.commit_footer` (default: true) - adds footer message
- `git_master.include_co_authored_by` (default: true) - adds co-author trailer
If enabled, add Sisyphus attribution to EVERY commit:
1. **Footer in commit body (if `commit_footer: true`):**
```
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)
```
2. **Co-authored-by trailer (if `include_co_authored_by: true`):**
```
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
```
**Example (both enabled):**
```bash
git commit -m "{Commit Message}" -m "Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)" -m "Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>"
```
**To disable:** Set in oh-my-opencode.json:
```json
{ "git_master": { "commit_footer": false, "include_co_authored_by": false } }
```
</execution>
---

View File

@ -622,6 +622,34 @@ IF style == SHORT:
3. Is it similar to examples from git log?
If ANY check fails -> REWRITE message.
### 5.5 Commit Footer & Co-Author (Configurable)
**Check oh-my-opencode.json for these flags:**
- \`git_master.commit_footer\` (default: true) - adds footer message
- \`git_master.include_co_authored_by\` (default: true) - adds co-author trailer
If enabled, add Sisyphus attribution to EVERY commit:
1. **Footer in commit body (if \`commit_footer: true\`):**
\`\`\`
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)
\`\`\`
2. **Co-authored-by trailer (if \`include_co_authored_by: true\`):**
\`\`\`
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
\`\`\`
**Example (both enabled):**
\`\`\`bash
git commit -m "{Commit Message}" -m "Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)" -m "Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>"
\`\`\`
**To disable:** Set in oh-my-opencode.json:
\`\`\`json
{ "git_master": { "commit_footer": false, "include_co_authored_by": false } }
\`\`\`
</execution>
---