@amsterdamdatalabs/enact-extensions 0.1.5 → 0.1.10

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.
Files changed (105) hide show
  1. package/README.md +2 -2
  2. package/dist/index.d.ts +2 -0
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +1 -0
  5. package/dist/index.js.map +1 -1
  6. package/dist/install.d.ts.map +1 -1
  7. package/dist/install.js +15 -1
  8. package/dist/install.js.map +1 -1
  9. package/dist/internal/agents.d.ts +29 -0
  10. package/dist/internal/agents.d.ts.map +1 -0
  11. package/dist/internal/agents.js +83 -0
  12. package/dist/internal/agents.js.map +1 -0
  13. package/extensions/enact-context/hooks/hooks.json +20 -0
  14. package/extensions/enact-core/.agents/plugin.json +39 -0
  15. package/extensions/enact-core/hooks/hooks.json +14 -0
  16. package/extensions/enact-factory/.agents/plugin.json +9 -3
  17. package/extensions/enact-factory/agents/architect.toml +30 -0
  18. package/extensions/enact-factory/agents/code-reviewer.toml +29 -0
  19. package/extensions/enact-factory/agents/critic.toml +35 -0
  20. package/extensions/enact-factory/agents/executor.toml +23 -0
  21. package/extensions/enact-factory/agents/explore.toml +22 -0
  22. package/extensions/enact-factory/agents/planner.toml +23 -0
  23. package/extensions/enact-factory/agents/verifier.toml +29 -0
  24. package/extensions/enact-factory/skills/ai-slop-cleaner/SKILL.md +52 -0
  25. package/extensions/enact-factory/skills/azdo-ci-strategy/SKILL.md +262 -0
  26. package/extensions/enact-factory/skills/azdo-ci-strategy/references/build-failures.md +60 -0
  27. package/extensions/enact-factory/skills/azdo-ci-strategy/references/cli-reference.md +87 -0
  28. package/extensions/enact-factory/skills/azdo-ci-strategy/references/policies-and-pipelines.md +132 -0
  29. package/extensions/enact-factory/skills/azdo-ci-strategy/references/troubleshooting.md +53 -0
  30. package/extensions/enact-factory/skills/deep-interview/SKILL.md +72 -0
  31. package/extensions/enact-factory/skills/drive-loop/SKILL.md +259 -0
  32. package/extensions/enact-factory/skills/drive-loop/references/contract-schema.md +107 -0
  33. package/extensions/enact-factory/skills/hyperplan/SKILL.md +51 -0
  34. package/extensions/enact-factory/skills/looplan/SKILL.md +103 -0
  35. package/extensions/enact-factory/skills/plan/SKILL.md +71 -0
  36. package/extensions/enact-factory/skills/remove-deadcode/SKILL.md +41 -0
  37. package/extensions/enact-factory/skills/research/SKILL.md +73 -0
  38. package/extensions/enact-factory/skills/review/SKILL.md +48 -0
  39. package/extensions/enact-factory/skills/security-research/SKILL.md +54 -0
  40. package/extensions/enact-factory/skills/tdd/SKILL.md +56 -0
  41. package/extensions/enact-factory/skills/trace/SKILL.md +37 -0
  42. package/extensions/enact-factory/skills/ultraqa/SKILL.md +79 -0
  43. package/extensions/enact-factory/skills/work-with-workitem/SKILL.md +51 -0
  44. package/extensions/enact-factory/skills/workitem-triage/SKILL.md +15 -0
  45. package/extensions/enact-loop/.agents/plugin.json +46 -0
  46. package/extensions/enact-loop/.mcp.json +1 -0
  47. package/extensions/enact-loop/hooks/hooks.json +27 -0
  48. package/extensions/enact-loop/skills/enact-loop/SKILL.md +327 -0
  49. package/extensions/enact-operator/.agents/plugin.json +0 -1
  50. package/extensions/enact-operator/hooks/hooks.json +0 -35
  51. package/extensions/enact-wiki/skills/wiki/SKILL.md +42 -0
  52. package/extensions/plugin-dev/.agents/plugin.json +4 -6
  53. package/extensions/plugin-dev/agents/plugin-validator.md +1 -1
  54. package/extensions/plugin-dev/skills/agent-development/SKILL.md +7 -7
  55. package/extensions/plugin-dev/{commands/create-plugin.md → skills/create-plugin/SKILL.md} +44 -37
  56. package/extensions/plugin-dev/skills/plugin-dev-guide/SKILL.md +13 -14
  57. package/extensions/plugin-dev/skills/skill-development/SKILL.md +0 -2
  58. package/extensions/plugin-dev/{commands/start.md → skills/start/SKILL.md} +7 -6
  59. package/package.json +11 -6
  60. package/scripts/check-hooks.mjs +174 -0
  61. package/scripts/check-principles.mjs +101 -0
  62. package/scripts/enact-extensions.mjs +87 -3
  63. package/scripts/lib/run-validate.mjs +36 -2
  64. package/scripts/lib/ups-router.mjs +432 -0
  65. package/spec/enact.json +4 -0
  66. package/spec/enact.md +5 -2
  67. package/extensions/cmux/.agents/plugin.json +0 -37
  68. package/extensions/cmux/skills/cmux/SKILL.md +0 -82
  69. package/extensions/cmux/skills/cmux/agents/openai.yaml +0 -4
  70. package/extensions/cmux/skills/cmux/references/handles-and-identify.md +0 -35
  71. package/extensions/cmux/skills/cmux/references/panes-surfaces.md +0 -37
  72. package/extensions/cmux/skills/cmux/references/trigger-flash-and-health.md +0 -23
  73. package/extensions/cmux/skills/cmux/references/windows-workspaces.md +0 -31
  74. package/extensions/cmux/skills/cmux-vm-monitor/SKILL.md +0 -122
  75. package/extensions/cmux/skills/cmux-vm-monitor/agents/openai.yaml +0 -4
  76. package/extensions/cmux/skills/cmux-vm-monitor/references/cmux-commands.md +0 -66
  77. package/extensions/cmux/skills/cmux-vm-monitor/scripts/codex_vm_monitor.sh +0 -45
  78. package/extensions/cmux/skills/cmux-workspace/SKILL.md +0 -93
  79. package/extensions/devops/.agents/plugin.json +0 -36
  80. package/extensions/devops/skills/azure-devops-cli/SKILL.md +0 -431
  81. package/extensions/devops/skills/azure-devops-cli/agents/openai.yaml +0 -4
  82. package/extensions/devops/skills/ci-pipeline-strategy/SKILL.md +0 -217
  83. package/extensions/devops/skills/ci-pipeline-strategy/agents/openai.yaml +0 -4
  84. package/extensions/enact-factory/hooks/user-prompt-submit.mjs +0 -67
  85. package/extensions/enact-operator/commands/doctor.md +0 -39
  86. package/extensions/enact-operator/commands/setup.md +0 -51
  87. package/extensions/plugin-dev/.mcp.json +0 -3
  88. package/extensions/plugin-dev/commands/_archive/create-marketplace.md +0 -427
  89. package/extensions/plugin-dev/commands/_archive/plugin-dev-guide.md +0 -12
  90. package/extensions/plugin-dev/hooks/hooks.json +0 -3
  91. package/extensions/plugin-dev/skills/command-development/SKILL.md +0 -763
  92. package/extensions/plugin-dev/skills/command-development/examples/plugin-commands.md +0 -612
  93. package/extensions/plugin-dev/skills/command-development/examples/simple-commands.md +0 -527
  94. package/extensions/plugin-dev/skills/command-development/references/advanced-workflows.md +0 -762
  95. package/extensions/plugin-dev/skills/command-development/references/documentation-patterns.md +0 -769
  96. package/extensions/plugin-dev/skills/command-development/references/frontmatter-reference.md +0 -508
  97. package/extensions/plugin-dev/skills/command-development/references/interactive-commands.md +0 -966
  98. package/extensions/plugin-dev/skills/command-development/references/marketplace-considerations.md +0 -943
  99. package/extensions/plugin-dev/skills/command-development/references/plugin-features-reference.md +0 -637
  100. package/extensions/plugin-dev/skills/command-development/references/plugin-integration.md +0 -191
  101. package/extensions/plugin-dev/skills/command-development/references/skill-tool.md +0 -447
  102. package/extensions/plugin-dev/skills/command-development/references/testing-strategies.md +0 -723
  103. package/extensions/plugin-dev/skills/command-development/scripts/check-frontmatter.sh +0 -234
  104. package/extensions/plugin-dev/skills/command-development/scripts/validate-command.sh +0 -160
  105. /package/extensions/enact-operator/{skills/_variants.md → docs/skill-variants.md} +0 -0
