Skip to content
Back to skills

Ss

ASecurity

Load screenshots, shared files, or directories from the Dropbox screenshots directory — the shorthand for '/db screenshots/'. Use when the user invokes /ss, including inline forms like '/ss webdaw/ use its docs'. NEVER manually list/read files from the screenshots dir — this skill handles Dropbox sync delays, freshness checks and retry logic that manual reads miss. Supports: /ss (latest 1), /ss 2 or /ss latest3 (latest N), /ss filename.png (exact or substring), /ss dirname/, /ss full-path, /s...

  • 12 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 8, 2026
documentationshellbash

Works with

  • claude code

Security analysis

A100/100

Scanned September 8, 2026

npx -y skills add Takazudo/claude-resources --skill ss --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Ss?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Ss
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/takazudo-claude-resources-7a6b1495/badge)](https://www.skillsdirectory.com/skills/takazudo-claude-resources-7a6b1495)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: ss
description: "Load screenshots, shared files, or directories from the Dropbox screenshots directory — the shorthand for '/db screenshots/'. Use when the user invokes /ss, including inline forms like '/ss webdaw/ use its docs'. NEVER manually list/read files from the screenshots dir — this skill handles Dropbox sync delays, freshness checks and retry logic that manual reads miss. Supports: /ss (latest 1), /ss 2 or /ss latest3 (latest N), /ss filename.png (exact or substring), /ss dirname/, /ss full-path, /ss a.png b.png (multiple), and non-image files (/ss report.html)."
disable-model-invocation: false
argument-hint: "[N | latestN | filename | dirname/ | file1 file2 ...]"
allowed-tools: Read, Bash(ls *), Bash(find *), Bash(stat *), Bash(for *), Bash(while *), Bash(head *), Bash(seq *), Bash(sleep *), Bash(printf *), Bash(sort *), Bash(cut *)
---

# Screenshot loader

`/ss <arg>` is `/db screenshots/<arg>`, plus the latest-N selection below — the user shares a screenshot and invokes `/ss` within seconds, so "the newest file" needs its own handling.

**Invocation epoch:** !`date +%s`

Keep this as `CUTOFF`. In latest-N mode, only files with mtime `<= CUTOFF` are eligible, so a screenshot taken *after* the user typed `/ss` can never displace the one they meant.

## Base directory

`$DROPBOX_SCREENSHOTS_DIR` (= `$DROPBOX_ROOT/screenshots`). If unset or missing, stop and say so — do not guess. On Claude Code web this is expected: report that the screenshot is unreachable rather than substituting another file.

## Resolve the argument

Read `$HOME/.claude/skills/db/references/resolve.md` and apply it with **BASE = `$DROPBOX_SCREENSHOTS_DIR`** for every mode except latest-N: directories, exact and substring filenames, multiple files, non-image types, sync-delay retries, placeholder materialization.

Latest-N is the one mode that engine does not cover — it is below.

## Latest N images

Triggered by an empty argument (N = 1), a bare number (`/ss 2`), or `latestN` (`/ss latest3`). These are never multi-file arguments.

1. **Sleep 3 seconds first.** The screenshot is usually still syncing; this alone prevents the most common failure, returning yesterday's file.
2. List top-level images (`png jpg jpeg gif webp tiff`), keep mtime `<= CUTOFF`, newest first, take N.
3. **Freshness check:** the newest result must have mtime `>= CUTOFF - 120`. If everything is older, the new screenshot has not landed yet.
4. If stale, re-list every 5 seconds for up to 24 rounds.
5. On timeout, present what exists **with an explicit stale warning** — never silently pass off an old file as the requested one.

```bash
# mtime_of() is defined in resolve.md — redefine it in this shell first
CUTOFF=<invocation epoch>
FRESH=$((CUTOFF - 120))
sleep 3
for i in $(seq 1 24); do
  FILES=$(find "$DROPBOX_SCREENSHOTS_DIR" -maxdepth 1 -type f \
    \( -iname '*.png' -o -iname '*.jpg' -o -iname '*.jpeg' \
       -o -iname '*.gif' -o -iname '*.webp' -o -iname '*.tiff' \) 2>/dev/null |
    while IFS= read -r f; do
      m=$(mtime_of "$f"); [ -n "$m" ] && [ "$m" -le "$CUTOFF" ] && printf '%s\t%s\n' "$m" "$f"
    done | sort -rn | head -n "$N" | cut -f2-)
  NEWEST=$(printf '%s\n' "$FILES" | head -n 1)
  [ -n "$NEWEST" ] && [ "$(mtime_of "$NEWEST")" -ge "$FRESH" ] && break
  sleep 5
done
```

## Loaded screenshots are the context

The user just took these and invoked `/ss` — they are the request, not decoration. Never load them, judge them "not related", and carry on with the prior conversation. If they look obviously stale, apply the wait-and-recheck or ask step from `resolve.md` ("Loaded material is intentional context") — one or the other, never neither.

## Related skills

- `/db` — same engine from the Dropbox root, for anything outside `screenshots/`

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.