tissue status
Show tissue branch details and status.
Tissue Command
tissue status
Manual Workflow (bash + git)
Basic status check
# Check tissue setup status
tissue_status() {
echo "Tissue Status Report"
echo "===================="
echo ""
# Check if issues branch exists
if git show-ref --verify --quiet refs/heads/issues; then
echo "✓ Issues branch exists"
else
echo "✗ Issues branch not found"
return 1
fi
# Check if worktree is set up
WORKTREE_PATH=$(git worktree list | grep "issues" | awk '{print $1}')
if [ -n "$WORKTREE_PATH" ]; then
echo "✓ Worktree configured at: $WORKTREE_PATH"
else
echo "✗ No worktree found for issues branch"
fi
# Count issues by status using yq
if [ -d "../issues" ] || [ -n "$WORKTREE_PATH" ]; then
ISSUES_DIR="${WORKTREE_PATH:-../issues}"
echo ""
echo "Issue Statistics:"
echo "-----------------"
TOTAL=0
OPEN=0
IN_PROGRESS=0
CLOSED=0
BLOCKED=0
for file in "$ISSUES_DIR"/*.md; do
[ -f "$file" ] || continue
[ "$(basename "$file")" = "README.md" ] && continue
((TOTAL++))
STATUS=$(yq --front-matter '.status // "unknown"' "$file" 2>/dev/null)
case "$STATUS" in
open) ((OPEN++)) ;;
in-progress) ((IN_PROGRESS++)) ;;
closed) ((CLOSED++)) ;;
blocked) ((BLOCKED++)) ;;
esac
done
echo "Total issues: $TOTAL"
if [ "$TOTAL" -gt 0 ]; then
echo " Open: $OPEN"
echo " In Progress: $IN_PROGRESS"
echo " Closed: $CLOSED"
echo " Blocked: $BLOCKED"
fi
fi
# Check sync status with remote
echo ""
echo "Remote Status:"
echo "--------------"
cd "$ISSUES_DIR" 2>/dev/null || cd ../issues 2>/dev/null || {
echo "Cannot access issues directory"
return 1
}
# Fetch latest (without merging)
git fetch origin issues 2>/dev/null
# Check if we're behind or ahead
LOCAL=$(git rev-parse issues 2>/dev/null)
REMOTE=$(git rev-parse origin/issues 2>/dev/null)
BASE=$(git merge-base issues origin/issues 2>/dev/null)
if [ "$LOCAL" = "$REMOTE" ]; then
echo "✓ In sync with remote"
elif [ "$LOCAL" = "$BASE" ]; then
BEHIND=$(git rev-list --count issues..origin/issues)
echo "⚠ Behind remote by $BEHIND commits"
echo " Run: tissue pull"
elif [ "$REMOTE" = "$BASE" ]; then
AHEAD=$(git rev-list --count origin/issues..issues)
echo "⚠ Ahead of remote by $AHEAD commits"
echo " Run: tissue push"
else
echo "⚠ Diverged from remote"
echo " Local and remote have diverged. Manual merge required."
fi
}
tissue_status
What tissue does for you:
- Provides comprehensive status overview
- Checks configuration integrity
- Shows sync status with remote
- Identifies issues needing attention
- Validates issue file structure
- Reports on recent activity
- Performs health checks
- Shows statistics and metrics
- Alerts on stale or blocked issues
- Manages worktree status