add skills
This commit is contained in:
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"run_id": "eval-3-with_skill",
|
||||
"expectations": [
|
||||
{"text": "Plan uses git worktree in a sibling directory", "passed": true, "evidence": "../omo-wt/refactor-delegate-task-constants"},
|
||||
{"text": "Uses 2+ commits for the multi-file refactor", "passed": true, "evidence": "Commit 1: category defaults+appends, Commit 2: plan agent prompt+names"},
|
||||
{"text": "Maintains backward compatibility via barrel re-export", "passed": true, "evidence": "constants.ts converted to re-export from 4 new files, full import map verified"},
|
||||
{"text": "Verification loop includes all 3 gates", "passed": true, "evidence": "Gate A (CI), Gate B (review-work), Gate C (Cubic)"},
|
||||
{"text": "References actual src/tools/delegate-task/constants.ts", "passed": true, "evidence": "654 lines analyzed, 4 responsibilities identified, full external+internal import map"}
|
||||
]
|
||||
}
|
||||
+221
@@ -0,0 +1,221 @@
|
||||
# Code Changes
|
||||
|
||||
## New File: `src/tools/delegate-task/default-categories.ts`
|
||||
|
||||
```typescript
|
||||
import type { CategoryConfig } from "../../config/schema"
|
||||
|
||||
export const DEFAULT_CATEGORIES: Record<string, CategoryConfig> = {
|
||||
"visual-engineering": { model: "google/gemini-3.1-pro", variant: "high" },
|
||||
ultrabrain: { model: "openai/gpt-5.4", variant: "xhigh" },
|
||||
deep: { model: "openai/gpt-5.3-codex", variant: "medium" },
|
||||
artistry: { model: "google/gemini-3.1-pro", variant: "high" },
|
||||
quick: { model: "anthropic/claude-haiku-4-5" },
|
||||
"unspecified-low": { model: "anthropic/claude-sonnet-4-6" },
|
||||
"unspecified-high": { model: "anthropic/claude-opus-4-6", variant: "max" },
|
||||
writing: { model: "kimi-for-coding/k2p5" },
|
||||
}
|
||||
|
||||
export const CATEGORY_DESCRIPTIONS: Record<string, string> = {
|
||||
"visual-engineering": "Frontend, UI/UX, design, styling, animation",
|
||||
ultrabrain: "Use ONLY for genuinely hard, logic-heavy tasks. Give clear goals only, not step-by-step instructions.",
|
||||
deep: "Goal-oriented autonomous problem-solving. Thorough research before action. For hairy problems requiring deep understanding.",
|
||||
artistry: "Complex problem-solving with unconventional, creative approaches - beyond standard patterns",
|
||||
quick: "Trivial tasks - single file changes, typo fixes, simple modifications",
|
||||
"unspecified-low": "Tasks that don't fit other categories, low effort required",
|
||||
"unspecified-high": "Tasks that don't fit other categories, high effort required",
|
||||
writing: "Documentation, prose, technical writing",
|
||||
}
|
||||
```
|
||||
|
||||
## New File: `src/tools/delegate-task/category-prompt-appends.ts`
|
||||
|
||||
```typescript
|
||||
export const VISUAL_CATEGORY_PROMPT_APPEND = `<Category_Context>
|
||||
You are working on VISUAL/UI tasks.
|
||||
...
|
||||
</Category_Context>`
|
||||
// (exact content from lines 8-95 of constants.ts)
|
||||
|
||||
export const ULTRABRAIN_CATEGORY_PROMPT_APPEND = `<Category_Context>
|
||||
...
|
||||
</Category_Context>`
|
||||
// (exact content from lines 97-117)
|
||||
|
||||
export const ARTISTRY_CATEGORY_PROMPT_APPEND = `<Category_Context>
|
||||
...
|
||||
</Category_Context>`
|
||||
// (exact content from lines 119-134)
|
||||
|
||||
export const QUICK_CATEGORY_PROMPT_APPEND = `<Category_Context>
|
||||
...
|
||||
</Caller_Warning>`
|
||||
// (exact content from lines 136-186)
|
||||
|
||||
export const UNSPECIFIED_LOW_CATEGORY_PROMPT_APPEND = `<Category_Context>
|
||||
...
|
||||
</Caller_Warning>`
|
||||
// (exact content from lines 188-209)
|
||||
|
||||
export const UNSPECIFIED_HIGH_CATEGORY_PROMPT_APPEND = `<Category_Context>
|
||||
...
|
||||
</Category_Context>`
|
||||
// (exact content from lines 211-224)
|
||||
|
||||
export const WRITING_CATEGORY_PROMPT_APPEND = `<Category_Context>
|
||||
...
|
||||
</Category_Context>`
|
||||
// (exact content from lines 226-250)
|
||||
|
||||
export const DEEP_CATEGORY_PROMPT_APPEND = `<Category_Context>
|
||||
...
|
||||
</Category_Context>`
|
||||
// (exact content from lines 252-281)
|
||||
|
||||
export const CATEGORY_PROMPT_APPENDS: Record<string, string> = {
|
||||
"visual-engineering": VISUAL_CATEGORY_PROMPT_APPEND,
|
||||
ultrabrain: ULTRABRAIN_CATEGORY_PROMPT_APPEND,
|
||||
deep: DEEP_CATEGORY_PROMPT_APPEND,
|
||||
artistry: ARTISTRY_CATEGORY_PROMPT_APPEND,
|
||||
quick: QUICK_CATEGORY_PROMPT_APPEND,
|
||||
"unspecified-low": UNSPECIFIED_LOW_CATEGORY_PROMPT_APPEND,
|
||||
"unspecified-high": UNSPECIFIED_HIGH_CATEGORY_PROMPT_APPEND,
|
||||
writing: WRITING_CATEGORY_PROMPT_APPEND,
|
||||
}
|
||||
```
|
||||
|
||||
## New File: `src/tools/delegate-task/plan-agent-prompt.ts`
|
||||
|
||||
```typescript
|
||||
import type {
|
||||
AvailableCategory,
|
||||
AvailableSkill,
|
||||
} from "../../agents/dynamic-agent-prompt-builder"
|
||||
import { truncateDescription } from "../../shared/truncate-description"
|
||||
|
||||
/**
|
||||
* System prompt prepended to plan agent invocations.
|
||||
* Instructs the plan agent to first gather context via explore/librarian agents,
|
||||
* then summarize user requirements and clarify uncertainties before proceeding.
|
||||
* Also MANDATES dependency graphs, parallel execution analysis, and category+skill recommendations.
|
||||
*/
|
||||
export const PLAN_AGENT_SYSTEM_PREPEND_STATIC_BEFORE_SKILLS = `<system>
|
||||
...
|
||||
</CRITICAL_REQUIREMENT_DEPENDENCY_PARALLEL_EXECUTION_CATEGORY_SKILLS>
|
||||
`
|
||||
// (exact content from lines 324-430)
|
||||
|
||||
export const PLAN_AGENT_SYSTEM_PREPEND_STATIC_AFTER_SKILLS = `### REQUIRED OUTPUT FORMAT
|
||||
...
|
||||
`
|
||||
// (exact content from lines 432-569)
|
||||
|
||||
function renderPlanAgentCategoryRows(categories: AvailableCategory[]): string[] {
|
||||
const sorted = [...categories].sort((a, b) => a.name.localeCompare(b.name))
|
||||
return sorted.map((category) => {
|
||||
const bestFor = category.description || category.name
|
||||
const model = category.model || ""
|
||||
return `| \`${category.name}\` | ${bestFor} | ${model} |`
|
||||
})
|
||||
}
|
||||
|
||||
function renderPlanAgentSkillRows(skills: AvailableSkill[]): string[] {
|
||||
const sorted = [...skills].sort((a, b) => a.name.localeCompare(b.name))
|
||||
return sorted.map((skill) => {
|
||||
const domain = truncateDescription(skill.description).trim() || skill.name
|
||||
return `| \`${skill.name}\` | ${domain} |`
|
||||
})
|
||||
}
|
||||
|
||||
export function buildPlanAgentSkillsSection(
|
||||
categories: AvailableCategory[] = [],
|
||||
skills: AvailableSkill[] = []
|
||||
): string {
|
||||
const categoryRows = renderPlanAgentCategoryRows(categories)
|
||||
const skillRows = renderPlanAgentSkillRows(skills)
|
||||
|
||||
return `### AVAILABLE CATEGORIES
|
||||
|
||||
| Category | Best For | Model |
|
||||
|----------|----------|-------|
|
||||
${categoryRows.join("\n")}
|
||||
|
||||
### AVAILABLE SKILLS (ALWAYS EVALUATE ALL)
|
||||
|
||||
Skills inject specialized expertise into the delegated agent.
|
||||
YOU MUST evaluate EVERY skill and justify inclusions/omissions.
|
||||
|
||||
| Skill | Domain |
|
||||
|-------|--------|
|
||||
${skillRows.join("\n")}`
|
||||
}
|
||||
|
||||
export function buildPlanAgentSystemPrepend(
|
||||
categories: AvailableCategory[] = [],
|
||||
skills: AvailableSkill[] = []
|
||||
): string {
|
||||
return [
|
||||
PLAN_AGENT_SYSTEM_PREPEND_STATIC_BEFORE_SKILLS,
|
||||
buildPlanAgentSkillsSection(categories, skills),
|
||||
PLAN_AGENT_SYSTEM_PREPEND_STATIC_AFTER_SKILLS,
|
||||
].join("\n\n")
|
||||
}
|
||||
```
|
||||
|
||||
## New File: `src/tools/delegate-task/plan-agent-names.ts`
|
||||
|
||||
```typescript
|
||||
/**
|
||||
* List of agent names that should be treated as plan agents (receive plan system prompt).
|
||||
* Case-insensitive matching is used.
|
||||
*/
|
||||
export const PLAN_AGENT_NAMES = ["plan"]
|
||||
|
||||
/**
|
||||
* Check if the given agent name is a plan agent (receives plan system prompt).
|
||||
*/
|
||||
export function isPlanAgent(agentName: string | undefined): boolean {
|
||||
if (!agentName) return false
|
||||
const lowerName = agentName.toLowerCase().trim()
|
||||
return PLAN_AGENT_NAMES.some(name => lowerName === name || lowerName.includes(name))
|
||||
}
|
||||
|
||||
/**
|
||||
* Plan family: plan + prometheus. Shares mutual delegation blocking and task tool permission.
|
||||
* Does NOT share system prompt (only isPlanAgent controls that).
|
||||
*/
|
||||
export const PLAN_FAMILY_NAMES = ["plan", "prometheus"]
|
||||
|
||||
/**
|
||||
* Check if the given agent belongs to the plan family (blocking + task permission).
|
||||
*/
|
||||
export function isPlanFamily(category: string): boolean
|
||||
export function isPlanFamily(category: string | undefined): boolean
|
||||
export function isPlanFamily(category: string | undefined): boolean {
|
||||
if (!category) return false
|
||||
const lowerCategory = category.toLowerCase().trim()
|
||||
return PLAN_FAMILY_NAMES.some(
|
||||
(name) => lowerCategory === name || lowerCategory.includes(name)
|
||||
)
|
||||
}
|
||||
```
|
||||
|
||||
## Modified File: `src/tools/delegate-task/constants.ts`
|
||||
|
||||
```typescript
|
||||
export * from "./default-categories"
|
||||
export * from "./category-prompt-appends"
|
||||
export * from "./plan-agent-prompt"
|
||||
export * from "./plan-agent-names"
|
||||
```
|
||||
|
||||
## Unchanged: `src/tools/delegate-task/index.ts`
|
||||
|
||||
```typescript
|
||||
export { createDelegateTask, resolveCategoryConfig, buildSystemContent, buildTaskPrompt } from "./tools"
|
||||
export type { DelegateTaskToolOptions, SyncSessionCreatedEvent, BuildSystemContentInput } from "./tools"
|
||||
export type * from "./types"
|
||||
export * from "./constants"
|
||||
```
|
||||
|
||||
No changes needed. `export * from "./constants"` transitively re-exports everything from the 4 new files.
|
||||
+104
@@ -0,0 +1,104 @@
|
||||
# Execution Plan: Split delegate-task/constants.ts
|
||||
|
||||
## Phase 0: Setup
|
||||
|
||||
```bash
|
||||
git fetch origin dev
|
||||
git worktree add ../omo-wt/refactor-delegate-task-constants origin/dev -b refactor/split-delegate-task-constants
|
||||
cd ../omo-wt/refactor-delegate-task-constants
|
||||
```
|
||||
|
||||
## Phase 1: Implement
|
||||
|
||||
### Analysis
|
||||
|
||||
`src/tools/delegate-task/constants.ts` is 654 lines with 4 distinct responsibilities:
|
||||
|
||||
1. **Category defaults** (lines 285-316): `DEFAULT_CATEGORIES`, `CATEGORY_DESCRIPTIONS`
|
||||
2. **Category prompt appends** (lines 8-305): 8 `*_CATEGORY_PROMPT_APPEND` string constants + `CATEGORY_PROMPT_APPENDS` record
|
||||
3. **Plan agent prompts** (lines 318-620): `PLAN_AGENT_SYSTEM_PREPEND_*`, builder functions
|
||||
4. **Plan agent names** (lines 626-654): `PLAN_AGENT_NAMES`, `isPlanAgent`, `PLAN_FAMILY_NAMES`, `isPlanFamily`
|
||||
|
||||
Note: `CATEGORY_MODEL_REQUIREMENTS` is already in `src/shared/model-requirements.ts`. No move needed.
|
||||
|
||||
### New Files
|
||||
|
||||
| File | Responsibility | ~LOC |
|
||||
|------|---------------|------|
|
||||
| `default-categories.ts` | `DEFAULT_CATEGORIES`, `CATEGORY_DESCRIPTIONS` | ~40 |
|
||||
| `category-prompt-appends.ts` | 8 prompt append constants + `CATEGORY_PROMPT_APPENDS` record | ~300 (exempt: prompt text) |
|
||||
| `plan-agent-prompt.ts` | Plan agent system prompt constants + builder functions | ~250 (exempt: prompt text) |
|
||||
| `plan-agent-names.ts` | `PLAN_AGENT_NAMES`, `isPlanAgent`, `PLAN_FAMILY_NAMES`, `isPlanFamily` | ~30 |
|
||||
| `constants.ts` (updated) | Re-exports from all 4 files (backward compat) | ~5 |
|
||||
|
||||
### Commit 1: Extract category defaults and prompt appends
|
||||
|
||||
**Files changed**: 3 new + 1 modified
|
||||
- Create `src/tools/delegate-task/default-categories.ts`
|
||||
- Create `src/tools/delegate-task/category-prompt-appends.ts`
|
||||
- Modify `src/tools/delegate-task/constants.ts` (remove extracted code, add re-exports)
|
||||
|
||||
### Commit 2: Extract plan agent prompt and names
|
||||
|
||||
**Files changed**: 2 new + 1 modified
|
||||
- Create `src/tools/delegate-task/plan-agent-prompt.ts`
|
||||
- Create `src/tools/delegate-task/plan-agent-names.ts`
|
||||
- Modify `src/tools/delegate-task/constants.ts` (final: re-exports only)
|
||||
|
||||
### Local Validation
|
||||
|
||||
```bash
|
||||
bun run typecheck
|
||||
bun test src/tools/delegate-task/
|
||||
bun run build
|
||||
```
|
||||
|
||||
## Phase 2: PR Creation
|
||||
|
||||
```bash
|
||||
git push -u origin refactor/split-delegate-task-constants
|
||||
gh pr create --base dev --title "refactor(delegate-task): split constants.ts into focused modules" --body-file /tmp/pr-body.md
|
||||
```
|
||||
|
||||
## Phase 3: Verify Loop
|
||||
|
||||
- **Gate A**: `gh pr checks --watch`
|
||||
- **Gate B**: `/review-work` (5-agent review)
|
||||
- **Gate C**: Wait for cubic-dev-ai[bot] "No issues found"
|
||||
|
||||
## Phase 4: Merge
|
||||
|
||||
```bash
|
||||
gh pr merge --squash --delete-branch
|
||||
git worktree remove ../omo-wt/refactor-delegate-task-constants
|
||||
```
|
||||
|
||||
## Import Update Strategy
|
||||
|
||||
No import updates needed. Backward compatibility preserved through:
|
||||
1. `constants.ts` re-exports everything from the 4 new files
|
||||
2. `index.ts` already does `export * from "./constants"` (unchanged)
|
||||
3. All external consumers import from `"../tools/delegate-task/constants"` or `"./constants"` -- both still work
|
||||
|
||||
### External Import Map (Verified -- NO CHANGES NEEDED)
|
||||
|
||||
| Consumer | Imports | Source Path |
|
||||
|----------|---------|-------------|
|
||||
| `src/agents/atlas/prompt-section-builder.ts` | `CATEGORY_DESCRIPTIONS` | `../../tools/delegate-task/constants` |
|
||||
| `src/agents/builtin-agents.ts` | `CATEGORY_DESCRIPTIONS` | `../tools/delegate-task/constants` |
|
||||
| `src/plugin/available-categories.ts` | `CATEGORY_DESCRIPTIONS` | `../tools/delegate-task/constants` |
|
||||
| `src/plugin-handlers/category-config-resolver.ts` | `DEFAULT_CATEGORIES` | `../tools/delegate-task/constants` |
|
||||
| `src/shared/merge-categories.ts` | `DEFAULT_CATEGORIES` | `../tools/delegate-task/constants` |
|
||||
| `src/shared/merge-categories.test.ts` | `DEFAULT_CATEGORIES` | `../tools/delegate-task/constants` |
|
||||
|
||||
### Internal Import Map (Within delegate-task/ -- NO CHANGES NEEDED)
|
||||
|
||||
| Consumer | Imports |
|
||||
|----------|---------|
|
||||
| `categories.ts` | `DEFAULT_CATEGORIES`, `CATEGORY_PROMPT_APPENDS` |
|
||||
| `tools.ts` | `CATEGORY_DESCRIPTIONS` |
|
||||
| `prompt-builder.ts` | `buildPlanAgentSystemPrepend`, `isPlanAgent` |
|
||||
| `subagent-resolver.ts` | `isPlanFamily` |
|
||||
| `sync-continuation.ts` | `isPlanFamily` |
|
||||
| `sync-prompt-sender.ts` | `isPlanFamily` |
|
||||
| `tools.test.ts` | `DEFAULT_CATEGORIES`, `CATEGORY_PROMPT_APPENDS`, `CATEGORY_DESCRIPTIONS`, `isPlanAgent`, `PLAN_AGENT_NAMES`, `isPlanFamily`, `PLAN_FAMILY_NAMES` |
|
||||
+41
@@ -0,0 +1,41 @@
|
||||
# PR Title
|
||||
|
||||
```
|
||||
refactor(delegate-task): split constants.ts into focused modules
|
||||
```
|
||||
|
||||
# PR Body
|
||||
|
||||
## Summary
|
||||
|
||||
- Split the 654-line `src/tools/delegate-task/constants.ts` into 4 single-responsibility modules: `default-categories.ts`, `category-prompt-appends.ts`, `plan-agent-prompt.ts`, `plan-agent-names.ts`
|
||||
- `constants.ts` becomes a pure re-export barrel, preserving all existing import paths (`from "./constants"` and `from "./delegate-task"`)
|
||||
- Zero import changes across the codebase (6 external + 7 internal consumers verified)
|
||||
|
||||
## Motivation
|
||||
|
||||
`constants.ts` at 654 lines violates the project's 200 LOC soft limit (`modular-code-enforcement.md` rule) and bundles 4 unrelated responsibilities: category model configs, category prompt text, plan agent prompts, and plan agent name utilities.
|
||||
|
||||
## Changes
|
||||
|
||||
| New File | Responsibility | LOC |
|
||||
|----------|---------------|-----|
|
||||
| `default-categories.ts` | `DEFAULT_CATEGORIES`, `CATEGORY_DESCRIPTIONS` | ~25 |
|
||||
| `category-prompt-appends.ts` | 8 `*_PROMPT_APPEND` constants + `CATEGORY_PROMPT_APPENDS` record | ~300 (prompt-exempt) |
|
||||
| `plan-agent-prompt.ts` | Plan system prompt constants + `buildPlanAgentSystemPrepend()` | ~250 (prompt-exempt) |
|
||||
| `plan-agent-names.ts` | `PLAN_AGENT_NAMES`, `isPlanAgent`, `PLAN_FAMILY_NAMES`, `isPlanFamily` | ~30 |
|
||||
| `constants.ts` (updated) | 4-line re-export barrel | 4 |
|
||||
|
||||
## Backward Compatibility
|
||||
|
||||
All 13 consumers continue importing from `"./constants"` or `"../tools/delegate-task/constants"` with zero changes. The re-export chain: new modules -> `constants.ts` -> `index.ts` -> external consumers.
|
||||
|
||||
## Note on CATEGORY_MODEL_REQUIREMENTS
|
||||
|
||||
`CATEGORY_MODEL_REQUIREMENTS` already lives in `src/shared/model-requirements.ts`. No move needed. The AGENTS.md reference to it being in `constants.ts` is outdated.
|
||||
|
||||
## Testing
|
||||
|
||||
- `bun run typecheck` passes
|
||||
- `bun test src/tools/delegate-task/` passes (all existing tests untouched)
|
||||
- `bun run build` succeeds
|
||||
+84
@@ -0,0 +1,84 @@
|
||||
# Verification Strategy
|
||||
|
||||
## Gate A: CI (Blocking)
|
||||
|
||||
```bash
|
||||
gh pr checks --watch
|
||||
```
|
||||
|
||||
**Expected CI jobs** (from `ci.yml`):
|
||||
1. **Tests (split)**: mock-heavy isolated + batch `bun test`
|
||||
2. **Typecheck**: `bun run typecheck` (tsc --noEmit)
|
||||
3. **Build**: `bun run build`
|
||||
4. **Schema auto-commit**: If schema changes detected
|
||||
|
||||
**Likely failure points**: None. This is a pure refactor with re-exports. No runtime behavior changes.
|
||||
|
||||
**If CI fails**:
|
||||
- Typecheck error: Missing re-export or import cycle. Fix in the new modules, amend commit.
|
||||
- Test error: `tools.test.ts` imports all symbols from `"./constants"`. Re-export barrel must be complete.
|
||||
|
||||
## Gate B: review-work (5-Agent Review)
|
||||
|
||||
Invoke after CI passes:
|
||||
|
||||
```
|
||||
/review-work
|
||||
```
|
||||
|
||||
**5 parallel agents**:
|
||||
1. **Oracle (goal/constraint)**: Verify backward compat claim. Check all 13 import paths resolve.
|
||||
2. **Oracle (code quality)**: Verify single-responsibility per file, LOC limits, no catch-all violations.
|
||||
3. **Oracle (security)**: No security implications in this refactor.
|
||||
4. **QA (hands-on execution)**: Run `bun test src/tools/delegate-task/` and verify all pass.
|
||||
5. **Context miner**: Check no related open issues/PRs conflict.
|
||||
|
||||
**Expected verdict**: Pass. Pure structural refactor with no behavioral changes.
|
||||
|
||||
## Gate C: Cubic (External Bot)
|
||||
|
||||
Wait for `cubic-dev-ai[bot]` to post "No issues found" on the PR.
|
||||
|
||||
**If Cubic flags issues**: Likely false positives on "large number of new files". Address in PR comments if needed.
|
||||
|
||||
## Pre-Gate Local Validation (Before Push)
|
||||
|
||||
```bash
|
||||
# In worktree
|
||||
bun run typecheck
|
||||
bun test src/tools/delegate-task/
|
||||
bun run build
|
||||
|
||||
# Verify re-exports are complete
|
||||
bun -e "import * as c from './src/tools/delegate-task/constants'; console.log(Object.keys(c).sort().join('\n'))"
|
||||
```
|
||||
|
||||
Expected exports from constants.ts (13 total):
|
||||
- `ARTISTRY_CATEGORY_PROMPT_APPEND`
|
||||
- `CATEGORY_DESCRIPTIONS`
|
||||
- `CATEGORY_PROMPT_APPENDS`
|
||||
- `DEFAULT_CATEGORIES`
|
||||
- `DEEP_CATEGORY_PROMPT_APPEND`
|
||||
- `PLAN_AGENT_NAMES`
|
||||
- `PLAN_AGENT_SYSTEM_PREPEND_STATIC_AFTER_SKILLS`
|
||||
- `PLAN_AGENT_SYSTEM_PREPEND_STATIC_BEFORE_SKILLS`
|
||||
- `PLAN_FAMILY_NAMES`
|
||||
- `QUICK_CATEGORY_PROMPT_APPEND`
|
||||
- `ULTRABRAIN_CATEGORY_PROMPT_APPEND`
|
||||
- `UNSPECIFIED_HIGH_CATEGORY_PROMPT_APPEND`
|
||||
- `UNSPECIFIED_LOW_CATEGORY_PROMPT_APPEND`
|
||||
- `VISUAL_CATEGORY_PROMPT_APPEND`
|
||||
- `WRITING_CATEGORY_PROMPT_APPEND`
|
||||
- `buildPlanAgentSkillsSection`
|
||||
- `buildPlanAgentSystemPrepend`
|
||||
- `isPlanAgent`
|
||||
- `isPlanFamily`
|
||||
|
||||
## Merge Strategy
|
||||
|
||||
```bash
|
||||
gh pr merge --squash --delete-branch
|
||||
git worktree remove ../omo-wt/refactor-delegate-task-constants
|
||||
```
|
||||
|
||||
Squash merge collapses the 2 atomic commits into 1 clean commit on dev.
|
||||
@@ -0,0 +1 @@
|
||||
{"total_tokens": null, "duration_ms": 181000, "total_duration_seconds": 181}
|
||||
Reference in New Issue
Block a user