@@ -1,82 +0,0 @@
1
- ---
2
- name: cmux
3
- description: End-user control of cmux topology and routing (windows, workspaces, panes/surfaces, focus, moves, reorder, identify, trigger flash). Use when automation needs deterministic placement and navigation in a multi-pane cmux layout.
4
- ---
5
-
6
- # cmux Core Control
7
-
8
- Use this skill to control non-browser cmux topology and routing.
9
-
10
- ## Core Concepts
11
-
12
- - Window: top-level macOS cmux window.
13
- - Workspace: tab-like group within a window.
14
- - Pane: split container in a workspace.
15
- - Surface: a tab within a pane (terminal or browser panel).
16
-
17
- ## Fast Start
18
-
19
- ```bash
20
- # identify current caller context
21
- cmux identify --json
22
-
23
- # list topology
24
- cmux list-windows
25
- cmux list-workspaces
26
- cmux list-panes
27
- cmux list-pane-surfaces --pane pane:1
28
-
29
- # create/focus/move
30
- cmux new-workspace
31
- cmux new-split right --panel pane:1
32
- cmux move-surface --surface surface:7 --pane pane:2 --focus true
33
- cmux split-off --surface surface:7 right
34
- cmux reorder-surface --surface surface:7 --before surface:3
35
-
36
- # attention cue
37
- cmux trigger-flash --surface surface:7
38
- ```
39
-
40
- ## Settings and Docs
41
-
42
- Use `cmux docs settings` before changing cmux-owned settings. It prints the docs URL, schema URL, raw GitHub resources, cmux.json paths, and reload command.
43
-
44
- ```bash
45
- cmux docs settings
46
- cmux settings path
47
- ```
48
-
49
- cmux-owned settings live in `~/.config/cmux/cmux.json`. Legacy `~/.config/cmux/settings.json` and `~/Library/Application Support/com.cmuxterm.app/settings.json` files are read only as fallback for missing keys. Before editing, copy any existing `cmux.json` file to a timestamped `.bak` next to it so the user can revert. Edit the user file, then reload:
50
-
51
- ```bash
52
- cmux reload-config
53
- ```
54
-
55
- `cmux reload-config` reloads both `cmux.json` and Ghostty config (`~/.config/ghostty/config`) and refreshes terminals in place. No app restart needed.
56
-
57
- Use cmux settings for app behavior, sidebar, notifications, browser behavior, automation, workspace colors, and cmux-owned shortcuts. Terminal rendering settings such as font, cursor style, theme, scrollback, background transparency (`background-opacity`), and blur (`background-blur`) belong in Ghostty config at `~/.config/ghostty/config`.
58
-
59
- Open the UI when useful:
60
-
61
- ```bash
62
- cmux settings
63
- cmux settings cmux-json
64
- cmux settings shortcuts
65
- ```
66
-
67
- ## Handle Model
68
-
69
- - Default output uses short refs: `window:N`, `workspace:N`, `pane:N`, `surface:N`.
70
- - UUIDs are still accepted as inputs.
71
- - Request UUID output only when needed: `--id-format uuids|both`.
72
-
73
- ## Deep-Dive References
74
-
75
- | Reference | When to Use |
76
- |-----------|-------------|
77
- | [references/handles-and-identify.md](references/handles-and-identify.md) | Handle syntax, self-identify, caller targeting |
78
- | [references/windows-workspaces.md](references/windows-workspaces.md) | Window/workspace lifecycle and reorder/move |
79
- | [references/panes-surfaces.md](references/panes-surfaces.md) | Splits, surfaces, move/reorder, focus routing |
80
- | [references/trigger-flash-and-health.md](references/trigger-flash-and-health.md) | Flash cue and surface health checks |
81
-
82
- Use the bundled `cmux-workspace` companion skill when the task is workspace-scoped terminal automation or sibling-surface coordination rather than global topology control. The broader cmux project also ships browser, settings, markdown, and diagnostics companion skills that can be vendored into this bundle separately.
@@ -1,4 +0,0 @@
1
- interface:
2
- display_name: "cmux Core"
3
- short_description: "Control windows/workspaces/panes/surfaces and routing with cmux CLI."
4
- default_prompt: "Use this skill to inspect and manipulate cmux topology: identify context, target handles, create/focus/move/reorder windows/workspaces/panes/surfaces, and use trigger-flash for visual confirmation."
@@ -1,35 +0,0 @@
1
- # Handles and Identify
2
-
3
- Use `identify` and short handles for deterministic automation targeting.
4
-
5
- ## Handle Inputs
6
-
7
- Most v2-backed commands accept:
8
- - UUID
9
- - short ref (`window:N`, `workspace:N`, `pane:N`, `surface:N`)
10
- - index (where legacy/index-based commands still allow it)
11
-
12
- ## Self Identify
13
-
14
- ```bash
15
- cmux identify --json
16
- ```
17
-
18
- Returns current focused topology plus optional caller resolution.
19
-
20
- ## Caller Override
21
-
22
- ```bash
23
- cmux identify --workspace workspace:2
24
- cmux identify --workspace workspace:2 --surface surface:8
25
- ```
26
-
27
- Useful for agents that need to route relative actions from a known caller anchor.
28
-
29
- ## Output Shaping
30
-
31
- ```bash
32
- cmux --json identify
33
- cmux --json --id-format both identify
34
- cmux --json --id-format uuids identify
35
- ```
@@ -1,37 +0,0 @@
1
- # Panes and Surfaces
2
-
3
- Split layout, surface creation, focus, move, and reorder.
4
-
5
- ## Inspect
6
-
7
- ```bash
8
- cmux list-panes
9
- cmux list-pane-surfaces --pane pane:1
10
- ```
11
-
12
- ## Create Splits/Surfaces
13
-
14
- ```bash
15
- cmux new-split right --panel pane:1
16
- cmux new-surface --type terminal --pane pane:1
17
- cmux new-surface --type browser --pane pane:1 --url https://example.com
18
- ```
19
-
20
- ## Focus and Close
21
-
22
- ```bash
23
- cmux focus-pane --pane pane:2
24
- cmux focus-panel --panel surface:7
25
- cmux close-surface --surface surface:7
26
- ```
27
-
28
- ## Move/Reorder Surfaces
29
-
30
- ```bash
31
- cmux move-surface --surface surface:7 --pane pane:2 --focus true
32
- cmux move-surface --surface surface:7 --workspace workspace:2 --window window:1 --after surface:4
33
- cmux split-off --surface surface:7 right
34
- cmux reorder-surface --surface surface:7 --before surface:3
35
- ```
36
-
37
- Surface identity is stable across move, reorder, and split-off operations. Layout commands are focus-neutral by default; pass `--focus true` only when you want the moved or created surface selected.
@@ -1,23 +0,0 @@
1
- # Trigger Flash and Surface Health
2
-
3
- Operational checks useful in automation loops.
4
-
5
- ## Trigger Flash
6
-
7
- Flash a surface or workspace to provide visual confirmation in UI:
8
-
9
- ```bash
10
- cmux trigger-flash --surface surface:7
11
- cmux trigger-flash --workspace workspace:2
12
- ```
13
-
14
- ## Surface Health
15
-
16
- Use health output to detect hidden, detached, or non-windowed surfaces:
17
-
18
- ```bash
19
- cmux surface-health
20
- cmux surface-health --workspace workspace:2
21
- ```
22
-
23
- Use this before routing focused input if UI state may be stale.
@@ -1,31 +0,0 @@
1
- # Windows and Workspaces
2
-
3
- Window and workspace lifecycle and ordering operations.
4
-
5
- ## Inspect
6
-
7
- ```bash
8
- cmux list-windows
9
- cmux current-window
10
- cmux list-workspaces
11
- cmux current-workspace
12
- ```
13
-
14
- ## Create/Focus/Close
15
-
16
- ```bash
17
- cmux new-window
18
- cmux focus-window --window window:2
19
- cmux close-window --window window:2
20
-
21
- cmux new-workspace
22
- cmux select-workspace --workspace workspace:4
23
- cmux close-workspace --workspace workspace:4
24
- ```
25
-
26
- ## Reorder and Move
27
-
28
- ```bash
29
- cmux reorder-workspace --workspace workspace:4 --before workspace:2
30
- cmux move-workspace-to-window --workspace workspace:4 --window window:1
31
- ```
@@ -1,122 +0,0 @@
1
- ---
2
- name: cmux-vm-monitor
3
- description: >-
4
- Runs a remote VM pane with local monitoring and steering via cmux. Use when
5
- the user wants SSH into a VM, launch work in a dedicated pane, send a long
6
- autonomous goal, and schedule local periodic check-ins that inspect the VM
7
- pane and wake the local steering pane without moving the actual coding off
8
- the VM.
9
- ---
10
-
11
- # cmux VM monitor
12
-
13
- Use this skill when the user wants:
14
-
15
- - actual coding and building on a VM
16
- - the current local machine to remain the monitor and steering surface
17
- - cmux-driven pane automation instead of manual switching
18
- - periodic local check-ins against the remote Codex pane
19
-
20
- ## Contract
21
-
22
- - The VM does the coding.
23
- - The local machine does the scheduling, pane inspection, and steering.
24
- - The local monitor does not talk to the VM pane. It only wakes the local pane with an instruction to inspect the VM and act.
25
- - Prefer `cmux send` followed by `cmux send-key tab` for local wake injection as plain queued text, not as a shell wrapper like `printf`.
26
- - Do not assume pane ids are stable. Re-identify the workspace, pane, and surface before acting.
27
- - Keep the wake message explicit enough that the local agent gets the exact cmux command sequence to run: inspect VM, ask for summary, decide `nothing | steer | stop`.
28
-
29
- ## Layout pattern
30
-
31
- 1. Identify the current workspace and panes.
32
- 2. Reuse an existing right-side helper pane when possible.
33
- 3. SSH into the VM inside that pane.
34
- 4. Start `codex` in the target repo on the VM.
35
- 5. Send the long-form goal from the local machine into the VM Codex pane.
36
- 6. Run a local monitor loop that inspects the VM pane every N minutes and wakes the local pane.
37
-
38
- ## Fast start
39
-
40
- ```bash
41
- # 1) Find the active workspace and right pane
42
- cmux identify --json
43
- cmux list-panes --workspace workspace:1 --json
44
- cmux list-pane-surfaces --workspace workspace:1 --pane pane:2 --json
45
-
46
- # 2) Inspect the remote pane
47
- cmux capture-pane --workspace workspace:1 --surface surface:2 --lines 120
48
-
49
- # 3) Drive the pane
50
- cmux send --workspace workspace:1 --surface surface:2 "cd /root/Documents/enact-agent && codex --yolo"
51
- cmux send-key --workspace workspace:1 --surface surface:2 enter
52
- ```
53
-
54
- ## Monitor loop
55
-
56
- Use the bundled script:
57
-
58
- ```bash
59
- extensions/skills/cmux-vm-monitor/scripts/codex_vm_monitor.sh
60
- ```
61
-
62
- Default behavior:
63
-
64
- - captures the VM Codex pane locally
65
- - appends a local log entry
66
- - injects a wake message into the local pane with the exact follow-up cmux commands
67
- - does not send any command to the VM pane
68
-
69
- Environment variables:
70
-
71
- - `CMUX_MONITOR_WORKSPACE`
72
- - `CMUX_MONITOR_SURFACE`
73
- - `CMUX_MONITOR_LINES`
74
- - `CMUX_MONITOR_LOG`
75
- - `CMUX_MONITOR_WAKE_MESSAGE`
76
-
77
- Example one-shot run:
78
-
79
- ```bash
80
- CMUX_MONITOR_WORKSPACE=workspace:1 \
81
- CMUX_MONITOR_SURFACE=surface:2 \
82
- bash extensions/skills/cmux-vm-monitor/scripts/codex_vm_monitor.sh
83
- ```
84
-
85
- Example local scheduler:
86
-
87
- ```bash
88
- nohup bash -lc 'sleep 300; while true; do \
89
- bash extensions/skills/cmux-vm-monitor/scripts/codex_vm_monitor.sh; \
90
- sleep 1800; \
91
- done' >/tmp/codex_vm_monitor.runner.log 2>&1 &
92
- ```
93
-
94
- This is intentionally local. Do not install the scheduler on the VM unless the user explicitly asks.
95
-
96
- ## Wake contract
97
-
98
- The monitor is intentionally simple:
99
-
100
- - capture the VM pane
101
- - log what it saw locally
102
- - wake the local pane with a precise instruction
103
- - include the exact `cmux capture-pane`, `cmux send`, and `cmux send-key Enter` sequence for the target VM surface
104
- - let the local agent decide whether to do `nothing`, `steer`, or `stop`
105
-
106
- Do not put VM-side steering logic into the monitor script itself.
107
-
108
- ## Long-goal injection pattern
109
-
110
- Send the goal text as a single paste payload, then submit separately:
111
-
112
- ```bash
113
- cmux send --workspace workspace:1 --surface surface:2 "<goal text>"
114
- cmux send-key --workspace workspace:1 --surface surface:2 enter
115
- ```
116
-
117
- After submission, confirm the pane moved into an active state with `cmux capture-pane`.
118
-
119
- ## References
120
-
121
- - Use [references/cmux-commands.md](references/cmux-commands.md) for the exact commands that worked in this pattern.
122
- - Use [scripts/codex_vm_monitor.sh](scripts/codex_vm_monitor.sh) instead of retyping the monitor loop.
@@ -1,4 +0,0 @@
1
- interface:
2
- display_name: "cmux VM Codex Monitor"
3
- short_description: "Run Codex on a VM pane and monitor it locally through cmux."
4
- default_prompt: "Use this skill to drive a Codex session running on a remote VM pane through cmux, send a long goal into the VM pane, and set up a local periodic monitor that captures the pane and only nudges for a summary when Codex is idle."
@@ -1,66 +0,0 @@
1
- # cmux commands for local-monitor / VM-Codex runs
2
-
3
- ## Topology and targeting
4
-
5
- ```bash
6
- cmux identify --json
7
- cmux list-panes --workspace workspace:1 --json
8
- cmux list-pane-surfaces --workspace workspace:1 --pane pane:2 --json
9
- ```
10
-
11
- Use these before every mutating step. Pane and surface refs can change across sessions.
12
-
13
- ## Inspect the VM pane
14
-
15
- ```bash
16
- cmux capture-pane --workspace workspace:1 --surface surface:2 --lines 120
17
- ```
18
-
19
- Use for:
20
-
21
- - checking whether SSH is already connected
22
- - checking whether Codex is in the TUI
23
- - checking whether Codex is busy or idle
24
- - reading the latest progress snapshot from the VM
25
-
26
- ## Send text, then submit separately
27
-
28
- Preferred pattern:
29
-
30
- ```bash
31
- cmux send --workspace workspace:1 --surface surface:2 "cd /root/Documents/enact-agent && codex --yolo"
32
- cmux send-key --workspace workspace:1 --surface surface:2 enter
33
- ```
34
-
35
- This is safer than depending on embedded trailing newlines in the payload.
36
-
37
- ## Launch or relaunch the VM task
38
-
39
- ```bash
40
- cmux send --workspace workspace:1 --surface surface:2 "ssh root@srv1349818.walrus-morray.ts.net"
41
- cmux send-key --workspace workspace:1 --surface surface:2 enter
42
-
43
- cmux send --workspace workspace:1 --surface surface:2 "cd /root/Documents/enact-agent && codex --yolo"
44
- cmux send-key --workspace workspace:1 --surface surface:2 enter
45
- ```
46
-
47
- ## Local wake follow-up loop
48
-
49
- ```bash
50
- cmux capture-pane --workspace workspace:1 --surface surface:2 --lines 120
51
-
52
- cmux send --workspace workspace:1 --surface surface:2 "Status check from the local 30-minute monitor. In 8 lines max, summarize: current phase, current file or slice, last completed step, last red proof, last green proof, blocker if any, next exact action, and whether OVERNIGHT_MERGE_STATUS.md is updated."
53
- cmux send-key --workspace workspace:1 --surface surface:2 enter
54
-
55
- cmux capture-pane --workspace workspace:1 --surface surface:2 --lines 120
56
- ```
57
-
58
- Use this exact sequence when the local wake lands. Inspect first, ask for the summary second, then inspect again before deciding `nothing`, `steer`, or `stop`.
59
-
60
- ## Optional right-pane creation
61
-
62
- ```bash
63
- cmux new-pane --workspace workspace:1 --type terminal --direction right --focus false
64
- ```
65
-
66
- Use only when no helper pane already exists.
@@ -1,45 +0,0 @@
1
- #!/bin/bash
2
- set -euo pipefail
3
-
4
- WORKSPACE_REF="${CMUX_MONITOR_WORKSPACE:-workspace:1}"
5
- SURFACE_REF="${CMUX_MONITOR_SURFACE:-surface:2}"
6
- RELAY_WORKSPACE_REF="${CMUX_MONITOR_RELAY_WORKSPACE:-workspace:1}"
7
- RELAY_SURFACE_REF="${CMUX_MONITOR_RELAY_SURFACE:-surface:1}"
8
- LINES="${CMUX_MONITOR_LINES:-180}"
9
- LOG_FILE="${CMUX_MONITOR_LOG:-/tmp/codex_vm_monitor.log}"
10
- LOCAL_WAKE_MESSAGE_TEMPLATE="${CMUX_MONITOR_WAKE_MESSAGE:-[VM monitor __TIMESTAMP__] 30-minute check. Use exact cmux commands against __WORKSPACE__/__SURFACE__: 1) cmux capture-pane --workspace __WORKSPACE__ --surface __SURFACE__ --lines 120 2) cmux send --workspace __WORKSPACE__ --surface __SURFACE__ \"Status check from the local monitor. In exactly 8 lines, summarize: current phase, current file or slice, last completed step, last red proof, last green proof, blocker if any, next exact action, and whether OVERNIGHT_MERGE_STATUS.md is updated.\" 3) cmux send-key --workspace __WORKSPACE__ --surface __SURFACE__ Enter 4) cmux capture-pane --workspace __WORKSPACE__ --surface __SURFACE__ --lines 120 Then decide nothing | steer | stop.}"
11
-
12
- timestamp() {
13
- date -u +"%Y-%m-%dT%H:%M:%SZ"
14
- }
15
-
16
- capture() {
17
- cmux capture-pane --workspace "$WORKSPACE_REF" --surface "$SURFACE_REF" --lines "$LINES"
18
- }
19
-
20
- relay_local() {
21
- local message="$1"
22
- cmux send --workspace "$RELAY_WORKSPACE_REF" --surface "$RELAY_SURFACE_REF" "$message"
23
- cmux send-key --workspace "$RELAY_WORKSPACE_REF" --surface "$RELAY_SURFACE_REF" tab
24
- }
25
-
26
- snapshot="$(capture 2>&1 || true)"
27
-
28
- {
29
- printf '=== %s ===\n' "$(timestamp)"
30
- printf 'workspace=%s surface=%s\n' "$WORKSPACE_REF" "$SURFACE_REF"
31
- printf '%s\n' "$snapshot"
32
- printf '\n'
33
- } >> "$LOG_FILE"
34
-
35
- if grep -q "Error: not_found\\|ERROR: Surface not found" <<<"$snapshot"; then
36
- printf '[%s] monitor: surface missing\n' "$(timestamp)" >> "$LOG_FILE"
37
- relay_local "[VM monitor $(timestamp)] surface missing for $WORKSPACE_REF/$SURFACE_REF"
38
- exit 0
39
- fi
40
-
41
- wake_message="${LOCAL_WAKE_MESSAGE_TEMPLATE/__TIMESTAMP__/$(timestamp)}"
42
- wake_message="${wake_message//__WORKSPACE__/$WORKSPACE_REF}"
43
- wake_message="${wake_message//__SURFACE__/$SURFACE_REF}"
44
- printf '[%s] monitor: local wake injected; vm pane captured only\n' "$(timestamp)" >> "$LOG_FILE"
45
- relay_local "$wake_message"
@@ -1,93 +0,0 @@
1
- ---
2
- name: cmux-workspace
3
- description: This skill should be used when work should stay inside the current cmux workspace and terminal, including workspace-scoped pane or surface inspection, non-disruptive terminal automation, and sibling-surface coordination messages.
4
- ---
5
-
6
- # cmux Workspace
7
- Use this skill when work should stay scoped to the caller's cmux workspace and surface.
8
-
9
- ## Default Rule
10
- Scope actions to the current caller workspace unless the user explicitly names another workspace, tab, or window.
11
-
12
- Start by resolving the live caller context:
13
- ```bash
14
- printf 'workspace=%s\nsurface=%s\nsocket=%s\n' \
15
- "${CMUX_WORKSPACE_ID:-}" \
16
- "${CMUX_SURFACE_ID:-}" \
17
- "${CMUX_SOCKET_PATH:-}"
18
- cmux identify --json
19
- ```
20
-
21
- If the env vars are empty, use `cmux identify --json` and be explicit that you are falling back to the currently focused cmux context.
22
-
23
- ## Non-Disruptive Automation
24
- Never change visible focus unless the user explicitly asked for it.
25
-
26
- Do not call these speculatively:
27
- - `cmux select-workspace`
28
- - `cmux focus-pane`
29
- - `cmux focus-panel`
30
-
31
- Prefer explicit `--workspace` and `--surface` flags for mutating actions.
32
-
33
- ## Messaging Pattern
34
- For sibling-surface coordination, the default submission pattern is:
35
-
36
- ```bash
37
- cmux send --workspace workspace:N --surface surface:N "<message>"
38
- cmux send-key --workspace workspace:N --surface surface:N Enter
39
- cmux capture-pane --workspace workspace:N --surface surface:N --lines 120
40
- ```
41
-
42
- Rules:
43
- - Use `cmux send` plus `cmux send-key Enter` as the default pattern.
44
- - Always verify delivery with `cmux capture-pane`; do not trust `OK` from `cmux send` alone.
45
- - If the pane is busy, expect the message to remain queued in the composer. Report that exact state instead of claiming the message was accepted.
46
- - Only interrupt a busy pane if the user explicitly wants immediate submission.
47
-
48
- ## Coordination Prefixes
49
- When you send a coordination message yourself, prefix it so direction is obvious:
50
-
51
- - `[sidecar -> enact-agent-config]`
52
- - `[enact-agent-config -> sidecar]`
53
-
54
- Rules:
55
- - Prefix only the coordination messages you send or relay.
56
- - Do not assume the user's own plain-text messages already carry a prefix.
57
- - Keep coordination updates short and operational: owner, current status, blocker, next step.
58
-
59
- ## Caller Terminal
60
- Treat the caller surface as the safest anchor for relative operations:
61
-
62
- ```bash
63
- cmux send --surface "${CMUX_SURFACE_ID:-}" "git status"
64
- cmux send-key --surface "${CMUX_SURFACE_ID:-}" Enter
65
- ```
66
-
67
- ## Inspect Workspace State
68
- Useful inspection commands:
69
-
70
- ```bash
71
- cmux identify --json
72
- cmux list-workspaces --json
73
- cmux list-panes --workspace "${CMUX_WORKSPACE_ID:-}" --json
74
- cmux list-pane-surfaces --workspace "${CMUX_WORKSPACE_ID:-}" --json
75
- cmux capture-pane --workspace "${CMUX_WORKSPACE_ID:-}" --surface "${CMUX_SURFACE_ID:-}" --lines 120
76
- ```
77
-
78
- ## Right-Side Helper Policy
79
- When auxiliary work is needed in the caller workspace:
80
- - reuse an existing non-caller helper pane if one already exists
81
- - otherwise create exactly one helper pane to the right
82
- - avoid creating extra splits when a new surface in the helper pane is enough
83
-
84
- Example:
85
- ```bash
86
- cmux new-pane --workspace "${CMUX_WORKSPACE_ID:-}" --type terminal --direction right --focus false
87
- ```
88
-
89
- ## Stop Conditions
90
- Stop and report instead of guessing when:
91
- - the target workspace or surface cannot be identified confidently
92
- - the pane stays busy and the message remains queued
93
- - a command would require focus-changing behavior the user did not request
@@ -1,36 +0,0 @@
1
- {
2
- "name": "devops",
3
- "version": "0.1.0",
4
- "description": "DevOps skills for Enact: Azure DevOps CLI workflows and CI pipeline strategy for branch, build, and release operations.",
5
- "author": {
6
- "name": "Amsterdam Data Labs"
7
- },
8
- "license": "UNLICENSED",
9
- "keywords": [
10
- "devops",
11
- "azure-devops",
12
- "ci",
13
- "pipeline",
14
- "release"
15
- ],
16
- "targets": [
17
- "claude",
18
- "codex",
19
- "cursor"
20
- ],
21
- "skills": "./skills/",
22
- "interface": {
23
- "displayName": "DevOps",
24
- "shortDescription": "Azure DevOps CLI and CI pipeline strategy skills.",
25
- "developerName": "Amsterdam Data Labs",
26
- "category": "Developer Tools",
27
- "capabilities": [
28
- "azure devops cli",
29
- "ci pipeline strategy"
30
- ]
31
- },
32
- "factory": {
33
- "firstParty": true,
34
- "operatorScope": "global"
35
- }
36
- }