@mxalbert/context-mode 2.0.0
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/.claude-plugin/marketplace.json +33 -0
- package/.claude-plugin/plugin.json +31 -0
- package/.codex-plugin/hooks.json +65 -0
- package/.codex-plugin/mcp.json +13 -0
- package/.codex-plugin/plugin.json +31 -0
- package/.openclaw-plugin/index.ts +12 -0
- package/.openclaw-plugin/openclaw.plugin.json +38 -0
- package/.openclaw-plugin/package.json +28 -0
- package/LICENSE +94 -0
- package/README.md +1619 -0
- package/bin/statusline.mjs +378 -0
- package/build/adapters/antigravity/index.d.ts +51 -0
- package/build/adapters/antigravity/index.js +169 -0
- package/build/adapters/antigravity-cli/index.d.ts +51 -0
- package/build/adapters/antigravity-cli/index.js +342 -0
- package/build/adapters/base.d.ts +92 -0
- package/build/adapters/base.js +135 -0
- package/build/adapters/claude-code/config.d.ts +8 -0
- package/build/adapters/claude-code/config.js +8 -0
- package/build/adapters/claude-code/hooks.d.ts +106 -0
- package/build/adapters/claude-code/hooks.js +183 -0
- package/build/adapters/claude-code/index.d.ts +80 -0
- package/build/adapters/claude-code/index.js +569 -0
- package/build/adapters/claude-code-base.d.ts +49 -0
- package/build/adapters/claude-code-base.js +113 -0
- package/build/adapters/client-map.d.ts +10 -0
- package/build/adapters/client-map.js +42 -0
- package/build/adapters/codex/config.d.ts +8 -0
- package/build/adapters/codex/config.js +8 -0
- package/build/adapters/codex/hooks.d.ts +55 -0
- package/build/adapters/codex/hooks.js +64 -0
- package/build/adapters/codex/index.d.ts +87 -0
- package/build/adapters/codex/index.js +995 -0
- package/build/adapters/codex/paths.d.ts +1 -0
- package/build/adapters/codex/paths.js +12 -0
- package/build/adapters/codex/usage.d.ts +107 -0
- package/build/adapters/codex/usage.js +227 -0
- package/build/adapters/copilot-base.d.ts +94 -0
- package/build/adapters/copilot-base.js +297 -0
- package/build/adapters/copilot-cli/hooks.d.ts +33 -0
- package/build/adapters/copilot-cli/hooks.js +64 -0
- package/build/adapters/copilot-cli/index.d.ts +48 -0
- package/build/adapters/copilot-cli/index.js +341 -0
- package/build/adapters/cursor/config.d.ts +4 -0
- package/build/adapters/cursor/config.js +4 -0
- package/build/adapters/cursor/hooks.d.ts +55 -0
- package/build/adapters/cursor/hooks.js +82 -0
- package/build/adapters/cursor/index.d.ts +64 -0
- package/build/adapters/cursor/index.js +517 -0
- package/build/adapters/detect.d.ts +136 -0
- package/build/adapters/detect.js +623 -0
- package/build/adapters/gemini-cli/config.d.ts +8 -0
- package/build/adapters/gemini-cli/config.js +8 -0
- package/build/adapters/gemini-cli/hooks.d.ts +83 -0
- package/build/adapters/gemini-cli/hooks.js +115 -0
- package/build/adapters/gemini-cli/index.d.ts +80 -0
- package/build/adapters/gemini-cli/index.js +483 -0
- package/build/adapters/jetbrains-copilot/config.d.ts +8 -0
- package/build/adapters/jetbrains-copilot/config.js +8 -0
- package/build/adapters/jetbrains-copilot/hooks.d.ts +59 -0
- package/build/adapters/jetbrains-copilot/hooks.js +87 -0
- package/build/adapters/jetbrains-copilot/index.d.ts +31 -0
- package/build/adapters/jetbrains-copilot/index.js +131 -0
- package/build/adapters/kimi/config.d.ts +8 -0
- package/build/adapters/kimi/config.js +8 -0
- package/build/adapters/kimi/hooks.d.ts +28 -0
- package/build/adapters/kimi/hooks.js +34 -0
- package/build/adapters/kimi/index.d.ts +66 -0
- package/build/adapters/kimi/index.js +537 -0
- package/build/adapters/kimi/paths.d.ts +21 -0
- package/build/adapters/kimi/paths.js +52 -0
- package/build/adapters/kimi/usage.d.ts +82 -0
- package/build/adapters/kimi/usage.js +217 -0
- package/build/adapters/kiro/hooks.d.ts +61 -0
- package/build/adapters/kiro/hooks.js +94 -0
- package/build/adapters/kiro/index.d.ts +61 -0
- package/build/adapters/kiro/index.js +301 -0
- package/build/adapters/omp/index.d.ts +65 -0
- package/build/adapters/omp/index.js +182 -0
- package/build/adapters/omp/plugin.d.ts +81 -0
- package/build/adapters/omp/plugin.js +331 -0
- package/build/adapters/omp/usage.d.ts +49 -0
- package/build/adapters/omp/usage.js +110 -0
- package/build/adapters/openclaw/config.d.ts +8 -0
- package/build/adapters/openclaw/config.js +8 -0
- package/build/adapters/openclaw/hooks.d.ts +50 -0
- package/build/adapters/openclaw/hooks.js +61 -0
- package/build/adapters/openclaw/index.d.ts +74 -0
- package/build/adapters/openclaw/index.js +439 -0
- package/build/adapters/openclaw/mcp-tools.d.ts +54 -0
- package/build/adapters/openclaw/mcp-tools.js +207 -0
- package/build/adapters/openclaw/plugin.d.ts +141 -0
- package/build/adapters/openclaw/plugin.js +818 -0
- package/build/adapters/openclaw/session-db.d.ts +55 -0
- package/build/adapters/openclaw/session-db.js +88 -0
- package/build/adapters/openclaw/usage.d.ts +34 -0
- package/build/adapters/openclaw/usage.js +52 -0
- package/build/adapters/openclaw/workspace-router.d.ts +29 -0
- package/build/adapters/openclaw/workspace-router.js +64 -0
- package/build/adapters/opencode/config.d.ts +8 -0
- package/build/adapters/opencode/config.js +8 -0
- package/build/adapters/opencode/hooks.d.ts +38 -0
- package/build/adapters/opencode/hooks.js +50 -0
- package/build/adapters/opencode/index.d.ts +144 -0
- package/build/adapters/opencode/index.js +638 -0
- package/build/adapters/opencode/plugin.d.ts +249 -0
- package/build/adapters/opencode/plugin.js +1536 -0
- package/build/adapters/opencode/v2.d.ts +117 -0
- package/build/adapters/opencode/v2.js +224 -0
- package/build/adapters/opencode/zod3tov4.d.ts +1 -0
- package/build/adapters/opencode/zod3tov4.js +132 -0
- package/build/adapters/pi/extension.d.ts +81 -0
- package/build/adapters/pi/extension.js +861 -0
- package/build/adapters/pi/index.d.ts +57 -0
- package/build/adapters/pi/index.js +173 -0
- package/build/adapters/pi/mcp-bridge.d.ts +268 -0
- package/build/adapters/pi/mcp-bridge.js +894 -0
- package/build/adapters/qwen-code/hooks.d.ts +26 -0
- package/build/adapters/qwen-code/hooks.js +29 -0
- package/build/adapters/qwen-code/index.d.ts +40 -0
- package/build/adapters/qwen-code/index.js +361 -0
- package/build/adapters/qwen-code/usage.d.ts +90 -0
- package/build/adapters/qwen-code/usage.js +222 -0
- package/build/adapters/types.d.ts +360 -0
- package/build/adapters/types.js +118 -0
- package/build/adapters/vscode-copilot/config.d.ts +8 -0
- package/build/adapters/vscode-copilot/config.js +8 -0
- package/build/adapters/vscode-copilot/hooks.d.ts +71 -0
- package/build/adapters/vscode-copilot/hooks.js +98 -0
- package/build/adapters/vscode-copilot/index.d.ts +32 -0
- package/build/adapters/vscode-copilot/index.js +222 -0
- package/build/adapters/zed/index.d.ts +40 -0
- package/build/adapters/zed/index.js +163 -0
- package/build/cli.d.ts +34 -0
- package/build/cli.js +1828 -0
- package/build/db-base.d.ts +250 -0
- package/build/db-base.js +756 -0
- package/build/executor.d.ts +72 -0
- package/build/executor.js +678 -0
- package/build/exit-classify.d.ts +19 -0
- package/build/exit-classify.js +12 -0
- package/build/fetch/blocks.d.ts +145 -0
- package/build/fetch/blocks.js +244 -0
- package/build/fetch/extract.d.ts +68 -0
- package/build/fetch/extract.js +123 -0
- package/build/fetch/page-store.d.ts +66 -0
- package/build/fetch/page-store.js +174 -0
- package/build/fetch-cache.d.ts +13 -0
- package/build/fetch-cache.js +15 -0
- package/build/lifecycle.d.ts +124 -0
- package/build/lifecycle.js +278 -0
- package/build/package-identity.d.ts +26 -0
- package/build/package-identity.js +28 -0
- package/build/runPool.d.ts +36 -0
- package/build/runPool.js +51 -0
- package/build/runtime.d.ts +71 -0
- package/build/runtime.js +659 -0
- package/build/search/auto-memory.d.ts +47 -0
- package/build/search/auto-memory.js +170 -0
- package/build/search/ctx-search-schema.d.ts +90 -0
- package/build/search/ctx-search-schema.js +135 -0
- package/build/search/flood-guard.d.ts +57 -0
- package/build/search/flood-guard.js +80 -0
- package/build/search/unified.d.ts +56 -0
- package/build/search/unified.js +104 -0
- package/build/security.d.ts +206 -0
- package/build/security.js +780 -0
- package/build/server.d.ts +240 -0
- package/build/server.js +5034 -0
- package/build/session/analytics.d.ts +773 -0
- package/build/session/analytics.js +2420 -0
- package/build/session/db.d.ts +468 -0
- package/build/session/db.js +1330 -0
- package/build/session/error-classifier.d.ts +87 -0
- package/build/session/error-classifier.js +303 -0
- package/build/session/event-emit.d.ts +48 -0
- package/build/session/event-emit.js +101 -0
- package/build/session/extract.d.ts +333 -0
- package/build/session/extract.js +2688 -0
- package/build/session/model-prices.json +429 -0
- package/build/session/persist-tool-calls.d.ts +54 -0
- package/build/session/persist-tool-calls.js +105 -0
- package/build/session/pricing.d.ts +64 -0
- package/build/session/pricing.js +151 -0
- package/build/session/project-attribution.d.ts +73 -0
- package/build/session/project-attribution.js +245 -0
- package/build/session/purge.d.ts +138 -0
- package/build/session/purge.js +240 -0
- package/build/session/retrieval-marker.d.ts +39 -0
- package/build/session/retrieval-marker.js +65 -0
- package/build/session/snapshot.d.ts +46 -0
- package/build/session/snapshot.js +532 -0
- package/build/store-directory.d.ts +56 -0
- package/build/store-directory.js +254 -0
- package/build/store.d.ts +147 -0
- package/build/store.js +1714 -0
- package/build/truncate.d.ts +57 -0
- package/build/truncate.js +142 -0
- package/build/types.d.ts +117 -0
- package/build/types.js +20 -0
- package/build/util/claude-config.d.ts +32 -0
- package/build/util/claude-config.js +84 -0
- package/build/util/hook-config.d.ts +27 -0
- package/build/util/hook-config.js +76 -0
- package/build/util/jsonc.d.ts +14 -0
- package/build/util/jsonc.js +104 -0
- package/build/util/plugin-cache-integrity.d.ts +51 -0
- package/build/util/plugin-cache-integrity.js +146 -0
- package/build/util/project-dir.d.ts +149 -0
- package/build/util/project-dir.js +340 -0
- package/build/util/sibling-mcp.d.ts +79 -0
- package/build/util/sibling-mcp.js +181 -0
- package/cli.bundle.mjs +1495 -0
- package/configs/antigravity/GEMINI.md +68 -0
- package/configs/antigravity/mcp_config.json +7 -0
- package/configs/antigravity-cli/hooks/hooks.json +37 -0
- package/configs/antigravity-cli/hooks.json +37 -0
- package/configs/antigravity-cli/mcp_config.json +10 -0
- package/configs/antigravity-cli/plugin.json +14 -0
- package/configs/antigravity-cli/rules/context-mode.md +77 -0
- package/configs/antigravity-cli/skills/context-mode/SKILL.md +77 -0
- package/configs/claude-code/CLAUDE.md +91 -0
- package/configs/codex/AGENTS.md +99 -0
- package/configs/codex/config.toml +8 -0
- package/configs/codex/hooks.json +47 -0
- package/configs/copilot-cli/.github/plugin/plugin.json +23 -0
- package/configs/copilot-cli/.mcp.json +12 -0
- package/configs/copilot-cli/README.md +47 -0
- package/configs/copilot-cli/hooks.json +41 -0
- package/configs/copilot-cli/skills/context-mode/SKILL.md +38 -0
- package/configs/cursor/context-mode.mdc +76 -0
- package/configs/cursor/hooks.json +21 -0
- package/configs/cursor/mcp.json +7 -0
- package/configs/gemini-cli/GEMINI.md +88 -0
- package/configs/gemini-cli/mcp.json +7 -0
- package/configs/gemini-cli/settings.json +60 -0
- package/configs/jetbrains-copilot/copilot-instructions.md +80 -0
- package/configs/jetbrains-copilot/hooks.json +16 -0
- package/configs/jetbrains-copilot/mcp.json +7 -0
- package/configs/kilo/AGENTS.md +84 -0
- package/configs/kilo/kilo.json +6 -0
- package/configs/kimi/hooks.json +54 -0
- package/configs/kiro/KIRO.md +84 -0
- package/configs/kiro/agent.json +18 -0
- package/configs/kiro/mcp.json +7 -0
- package/configs/omp/SYSTEM.md +85 -0
- package/configs/omp/mcp.json +7 -0
- package/configs/openclaw/AGENTS.md +87 -0
- package/configs/openclaw/openclaw.json +13 -0
- package/configs/opencode/AGENTS.md +84 -0
- package/configs/opencode/opencode.json +6 -0
- package/configs/pi/AGENTS.md +3 -0
- package/configs/qwen-code/QWEN.md +91 -0
- package/configs/vscode-copilot/copilot-instructions.md +80 -0
- package/configs/vscode-copilot/hooks.json +16 -0
- package/configs/vscode-copilot/mcp.json +7 -0
- package/configs/zed/AGENTS.md +68 -0
- package/hooks/antigravity-cli/payload.mjs +98 -0
- package/hooks/antigravity-cli/posttooluse.mjs +138 -0
- package/hooks/antigravity-cli/pretooluse.mjs +78 -0
- package/hooks/antigravity-cli/stop.mjs +58 -0
- package/hooks/auto-injection.mjs +102 -0
- package/hooks/cache-heal-utils.mjs +379 -0
- package/hooks/codex/platform.mjs +1 -0
- package/hooks/codex/posttooluse.mjs +66 -0
- package/hooks/codex/precompact.mjs +70 -0
- package/hooks/codex/pretooluse.mjs +42 -0
- package/hooks/codex/sessionstart.mjs +121 -0
- package/hooks/codex/stop.mjs +138 -0
- package/hooks/codex/userpromptsubmit.mjs +75 -0
- package/hooks/copilot-cli/posttooluse.mjs +79 -0
- package/hooks/copilot-cli/precompact.mjs +66 -0
- package/hooks/copilot-cli/pretooluse.mjs +41 -0
- package/hooks/copilot-cli/sessionstart.mjs +121 -0
- package/hooks/copilot-cli/stop.mjs +59 -0
- package/hooks/copilot-cli/userpromptsubmit.mjs +77 -0
- package/hooks/core/codex-caps.mjs +112 -0
- package/hooks/core/formatters.mjs +356 -0
- package/hooks/core/mcp-ready.mjs +109 -0
- package/hooks/core/platform-detect.mjs +49 -0
- package/hooks/core/routing.mjs +1050 -0
- package/hooks/core/stdin.mjs +90 -0
- package/hooks/core/tool-naming.mjs +57 -0
- package/hooks/cursor/afteragentresponse.mjs +74 -0
- package/hooks/cursor/hooks.json +31 -0
- package/hooks/cursor/posttooluse.mjs +72 -0
- package/hooks/cursor/pretooluse.mjs +26 -0
- package/hooks/cursor/sessionstart.mjs +97 -0
- package/hooks/cursor/stop.mjs +48 -0
- package/hooks/ensure-deps.mjs +254 -0
- package/hooks/formatters/claude-code.mjs +113 -0
- package/hooks/formatters/cursor.mjs +37 -0
- package/hooks/formatters/gemini-cli.mjs +55 -0
- package/hooks/formatters/vscode-copilot.mjs +55 -0
- package/hooks/gemini-cli/aftermodel.mjs +70 -0
- package/hooks/gemini-cli/aftertool.mjs +61 -0
- package/hooks/gemini-cli/beforeagent.mjs +99 -0
- package/hooks/gemini-cli/beforetool.mjs +27 -0
- package/hooks/gemini-cli/precompress.mjs +55 -0
- package/hooks/gemini-cli/sessionstart.mjs +137 -0
- package/hooks/heal-partial-install.mjs +712 -0
- package/hooks/hooks.json +143 -0
- package/hooks/jetbrains-copilot/posttooluse.mjs +61 -0
- package/hooks/jetbrains-copilot/precompact.mjs +55 -0
- package/hooks/jetbrains-copilot/pretooluse.mjs +27 -0
- package/hooks/jetbrains-copilot/sessionstart.mjs +124 -0
- package/hooks/kimi/platform.mjs +1 -0
- package/hooks/kimi/posttooluse.mjs +72 -0
- package/hooks/kimi/precompact.mjs +80 -0
- package/hooks/kimi/pretooluse.mjs +42 -0
- package/hooks/kimi/sessionend.mjs +61 -0
- package/hooks/kimi/sessionstart.mjs +113 -0
- package/hooks/kimi/stop.mjs +132 -0
- package/hooks/kimi/userpromptsubmit.mjs +90 -0
- package/hooks/kiro/agentspawn.mjs +97 -0
- package/hooks/kiro/posttooluse.mjs +51 -0
- package/hooks/kiro/pretooluse.mjs +64 -0
- package/hooks/kiro/userpromptsubmit.mjs +88 -0
- package/hooks/normalize-hooks.mjs +323 -0
- package/hooks/platform-bridge.mjs +340 -0
- package/hooks/posttooluse.mjs +225 -0
- package/hooks/precompact.mjs +100 -0
- package/hooks/pretooluse.mjs +227 -0
- package/hooks/qwen-code/platform.mjs +1 -0
- package/hooks/qwen-code/stop.mjs +168 -0
- package/hooks/routing-block.mjs +105 -0
- package/hooks/run-hook.mjs +95 -0
- package/hooks/security.bundle.mjs +2 -0
- package/hooks/session-attribution.bundle.mjs +1 -0
- package/hooks/session-db.bundle.mjs +145 -0
- package/hooks/session-directive.mjs +520 -0
- package/hooks/session-extract.bundle.mjs +3 -0
- package/hooks/session-helpers.mjs +428 -0
- package/hooks/session-loaders.mjs +448 -0
- package/hooks/session-snapshot.bundle.mjs +32 -0
- package/hooks/sessionstart.mjs +464 -0
- package/hooks/stop.mjs +82 -0
- package/hooks/suppress-stderr.mjs +25 -0
- package/hooks/userpromptsubmit.mjs +108 -0
- package/hooks/vscode-copilot/posttooluse.mjs +61 -0
- package/hooks/vscode-copilot/precompact.mjs +55 -0
- package/hooks/vscode-copilot/pretooluse.mjs +27 -0
- package/hooks/vscode-copilot/sessionstart.mjs +129 -0
- package/openclaw.plugin.json +38 -0
- package/package.json +132 -0
- package/scripts/heal-better-sqlite3.mjs +430 -0
- package/scripts/heal-installed-plugins.mjs +635 -0
- package/scripts/plugin-cache-integrity.mjs +248 -0
- package/scripts/postinstall.mjs +397 -0
- package/server.bundle.mjs +1421 -0
- package/server.js +5 -0
- package/skills/.ignore +7 -0
- package/skills/context-mode/SKILL.md +300 -0
- package/skills/context-mode/references/anti-patterns.md +283 -0
- package/skills/context-mode/references/patterns-javascript.md +298 -0
- package/skills/context-mode/references/patterns-python.md +304 -0
- package/skills/context-mode/references/patterns-shell.md +277 -0
- package/skills/ctx-doctor/SKILL.md +22 -0
- package/skills/ctx-index/SKILL.md +46 -0
- package/skills/ctx-insight/SKILL.md +24 -0
- package/skills/ctx-purge/SKILL.md +49 -0
- package/skills/ctx-search/SKILL.md +35 -0
- package/skills/ctx-stats/SKILL.md +26 -0
- package/skills/ctx-upgrade/SKILL.md +31 -0
- package/start.mjs +616 -0
|
@@ -0,0 +1,277 @@
|
|
|
1
|
+
# Shell Patterns for execute
|
|
2
|
+
|
|
3
|
+
Practical patterns for using `execute` with `language: shell`.
|
|
4
|
+
Best for piping, filtering, and leveraging native OS tools.
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Build Output Filtering
|
|
9
|
+
|
|
10
|
+
### Capture build errors only
|
|
11
|
+
|
|
12
|
+
```shell
|
|
13
|
+
npm run build 2>&1 | tee /tmp/build-output.txt
|
|
14
|
+
EXIT_CODE=${PIPESTATUS[0]}
|
|
15
|
+
|
|
16
|
+
echo "=== Build Result ==="
|
|
17
|
+
echo "Exit code: $EXIT_CODE"
|
|
18
|
+
|
|
19
|
+
if [ "$EXIT_CODE" -ne 0 ]; then
|
|
20
|
+
echo ""
|
|
21
|
+
echo "=== Errors ==="
|
|
22
|
+
grep -iE '(error|failed|FAIL)' /tmp/build-output.txt | head -50
|
|
23
|
+
echo ""
|
|
24
|
+
echo "=== Warnings ==="
|
|
25
|
+
grep -iE '(warning|warn)' /tmp/build-output.txt | head -20
|
|
26
|
+
else
|
|
27
|
+
echo "Build succeeded."
|
|
28
|
+
echo ""
|
|
29
|
+
echo "=== Warnings (if any) ==="
|
|
30
|
+
grep -iE '(warning|warn)' /tmp/build-output.txt | head -10
|
|
31
|
+
fi
|
|
32
|
+
|
|
33
|
+
echo ""
|
|
34
|
+
echo "=== Output Size ==="
|
|
35
|
+
wc -l < /tmp/build-output.txt | xargs -I{} echo "{} total lines of output"
|
|
36
|
+
rm -f /tmp/build-output.txt
|
|
37
|
+
```
|
|
38
|
+
> summary_prompt: "Report build success/failure, list all errors with file paths, and count warnings"
|
|
39
|
+
> timeout_ms: 120000
|
|
40
|
+
|
|
41
|
+
### TypeScript compilation check
|
|
42
|
+
|
|
43
|
+
```shell
|
|
44
|
+
npx tsc --noEmit 2>&1 | tee /tmp/tsc-output.txt
|
|
45
|
+
EXIT_CODE=${PIPESTATUS[0]}
|
|
46
|
+
|
|
47
|
+
echo "=== TypeScript Check ==="
|
|
48
|
+
echo "Exit code: $EXIT_CODE"
|
|
49
|
+
|
|
50
|
+
TOTAL_ERRORS=$(grep -c 'error TS' /tmp/tsc-output.txt 2>/dev/null || echo 0)
|
|
51
|
+
echo "Total errors: $TOTAL_ERRORS"
|
|
52
|
+
|
|
53
|
+
if [ "$TOTAL_ERRORS" -gt 0 ]; then
|
|
54
|
+
echo ""
|
|
55
|
+
echo "=== Errors by Code ==="
|
|
56
|
+
grep -oP 'error TS\d+' /tmp/tsc-output.txt | sort | uniq -c | sort -rn | head -20
|
|
57
|
+
|
|
58
|
+
echo ""
|
|
59
|
+
echo "=== Errors by File ==="
|
|
60
|
+
grep 'error TS' /tmp/tsc-output.txt | cut -d'(' -f1 | sort | uniq -c | sort -rn | head -20
|
|
61
|
+
|
|
62
|
+
echo ""
|
|
63
|
+
echo "=== First 30 Errors ==="
|
|
64
|
+
grep 'error TS' /tmp/tsc-output.txt | head -30
|
|
65
|
+
fi
|
|
66
|
+
|
|
67
|
+
rm -f /tmp/tsc-output.txt
|
|
68
|
+
```
|
|
69
|
+
> summary_prompt: "Report type error count, most common error codes, and most affected files"
|
|
70
|
+
> timeout_ms: 60000
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## Test Result Summarization
|
|
75
|
+
|
|
76
|
+
### Jest test summary
|
|
77
|
+
|
|
78
|
+
```shell
|
|
79
|
+
npx jest --verbose 2>&1 | tee /tmp/test-output.txt
|
|
80
|
+
EXIT_CODE=${PIPESTATUS[0]}
|
|
81
|
+
|
|
82
|
+
echo ""
|
|
83
|
+
echo "=== Test Summary ==="
|
|
84
|
+
echo "Exit code: $EXIT_CODE"
|
|
85
|
+
|
|
86
|
+
# Extract summary line
|
|
87
|
+
grep -E '(Tests:|Test Suites:|Snapshots:|Time:)' /tmp/test-output.txt
|
|
88
|
+
|
|
89
|
+
echo ""
|
|
90
|
+
echo "=== Failed Tests ==="
|
|
91
|
+
grep -A 2 'FAIL ' /tmp/test-output.txt | head -40
|
|
92
|
+
|
|
93
|
+
echo ""
|
|
94
|
+
echo "=== Slow Tests (if reported) ==="
|
|
95
|
+
grep -i 'slow' /tmp/test-output.txt | head -10
|
|
96
|
+
|
|
97
|
+
rm -f /tmp/test-output.txt
|
|
98
|
+
```
|
|
99
|
+
> summary_prompt: "Report pass/fail ratio, list all failing test names with suite, note any slow tests"
|
|
100
|
+
> timeout_ms: 120000
|
|
101
|
+
|
|
102
|
+
### Pytest summary
|
|
103
|
+
|
|
104
|
+
```shell
|
|
105
|
+
python -m pytest --tb=short -q 2>&1 | tee /tmp/pytest-output.txt
|
|
106
|
+
EXIT_CODE=${PIPESTATUS[0]}
|
|
107
|
+
|
|
108
|
+
echo ""
|
|
109
|
+
echo "=== Pytest Summary ==="
|
|
110
|
+
echo "Exit code: $EXIT_CODE"
|
|
111
|
+
|
|
112
|
+
# Last 20 lines usually contain the summary
|
|
113
|
+
tail -20 /tmp/pytest-output.txt
|
|
114
|
+
|
|
115
|
+
echo ""
|
|
116
|
+
echo "=== Failures ==="
|
|
117
|
+
grep -E '(FAILED|ERROR)' /tmp/pytest-output.txt | head -30
|
|
118
|
+
|
|
119
|
+
rm -f /tmp/pytest-output.txt
|
|
120
|
+
```
|
|
121
|
+
> summary_prompt: "Report test results, list all failures with file and test name"
|
|
122
|
+
> timeout_ms: 120000
|
|
123
|
+
|
|
124
|
+
---
|
|
125
|
+
|
|
126
|
+
## Log File Analysis
|
|
127
|
+
|
|
128
|
+
### Filter application logs by severity
|
|
129
|
+
|
|
130
|
+
```shell
|
|
131
|
+
LOG_FILE="${1:-/var/log/app.log}"
|
|
132
|
+
|
|
133
|
+
echo "=== Log File: $LOG_FILE ==="
|
|
134
|
+
echo "Total lines: $(wc -l < "$LOG_FILE")"
|
|
135
|
+
echo ""
|
|
136
|
+
|
|
137
|
+
echo "=== Level Distribution ==="
|
|
138
|
+
grep -oE '\b(DEBUG|INFO|WARN|ERROR|FATAL)\b' "$LOG_FILE" | sort | uniq -c | sort -rn
|
|
139
|
+
|
|
140
|
+
echo ""
|
|
141
|
+
echo "=== Last 20 Errors ==="
|
|
142
|
+
grep -i 'ERROR\|FATAL' "$LOG_FILE" | tail -20
|
|
143
|
+
|
|
144
|
+
echo ""
|
|
145
|
+
echo "=== Error Timeline (hourly) ==="
|
|
146
|
+
grep -i 'ERROR' "$LOG_FILE" | grep -oE '\d{4}-\d{2}-\d{2} \d{2}' | sort | uniq -c | tail -24
|
|
147
|
+
```
|
|
148
|
+
> summary_prompt: "Report error frequency, identify patterns, and note any error spikes"
|
|
149
|
+
|
|
150
|
+
### Analyze access logs
|
|
151
|
+
|
|
152
|
+
```shell
|
|
153
|
+
LOG_FILE="${1:-/var/log/access.log}"
|
|
154
|
+
|
|
155
|
+
echo "=== Access Log Summary ==="
|
|
156
|
+
echo "Total requests: $(wc -l < "$LOG_FILE")"
|
|
157
|
+
|
|
158
|
+
echo ""
|
|
159
|
+
echo "=== HTTP Status Codes ==="
|
|
160
|
+
awk '{print $9}' "$LOG_FILE" | sort | uniq -c | sort -rn | head -10
|
|
161
|
+
|
|
162
|
+
echo ""
|
|
163
|
+
echo "=== Top 20 Paths ==="
|
|
164
|
+
awk '{print $7}' "$LOG_FILE" | sort | uniq -c | sort -rn | head -20
|
|
165
|
+
|
|
166
|
+
echo ""
|
|
167
|
+
echo "=== Top 10 IPs ==="
|
|
168
|
+
awk '{print $1}' "$LOG_FILE" | sort | uniq -c | sort -rn | head -10
|
|
169
|
+
|
|
170
|
+
echo ""
|
|
171
|
+
echo "=== 5xx Errors ==="
|
|
172
|
+
awk '$9 ~ /^5/' "$LOG_FILE" | tail -20
|
|
173
|
+
|
|
174
|
+
echo ""
|
|
175
|
+
echo "=== Requests per Hour ==="
|
|
176
|
+
awk '{print $4}' "$LOG_FILE" | cut -d: -f1-2 | sort | uniq -c | tail -24
|
|
177
|
+
```
|
|
178
|
+
> summary_prompt: "Report traffic patterns, error rates, most hit endpoints, and suspicious IPs"
|
|
179
|
+
|
|
180
|
+
---
|
|
181
|
+
|
|
182
|
+
## Directory Size and Structure Analysis
|
|
183
|
+
|
|
184
|
+
### Project structure overview
|
|
185
|
+
|
|
186
|
+
```shell
|
|
187
|
+
echo "=== Directory Structure ==="
|
|
188
|
+
find . -maxdepth 3 -type d \
|
|
189
|
+
! -path '*/node_modules/*' \
|
|
190
|
+
! -path '*/.git/*' \
|
|
191
|
+
! -path '*/dist/*' \
|
|
192
|
+
! -path '*/.next/*' \
|
|
193
|
+
! -path '*/__pycache__/*' \
|
|
194
|
+
| sort
|
|
195
|
+
|
|
196
|
+
echo ""
|
|
197
|
+
echo "=== File Type Distribution ==="
|
|
198
|
+
find . -type f \
|
|
199
|
+
! -path '*/node_modules/*' \
|
|
200
|
+
! -path '*/.git/*' \
|
|
201
|
+
! -path '*/dist/*' \
|
|
202
|
+
| sed 's/.*\.//' | sort | uniq -c | sort -rn | head -20
|
|
203
|
+
|
|
204
|
+
echo ""
|
|
205
|
+
echo "=== Largest Files (top 20) ==="
|
|
206
|
+
find . -type f \
|
|
207
|
+
! -path '*/node_modules/*' \
|
|
208
|
+
! -path '*/.git/*' \
|
|
209
|
+
-exec ls -la {} \; | sort -k5 -rn | head -20 | awk '{print $5, $9}'
|
|
210
|
+
|
|
211
|
+
echo ""
|
|
212
|
+
echo "=== Directory Sizes ==="
|
|
213
|
+
du -sh */ 2>/dev/null | sort -rh | head -15
|
|
214
|
+
```
|
|
215
|
+
> summary_prompt: "Describe the project structure, identify large files that may need attention, report file type distribution"
|
|
216
|
+
|
|
217
|
+
### Disk usage investigation
|
|
218
|
+
|
|
219
|
+
```shell
|
|
220
|
+
echo "=== Top-Level Disk Usage ==="
|
|
221
|
+
du -sh */ 2>/dev/null | sort -rh
|
|
222
|
+
|
|
223
|
+
echo ""
|
|
224
|
+
echo "=== node_modules Size ==="
|
|
225
|
+
if [ -d "node_modules" ]; then
|
|
226
|
+
du -sh node_modules
|
|
227
|
+
echo ""
|
|
228
|
+
echo "=== Largest node_modules packages ==="
|
|
229
|
+
du -sh node_modules/*/ 2>/dev/null | sort -rh | head -20
|
|
230
|
+
else
|
|
231
|
+
echo "No node_modules directory"
|
|
232
|
+
fi
|
|
233
|
+
|
|
234
|
+
echo ""
|
|
235
|
+
echo "=== Build Artifacts ==="
|
|
236
|
+
for dir in dist build .next out .cache; do
|
|
237
|
+
if [ -d "$dir" ]; then
|
|
238
|
+
echo " $dir: $(du -sh "$dir" | cut -f1)"
|
|
239
|
+
fi
|
|
240
|
+
done
|
|
241
|
+
|
|
242
|
+
echo ""
|
|
243
|
+
echo "=== Git Objects Size ==="
|
|
244
|
+
if [ -d ".git" ]; then
|
|
245
|
+
du -sh .git
|
|
246
|
+
fi
|
|
247
|
+
```
|
|
248
|
+
> summary_prompt: "Report total project size, largest contributors, and recommend cleanup targets"
|
|
249
|
+
|
|
250
|
+
---
|
|
251
|
+
|
|
252
|
+
## Git Analysis
|
|
253
|
+
|
|
254
|
+
### Commit activity analysis
|
|
255
|
+
|
|
256
|
+
```shell
|
|
257
|
+
echo "=== Recent Commits (last 30 days) ==="
|
|
258
|
+
git log --since="30 days ago" --oneline | wc -l | xargs -I{} echo "{} commits in last 30 days"
|
|
259
|
+
|
|
260
|
+
echo ""
|
|
261
|
+
echo "=== Commits by Author ==="
|
|
262
|
+
git shortlog -sn --since="30 days ago" | head -15
|
|
263
|
+
|
|
264
|
+
echo ""
|
|
265
|
+
echo "=== Most Changed Files (last 30 days) ==="
|
|
266
|
+
git log --since="30 days ago" --pretty=format: --name-only | sort | uniq -c | sort -rn | head -20
|
|
267
|
+
|
|
268
|
+
echo ""
|
|
269
|
+
echo "=== Branches ==="
|
|
270
|
+
echo "Local: $(git branch | wc -l | xargs)"
|
|
271
|
+
echo "Remote: $(git branch -r | wc -l | xargs)"
|
|
272
|
+
|
|
273
|
+
echo ""
|
|
274
|
+
echo "=== Stale Branches (merged, excluding main/master) ==="
|
|
275
|
+
git branch --merged main 2>/dev/null | grep -v 'main\|master\|\*' | head -10
|
|
276
|
+
```
|
|
277
|
+
> summary_prompt: "Report development velocity, active contributors, hotspot files, and cleanup opportunities"
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ctx-doctor
|
|
3
|
+
description: |
|
|
4
|
+
Run context-mode diagnostics. Checks runtimes, hooks, FTS5,
|
|
5
|
+
plugin registration, npm and marketplace versions.
|
|
6
|
+
Trigger: /context-mode:ctx-doctor
|
|
7
|
+
user-invocable: true
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Context Mode Doctor
|
|
11
|
+
|
|
12
|
+
Run diagnostics and display results directly in the conversation.
|
|
13
|
+
|
|
14
|
+
## Instructions
|
|
15
|
+
|
|
16
|
+
1. Call the `ctx_doctor` MCP tool directly. It runs all checks server-side and returns a plain-text status report.
|
|
17
|
+
2. Display the results verbatim — they are already formatted with plain-text status prefixes: `[OK]` PASS, `[FAIL]` FAIL, `[WARN]` WARN. Renderer-safe (no markdown task-list syntax) for cross-client compatibility (e.g., Z.ai GLM).
|
|
18
|
+
3. **Fallback** (only if MCP tool call fails): Derive the **plugin root** from this skill's base directory (go up 2 levels — remove `/skills/ctx-doctor`), then run with Bash:
|
|
19
|
+
```
|
|
20
|
+
CLI="<PLUGIN_ROOT>/cli.bundle.mjs"; [ ! -f "$CLI" ] && CLI="<PLUGIN_ROOT>/build/cli.js"; node "$CLI" doctor
|
|
21
|
+
```
|
|
22
|
+
Re-display results verbatim with the same `[OK]`/`[FAIL]`/`[WARN]` prefixes.
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ctx-index
|
|
3
|
+
description: |
|
|
4
|
+
Index a local file or directory into context-mode's persistent FTS5 knowledge base
|
|
5
|
+
so future ctx_search calls can retrieve focused snippets without rereading raw files.
|
|
6
|
+
Trigger: /context-mode:ctx-index
|
|
7
|
+
user-invocable: true
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Context Mode Index
|
|
11
|
+
|
|
12
|
+
Index local project content for later search.
|
|
13
|
+
|
|
14
|
+
## Instructions
|
|
15
|
+
|
|
16
|
+
1. Prefer the `ctx_index` MCP tool when it is available.
|
|
17
|
+
2. Ask for a path only if the user did not provide one and the current project root is ambiguous.
|
|
18
|
+
3. Use `path`, not large inline `content`, so file bytes do not enter the conversation.
|
|
19
|
+
4. For repository indexing, pass conservative bounds and a clear source label:
|
|
20
|
+
|
|
21
|
+
```javascript
|
|
22
|
+
ctx_index({
|
|
23
|
+
path: ".",
|
|
24
|
+
source: "project:<name>",
|
|
25
|
+
maxDepth: 5,
|
|
26
|
+
maxFiles: 200
|
|
27
|
+
})
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
5. If MCP tools are unavailable, fall back to the CLI:
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
context-mode index . --source project:<name>
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
6. Report the indexed source label, file count or section count, and the matching search command:
|
|
37
|
+
|
|
38
|
+
```javascript
|
|
39
|
+
ctx_search({ source: "project:<name>", queries: ["..."] })
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## Safety
|
|
43
|
+
|
|
44
|
+
- Do not index dependency directories, build outputs, secrets, or generated artifacts.
|
|
45
|
+
- Prefer `--exclude` or `exclude` for project-specific noisy paths.
|
|
46
|
+
- For broad repos, ask the user before raising `maxFiles` above 500.
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ctx-insight
|
|
3
|
+
description: |
|
|
4
|
+
Open the context-mode Insight dashboard in your default browser.
|
|
5
|
+
Insight is the hosted analytics layer for AI-assisted engineering teams —
|
|
6
|
+
per-engineer productive rate, retry waste, blocker detection, role-narrowed views.
|
|
7
|
+
Trigger: /context-mode:ctx-insight
|
|
8
|
+
user-invocable: true
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Context Mode Insight
|
|
12
|
+
|
|
13
|
+
Open the hosted Insight dashboard in the user's default browser.
|
|
14
|
+
|
|
15
|
+
## Instructions
|
|
16
|
+
|
|
17
|
+
1. Call the `ctx_insight` MCP tool (no parameters). It opens
|
|
18
|
+
<https://context-mode.com/insight> in the default browser and returns a
|
|
19
|
+
confirmation line.
|
|
20
|
+
2. Display the tool's output to the user.
|
|
21
|
+
3. Tell the user:
|
|
22
|
+
- "Insight opened at https://context-mode.com/insight"
|
|
23
|
+
- The landing page at context-mode.com/insight is the single source of truth for sign-in and pricing details.
|
|
24
|
+
- If the browser did not open automatically, share the URL so they can open it manually.
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ctx-purge
|
|
3
|
+
description: |
|
|
4
|
+
Purge the context-mode knowledge base. Permanently deletes all indexed content
|
|
5
|
+
and resets session stats. This is destructive and cannot be undone.
|
|
6
|
+
Trigger: /context-mode:ctx-purge
|
|
7
|
+
user-invocable: true
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Context Mode Purge
|
|
11
|
+
|
|
12
|
+
Permanently deletes session data for this project. Two scopes are supported (issue #520):
|
|
13
|
+
|
|
14
|
+
- **Project scope** (`scope: "project"`): wipes EVERYTHING — knowledge base, all session DB rows for every session, events markdown, and stats.
|
|
15
|
+
- **Session scope** (`sessionId: "<id>"` or `scope: "session"`): wipes ONLY the matching session's rows + FTS5 chunks. Sibling sessions, project stats, and the FTS5 store file are preserved.
|
|
16
|
+
|
|
17
|
+
## Instructions
|
|
18
|
+
|
|
19
|
+
1. **Decide the scope first** with the user:
|
|
20
|
+
- "Wipe just one session?" → ask for the `sessionId`.
|
|
21
|
+
- "Wipe the whole project?" → confirm scope:'project' (this is the destructive, irreversible default).
|
|
22
|
+
2. **Warn the user about scope:'project'**. Everything will be deleted:
|
|
23
|
+
- FTS5 knowledge base (all indexed content from `ctx_index`, `ctx_fetch_and_index`, `ctx_batch_execute`)
|
|
24
|
+
- Session events DB (analytics, metadata, resume snapshots) for ALL sessions in the project
|
|
25
|
+
- Session events markdown file
|
|
26
|
+
- In-memory session stats + persisted stats file
|
|
27
|
+
3. Call the `mcp__context-mode__ctx_purge` MCP tool with the chosen parameters:
|
|
28
|
+
- Scoped: `{ confirm: true, sessionId: "<id>" }` — implies scope:'session'.
|
|
29
|
+
- Project: `{ confirm: true, scope: "project" }` — explicit destructive form.
|
|
30
|
+
- Bare `{ confirm: true }` still works but emits a deprecation warning. Prefer the explicit forms.
|
|
31
|
+
4. Report the result to the user — the response lists exactly what was deleted and (for scoped purges) confirms that other sessions and project stats were preserved.
|
|
32
|
+
|
|
33
|
+
## Schema rules
|
|
34
|
+
|
|
35
|
+
- `confirm: true` is always required.
|
|
36
|
+
- `sessionId` and `scope: "project"` together is REJECTED as ambiguous (the sessionId implies session scope; combining with project scope contradicts intent).
|
|
37
|
+
- `scope: "session"` without `sessionId` throws — sessionId is required.
|
|
38
|
+
|
|
39
|
+
## When to Use
|
|
40
|
+
|
|
41
|
+
- **Scoped (per-session)**: scratch acceptance scenarios, drill replays, isolating a polluted session without losing the main working session's stats.
|
|
42
|
+
- **Project**: KB contains stale or incorrect content polluting search results, switching between unrelated projects in the same session, completely fresh start.
|
|
43
|
+
|
|
44
|
+
## Important
|
|
45
|
+
|
|
46
|
+
- `ctx_purge` is the **only** way to delete session data. No other mechanism exists.
|
|
47
|
+
- `ctx_stats` is read-only — shows statistics only.
|
|
48
|
+
- `/clear` and `/compact` do NOT affect any context-mode data.
|
|
49
|
+
- There is no undo. Re-index content if you need it again.
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ctx-search
|
|
3
|
+
description: |
|
|
4
|
+
Search context-mode's persistent FTS5 knowledge base for previously indexed
|
|
5
|
+
local project content, documentation, or session memory.
|
|
6
|
+
Trigger: /context-mode:ctx-search
|
|
7
|
+
user-invocable: true
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Context Mode Search
|
|
11
|
+
|
|
12
|
+
Search indexed content without rereading raw sources into conversation context.
|
|
13
|
+
|
|
14
|
+
## Instructions
|
|
15
|
+
|
|
16
|
+
1. Prefer the `ctx_search` MCP tool when it is available.
|
|
17
|
+
2. Batch all related questions in one `queries` array.
|
|
18
|
+
3. Scope with `source` when the user names a project or indexed label.
|
|
19
|
+
4. Use short, specific queries of two to four technical terms.
|
|
20
|
+
|
|
21
|
+
```javascript
|
|
22
|
+
ctx_search({
|
|
23
|
+
source: "project:<name>",
|
|
24
|
+
queries: ["authentication middleware", "token refresh"],
|
|
25
|
+
limit: 5
|
|
26
|
+
})
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
5. If MCP tools are unavailable, fall back to the CLI:
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
context-mode search "authentication middleware" --source project:<name> --limit 5
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
6. If the index is empty, tell the user to run `/context-mode:ctx-index` or `context-mode index <path>` first.
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ctx-stats
|
|
3
|
+
description: |
|
|
4
|
+
Show how much context window context-mode saved this session.
|
|
5
|
+
Displays token consumption, context savings ratio, and per-tool breakdown.
|
|
6
|
+
Read-only — shows stats only, no reset capability.
|
|
7
|
+
To wipe the knowledge base entirely, use ctx_purge instead.
|
|
8
|
+
Trigger: /context-mode:ctx-stats
|
|
9
|
+
user-invocable: true
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# Context Mode Stats
|
|
13
|
+
|
|
14
|
+
Show context savings for the current session.
|
|
15
|
+
|
|
16
|
+
## Instructions
|
|
17
|
+
|
|
18
|
+
1. Call the `mcp__context-mode__ctx_stats` MCP tool (no parameters needed).
|
|
19
|
+
2. **CRITICAL**: You MUST copy-paste the ENTIRE tool output as markdown text directly into your response message. Do NOT summarize, do NOT collapse, do NOT paraphrase. The user must see the full tables without pressing ctrl+o. Copy every line exactly as returned by the tool.
|
|
20
|
+
3. After the full output, add ONE sentence highlighting the key savings metric, e.g.:
|
|
21
|
+
- "context-mode saved **12.4x** — 92% of data stayed in sandbox."
|
|
22
|
+
- If no data yet: "No context-mode calls yet this session."
|
|
23
|
+
|
|
24
|
+
## Purge
|
|
25
|
+
|
|
26
|
+
- **`ctx_purge(confirm: true)`** — Permanently deletes all indexed content from the knowledge base. Use `/context-mode:ctx-purge` for this.
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ctx-upgrade
|
|
3
|
+
description: |
|
|
4
|
+
Update context-mode from GitHub and fix hooks/settings.
|
|
5
|
+
Pulls latest, builds, installs, updates npm global, configures hooks.
|
|
6
|
+
Trigger: /context-mode:ctx-upgrade
|
|
7
|
+
user-invocable: true
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Context Mode Upgrade
|
|
11
|
+
|
|
12
|
+
Pull latest from GitHub and reinstall the plugin.
|
|
13
|
+
|
|
14
|
+
## Instructions
|
|
15
|
+
|
|
16
|
+
1. Call the `ctx_upgrade` MCP tool directly. It returns a shell command to execute.
|
|
17
|
+
2. Run the returned command using your shell execution tool (Bash, shell_execute, etc.).
|
|
18
|
+
3. Display results as a markdown checklist:
|
|
19
|
+
```
|
|
20
|
+
## context-mode upgrade
|
|
21
|
+
- [x] Pulled latest from GitHub
|
|
22
|
+
- [x] Built and installed v1.0.39
|
|
23
|
+
- [x] Hooks configured
|
|
24
|
+
- [x] Doctor: all checks PASS
|
|
25
|
+
```
|
|
26
|
+
Use `[x]` for success, `[ ]` for failure. Show actual version numbers.
|
|
27
|
+
4. Tell the user to **restart their session** to pick up the new version.
|
|
28
|
+
5. **Fallback** (only if MCP tool call fails): Derive the **plugin root** from this skill's base directory (go up 2 levels — remove `/skills/ctx-upgrade`), then run with Bash:
|
|
29
|
+
```
|
|
30
|
+
CLI="<PLUGIN_ROOT>/cli.bundle.mjs"; [ ! -f "$CLI" ] && CLI="<PLUGIN_ROOT>/build/cli.js"; node "$CLI" upgrade
|
|
31
|
+
```
|