mixdog 1.4.0 → 1.4.2
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/package.json +3 -2
- package/scripts/build-shipped-history.mjs +115 -33
- package/scripts/check-voice-runtime-inputs.mjs +25 -0
- package/scripts/gate-local.mjs +183 -63
- package/scripts/latest-guard.mjs +21 -9
- package/scripts/lib/gate-scheduler.mjs +138 -32
- package/scripts/lib/gate-timing-reporter.mjs +16 -0
- package/scripts/lib/isolated-test-env.mjs +10 -5
- package/scripts/lib/run-node-tests.mjs +91 -66
- package/scripts/lib/scoped-temp.d.mts +16 -0
- package/scripts/lib/scoped-temp.mjs +124 -0
- package/scripts/lib/stale-temp.mjs +44 -0
- package/scripts/lib/test-failure-records.mjs +14 -1
- package/scripts/lib/test-failure-summary.mjs +16 -4
- package/scripts/lib/test-spawn-ledger.mjs +12 -3
- package/scripts/post-release-check.mjs +1 -6
- package/scripts/pptx-kit-index.mjs +17 -5
- package/scripts/suite-health.mjs +115 -24
- package/scripts/test-data-dir.mjs +10 -7
- package/scripts/test.mjs +9 -14
- package/src/agents/advisor/AGENT.md +4 -4
- package/src/agents/advisor/agent.json +1 -1
- package/src/agents/explore/AGENT.md +22 -0
- package/src/agents/explore/agent.json +6 -0
- package/src/app.mjs +4 -0
- package/src/cli.mjs +7 -0
- package/src/defaults/agents.json +7 -0
- package/src/defaults/shipped-history.json +23 -2
- package/src/defaults/skills/browser-use/SKILL.md +10 -5
- package/src/defaults/skills/code-tidy/SKILL.md +71 -102
- package/src/defaults/skills/code-tidy/references/agent-cleanup.md +66 -114
- package/src/defaults/skills/code-tidy/references/cleanup-report.md +19 -35
- package/src/defaults/skills/code-tidy/references/dead-code.md +3 -9
- package/src/defaults/skills/code-tidy/references/test-suite-slop.md +16 -27
- package/src/defaults/skills/computer-use/SKILL.md +16 -4
- package/src/defaults/skills/goal-management/SKILL.md +1 -1
- package/src/defaults/skills/setup/references/actions.md +12 -6
- package/src/defaults/skills/setup/references/surfaces.md +2 -2
- package/src/defaults/skills/setup-guide/SKILL.md +5 -2
- package/src/defaults/skills/setup-guide/model-recommendations.json +13 -0
- package/src/defaults/skills/skill-creator/SKILL.md +85 -190
- package/src/defaults/skills/skill-creator/references/design.md +70 -162
- package/src/defaults/skills/skill-creator/references/evaluation.md +33 -92
- package/src/defaults/skills/test-suite/SKILL.md +194 -0
- package/src/defaults/skills/test-suite/references/case-management.md +51 -0
- package/src/defaults/skills/test-suite/references/flaky-policy.md +39 -0
- package/src/defaults/skills/test-suite/references/reliability.md +49 -0
- package/src/defaults/skills/test-suite/references/suite-design.md +78 -0
- package/src/defaults/skills/test-suite/scripts/inventory.mjs +335 -0
- package/src/defaults/skills/visualize/SKILL.md +6 -2
- package/src/lib/rules-builder.cjs +35 -42
- package/src/output-styles/common.md +2 -2
- package/src/output-styles/simple.md +1 -1
- package/src/rules/agent/AGENT.md +5 -4
- package/src/rules/lead/LEAD.md +12 -7
- package/src/rules/shared/10-tool-workflow.md +3 -1
- package/src/rules/shared/20-research.md +3 -6
- package/src/rules/shared/40-editing.md +1 -0
- package/src/rules/shared/45-destructive.md +0 -2
- package/src/rules/shared/50-execution.md +2 -0
- package/src/rules/shared/60-verification.md +10 -9
- package/src/rules/shared/70-delivery.md +8 -9
- package/src/runtime/agent/orchestrator/agent-runtime/agent-dispatch/abort-link.mjs +5 -1
- package/src/runtime/agent/orchestrator/agent-runtime/agent-dispatch.mjs +10 -1
- package/src/runtime/agent/orchestrator/agent-runtime/agent-progress-watchdog.mjs +156 -24
- package/src/runtime/agent/orchestrator/agent-runtime/cache-strategy.mjs +13 -0
- package/src/runtime/agent/orchestrator/agent-runtime/maintenance-route.mjs +4 -1
- package/src/runtime/agent/orchestrator/cache-break-trace.mjs +2 -0
- package/src/runtime/agent/orchestrator/config.mjs +12 -7
- package/src/runtime/agent/orchestrator/context/deferred-tools.mjs +8 -8
- package/src/runtime/agent/orchestrator/context/role-instructions.mjs +5 -26
- package/src/runtime/agent/orchestrator/context/skill-catalog.mjs +3 -1
- package/src/runtime/agent/orchestrator/internal-agents.mjs +3 -14
- package/src/runtime/agent/orchestrator/mcp/agent-connectors.mjs +122 -12
- package/src/runtime/agent/orchestrator/mcp/child-tree.mjs +5 -3
- package/src/runtime/agent/orchestrator/mcp/client-config.mjs +13 -2
- package/src/runtime/agent/orchestrator/mcp/client-transport.mjs +152 -58
- package/src/runtime/agent/orchestrator/mcp/client.mjs +51 -18
- package/src/runtime/agent/orchestrator/mcp/oauth-login.mjs +88 -54
- package/src/runtime/agent/orchestrator/mcp/oauth.mjs +42 -26
- package/src/runtime/agent/orchestrator/providers/account-pool.mjs +54 -8
- package/src/runtime/agent/orchestrator/providers/anthropic-api-recovery.mjs +1 -1
- package/src/runtime/agent/orchestrator/providers/anthropic-api-request.mjs +37 -31
- package/src/runtime/agent/orchestrator/providers/anthropic-api-transport.mjs +8 -2
- package/src/runtime/agent/orchestrator/providers/anthropic-max-tokens-recovery.mjs +6 -2
- package/src/runtime/agent/orchestrator/providers/anthropic-messages.mjs +2 -2
- package/src/runtime/agent/orchestrator/providers/anthropic-oauth-client-version.mjs +1 -1
- package/src/runtime/agent/orchestrator/providers/anthropic-oauth-credentials.mjs +31 -21
- package/src/runtime/agent/orchestrator/providers/anthropic-oauth-request/initial-status.mjs +3 -1
- package/src/runtime/agent/orchestrator/providers/anthropic-oauth.mjs +14 -3
- package/src/runtime/agent/orchestrator/providers/anthropic-sse.mjs +6 -0
- package/src/runtime/agent/orchestrator/providers/anthropic-turn-result.mjs +2 -2
- package/src/runtime/agent/orchestrator/providers/antigravity-oauth-login.mjs +3 -1
- package/src/runtime/agent/orchestrator/providers/antigravity-oauth-tokens.mjs +2 -2
- package/src/runtime/agent/orchestrator/providers/codex-client-meta.mjs +1 -1
- package/src/runtime/agent/orchestrator/providers/command-code-oauth-login.mjs +1 -10
- package/src/runtime/agent/orchestrator/providers/command-code-oauth.mjs +1 -1
- package/src/runtime/agent/orchestrator/providers/cursor.mjs +3 -0
- package/src/runtime/agent/orchestrator/providers/custom-provider-config.mjs +40 -0
- package/src/runtime/agent/orchestrator/providers/custom-provider-keys.mjs +34 -0
- package/src/runtime/agent/orchestrator/providers/custom-provider.mjs +3 -0
- package/src/runtime/agent/orchestrator/providers/devin-auth.mjs +14 -7
- package/src/runtime/agent/orchestrator/providers/devin-wire-transport.mjs +3 -2
- package/src/runtime/agent/orchestrator/providers/devin.mjs +3 -0
- package/src/runtime/agent/orchestrator/providers/gemini-response.mjs +2 -2
- package/src/runtime/agent/orchestrator/providers/gemini-stream.mjs +4 -1
- package/src/runtime/agent/orchestrator/providers/grok-oauth-login.mjs +248 -41
- package/src/runtime/agent/orchestrator/providers/lib/anthropic-prefix-trace.mjs +76 -11
- package/src/runtime/agent/orchestrator/providers/lib/anthropic-request-utils.mjs +45 -6
- package/src/runtime/agent/orchestrator/providers/lib/first-output-window.mjs +58 -0
- package/src/runtime/agent/orchestrator/providers/lib/listen-on.mjs +14 -0
- package/src/runtime/agent/orchestrator/providers/lib/oauth-page.mjs +0 -18
- package/src/runtime/agent/orchestrator/providers/lib/oauth-token-utils.mjs +138 -6
- package/src/runtime/agent/orchestrator/providers/mimo-oauth-login.mjs +1 -10
- package/src/runtime/agent/orchestrator/providers/mimo-oauth.mjs +1 -1
- package/src/runtime/agent/orchestrator/providers/model-cache.mjs +100 -33
- package/src/runtime/agent/orchestrator/providers/muse-code-oauth.mjs +1 -1
- package/src/runtime/agent/orchestrator/providers/oauth-secret-fields.fixtures.mjs +45 -0
- package/src/runtime/agent/orchestrator/providers/openai-compat-chat-send.mjs +1 -0
- package/src/runtime/agent/orchestrator/providers/openai-compat-chat-stream/chunk-events.mjs +9 -2
- package/src/runtime/agent/orchestrator/providers/openai-compat-chat-stream/stream-state.mjs +7 -0
- package/src/runtime/agent/orchestrator/providers/openai-compat-chat-stream.mjs +14 -3
- package/src/runtime/agent/orchestrator/providers/openai-compat-responses-events.mjs +4 -2
- package/src/runtime/agent/orchestrator/providers/openai-compat-responses.mjs +1 -0
- package/src/runtime/agent/orchestrator/providers/openai-compat-stream-common.mjs +5 -3
- package/src/runtime/agent/orchestrator/providers/openai-compat-stream.mjs +16 -3
- package/src/runtime/agent/orchestrator/providers/openai-compat-xai-send.mjs +1 -0
- package/src/runtime/agent/orchestrator/providers/openai-http-sse-response-state/response-events/output-items.mjs +5 -2
- package/src/runtime/agent/orchestrator/providers/openai-http-sse-response-state/response-events.mjs +13 -3
- package/src/runtime/agent/orchestrator/providers/openai-http-sse-response-state.mjs +13 -2
- package/src/runtime/agent/orchestrator/providers/openai-http-sse-watchdogs.mjs +81 -42
- package/src/runtime/agent/orchestrator/providers/openai-oauth-http-sse.mjs +8 -0
- package/src/runtime/agent/orchestrator/providers/openai-oauth-login.mjs +160 -31
- package/src/runtime/agent/orchestrator/providers/openai-ws-stream/event-switch.mjs +22 -12
- package/src/runtime/agent/orchestrator/providers/openai-ws-stream.mjs +7 -1
- package/src/runtime/agent/orchestrator/providers/openai-ws-watchdogs.mjs +49 -22
- package/src/runtime/agent/orchestrator/providers/opencode-go-oauth.mjs +1 -1
- package/src/runtime/agent/orchestrator/providers/opencode-go.mjs +3 -1
- package/src/runtime/agent/orchestrator/providers/registry.mjs +45 -2
- package/src/runtime/agent/orchestrator/providers/vertex-ai-auth.mjs +622 -0
- package/src/runtime/agent/orchestrator/providers/vertex-ai-maas.mjs +185 -0
- package/src/runtime/agent/orchestrator/providers/vertex-ai-models.mjs +445 -0
- package/src/runtime/agent/orchestrator/providers/vertex-ai.mjs +567 -0
- package/src/runtime/agent/orchestrator/runtime-core/ask-user-tool-defs.mjs +41 -13
- package/src/runtime/agent/orchestrator/runtime-core/builtin-features.mjs +2 -0
- package/src/runtime/agent/orchestrator/runtime-core/orchestration.mjs +8 -6
- package/src/runtime/agent/orchestrator/runtime-core/session-text.mjs +7 -3
- package/src/runtime/agent/orchestrator/runtime-core/tool-catalog-data.mjs +3 -0
- package/src/runtime/agent/orchestrator/runtime-core/tool-defs.mjs +6 -1
- package/src/runtime/agent/orchestrator/runtime-core/workflow/context.mjs +14 -5
- package/src/runtime/agent/orchestrator/runtime-core/workflow-ids.mjs +1 -0
- package/src/runtime/agent/orchestrator/runtime-core/workflow.mjs +5 -2
- package/src/runtime/agent/orchestrator/session/agent-room.d.mts +30 -5
- package/src/runtime/agent/orchestrator/session/agent-room.mjs +171 -37
- package/src/runtime/agent/orchestrator/session/cache/scoped-cache.mjs +1 -3
- package/src/runtime/agent/orchestrator/session/cache-warm.mjs +102 -12
- package/src/runtime/agent/orchestrator/session/catalog-db/schema.mjs +4 -1
- package/src/runtime/agent/orchestrator/session/compact/execution-tail.mjs +1 -8
- package/src/runtime/agent/orchestrator/session/compact/messages.mjs +23 -0
- package/src/runtime/agent/orchestrator/session/compact/observation-supersession.mjs +103 -23
- package/src/runtime/agent/orchestrator/session/compact/runner.mjs +160 -36
- package/src/runtime/agent/orchestrator/session/context-utils.mjs +13 -1
- package/src/runtime/agent/orchestrator/session/conversation-import/claude.mjs +164 -23
- package/src/runtime/agent/orchestrator/session/conversation-import/codex.mjs +139 -19
- package/src/runtime/agent/orchestrator/session/conversation-import/convert.mjs +38 -7
- package/src/runtime/agent/orchestrator/session/conversation-import/imported-session.mjs +3 -0
- package/src/runtime/agent/orchestrator/session/conversation-import/turns.mjs +100 -22
- package/src/runtime/agent/orchestrator/session/eager-dispatch.mjs +4 -3
- package/src/runtime/agent/orchestrator/session/human-gate/requests.mjs +36 -6
- package/src/runtime/agent/orchestrator/session/loop/compact-policy.mjs +33 -3
- package/src/runtime/agent/orchestrator/session/loop/fresh-context.mjs +9 -2
- package/src/runtime/agent/orchestrator/session/loop/pre-dispatch-deny.mjs +1 -1
- package/src/runtime/agent/orchestrator/session/loop/provider-tool-exclusions.mjs +13 -5
- package/src/runtime/agent/orchestrator/session/loop/route-fallback.mjs +14 -0
- package/src/runtime/agent/orchestrator/session/loop/send-phase.mjs +13 -1
- package/src/runtime/agent/orchestrator/session/loop/tool-exec/before-hook.mjs +23 -4
- package/src/runtime/agent/orchestrator/session/loop/tool-exec/dispatch.mjs +2 -0
- package/src/runtime/agent/orchestrator/session/loop/tool-exec.mjs +23 -1
- package/src/runtime/agent/orchestrator/session/loop/tool-exposure-migration.mjs +39 -21
- package/src/runtime/agent/orchestrator/session/loop/turn-limits.mjs +13 -8
- package/src/runtime/agent/orchestrator/session/manager/ask-session.mjs +50 -28
- package/src/runtime/agent/orchestrator/session/manager/ask-turn-loop-options.mjs +3 -3
- package/src/runtime/agent/orchestrator/session/manager/ask-turn-settle.mjs +3 -1
- package/src/runtime/agent/orchestrator/session/manager/owner-route-fallbacks.mjs +2 -2
- package/src/runtime/agent/orchestrator/session/manager/prompt-utils.mjs +1 -0
- package/src/runtime/agent/orchestrator/session/manager/route-fallback-chain.mjs +2 -1
- package/src/runtime/agent/orchestrator/session/manager/rules-cache.mjs +30 -13
- package/src/runtime/agent/orchestrator/session/manager/runtime-liveness.mjs +63 -6
- package/src/runtime/agent/orchestrator/session/manager/session-close.mjs +7 -0
- package/src/runtime/agent/orchestrator/session/manager/session-crud.mjs +15 -0
- package/src/runtime/agent/orchestrator/session/manager/session-lifecycle.mjs +35 -13
- package/src/runtime/agent/orchestrator/session/manager/session-prompt-composition.mjs +24 -14
- package/src/runtime/agent/orchestrator/session/manager/session-scratch-environment.mjs +70 -0
- package/src/runtime/agent/orchestrator/session/manager/session-tool-surface.mjs +0 -3
- package/src/runtime/agent/orchestrator/session/manager/tool-resolution.mjs +10 -6
- package/src/runtime/agent/orchestrator/session/manager/turn-checkpoint-context.mjs +4 -0
- package/src/runtime/agent/orchestrator/session/manager/turn-checkpoint.mjs +3 -0
- package/src/runtime/agent/orchestrator/session/manager/turn-interruption.mjs +56 -29
- package/src/runtime/agent/orchestrator/session/manager/turn-reap.mjs +125 -0
- package/src/runtime/agent/orchestrator/session/mixy-name.mjs +11 -5
- package/src/runtime/agent/orchestrator/session/pre-send-compact.mjs +5 -1
- package/src/runtime/agent/orchestrator/session/prompt-cache-touch-store.mjs +30 -7
- package/src/runtime/agent/orchestrator/session/restart-prefix-parity.fixture.mjs +154 -0
- package/src/runtime/agent/orchestrator/session/store/session-delete.mjs +7 -0
- package/src/runtime/agent/orchestrator/session/store-summary-catalog.mjs +4 -0
- package/src/runtime/agent/orchestrator/session/store-summary-fields.mjs +15 -0
- package/src/runtime/agent/orchestrator/session/store-summary-index.mjs +37 -8
- package/src/runtime/agent/orchestrator/session/store-summary-reader.mjs +252 -39
- package/src/runtime/agent/orchestrator/session/store-transcript-cache.mjs +163 -64
- package/src/runtime/agent/orchestrator/session/store-transcript-projection.mjs +164 -4
- package/src/runtime/agent/orchestrator/session/store-transcript-worker.mjs +142 -18
- package/src/runtime/agent/orchestrator/session/transcript-restore/restore.mjs +61 -2
- package/src/runtime/agent/orchestrator/stall-policy.mjs +23 -0
- package/src/runtime/agent/orchestrator/tools/builtin/bash-tool/completed-result.mjs +6 -2
- package/src/runtime/agent/orchestrator/tools/builtin/bash-tool/invocation-plan.mjs +2 -2
- package/src/runtime/agent/orchestrator/tools/builtin/bash-tool/spawn-env.mjs +4 -2
- package/src/runtime/agent/orchestrator/tools/builtin/bash-tool.mjs +6 -1
- package/src/runtime/agent/orchestrator/tools/builtin/builtin-tools.mjs +46 -20
- package/src/runtime/agent/orchestrator/tools/builtin/cache-layers.mjs +7 -1
- package/src/runtime/agent/orchestrator/tools/builtin/git-command-tool.mjs +67 -31
- package/src/runtime/agent/orchestrator/tools/builtin/git-worktree-tool.mjs +25 -13
- package/src/runtime/agent/orchestrator/tools/builtin/lib/scoped-search-flight.mjs +9 -5
- package/src/runtime/agent/orchestrator/tools/builtin/lib/shell-job-records.mjs +58 -20
- package/src/runtime/agent/orchestrator/tools/builtin/read-single-stream.mjs +7 -1
- package/src/runtime/agent/orchestrator/tools/builtin/read-streaming.mjs +6 -3
- package/src/runtime/agent/orchestrator/tools/builtin/read-tool/batch-dispatch.mjs +1 -1
- package/src/runtime/agent/orchestrator/tools/builtin/read-tool/batch-publication.mjs +23 -12
- package/src/runtime/agent/orchestrator/tools/builtin/read-tool/batch-snapshot.mjs +6 -1
- package/src/runtime/agent/orchestrator/tools/builtin/read-tool.mjs +1 -8
- package/src/runtime/agent/orchestrator/tools/builtin/runtime-capabilities.mjs +20 -15
- package/src/runtime/agent/orchestrator/tools/builtin/shell-jobs.mjs +96 -20
- package/src/runtime/agent/orchestrator/tools/builtin/task-tool.mjs +59 -10
- package/src/runtime/agent/orchestrator/tools/code-graph/dispatch/federation.mjs +3 -1
- package/src/runtime/agent/orchestrator/tools/code-graph-tool-defs.mjs +1 -1
- package/src/runtime/agent/orchestrator/tools/graph-manifest.json +13 -13
- package/src/runtime/agent/orchestrator/tools/lib/isolated-test-env.mjs +4 -3
- package/src/runtime/agent/orchestrator/tools/lib/native-spawn-client.mjs +99 -2
- package/src/runtime/agent/orchestrator/tools/lib/owned-shell-trees.mjs +2 -0
- package/src/runtime/agent/orchestrator/tools/lib/shell-descendants.mjs +103 -13
- package/src/runtime/agent/orchestrator/tools/lib/shell-run-background/promote-job.mjs +3 -1
- package/src/runtime/agent/orchestrator/tools/lib/shell-run-settle.mjs +49 -15
- package/src/runtime/agent/orchestrator/tools/lib/shell-run-spawn.mjs +45 -27
- package/src/runtime/agent/orchestrator/tools/lib/shell-run-state.mjs +34 -10
- package/src/runtime/agent/orchestrator/tools/lib/shell-warm-standby.mjs +28 -4
- package/src/runtime/agent/orchestrator/tools/lib/wait-until-fixture.mjs +26 -0
- package/src/runtime/agent/orchestrator/tools/shell-command.mjs +7 -2
- package/src/runtime/agent/orchestrator/tools/spawn-manifest.json +13 -13
- package/src/runtime/channels/lib/webhook/signature.mjs +4 -1
- package/src/runtime/channels/lib/whisper-port.mjs +29 -11
- package/src/runtime/channels/lib/whisper-server.mjs +10 -1
- package/src/runtime/computer-bridge/action-schema.mjs +2 -2
- package/src/runtime/computer-bridge/core-actions.mjs +2 -2
- package/src/runtime/computer-bridge/error-recovery.mjs +5 -4
- package/src/runtime/computer-bridge/linux-action-capabilities.mjs +24 -5
- package/src/runtime/computer-bridge/linux-readiness.d.mts +7 -2
- package/src/runtime/connectors/connector-accounts-mcp.mjs +236 -103
- package/src/runtime/connectors/gmail-app-password.mjs +3 -3
- package/src/runtime/explore/explorer.mjs +93 -0
- package/src/runtime/explore/tool-defs.mjs +35 -0
- package/src/runtime/explore/tool.mjs +123 -0
- package/src/runtime/local-provider/server-process.mjs +2 -1
- package/src/runtime/media/adapters/gemini-video.mjs +4 -1
- package/src/runtime/media/adapters/xai-media.mjs +2 -1
- package/src/runtime/memory/index.mjs +4 -0
- package/src/runtime/memory/lib/embedding-provider.mjs +4 -1
- package/src/runtime/memory/lib/embedding-worker.mjs +10 -3
- package/src/runtime/memory/lib/memory-action-handlers/cycle-backfill-action.mjs +1 -7
- package/src/runtime/memory/lib/memory-chunk-quality.mjs +1 -6
- package/src/runtime/office/authoring/pdf-author-action.mjs +1 -6
- package/src/runtime/office/design/design-art-direction.mjs +29 -27
- package/src/runtime/office/pdf/pdf-writer.mjs +6 -1
- package/src/runtime/office/portable/portable-snapshot-docx.mjs +7 -1
- package/src/runtime/office/portable/portable-snapshot-shared.mjs +6 -1
- package/src/runtime/office/quality/assurance-rendered.mjs +9 -2
- package/src/runtime/office/quality/assurance-structure-docx.mjs +4 -2
- package/src/runtime/office/quality/design-review.mjs +1 -5
- package/src/runtime/office/quality/document-brief.mjs +1 -5
- package/src/runtime/office/quality/forced-break-pages.mjs +9 -6
- package/src/runtime/office/quality/quality-pipeline.mjs +1 -1
- package/src/runtime/shared/agent-route-config.mjs +17 -2
- package/src/runtime/shared/atomic-file.mjs +103 -2
- package/src/runtime/shared/background-tasks.mjs +15 -6
- package/src/runtime/shared/bot-owned-work.mjs +56 -0
- package/src/runtime/shared/connector-accounts.mjs +5 -5
- package/src/runtime/shared/connector-catalog.d.mts +11 -4
- package/src/runtime/shared/connector-catalog.mjs +60 -52
- package/src/runtime/shared/custom-provider-keys.mjs +20 -0
- package/src/runtime/shared/defaults-separation.mjs +1 -4
- package/src/runtime/shared/fetch-safe-listen.d.mts +16 -0
- package/src/runtime/shared/fetch-safe-listen.mjs +50 -0
- package/src/runtime/shared/file-has-data.mjs +26 -2
- package/src/runtime/shared/file-lock.mjs +13 -15
- package/src/runtime/shared/git-launch.d.mts +9 -0
- package/src/runtime/shared/git-launch.mjs +213 -0
- package/src/runtime/shared/git-runner-worker.mjs +2 -1
- package/src/runtime/shared/handoff-artifacts.d.mts +2 -1
- package/src/runtime/shared/handoff-artifacts.mjs +18 -8
- package/src/runtime/shared/idle-auto-clear-gate.mjs +29 -7
- package/src/runtime/shared/llm/cost.mjs +11 -2
- package/src/runtime/shared/llm/http-agent.mjs +313 -29
- package/src/runtime/shared/llm/model-catalog-projection.mjs +3 -2
- package/src/runtime/shared/llm/model-catalog.mjs +46 -6
- package/src/runtime/shared/llm/provider-catalog-registry.mjs +3 -0
- package/src/runtime/shared/llm/system-proxy.mjs +452 -0
- package/src/runtime/shared/loopback-listener.mjs +25 -2
- package/src/runtime/shared/model-route-chain.d.mts +7 -2
- package/src/runtime/shared/model-route-chain.mjs +22 -4
- package/src/runtime/shared/open-url.mjs +10 -0
- package/src/runtime/shared/provider-accounts.mjs +52 -2
- package/src/runtime/shared/session-activity-signal.mjs +14 -0
- package/src/runtime/shared/session-scratch.mjs +37 -0
- package/src/runtime/shared/staged-install-worker.mjs +5 -0
- package/src/runtime/shared/staged-update.mjs +47 -2
- package/src/runtime/shared/tool-card-model/agent-surface.mjs +1 -3
- package/src/runtime/shared/tool-card-model/card-status.mjs +15 -2
- package/src/runtime/shared/tool-result-summary.mjs +1 -1
- package/src/runtime/shared/tool-surface.mjs +113 -36
- package/src/runtime/shared/tool-work-units.mjs +6 -0
- package/src/runtime/shared/turn-snapshot-store.mjs +13 -6
- package/src/runtime/shared/turn-worktree-snapshot.mjs +414 -54
- package/src/runtime/shared/worktrees/activity-gate.mjs +215 -318
- package/src/runtime/shared/worktrees/activity-ledger-worker.mjs +56 -0
- package/src/runtime/shared/worktrees/activity-ledger.mjs +391 -0
- package/src/runtime/shared/worktrees/branch-management.mjs +9 -3
- package/src/runtime/shared/worktrees/contract.mjs +4 -1
- package/src/runtime/shared/worktrees/git.mjs +72 -0
- package/src/runtime/shared/worktrees/manager.mjs +285 -168
- package/src/runtime/shared/worktrees/test-support.mjs +6 -10
- package/src/runtime/tidy/install.mjs +95 -15
- package/src/runtime/tidy/languages.mjs +17 -15
- package/src/runtime/tidy/process.mjs +7 -4
- package/src/runtime/tidy/resolve.mjs +19 -16
- package/src/runtime/tidy/runners/biome.mjs +3 -3
- package/src/runtime/tidy/tool.mjs +1 -1
- package/src/runtime/tidy/worktree.mjs +10 -6
- package/src/runtime/visualize-bridge/client.mjs +6 -1
- package/src/runtime/visualize-bridge/tool-defs.mjs +7 -2
- package/src/runtime/web-search/index.mjs +1 -1
- package/src/session-runtime/agent-home-delivery.mjs +41 -0
- package/src/session-runtime/agent-task-sessions.mjs +458 -312
- package/src/session-runtime/agent-tool-routing.mjs +8 -41
- package/src/session-runtime/boot/tools.mjs +7 -1
- package/src/session-runtime/bot-status.mjs +107 -101
- package/src/session-runtime/bot-target.mjs +38 -0
- package/src/session-runtime/channel-config-api.mjs +6 -1
- package/src/session-runtime/connector-merge-migration.mjs +18 -15
- package/src/session-runtime/conversation-import/codex-titles.mjs +88 -0
- package/src/session-runtime/conversation-import/discovery.mjs +401 -36
- package/src/session-runtime/conversation-import/service.mjs +35 -8
- package/src/session-runtime/handoff-attachments.mjs +82 -31
- package/src/session-runtime/held-requests.mjs +3 -1
- package/src/session-runtime/internal-tool-executor/ask-user-tool.mjs +12 -13
- package/src/session-runtime/internal-tool-executor/bridge-tools.mjs +1 -0
- package/src/session-runtime/internal-tool-executor/feature-tools.mjs +2 -0
- package/src/session-runtime/internal-tool-executor/knowledge-tools.mjs +8 -0
- package/src/session-runtime/internal-tool-executor/reaction-tool.mjs +4 -1
- package/src/session-runtime/internal-tool-executor/workspace-tools.mjs +145 -112
- package/src/session-runtime/lifecycle/cold-heir.mjs +11 -6
- package/src/session-runtime/lifecycle/session-catalog.mjs +9 -1
- package/src/session-runtime/lifecycle/teardown/session-close.mjs +6 -1
- package/src/session-runtime/lifecycle/teardown.mjs +1 -1
- package/src/session-runtime/mcp-glue/server-catalog.mjs +16 -10
- package/src/session-runtime/mcp-glue/server-input.mjs +4 -1
- package/src/session-runtime/mixy-heartbeat.mjs +1 -1
- package/src/session-runtime/model-route/set-route.mjs +11 -2
- package/src/session-runtime/provider-auth/login.mjs +2 -2
- package/src/session-runtime/provider-catalog-cache.mjs +82 -36
- package/src/session-runtime/provider-models/catalog-load.mjs +23 -6
- package/src/session-runtime/provider-models.mjs +4 -2
- package/src/session-runtime/resource-mcp-api.mjs +98 -35
- package/src/session-runtime/resource-mcp-connector-accounts.mjs +44 -31
- package/src/session-runtime/resource-mcp-secrets.mjs +28 -11
- package/src/session-runtime/resource-mcp-servers.mjs +5 -4
- package/src/session-runtime/resource-recall-api.mjs +6 -1
- package/src/session-runtime/runtime-feature-gates.mjs +5 -1
- package/src/session-runtime/services/agent-tool/execute.mjs +14 -9
- package/src/session-runtime/services/agent-tool/job-views/agent-list.mjs +20 -4
- package/src/session-runtime/services/agent-tool/model-select.mjs +48 -7
- package/src/session-runtime/services/agent-tool/render.mjs +71 -17
- package/src/session-runtime/services/agent-tool/send-flow.mjs +10 -2
- package/src/session-runtime/services/agent-tool/spawn-flow/spawn-prep.mjs +8 -3
- package/src/session-runtime/services/agent-tool/spawn-flow/spawn-run.mjs +4 -1
- package/src/session-runtime/services/agent-tool/spawn-preset.mjs +6 -2
- package/src/session-runtime/services/agent-tool/tool-def.mjs +9 -9
- package/src/session-runtime/services/agent-watchdog-registry.mjs +32 -4
- package/src/session-runtime/services/channel-worker/daemon-spawn.mjs +2 -0
- package/src/session-runtime/services/daemon-candidate.mjs +4 -1
- package/src/session-runtime/services/memory-runtime-proxy/daemon-spawn.mjs +4 -0
- package/src/session-runtime/services/plugin-admin.mjs +10 -6
- package/src/session-runtime/services/provider-admin.mjs +283 -11
- package/src/session-runtime/session-turn-api.mjs +2 -0
- package/src/session-runtime/settings-builtin-tools-api.mjs +4 -1
- package/src/session-runtime/settings-system-api.mjs +1 -1
- package/src/session-runtime/setup-tool/agent-settings-actions.mjs +13 -3
- package/src/session-runtime/setup-tool/connector-widen-approval.mjs +96 -0
- package/src/session-runtime/setup-tool/executor.mjs +6 -2
- package/src/session-runtime/setup-tool/tool-defs.mjs +2 -1
- package/src/session-runtime/tool-policy/policy-stage.mjs +1 -0
- package/src/session-runtime/turn/agent-ops.mjs +23 -0
- package/src/session-runtime/workflow-agents-api/agent-connectors.mjs +49 -11
- package/src/session-runtime/workflow-agents-api/agent-editor.mjs +5 -1
- package/src/session-runtime/workflow-agents-api/agent-route.mjs +25 -5
- package/src/session-runtime/workflow-agents-api/onboarding.mjs +3 -3
- package/src/session-runtime/workspace/activity-guards.mjs +176 -0
- package/src/session-runtime/workspace/session-view.mjs +149 -0
- package/src/session-runtime/workspace/side-checkouts.mjs +203 -0
- package/src/session-runtime/workspace/transition-runner.mjs +188 -0
- package/src/session-runtime/workspace/transitions.mjs +108 -1041
- package/src/session-runtime/workspace/workspace-merge.mjs +132 -0
- package/src/session-runtime/workspace/worktree-intents.mjs +242 -0
- package/src/session-runtime/workspace/worktree-maintenance.mjs +80 -0
- package/src/session-runtime/workspace/worktree-setup.mjs +85 -0
- package/src/session-runtime/workspace/worktree-tool.mjs +73 -56
- package/src/standalone/daemon-desktop-runtime.mjs +2 -0
- package/src/standalone/daemon-session-control.mjs +169 -138
- package/src/standalone/daemon.mjs +7 -0
- package/src/standalone/desktop-service-registry.mjs +9 -0
- package/src/standalone/local-session-runtime.mjs +5 -1
- package/src/standalone/session-client/daemon-unavailable.mjs +3 -0
- package/src/standalone/session-client.mjs +5 -1
- package/src/standalone/session-frame-stream.mjs +83 -11
- package/src/standalone/session-protocol.mjs +4 -0
- package/src/standalone/session-service/agent-tree/agent-turns.mjs +16 -12
- package/src/standalone/session-service/agent-tree.mjs +45 -9
- package/src/standalone/session-service/projection/transcript-window.mjs +700 -64
- package/src/standalone/session-service/session-calls/session-action.mjs +10 -3
- package/src/standalone/session-service/session-calls/session-views.mjs +160 -104
- package/src/standalone/session-service/stored-reader.mjs +127 -40
- package/src/standalone/session-transport/client-registry/client-grace.mjs +12 -9
- package/src/tui/App.jsx +154 -164
- package/src/tui/app/app-view/floating-panel.jsx +10 -4
- package/src/tui/app/app-view/text-entry-labels.mjs +1 -0
- package/src/tui/app/clipboard.mjs +21 -10
- package/src/tui/app/model-picker/route-selection/fast-parameters.mjs +1 -3
- package/src/tui/app/model-picker/route-selection.mjs +5 -6
- package/src/tui/app/prompt-handlers/use-prompt-history-nav.mjs +1 -1
- package/src/tui/app/prompt-handlers/use-prompt-interrupt.mjs +3 -0
- package/src/tui/app/prompt-submit/provider-prompts.mjs +3 -1
- package/src/tui/app/provider-setup/api-key-actions.mjs +31 -1
- package/src/tui/app/provider-setup/oauth-actions.mjs +58 -21
- package/src/tui/app/provider-setup/provider-items.mjs +8 -2
- package/src/tui/app/provider-setup-picker.mjs +29 -18
- package/src/tui/app/shell-layout/row-budgets.mjs +12 -10
- package/src/tui/app/slash-commands.mjs +1 -0
- package/src/tui/app/slash-dispatch/session-commands.mjs +46 -0
- package/src/tui/app/slash-dispatch.mjs +1 -1
- package/src/tui/app/use-btw-panel.mjs +29 -0
- package/src/tui/app/use-context-panel-refresh.mjs +31 -0
- package/src/tui/app/use-model-catalog-cache.mjs +13 -10
- package/src/tui/app/use-mouse-input.mjs +11 -0
- package/src/tui/app/use-onboarding-start.mjs +8 -3
- package/src/tui/app/use-panel-transition.mjs +10 -1
- package/src/tui/app/use-pasted-buffers.mjs +28 -20
- package/src/tui/app/use-prompt-draft-flow.mjs +7 -0
- package/src/tui/app/use-prompt-layout-rows.mjs +3 -3
- package/src/tui/app/use-prompt-queue-history.mjs +3 -2
- package/src/tui/app/use-selection-focus.mjs +11 -2
- package/src/tui/app/use-selection-geometry.mjs +18 -9
- package/src/tui/app/use-selection-paint.mjs +4 -4
- package/src/tui/app/use-selection-stitch.mjs +3 -3
- package/src/tui/app/use-slash-palette.mjs +62 -0
- package/src/tui/app/use-terminal-chrome.mjs +2 -2
- package/src/tui/app/use-transcript-activity.mjs +47 -32
- package/src/tui/app/use-transcript-follow.mjs +12 -4
- package/src/tui/app/use-transcript-scroll.mjs +46 -17
- package/src/tui/app/use-transcript-swap-reset.mjs +27 -0
- package/src/tui/app/use-transcript-window/geometry.mjs +19 -5
- package/src/tui/app/use-transcript-window/instance-state.mjs +4 -0
- package/src/tui/app/use-transcript-window/selection-shift.mjs +5 -1
- package/src/tui/app/use-transcript-window.mjs +21 -11
- package/src/tui/app/use-tui-ready.mjs +18 -0
- package/src/tui/app/use-welcome-prompt-hint.mjs +5 -0
- package/src/tui/app/use-workflow-tab-cycle.mjs +5 -3
- package/src/tui/components/Picker.jsx +27 -3
- package/src/tui/components/QuestionPanel.jsx +13 -4
- package/src/tui/components/SignInUrl.jsx +68 -0
- package/src/tui/components/TextEntryPanel.jsx +76 -46
- package/src/tui/components/sign-in-url-layout.mjs +24 -0
- package/src/tui/dist/index.mjs +1963 -1361
- package/src/tui/session/goal-turn-state.mjs +6 -2
- package/src/tui/session/session-api/controls.mjs +4 -0
- package/src/tui/session/session-api/extensions.mjs +8 -0
- package/src/tui/session/session-api/intake/abort.mjs +2 -1
- package/src/tui/session/session-api/intake.mjs +2 -0
- package/src/tui/session/session-api/integrations.mjs +2 -2
- package/src/tui/session/session-api/routes-agent-definitions.mjs +1 -0
- package/src/tui/session/session-api/settings.mjs +2 -2
- package/src/tui/session/session-flow/queue/take-entries.mjs +11 -0
- package/src/tui/session/transcript-spill/spill-writer.mjs +15 -0
- package/src/tui/session/transcript-spill.mjs +92 -4
- package/src/tui/session/transcript-store.mjs +2 -0
- package/src/ui/statusline-agents.mjs +1 -3
- package/src/defaults/skills/skill-creator/references/source-review.md +0 -94
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: skill-creator
|
|
3
|
-
description: Create, audit, repair, or simplify
|
|
3
|
+
description: Create, audit, repair, or simplify your Mixdog skills and their SKILL.md.
|
|
4
4
|
when_to_use: 'Create, audit, repair, or edit skills, including activation failures; not ordinary feature work.'
|
|
5
5
|
dependencies:
|
|
6
6
|
tools:
|
|
@@ -12,195 +12,90 @@ dependencies:
|
|
|
12
12
|
|
|
13
13
|
# Skill Creator
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
Manages the skills a user keeps in Mixdog: turning a recurring workflow into a
|
|
16
|
+
skill, repairing one that misfires, and keeping the whole set small and tidy.
|
|
17
|
+
A skill earns its place by changing results — decisions, procedure, recovery
|
|
18
|
+
and a way to prove completion — not by narrating what the model or a tool
|
|
19
|
+
schema already knows.
|
|
18
20
|
|
|
19
|
-
##
|
|
21
|
+
## Pick the deliverable
|
|
20
22
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
| Need | Best home |
|
|
23
|
+
| Need | Home |
|
|
24
24
|
|---|---|
|
|
25
|
-
| Reusable judgement or a repeatable procedure
|
|
26
|
-
|
|
|
27
|
-
|
|
|
28
|
-
| A
|
|
29
|
-
| A
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
##
|
|
35
|
-
|
|
36
|
-
-
|
|
37
|
-
|
|
38
|
-
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
selection conditions in the trigger; the body must stand on its own when loaded.
|
|
103
|
-
|
|
104
|
-
Move conditional detail into directly referenced files. Add scripts only for
|
|
105
|
-
deterministic work that would otherwise be rebuilt on repeated invocations.
|
|
106
|
-
|
|
107
|
-
Completion criterion: the listing line fits its budget with the trigger
|
|
108
|
-
intact, and removing any remaining body section would lose judgement,
|
|
109
|
-
execution, recovery, or verification value.
|
|
110
|
-
|
|
111
|
-
### 5. Validate structure
|
|
112
|
-
|
|
113
|
-
Run:
|
|
114
|
-
|
|
115
|
-
```text
|
|
116
|
-
node "${MIXDOG_SKILL_DIR}/scripts/validate-skill.mjs" "<skill-directory>"
|
|
117
|
-
```
|
|
118
|
-
|
|
119
|
-
Then run checks required by the target repository. The validator catches
|
|
120
|
-
portable structure, code-fence, and path problems and warns when the listing line exceeds
|
|
121
|
-
its budget; the runtime parser remains authoritative for loading behavior.
|
|
122
|
-
|
|
123
|
-
Completion criterion: validation passes, warnings are reviewed at their
|
|
124
|
-
reported severity, resources resolve, and the folder name matches the manifest.
|
|
125
|
-
|
|
126
|
-
### 6. Exercise behavior
|
|
127
|
-
|
|
128
|
-
Read `references/evaluation.md`. Test realistic requests, including an implicit
|
|
129
|
-
positive case, an edge case, and a close negative case. For a modified skill,
|
|
130
|
-
preserve the prior version before editing and compare the same scenarios.
|
|
131
|
-
|
|
132
|
-
Judge generated artifacts by observable outcomes. Use deterministic assertions
|
|
133
|
-
for mechanical properties and user review for subjective quality.
|
|
134
|
-
|
|
135
|
-
Completion criterion: required scenarios pass without task-specific harness
|
|
136
|
-
hints, and failures have either been fixed or clearly reported.
|
|
137
|
-
|
|
138
|
-
### 7. Tighten
|
|
139
|
-
|
|
140
|
-
Remove duplicated rules, generic advice, stale examples, and branches that did
|
|
141
|
-
not affect evaluation. When adding a corrected rule, replace the obsolete rule
|
|
142
|
-
instead of accumulating exceptions.
|
|
143
|
-
|
|
144
|
-
Completion criterion: the final skill is smaller or clearer than the draft
|
|
145
|
-
without losing proven behavior.
|
|
146
|
-
|
|
147
|
-
## Updating an existing skill
|
|
148
|
-
|
|
149
|
-
- Keep its name and scope unless the user requests a change.
|
|
150
|
-
- Diagnose whether the defect is routing, instructions, resources, integration,
|
|
151
|
-
or the underlying tool before editing.
|
|
152
|
-
- Preserve warnings, resource bounds, user approvals, and recovery paths.
|
|
153
|
-
- Read only references implicated by the defect.
|
|
154
|
-
- Re-run checks affected by the edit; do not repeat checks already closed by
|
|
155
|
-
unchanged evidence.
|
|
156
|
-
|
|
157
|
-
## Auditing the skill set
|
|
158
|
-
|
|
159
|
-
When asked to audit, review, or tidy skills rather than fix one defect:
|
|
160
|
-
|
|
161
|
-
1. List every skill directory in scope: machine-global
|
|
162
|
-
(`<mixdog-data>/skills`), enabled plugin skills, and built-ins
|
|
163
|
-
(`src/defaults/skills` in the Mixdog repository).
|
|
164
|
-
2. Run `scripts/validate-skill.mjs` on each directory and collect the errors
|
|
165
|
-
and warnings; they cover the listing line, code fences, and resource paths
|
|
166
|
-
mechanically.
|
|
167
|
-
3. Read each trigger and body against the audit checklist in
|
|
168
|
-
`references/design.md`: trigger content, section order, completion
|
|
169
|
-
results, duplication, and stale instructions.
|
|
170
|
-
4. Report findings as one table (skill, check, current value, proposed fix)
|
|
171
|
-
before editing. Edit only after the user approves the scope.
|
|
172
|
-
5. Re-run the validator on every edited directory.
|
|
173
|
-
|
|
174
|
-
Completion criterion: every skill in scope validates; report unresolved
|
|
175
|
-
findings with reasons, without promoting warnings to failures.
|
|
176
|
-
|
|
177
|
-
## Mixdog loading facts
|
|
178
|
-
|
|
179
|
-
- Discovery precedence is machine-global, enabled plugin, then built-in.
|
|
180
|
-
- The directory name must equal frontmatter `name`.
|
|
181
|
-
- The model sees one listing line per skill (`references/design.md`
|
|
182
|
-
"Listing line" owns its form and budget); UI descriptions are not
|
|
183
|
-
injected, and the body loads once through `Skill`.
|
|
184
|
-
- `${MIXDOG_SKILL_DIR}` resolves to the active skill directory.
|
|
185
|
-
- `metadata.requires` names a mandatory Mixdog built-in feature. Add it only
|
|
186
|
-
when the skill cannot function without that feature.
|
|
187
|
-
- Optional frontmatter has no effect unless the current runtime implements it.
|
|
188
|
-
- `dependencies.tools` declares tools loaded with the skill, without granting
|
|
189
|
-
permissions. Use `type: tool` with the exact tool name or `type: mcp` with
|
|
190
|
-
an existing server name. Keep optional tools out; `allowed-tools` is not
|
|
191
|
-
interpreted as dependencies. Imported `agents/openai.yaml` dependencies
|
|
192
|
-
are also read, but never authorize installation or activation.
|
|
193
|
-
|
|
194
|
-
## Final review
|
|
195
|
-
|
|
196
|
-
- Is this genuinely a reusable skill rather than another deliverable?
|
|
197
|
-
- Does the trigger say only when to load the skill, strongest situation first?
|
|
198
|
-
- Does every major step end in evidence, not “be careful”?
|
|
199
|
-
- Are platform assumptions, external programs, network access, and secrets
|
|
200
|
-
visible?
|
|
201
|
-
- Are pitfalls based on plausible or observed failures?
|
|
202
|
-
- Can subjective outputs reach the user for review?
|
|
203
|
-
- Are temporary evaluation files excluded from the shipped skill?
|
|
204
|
-
- Were commit, publish, install, deployment, and restart left to explicit user
|
|
205
|
-
requests?
|
|
206
|
-
|
|
25
|
+
| Reusable judgement or a repeatable procedure with existing tools | Skill |
|
|
26
|
+
| A new runtime capability, authentication, streaming, binary handling | Tool or product code |
|
|
27
|
+
| Facts and conventions of one repository | That repository's docs |
|
|
28
|
+
| A standing personal preference or constraint | Memory, with approval |
|
|
29
|
+
| A one-off task | Do the task; no skill |
|
|
30
|
+
|
|
31
|
+
Never create a skill whose job is to list other skills. When an existing skill
|
|
32
|
+
already owns the outcome, extend it instead.
|
|
33
|
+
|
|
34
|
+
## Where skills live
|
|
35
|
+
|
|
36
|
+
- The user's skills: `<mixdog-data>/skills/<name>/SKILL.md`, available in
|
|
37
|
+
every project.
|
|
38
|
+
- Enabled plugins and Mixdog's built-ins are read in place. A user skill with
|
|
39
|
+
the same name replaces them and stops following their updates, so pick a new
|
|
40
|
+
name unless replacing is the point.
|
|
41
|
+
- The folder name equals the frontmatter `name`.
|
|
42
|
+
|
|
43
|
+
## Create a skill
|
|
44
|
+
|
|
45
|
+
1. **Recover the workflow.** From the conversation, successful tool calls,
|
|
46
|
+
corrections and produced artifacts, capture the one recurring outcome; the
|
|
47
|
+
requests that should select the skill and the nearby requests another skill
|
|
48
|
+
or tool owns; inputs, side effects and approvals; completion evidence and
|
|
49
|
+
recovery. Ask only about gaps that change the design. Result: another agent
|
|
50
|
+
could tell when to use it and what done looks like.
|
|
51
|
+
2. **Draft** with `references/design.md`: the listing line first, then the
|
|
52
|
+
body in its section order; detail that loads only in some cases goes to
|
|
53
|
+
`references/`, deterministic repeated work to `scripts/`. Every tool, path
|
|
54
|
+
and dependency it names exists. Result: the trigger fits its budget, and
|
|
55
|
+
removing any section would lose judgement, execution, recovery or
|
|
56
|
+
verification.
|
|
57
|
+
3. **Validate:**
|
|
58
|
+
`node "${MIXDOG_SKILL_DIR}/scripts/validate-skill.mjs" "<skill-directory>"`.
|
|
59
|
+
Result: no errors; each warning fixed or kept on purpose.
|
|
60
|
+
4. **Exercise** with `references/evaluation.md`: realistic requests, including
|
|
61
|
+
an implicit positive and a near-miss negative. Result: the scenarios pass
|
|
62
|
+
without hints, or the failures are reported.
|
|
63
|
+
5. **Tighten:** delete duplicated rules, generic advice, stale examples and
|
|
64
|
+
rules no scenario needed; replace an obsolete rule instead of adding an
|
|
65
|
+
exception. Result: smaller or clearer, with the same proven behaviour.
|
|
66
|
+
|
|
67
|
+
## Repair or update a skill
|
|
68
|
+
|
|
69
|
+
- Keep its name and scope unless the user asks otherwise.
|
|
70
|
+
- Classify the defect first (`references/evaluation.md`) and edit the part
|
|
71
|
+
that owns it: a trigger that never selects the skill is not fixed in the
|
|
72
|
+
body, and more prose does not fix a broken tool.
|
|
73
|
+
- Keep a copy of the prior version and rerun the same scenarios against both.
|
|
74
|
+
- Keep its approvals, bounds, warnings and recovery paths.
|
|
75
|
+
- Rerun only the checks the edit affects.
|
|
76
|
+
|
|
77
|
+
## Audit the set
|
|
78
|
+
|
|
79
|
+
When asked to review or tidy skills rather than fix one:
|
|
80
|
+
|
|
81
|
+
1. List the skills in scope: the user's (`<mixdog-data>/skills`), enabled
|
|
82
|
+
plugins, built-ins.
|
|
83
|
+
2. Run the validator on each and collect its errors and warnings.
|
|
84
|
+
3. Read each against the audit checklist in `references/design.md` and give a
|
|
85
|
+
verdict: **Keep**; **Improve** (name the defect); **Merge** into another
|
|
86
|
+
(name it); **Retire** (name what covers the need instead).
|
|
87
|
+
4. Report one table — skill, verdict, finding, proposed fix — and edit only
|
|
88
|
+
what the user approves. Plugin and built-in skills are never edited in
|
|
89
|
+
place.
|
|
90
|
+
5. Rerun the validator on every edited skill.
|
|
91
|
+
|
|
92
|
+
Result: every edited skill validates; unresolved findings are reported with
|
|
93
|
+
their reason.
|
|
94
|
+
|
|
95
|
+
## Resources
|
|
96
|
+
|
|
97
|
+
- `references/design.md` — read before drafting or auditing: ownership,
|
|
98
|
+
frontmatter, listing line, body, resources, audit checklist.
|
|
99
|
+
- `references/evaluation.md` — read when exercising a skill or diagnosing a
|
|
100
|
+
failure.
|
|
101
|
+
- `scripts/validate-skill.mjs` — run on every created or edited skill.
|
|
@@ -1,203 +1,111 @@
|
|
|
1
1
|
# Skill design
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
skill.
|
|
3
|
+
## One owner
|
|
5
4
|
|
|
6
|
-
|
|
5
|
+
Before writing, name the result the skill makes more reliable, the decisions
|
|
6
|
+
the agent misses without it, the evidence that proves completion, the failures
|
|
7
|
+
that need recovery, and the nearby request it must leave alone.
|
|
7
8
|
|
|
8
|
-
|
|
9
|
+
Extend an existing skill that owns the outcome; create a new one only for a
|
|
10
|
+
distinct trigger, workflow and verification. Avoid skills that redirect to
|
|
11
|
+
other skills, several skills competing for one request, one skill covering a
|
|
12
|
+
whole technology, and product features written as prose.
|
|
9
13
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
- What evidence proves completion?
|
|
13
|
-
- Which failures need recovery rather than a hard stop?
|
|
14
|
-
- Which adjacent task must remain outside this skill?
|
|
15
|
-
|
|
16
|
-
A skill earns its context cost by supplying judgement or procedure that changes
|
|
17
|
-
results. Generic encouragement and tool documentation do not qualify.
|
|
18
|
-
|
|
19
|
-
## Pick one owner
|
|
20
|
-
|
|
21
|
-
Prefer extending an existing skill when it already owns the outcome. Create a
|
|
22
|
-
new skill when it has a distinct trigger, workflow, and verification boundary.
|
|
23
|
-
|
|
24
|
-
Avoid:
|
|
25
|
-
|
|
26
|
-
- umbrella skills that merely redirect to narrower skills;
|
|
27
|
-
- several skills competing for the same user intent;
|
|
28
|
-
- one skill that attempts to cover an entire profession or technology family;
|
|
29
|
-
- product features represented as prose because implementing code is harder.
|
|
30
|
-
|
|
31
|
-
## Choose where it lives
|
|
32
|
-
|
|
33
|
-
| Scope | Use when |
|
|
34
|
-
|---|---|
|
|
35
|
-
| Machine-global | The user wants the workflow available across Projects |
|
|
36
|
-
| Plugin | The workflow depends on and ships with an extension |
|
|
37
|
-
| Built-in | The workflow is broadly useful, stable, and inexpensive to expose |
|
|
38
|
-
|
|
39
|
-
A workflow specific to one repository may be better owned by project
|
|
40
|
-
documentation than by a machine-global skill.
|
|
14
|
+
System instructions and tool schemas outrank a skill: it explains when and how
|
|
15
|
+
to use tools, never redefines their arguments or permissions.
|
|
41
16
|
|
|
42
17
|
## Frontmatter
|
|
43
18
|
|
|
44
|
-
|
|
19
|
+
- `name`: lowercase letters, digits and hyphens, no leading, trailing or
|
|
20
|
+
repeated hyphen, at most 64 characters, equal to the folder name.
|
|
21
|
+
- `description`: one plain capability sentence for the UI, at most 100
|
|
22
|
+
characters. The model never sees it.
|
|
23
|
+
- `when_to_use`: the trigger (Listing line below).
|
|
24
|
+
- `dependencies.tools`: tools loaded with the skill. `type: tool` takes an
|
|
25
|
+
exact tool name, `type: mcp` a connected server's name. A missing or
|
|
26
|
+
disabled tool is reported, never installed or enabled, and nothing grants
|
|
27
|
+
permissions. Leave optional tools out.
|
|
45
28
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
29
|
+
```yaml
|
|
30
|
+
dependencies:
|
|
31
|
+
tools:
|
|
32
|
+
- type: tool
|
|
33
|
+
value: office
|
|
34
|
+
```
|
|
49
35
|
|
|
50
|
-
|
|
36
|
+
- `metadata.requires`: a Mixdog built-in feature the skill cannot work without.
|
|
51
37
|
|
|
52
|
-
|
|
53
|
-
the skill, then the boundary against the nearest neighbour.
|
|
54
|
-
|
|
55
|
-
Optional portable fields include `license`, `compatibility`, `metadata`, and
|
|
56
|
-
`allowed-tools`. A parsed field is not automatically an implemented feature.
|
|
57
|
-
Confirm runtime support before assigning it operational meaning.
|
|
58
|
-
|
|
59
|
-
Declare mandatory tools in `dependencies.tools`, either in `SKILL.md`
|
|
60
|
-
frontmatter or an imported `agents/openai.yaml`:
|
|
61
|
-
|
|
62
|
-
```yaml
|
|
63
|
-
dependencies:
|
|
64
|
-
tools:
|
|
65
|
-
- type: tool
|
|
66
|
-
value: office
|
|
67
|
-
- type: mcp
|
|
68
|
-
value: existing-server
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
`mcp` resolves the available tools of an already connected server. Missing,
|
|
72
|
-
disabled, and policy-blocked tools are reported, never installed or enabled.
|
|
73
|
-
|
|
74
|
-
The skill editor keeps tool-link overrides in Mixdog's data directory so
|
|
75
|
-
updating a downloaded skill does not erase local links or rewrite its source.
|
|
76
|
-
An empty override disconnects all tools; restoring the declaration removes
|
|
77
|
-
the override. Changing the instruction text still requires an editable skill.
|
|
38
|
+
Other fields have no effect in Mixdog.
|
|
78
39
|
|
|
79
40
|
## Listing line
|
|
80
41
|
|
|
81
|
-
The model
|
|
82
|
-
one listing line per skill:
|
|
42
|
+
The model sees one line per skill and loads the body only by calling `Skill`:
|
|
83
43
|
|
|
84
44
|
```text
|
|
85
45
|
- <name>: <when_to_use> [tools: <linked tool names>]
|
|
86
46
|
```
|
|
87
47
|
|
|
88
|
-
The
|
|
89
|
-
many skills share the listing
|
|
90
|
-
|
|
91
|
-
handwritten trigger text; `mcp:<server>` denotes a server's tools. Keep these
|
|
92
|
-
three responsibilities separate:
|
|
93
|
-
|
|
94
|
-
| Field | Job | Budget | Write | Avoid |
|
|
95
|
-
|---|---|---|---|---|
|
|
96
|
-
| `description` | UI-only summary | ≤ 100 chars | One plain capability sentence | Operating rules or selection conditions found nowhere else |
|
|
97
|
-
| `when_to_use` | When to load the skill | ≤ 100 chars, core in the first 60 | English descriptions of user intents across languages, implicit situations, then `not …` naming the neighbouring owner | How to use it — procedures, rules, constraints, commands, tool arguments; translated keyword lists |
|
|
98
|
-
| Body | Loaded operating instructions | As needed | Capability, prerequisites, procedure, constraints, recovery, and verification | Depending on UI copy to supply an instruction |
|
|
48
|
+
The trigger is cut at 100 characters on a word boundary, and shrinks evenly
|
|
49
|
+
toward 60 when many skills share the listing; text past the cut never selects
|
|
50
|
+
the skill. The tool suffix comes from `dependencies`, never from the trigger.
|
|
99
51
|
|
|
100
|
-
|
|
101
|
-
|
|
52
|
+
| Field | Job | Write | Avoid |
|
|
53
|
+
|---|---|---|---|
|
|
54
|
+
| `when_to_use` | When to load the skill; core in the first 60 characters | The user intents and situations, strongest first, in English for every language, then `not …` naming the nearest other owner | How to do it: steps, rules, commands, tool arguments; translated keyword lists |
|
|
55
|
+
| Body | Everything after selection | Capability, prerequisites, procedure, recovery, verification | Relying on the trigger or the UI description for an instruction |
|
|
102
56
|
|
|
103
|
-
|
|
57
|
+
Never summarise the procedure in the trigger: a model that reads a workflow
|
|
58
|
+
there may follow it instead of loading the body. Add the `not …` boundary only
|
|
59
|
+
when a nearby skill or a plain tool could plausibly win the request.
|
|
104
60
|
|
|
105
61
|
```yaml
|
|
106
|
-
|
|
107
|
-
when_to_use: 'Deploy, redeploy, or update the installed app, VPS, or a live release; not builds or tests alone.'
|
|
62
|
+
when_to_use: 'Deploy or update the installed app or a live release; not builds or tests alone.'
|
|
108
63
|
```
|
|
109
64
|
|
|
110
65
|
## Body
|
|
111
66
|
|
|
112
|
-
|
|
113
|
-
left out. Use only the sections the workflow needs, in this order:
|
|
67
|
+
Only the sections the workflow needs, in this order:
|
|
114
68
|
|
|
115
|
-
1. **Intro** — two or three sentences: what
|
|
116
|
-
not do, and the key dependency stance.
|
|
69
|
+
1. **Intro** — two or three sentences: what it produces and what it does not.
|
|
117
70
|
2. **Boundary or mode selection** — the decision that picks a path or hands
|
|
118
71
|
the request to another owner.
|
|
119
|
-
3. **Prerequisites** — exact tools,
|
|
72
|
+
3. **Prerequisites** — exact tools, environment and approvals.
|
|
120
73
|
4. **Procedure** — numbered steps; each important step ends with the
|
|
121
|
-
observable result that proves it
|
|
122
|
-
|
|
74
|
+
observable result that proves it, and an irreversible step names the user
|
|
75
|
+
checkpoint before it.
|
|
123
76
|
5. **Pitfalls** — observed failures and their recovery, not generic caution.
|
|
124
77
|
6. **Verification** — the check that proves the outcome.
|
|
125
|
-
7. **Resource links** — each
|
|
126
|
-
condition for reading or running it.
|
|
78
|
+
7. **Resource links** — each file with the condition for reading or running it.
|
|
127
79
|
|
|
128
|
-
Write in the imperative
|
|
129
|
-
|
|
80
|
+
Write in the imperative; give a reason only when it changes behaviour, and drop
|
|
81
|
+
rules the model already follows. About 100 lines for a simple workflow, about
|
|
82
|
+
200 for a complex one, never over 500. Split by loading condition, not by
|
|
83
|
+
length.
|
|
130
84
|
|
|
131
|
-
|
|
132
|
-
below 500 in every case. Split content because it has a different loading
|
|
133
|
-
condition, not simply because the file became long.
|
|
85
|
+
## Resources
|
|
134
86
|
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
Use `scripts/` for deterministic repeated work. Every executable should:
|
|
146
|
-
|
|
147
|
-
- validate inputs before side effects;
|
|
148
|
-
- operate on explicit paths;
|
|
149
|
-
- bound time, memory, retries, and output;
|
|
150
|
-
- return actionable errors and a non-zero failure status;
|
|
151
|
-
- avoid hidden network, installation, deletion, or credential behavior;
|
|
152
|
-
- work on every claimed platform or declare the limitation;
|
|
153
|
-
- have a behavioral test separate from the prose.
|
|
154
|
-
|
|
155
|
-
Reference executable paths through `${MIXDOG_SKILL_DIR}` so installation
|
|
156
|
-
location does not matter.
|
|
157
|
-
|
|
158
|
-
### Assets
|
|
159
|
-
|
|
160
|
-
Use `assets/` for templates and static material consumed by outputs. Guidance
|
|
161
|
-
belongs in Markdown, not in files that the agent will not load as instructions.
|
|
162
|
-
|
|
163
|
-
## Portability audit
|
|
164
|
-
|
|
165
|
-
Inspect prose and scripts for:
|
|
166
|
-
|
|
167
|
-
- POSIX-only commands or paths on Windows;
|
|
168
|
-
- Windows-only shell syntax on other platforms;
|
|
169
|
-
- machine-specific absolute paths;
|
|
170
|
-
- undeclared external programs and environment variables;
|
|
171
|
-
- assumptions about a vendor CLI, model, or authentication state;
|
|
172
|
-
- output paths that overwrite user files by default.
|
|
173
|
-
|
|
174
|
-
Prefer portable implementation first. Restrict compatibility only when the
|
|
175
|
-
dependency cannot reasonably be removed.
|
|
176
|
-
|
|
177
|
-
## Editing discipline
|
|
178
|
-
|
|
179
|
-
- Preserve identity and public behavior unless change is requested.
|
|
180
|
-
- Replace outdated guidance instead of appending exceptions.
|
|
181
|
-
- Keep safety and recovery behavior during simplification.
|
|
182
|
-
- Do not duplicate a rule across the body, reference, script help, and tool
|
|
183
|
-
schema; choose the component that owns it.
|
|
184
|
-
- End with a pass that removes instructions that did not influence outcomes.
|
|
87
|
+
- `references/` — detailed rules read only in some cases. Link each directly
|
|
88
|
+
from `SKILL.md` with its read condition; no file points to another.
|
|
89
|
+
- `scripts/` — deterministic work that would otherwise be redone each time.
|
|
90
|
+
Validate inputs before side effects, use explicit paths, bound time, output
|
|
91
|
+
and retries, fail with an actionable message and a non-zero status, and do
|
|
92
|
+
no hidden network, installs, deletion or credential access. Give it a
|
|
93
|
+
behavioural test, and call it through `${MIXDOG_SKILL_DIR}`.
|
|
94
|
+
- `assets/` — templates and static material the output uses; guidance stays
|
|
95
|
+
in Markdown.
|
|
185
96
|
|
|
186
97
|
## Audit checklist
|
|
187
98
|
|
|
188
|
-
Apply to every skill when asked to audit, review, or tidy the skill set.
|
|
189
|
-
|
|
190
99
|
| Check | Failure looks like | Fix |
|
|
191
100
|
|---|---|---|
|
|
192
|
-
|
|
|
193
|
-
| Trigger
|
|
194
|
-
|
|
|
195
|
-
|
|
|
196
|
-
|
|
|
197
|
-
| Duplication |
|
|
198
|
-
| Staleness | Paths, tools
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
this
|
|
203
|
-
|
|
101
|
+
| Fields | `description` or `when_to_use` over 100 characters; an instruction found only in metadata | Short UI summary, selection in the trigger, execution in the body |
|
|
102
|
+
| Trigger | Empty while a neighbour competes; says how instead of when | The phrases users write plus the `not …` boundary; move the how to the body |
|
|
103
|
+
| Body | Out of order, a "when to use" section, steps without a result | Reorder, delete body triggers, add the observable result |
|
|
104
|
+
| Resources | A missing file, a chain of references, a script without input checks | Fix the path, flatten, validate inputs |
|
|
105
|
+
| Side effects | External programs, network, secrets or irreversible steps (commit, deploy, publish, restart) not visible or not waiting for the user | Name them in prerequisites; checkpoint before the step |
|
|
106
|
+
| Duplication | One rule in the body, a reference and a script's help | Keep it in its owner, delete the copies |
|
|
107
|
+
| Staleness | Paths, tools or flags that no longer exist | Replace or remove |
|
|
108
|
+
| Value | A rule or section that no scenario needed | Delete it |
|
|
109
|
+
|
|
110
|
+
The validator checks fields, fences and resource paths; the rest is a read
|
|
111
|
+
against this table.
|