mirror of
https://github.com/boxpositron/absolute-dotfiles.git
synced 2026-10-24 08:23:19 +00:00
feat(omo): track omo config, hooks and workspace slash commands
Adds /owt-done (close Linear issues after merge, then owt done) and /linear-sync (progress comment and status, no cleanup), linked into omo as ~/.omo/agent/prompts.
This commit is contained in:
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"hooks": {
|
||||
"Stop": [
|
||||
{
|
||||
"hooks": [
|
||||
{ "type": "command", "command": "~/.local/bin/omo-notify", "timeout": 10 }
|
||||
]
|
||||
}
|
||||
],
|
||||
"Notification": [
|
||||
{
|
||||
"hooks": [
|
||||
{ "type": "command", "command": "~/.local/bin/omo-notify", "timeout": 10 }
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,264 @@
|
||||
// OMO routing for OpenCode and the native agent, using Claude, OpenAI and z.ai models.
|
||||
{
|
||||
// Shared metadata.
|
||||
"$schema": "https://raw.githubusercontent.com/code-yeongyu/oh-my-openagent/dev/assets/omo.schema.json",
|
||||
"_migrations": [
|
||||
"2026-07-codex-config-jsonc",
|
||||
"2026-08-reasoning-unification",
|
||||
"2026-07-opencode-config-unification"
|
||||
],
|
||||
|
||||
|
||||
// OpenCode agent and category routing.
|
||||
"[opencode]": {
|
||||
"$schema": "https://raw.githubusercontent.com/code-yeongyu/oh-my-openagent/dev/assets/omo.schema.json",
|
||||
"claude_code": {
|
||||
"plugins_override": {
|
||||
"oh-my-claudecode@omc": false
|
||||
}
|
||||
},
|
||||
"agents": {
|
||||
"sisyphus": {
|
||||
"model": "openai/gpt-6-astra"
|
||||
},
|
||||
"hephaestus": {
|
||||
"model": "openai/gpt-5.6-sol",
|
||||
"reasoning": "medium"
|
||||
},
|
||||
"oracle": {
|
||||
"model": "zai-coding-plan/glm-5.3",
|
||||
"reasoning": "high"
|
||||
},
|
||||
"librarian": {
|
||||
"model": "zai-coding-plan/glm-5.3-flash",
|
||||
"reasoning": "low"
|
||||
},
|
||||
"explore": {
|
||||
"model": "zai-coding-plan/glm-5.3-flash",
|
||||
"reasoning": "low"
|
||||
},
|
||||
"multimodal-looker": {
|
||||
"model": "zai-coding-plan/glm-5.3-flash",
|
||||
"reasoning": "low"
|
||||
},
|
||||
"prometheus": {
|
||||
"model": "zai-coding-plan/glm-5.3",
|
||||
"reasoning": "high"
|
||||
},
|
||||
"metis": {
|
||||
"model": "zai-coding-plan/glm-5.3",
|
||||
"reasoning": "high"
|
||||
},
|
||||
"momus": {
|
||||
"model": "zai-coding-plan/glm-5.3",
|
||||
"reasoning": "high"
|
||||
},
|
||||
"atlas": {
|
||||
"model": "openai/gpt-6-astra"
|
||||
},
|
||||
"sisyphus-junior": {
|
||||
"model": "openai/gpt-6-astra",
|
||||
"reasoning": "high"
|
||||
},
|
||||
"document-writer": {
|
||||
"model": "zai-coding-plan/glm-5.3-flash",
|
||||
"reasoning": "low"
|
||||
}
|
||||
},
|
||||
"categories": {
|
||||
"visual-engineering": {
|
||||
"model": "openai/gpt-6-astra",
|
||||
"reasoning": "high",
|
||||
"prompt_append": "For substantive UI work, load frontend-workflow on demand before editing. Use the existing GPT model for design, browser screenshot inspection, and a separate critique pass. Obtain the project design context, supplied references, primary user action, acceptance criteria, run command, assigned files and phase from the delegator. Own one sequential write lane; review-only passes do not edit. Load impeccable for direction and web-design-guidelines for accessibility/interaction review as needed. Preserve established conventions unless redesign is requested; the user brief overrides aesthetic bans. Read screenshot image content directly with the current GPT model, not only paths/DOM and not look_at as a substitute. Render desktop/mobile and intermediate width when warranted, rank up to three material visible issues, fix them, recapture, and retest interactions/states. Normally at most three passes; stop when acceptance criteria pass and report residual issues. Do not delegate a plan for a small implementation whose brief already resolves the decisions."
|
||||
},
|
||||
"ultrabrain": {
|
||||
"model": "openai/gpt-6-astra",
|
||||
"reasoning": "max"
|
||||
},
|
||||
"deep-low": {
|
||||
"model": "zai-coding-plan/glm-5.3",
|
||||
"reasoning": "high"
|
||||
},
|
||||
"artistry": {
|
||||
"model": "zai-coding-plan/glm-5.3",
|
||||
"reasoning": "high"
|
||||
},
|
||||
"quick": {
|
||||
"model": "zai-coding-plan/glm-5.3-flash",
|
||||
"reasoning": "low"
|
||||
},
|
||||
"unspecified-low": {
|
||||
"model": "zai-coding-plan/glm-5.3-flash",
|
||||
"reasoning": "low"
|
||||
},
|
||||
"unspecified-high": {
|
||||
"model": "zai-coding-plan/glm-5.3",
|
||||
"reasoning": "high"
|
||||
},
|
||||
"writing": {
|
||||
"model": "zai-coding-plan/glm-5.3-flash",
|
||||
"reasoning": "low"
|
||||
}
|
||||
},
|
||||
"sisyphus_agent": {
|
||||
"planner_enabled": true,
|
||||
"replace_plan": true
|
||||
},
|
||||
"telemetry": false,
|
||||
"model_fallback": true,
|
||||
"disabled_hooks": [
|
||||
"auto-update-checker",
|
||||
"startup-toast"
|
||||
]
|
||||
},
|
||||
|
||||
// Native agent and category routing.
|
||||
"[native]": {
|
||||
// Claude leads implementation; GPT independently reviews technical work.
|
||||
"model_profile": "hybrid",
|
||||
"model_profiles": {
|
||||
"hybrid": {
|
||||
"display_name": "Claude implementation / GPT review",
|
||||
"models": [
|
||||
{
|
||||
"model": "anthropic-subscription/claude-opus-5-5",
|
||||
"reasoning": "medium"
|
||||
},
|
||||
{
|
||||
"model": "chatgpt-subscription/gpt-6.1-sol",
|
||||
"reasoning": "medium"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"categories": {
|
||||
"architect": {
|
||||
"models": [
|
||||
{
|
||||
"model": "anthropic-subscription/claude-fable-5-1",
|
||||
"reasoning": "xhigh"
|
||||
},
|
||||
{
|
||||
"model": "chatgpt-subscription/gpt-6-astra",
|
||||
"reasoning": "high"
|
||||
}
|
||||
]
|
||||
},
|
||||
"artistry": {
|
||||
"models": [
|
||||
{
|
||||
"model": "anthropic-subscription/claude-opus-5-5",
|
||||
"reasoning": "high"
|
||||
},
|
||||
{
|
||||
"model": "zai/glm-5.3",
|
||||
"reasoning": "high"
|
||||
}
|
||||
]
|
||||
},
|
||||
"deep-low": {
|
||||
"models": [
|
||||
{
|
||||
"model": "anthropic-subscription/claude-sonnet-5-5",
|
||||
"reasoning": "medium"
|
||||
},
|
||||
{
|
||||
"model": "chatgpt-subscription/gpt-6.1-sol",
|
||||
"reasoning": "medium"
|
||||
},
|
||||
{
|
||||
"model": "zai/glm-5.3",
|
||||
"reasoning": "high"
|
||||
}
|
||||
]
|
||||
},
|
||||
"deep-high": {
|
||||
"model": "chatgpt-subscription/gpt-6-astra",
|
||||
"reasoning": "high"
|
||||
},
|
||||
"quick": {
|
||||
"models": [
|
||||
{
|
||||
"model": "anthropic-subscription/claude-sonnet-5-5",
|
||||
"reasoning": "low"
|
||||
},
|
||||
{
|
||||
"model": "zai/glm-5.3-flash",
|
||||
"reasoning": "low"
|
||||
}
|
||||
]
|
||||
},
|
||||
"ultrabrain": {
|
||||
"model": "chatgpt-subscription/gpt-6-astra",
|
||||
"reasoning": "max"
|
||||
},
|
||||
"unspecified-high": {
|
||||
"model": "chatgpt-subscription/gpt-6-astra",
|
||||
"reasoning": "high"
|
||||
},
|
||||
"unspecified-low": {
|
||||
"models": [
|
||||
{
|
||||
"model": "anthropic-subscription/claude-sonnet-5-5",
|
||||
"reasoning": "medium"
|
||||
},
|
||||
{
|
||||
"model": "zai/glm-5.3",
|
||||
"reasoning": "medium"
|
||||
}
|
||||
]
|
||||
},
|
||||
"visual-engineering": {
|
||||
"model": "chatgpt-subscription/gpt-6-astra",
|
||||
"reasoning": "high",
|
||||
"prompt_append": "Before substantive UI work, load frontend-workflow. Follow the product's design context, keep one writer per file set, inspect actual desktop and mobile screenshots, exercise the primary interaction, and report verification evidence. Stop when acceptance criteria pass."
|
||||
},
|
||||
"writing": {
|
||||
"models": [
|
||||
{
|
||||
"model": "anthropic-subscription/claude-sonnet-5-5",
|
||||
"reasoning": "medium"
|
||||
},
|
||||
{
|
||||
"model": "zai/glm-5.3",
|
||||
"reasoning": "medium"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"agents": {
|
||||
"explore": {
|
||||
"model": "zai/glm-5.3-flash",
|
||||
"reasoning": "low"
|
||||
},
|
||||
"librarian": {
|
||||
"model": "zai/glm-5.3-flash",
|
||||
"reasoning": "low"
|
||||
},
|
||||
"plan-consultant": {
|
||||
"models": [
|
||||
{
|
||||
"model": "anthropic-subscription/claude-fable-5-1",
|
||||
"reasoning": "xhigh"
|
||||
},
|
||||
{
|
||||
"model": "zai/glm-5.3",
|
||||
"reasoning": "high"
|
||||
}
|
||||
]
|
||||
},
|
||||
"plan-reviewer": {
|
||||
"models": [
|
||||
{
|
||||
"model": "chatgpt-subscription/gpt-6-astra",
|
||||
"reasoning": "high"
|
||||
},
|
||||
{
|
||||
"model": "chatgpt-subscription/gpt-6.1-sol",
|
||||
"reasoning": "high"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
---
|
||||
description: Post a progress update to this workspace's Linear issues and set their status, without cleaning up
|
||||
argument-hint: "[notes for the Linear comment]"
|
||||
requires-arguments: false
|
||||
---
|
||||
Sync this workspace's progress to Linear. Do not remove or change the workspace.
|
||||
|
||||
1. Run `owt done --check` to get the branch, PR state and PR link. If this is not an owt workspace, use `git branch --show-current` for the branch and continue.
|
||||
|
||||
2. Work out which Linear issues this work covers: the keys in the branch name (`feature/pra-107-108-...` means PRA-107 and PRA-108) plus any issues named earlier in this session. Read each with the Linear tools, including comments. If you find none, ask me which issues to update.
|
||||
|
||||
3. For each issue, post one comment covering: what is done so far, what is left, the branch name, and the PR link if there is one. Keep it short and factual, based on the actual commits and diff (`git log --oneline <base>..HEAD`, `git diff --stat <base>`), not on plans. Include these notes from me, if any: $ARGUMENTS
|
||||
|
||||
4. Set each issue's status from the PR state: no PR means In Progress, an open PR means In Review. Never move an issue to Done here; `/owt-done` does that after the merge. Leave an issue alone if it is already in a later status than this rule gives.
|
||||
|
||||
5. Tell me in a few lines which issues you updated and their status.
|
||||
@@ -0,0 +1,21 @@
|
||||
---
|
||||
description: Finish this owt workspace - close its Linear issues, then remove the worktree and close the window
|
||||
argument-hint: "[notes for the Linear comment]"
|
||||
requires-arguments: false
|
||||
---
|
||||
Close out the owt workspace this session is running in. Do the steps in order.
|
||||
|
||||
1. Run `owt done --check`. It prints `key=value` lines: workspace, path, branch, base, uncommitted, merged, pr_state, pr_url, remote_branch. It exits 1 when finishing would lose work. If it says this is not an owt workspace, stop and tell me.
|
||||
|
||||
2. Work out which Linear issues this workspace covered: the keys in the branch name (`feature/pra-107-108-...` means PRA-107 and PRA-108) plus any issues named earlier in this session. Read each with the Linear tools. If you find none, ask me which issues, if any, to close.
|
||||
|
||||
3. If the check exited 1, list exactly what would be lost (uncommitted files with `git status --short`, commits not on the base branch with `git log --oneline <base>..HEAD`, and the PR state), then ask me whether to discard it. Do not continue without an explicit yes. If I say no, stop here and change nothing.
|
||||
|
||||
4. Update Linear for each issue:
|
||||
- If `merged=yes`: comment with a short summary of what shipped, the PR link (`pr_url`), and the branch name, then move the issue to Done.
|
||||
- If I approved discarding unmerged work: comment that the workspace was discarded without merging and why, and leave the status as it is unless I say otherwise.
|
||||
Include these notes from me in the comment, if any: $ARGUMENTS
|
||||
|
||||
5. Give me a short final summary: issues updated and their new status, PR link, and what cleanup will remove.
|
||||
|
||||
6. As your very last action, run `owt done --detach`, adding `--force` only if I approved discarding work in step 3. About 5 seconds later it deletes the merged remote branch, removes the worktree and local branch, and closes this tmux window, which ends this session. Run nothing after it.
|
||||
Reference in New Issue
Block a user