@devo-bmad-custom/agent-orchestration 1.0.5 → 1.0.6
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 +1 -1
- package/src/.agents/skills/tmux-commands/SKILL.md +353 -0
- package/src/bmm/data/project-context-template.md +26 -26
- package/src/bmm/teams/default-party.csv +20 -20
- package/src/bmm/workflows/2-plan-workflows/create-prd/data/domain-complexity.csv +14 -14
- package/src/bmm/workflows/2-plan-workflows/create-prd/data/prd-purpose.md +197 -197
- package/src/bmm/workflows/2-plan-workflows/create-prd/data/project-types.csv +10 -10
- package/src/bmm/workflows/2-plan-workflows/create-prd/templates/prd-template.md +10 -10
- package/src/bmm/workflows/3-solutioning/create-architecture/data/domain-complexity.csv +12 -12
- package/src/bmm/workflows/4-implementation/code-review/instructions.xml +226 -226
- package/src/bmm/workflows/4-implementation/correct-course/checklist.md +288 -288
- package/src/bmm/workflows/4-implementation/correct-course/instructions.md +207 -207
- package/src/bmm/workflows/4-implementation/retrospective/instructions.md +1444 -1444
- package/src/bmm/workflows/4-implementation/sprint-planning/sprint-status-template.yaml +55 -55
- package/src/bmm/workflows/4-implementation/sprint-status/instructions.md +230 -230
- package/src/bmm/workflows/bmad-quick-flow/quick-spec/tech-spec-template.md +74 -74
- package/src/bmm/workflows/document-project/instructions.md +130 -130
- package/src/bmm/workflows/document-project/templates/project-scan-report-schema.json +160 -160
- package/src/bmm/workflows/document-project/workflows/deep-dive-instructions.md +298 -298
- package/src/bmm/workflows/document-project/workflows/deep-dive.yaml +31 -31
- package/src/bmm/workflows/document-project/workflows/full-scan-instructions.md +1106 -1106
- package/src/bmm/workflows/document-project/workflows/full-scan.yaml +31 -31
- package/src/bmm/workflows/qa-generate-e2e-tests/checklist.md +33 -33
- package/src/bmm/workflows/qa-generate-e2e-tests/instructions.md +110 -110
- package/src/core/agents/bmad-master.md +56 -56
- package/src/core/workflows/party-mode/steps/step-02-discussion-orchestration.md +187 -187
- package/src/core/workflows/party-mode/steps/step-03-graceful-exit.md +168 -168
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/vision-framework/SKILL.md +0 -475
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/vision-framework/references/vision-requests.md +0 -736
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/vision-framework/references/visionkit-scanner.md +0 -738
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/weatherkit/SKILL.md +0 -410
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/weatherkit/references/weatherkit-patterns.md +0 -567
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/widgetkit/SKILL.md +0 -497
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/widgetkit/references/widgetkit-advanced.md +0 -871
- package/src/.agents/skills/ui-ux-pro-custom/data/typography.csv +0 -58
- package/src/.agents/skills/ui-ux-pro-custom/data/ui-reasoning.csv +0 -101
- package/src/.agents/skills/ui-ux-pro-custom/data/ux-guidelines.csv +0 -100
- package/src/.agents/skills/ui-ux-pro-custom/data/web-interface.csv +0 -31
- package/src/.agents/skills/ui-ux-pro-custom/scripts/core.py +0 -253
- package/src/.agents/skills/ui-ux-pro-custom/scripts/design_system.py +0 -1067
- package/src/.agents/skills/ui-ux-pro-custom/scripts/search.py +0 -114
- package/src/.agents/skills/ux-audit/SKILL.md +0 -151
- package/src/.agents/skills/websocket-engineer/SKILL.md +0 -168
- package/src/.agents/skills/websocket-engineer/references/alternatives.md +0 -391
- package/src/.agents/skills/websocket-engineer/references/patterns.md +0 -400
- package/src/.agents/skills/websocket-engineer/references/protocol.md +0 -195
- package/src/.agents/skills/websocket-engineer/references/scaling.md +0 -333
- package/src/.agents/skills/websocket-engineer/references/security.md +0 -474
- package/src/.agents/skills/writing-skills/SKILL.md +0 -655
- package/src/.agents/skills/writing-skills/anthropic-best-practices.md +0 -1150
- package/src/.agents/skills/writing-skills/examples/CLAUDE_MD_TESTING.md +0 -189
- package/src/.agents/skills/writing-skills/graphviz-conventions.dot +0 -172
- package/src/.agents/skills/writing-skills/persuasion-principles.md +0 -187
- package/src/.agents/skills/writing-skills/render-graphs.js +0 -168
- package/src/.agents/skills/writing-skills/testing-skills-with-subagents.md +0 -384
- package/src/.claude/commands/bmad-track-compact.md +0 -19
- package/src/.claude/commands/bmad-track-extended.md +0 -19
- package/src/.claude/commands/bmad-track-large.md +0 -19
- package/src/.claude/commands/bmad-track-medium.md +0 -19
- package/src/.claude/commands/bmad-track-nano.md +0 -19
- package/src/.claude/commands/bmad-track-rv.md +0 -18
- package/src/.claude/commands/bmad-track-small.md +0 -19
- package/src/.claude/commands/master-orchestrator.md +0 -15
- package/src/_memory/master-orchestrator-sidecar/docs-index.md +0 -3
- package/src/_memory/master-orchestrator-sidecar/instructions.md +0 -2616
- package/src/_memory/master-orchestrator-sidecar/memories.md +0 -8
- package/src/_memory/master-orchestrator-sidecar/session-state.md +0 -15
- package/src/_memory/master-orchestrator-sidecar/triage-history.md +0 -3
- package/src/_memory/master-orchestrator-sidecar/workflows-overview.html +0 -1230
- package/src/core/agents/master-orchestrator.md +0 -54
- package/src/docs/dev/tmux/actions_popup.py +0 -291
- package/src/docs/dev/tmux/actions_popup.sh +0 -110
- package/src/docs/dev/tmux/claude_usage.sh +0 -15
- package/src/docs/dev/tmux/colors.conf +0 -26
- package/src/docs/dev/tmux/cpu_usage.sh +0 -7
- package/src/docs/dev/tmux/dispatch.sh +0 -10
- package/src/docs/dev/tmux/float_init.sh +0 -13
- package/src/docs/dev/tmux/float_term.sh +0 -23
- package/src/docs/dev/tmux/open_clip.sh +0 -14
- package/src/docs/dev/tmux/paste_clipboard.sh +0 -13
- package/src/docs/dev/tmux/paste_image_wrapper.sh +0 -94
- package/src/docs/dev/tmux/ram_usage.sh +0 -3
- package/src/docs/dev/tmux/title_sync.sh +0 -54
- package/src/docs/dev/tmux/tmux-setup.md +0 -867
- package/src/docs/dev/tmux/tmux.conf +0 -127
- package/src/docs/dev/tmux/xclip +0 -18
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
# paste_image_wrapper.sh — reads clipboard via wl-paste, types path into pane.
|
|
3
|
-
#
|
|
4
|
-
# Requires: wl-clipboard (sudo apt-get install -y wl-clipboard)
|
|
5
|
-
# Optional: imagemagick for BMP/non-PNG conversion
|
|
6
|
-
#
|
|
7
|
-
# $1 = pane_id (e.g. %0)
|
|
8
|
-
|
|
9
|
-
PANE="${1:-}"
|
|
10
|
-
WL_PASTE="/usr/bin/wl-paste"
|
|
11
|
-
|
|
12
|
-
# Timestamped filenames — delete any tmux_clip_* files not from today
|
|
13
|
-
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
|
|
14
|
-
TODAY=$(date +%Y%m%d)
|
|
15
|
-
find /tmp -maxdepth 1 -name 'tmux_clip_*' ! -name "tmux_clip_${TODAY}*" -delete 2>/dev/null || true
|
|
16
|
-
|
|
17
|
-
PNGFILE="/tmp/tmux_clip_${TIMESTAMP}.png"
|
|
18
|
-
RAWFILE="/tmp/tmux_clip_${TIMESTAMP}_raw"
|
|
19
|
-
SVGFILE="/tmp/tmux_clip_${TIMESTAMP}.svg"
|
|
20
|
-
HTMLFILE="/tmp/tmux_clip_${TIMESTAMP}.html"
|
|
21
|
-
TXTFILE="/tmp/tmux_clip_${TIMESTAMP}.txt"
|
|
22
|
-
|
|
23
|
-
send_path() {
|
|
24
|
-
[ -n "$1" ] && [ -n "$PANE" ] && tmux send-keys -t "$PANE" "$1"
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
TYPES=$("$WL_PASTE" --list-types 2>/dev/null)
|
|
28
|
-
[ -z "$TYPES" ] && exit 0
|
|
29
|
-
|
|
30
|
-
IMAGE_TYPE=$(echo "$TYPES" | grep -i "^image/" | head -1)
|
|
31
|
-
|
|
32
|
-
# ── Image ─────────────────────────────────────────────────────────────────────
|
|
33
|
-
if [ -n "$IMAGE_TYPE" ]; then
|
|
34
|
-
if echo "$TYPES" | grep -qi "image/png"; then
|
|
35
|
-
"$WL_PASTE" --type image/png > "$PNGFILE" 2>/dev/null
|
|
36
|
-
elif echo "$IMAGE_TYPE" | grep -qi "svg"; then
|
|
37
|
-
"$WL_PASTE" --type "$IMAGE_TYPE" > "$SVGFILE" 2>/dev/null
|
|
38
|
-
command -v convert &>/dev/null \
|
|
39
|
-
&& convert "$SVGFILE" "$PNGFILE" 2>/dev/null \
|
|
40
|
-
|| cp "$SVGFILE" "$PNGFILE"
|
|
41
|
-
else
|
|
42
|
-
"$WL_PASTE" --type "$IMAGE_TYPE" > "$RAWFILE" 2>/dev/null
|
|
43
|
-
command -v convert &>/dev/null \
|
|
44
|
-
&& { convert "$RAWFILE" "$PNGFILE" 2>/dev/null && rm -f "$RAWFILE"; } \
|
|
45
|
-
|| mv "$RAWFILE" "$PNGFILE"
|
|
46
|
-
fi
|
|
47
|
-
|
|
48
|
-
# WSLg Wayland bridge sometimes lists image types but writes 0 bytes.
|
|
49
|
-
# Fall back to PowerShell (Windows clipboard API) when wl-paste produces empty output.
|
|
50
|
-
if [ ! -s "$PNGFILE" ]; then
|
|
51
|
-
WINPATH=$(wslpath -w "$PNGFILE" 2>/dev/null)
|
|
52
|
-
powershell.exe -NoProfile -Command "
|
|
53
|
-
Add-Type -AssemblyName System.Windows.Forms
|
|
54
|
-
\$img = [System.Windows.Forms.Clipboard]::GetImage()
|
|
55
|
-
if (\$img -ne \$null) { \$img.Save('$WINPATH') }
|
|
56
|
-
" 2>/dev/null
|
|
57
|
-
fi
|
|
58
|
-
|
|
59
|
-
[ -s "$PNGFILE" ] || exit 1
|
|
60
|
-
send_path "@$PNGFILE"
|
|
61
|
-
/usr/bin/wl-copy --type image/png < "$PNGFILE" 2>/dev/null || true
|
|
62
|
-
exit 0
|
|
63
|
-
fi
|
|
64
|
-
|
|
65
|
-
# ── Files from file manager ───────────────────────────────────────────────────
|
|
66
|
-
if echo "$TYPES" | grep -qi "text/uri-list"; then
|
|
67
|
-
URIS=$("$WL_PASTE" --type text/uri-list 2>/dev/null)
|
|
68
|
-
ALL_PATHS=""
|
|
69
|
-
while IFS= read -r uri; do
|
|
70
|
-
[ -z "$uri" ] && continue
|
|
71
|
-
fpath=$(printf '%s' "$uri" | sed 's|^file://||' \
|
|
72
|
-
| python3 -c "import sys,urllib.parse; print(urllib.parse.unquote(sys.stdin.read().strip()))" 2>/dev/null)
|
|
73
|
-
[ -n "$fpath" ] && ALL_PATHS="$ALL_PATHS @$fpath"
|
|
74
|
-
done <<< "$URIS"
|
|
75
|
-
[ -n "$ALL_PATHS" ] && send_path "${ALL_PATHS# }"
|
|
76
|
-
exit 0
|
|
77
|
-
fi
|
|
78
|
-
|
|
79
|
-
# ── HTML ──────────────────────────────────────────────────────────────────────
|
|
80
|
-
if echo "$TYPES" | grep -qi "text/html"; then
|
|
81
|
-
"$WL_PASTE" --type text/html > "$HTMLFILE" 2>/dev/null
|
|
82
|
-
send_path "$HTMLFILE"
|
|
83
|
-
exit 0
|
|
84
|
-
fi
|
|
85
|
-
|
|
86
|
-
# ── Plain text ────────────────────────────────────────────────────────────────
|
|
87
|
-
TEXT=$("$WL_PASTE" 2>/dev/null)
|
|
88
|
-
FIRST_LINE=$(printf '%s' "$TEXT" | head -1 | tr -d ' ')
|
|
89
|
-
if [ -f "$FIRST_LINE" ] || [ -d "$FIRST_LINE" ]; then
|
|
90
|
-
send_path "@$FIRST_LINE"
|
|
91
|
-
else
|
|
92
|
-
printf '%s' "$TEXT" > "$TXTFILE"
|
|
93
|
-
send_path "$TXTFILE"
|
|
94
|
-
fi
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
# Syncs active pane title → window name and (if window 1) session name.
|
|
3
|
-
# Respects @window-name-locked and @session-name-locked flags set by manual renames.
|
|
4
|
-
# Called from pane-title-changed hook and fallback hooks (after-select-window, client-focus-in).
|
|
5
|
-
#
|
|
6
|
-
# All tmux commands use -t PANE_ID so they target the correct session/window
|
|
7
|
-
# regardless of which session is "current" for this subprocess.
|
|
8
|
-
#
|
|
9
|
-
# Args:
|
|
10
|
-
# $1 pane_id e.g. %17
|
|
11
|
-
# $2 pane_active 1 or 0
|
|
12
|
-
# $3 window_index e.g. 1
|
|
13
|
-
# $4 pane_title e.g. "✳ Claude Code"
|
|
14
|
-
# $5 cwd_basename e.g. "Squidhub"
|
|
15
|
-
|
|
16
|
-
PANE_ID="$1"
|
|
17
|
-
PANE_ACTIVE="$2"
|
|
18
|
-
WINDOW_INDEX="$3"
|
|
19
|
-
PANE_TITLE="$4"
|
|
20
|
-
CWD="$5"
|
|
21
|
-
|
|
22
|
-
# Always clear the placeholder hash — pane now has a real title
|
|
23
|
-
tmux set-option -pt "$PANE_ID" @pane-hash "" 2>/dev/null || true
|
|
24
|
-
|
|
25
|
-
# Only the active pane drives window/session naming
|
|
26
|
-
[ "$PANE_ACTIVE" = "1" ] || exit 0
|
|
27
|
-
|
|
28
|
-
# Rename window only if user has not manually locked it
|
|
29
|
-
wl=$(tmux show-options -wqv -t "$PANE_ID" @window-name-locked 2>/dev/null)
|
|
30
|
-
if [ -z "$wl" ]; then
|
|
31
|
-
tmux rename-window -t "$PANE_ID" -- "$PANE_TITLE" 2>/dev/null || true
|
|
32
|
-
fi
|
|
33
|
-
|
|
34
|
-
# Rename session (with cwd suffix for uniqueness) only if:
|
|
35
|
-
# - this is window 1, AND
|
|
36
|
-
# - user has not manually locked the session name
|
|
37
|
-
if [ "$WINDOW_INDEX" = "1" ]; then
|
|
38
|
-
sl=$(tmux show-options -qv -t "$PANE_ID" @session-name-locked 2>/dev/null)
|
|
39
|
-
if [ -z "$sl" ]; then
|
|
40
|
-
TARGET="$PANE_TITLE · $CWD"
|
|
41
|
-
# If another session already has this name, append short pane ID to disambiguate
|
|
42
|
-
EXISTING=$(tmux list-sessions -F "#{session_name}" 2>/dev/null | grep -Fx "$TARGET")
|
|
43
|
-
CURRENT=$(tmux display-message -p -t "$PANE_ID" "#{session_name}" 2>/dev/null)
|
|
44
|
-
if [ -n "$EXISTING" ] && [ "$CURRENT" != "$TARGET" ]; then
|
|
45
|
-
# Strip % from pane ID for a clean suffix e.g. "✳ Claude Code · Squidhub · 20"
|
|
46
|
-
SUFFIX="${PANE_ID#%}"
|
|
47
|
-
TARGET="$PANE_TITLE · $CWD · $SUFFIX"
|
|
48
|
-
fi
|
|
49
|
-
tmux rename-session -t "$PANE_ID" -- "$TARGET" 2>/dev/null || true
|
|
50
|
-
fi
|
|
51
|
-
fi
|
|
52
|
-
|
|
53
|
-
# Force status bar to repaint immediately
|
|
54
|
-
tmux refresh-client -S 2>/dev/null || true
|