agentsclimarketplace

Work resume

Skill telefrek/vallorcine/skills/work-resume

Show where a work group is and what to run next — entry point after /clear or interruptionFrom its SKILL.md

Install
npx -y skills add telefrek/vallorcine --skill work-resume

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

24.9 KB, ~6.5k tokens by cl100k_base, as published. Nobody here has run it

/work-resume "[group-slug]" [--list]

Tells you where a work group is and what to run next. Use this after /clear, a crash, a context switch, or when picking up a group on a different machine.

This skill is the work-layer counterpart to /feature-resume. It is designed to be cheap — it reads structured state files and a cached readiness summary instead of running the full resolver every time, so you can call it after /clear without re-loading the entire group's context into the conversation.

Modes:

  • (no arg, or --list) — list every active work group with a one-line summary
  • <group-slug> — show that group's current state and the next command

/work-resume differs from /work-status:

  • /work-status runs the full resolver and prints the complete readiness table (heavy output suited to "what's the state of everything?")
  • /work-resume reads the cached _readiness.json and the _decompose-progress.md checkpoint to give a thin "where am I and what do I run next" answer (cheap output suited to "I just cleared context")

If the cache is missing or stale, /work-resume runs the resolver once to refresh it. Subsequent calls in the same session re-read the cache.


Step 0 — List mode (no arg or --list)

If no group slug was given, or --list was passed:

  1. Enumerate directories under .work/ (excluding _archive, _refs).
  2. For each group, read .work/<group>/work.md for the goal and .work/<group>/_readiness.json for the cached summary. Apply the same mtime freshness check as Step 3 — if the cache is missing or any WD-*.md / work.md is newer than the cache, run bash .claude/scripts/work-resolve.sh <group> >/dev/null to refresh.
  3. Track the refresh count. Before the per-group loop, set refreshed=0. Increment it whenever you run the resolver for a group. After the loop, if refreshed > 0 print this single diagnostic line BELOW the active-groups table (printing it before the table would require buffering output without knowing the count yet — printing it after lets the LLM emit the table first):
    (refreshed N stale readiness cache(s); first /work-resume after
     state mutations always pays this cost)
    
    This makes the cost visible — list-mode is "cheap" only when caches are already fresh; otherwise it pays for N resolver runs and the user deserves to know.
  4. Display:
───────────────────────────────────────────────
📋 ACTIVE WORK GROUPS
───────────────────────────────────────────────
  <group-slug>      <ready>R / <blocked>B / <specifying>S / <implementing>I / <complete>C of <total>     <goal one-liner>
  <group-slug>      <ready>R / <blocked>B / <specifying>S / <implementing>I / <complete>C of <total>     <goal one-liner>
───────────────────────────────────────────────
Pick one: /work-resume "<group-slug>"

If no work groups exist:

No active work groups. Create one with:
  /work "<goal>"

Stop. Do not continue to other steps.


Step 1 — Validate group

Check .work/<group-slug>/ exists. If not:

Work group '<group-slug>' not found.

Available groups:

List directories under .work/ (one per line). Stop.

Read .work/<group-slug>/work.md for the goal description.

Display opening header:

───────────────────────────────────────────────
🔄 WORK RESUME · <group-slug>
───────────────────────────────────────────────
Goal: <goal from work.md>

Step 2 — Detect in-flight decompose checkpoint

Check .work/<group-slug>/_decompose-progress.md. If it exists, read its frontmatter phase: field and phase_a_complete_at: timestamp.

Step 2a — Detect orphan checkpoints

A "checkpoint exists" signal isn't always meaningful. Three cases need distinct handling:

  1. Genuinely in-flight — the decomposition needs resuming.

  2. Orphan (deletion at end of Phase C didn't run) — kit bug, manual ctrl-C between manifest write and checkpoint clear, or external interruption. The decomposition is complete on disk but the checkpoint was never cleared.

  3. Stale-by-age — a checkpoint that's been sitting for over a week. Even if the group hasn't moved past DRAFT, the user has clearly abandoned this attempt; offer recovery.

Detection rule (2026-05-11 adversarial MED #3 added a third signal): classify the checkpoint as one of three states. Check in order; first match wins.

  • (c) Corrupted / partially-deletedmanifest.md lists WDs in its Work Definitions table but FEWER WD-*.md files exist on disk than the table claims, OR the manifest lists WDs that the filesystem does not contain at all. Pre-fix: the orphan classifier fell through to "genuinely in-flight" when the find returned zero past-DRAFT WDs (because there were zero WDs at all), telling the user to run /work-decompose to resume — but the underlying state is corrupt, not in-flight. The user might restore from git, rerun decompose, or accept the loss.

    Detection:

    manifest_count=$(awk '/^\| WD-[0-9]/' .work/<group-slug>/manifest.md 2>/dev/null | wc -l)
    fs_count=$(find .work/<group-slug> -maxdepth 1 -name 'WD-*.md' 2>/dev/null | wc -l)
    if [[ "$manifest_count" -gt 0 ]] && (( fs_count < manifest_count )); then
      classify_as=corrupted_partial
    fi
    

    Surface via AskUserQuestion:

    • Restore from git (recommended if the user remembers wiping the dir) — exit so the user can git checkout HEAD -- .work/<group>
    • Re-run /work-decompose from scratch — discard the checkpoint and the inconsistent manifest entries
    • Stop — exit and investigate

Otherwise, classify the checkpoint as an orphan if EITHER:

  • (a) At least one WD has progressed past DRAFT. Use find ... -exec rather than piping to xargsxargs without -r hangs on macOS when the input is empty:

    find ".work/<group-slug>" -maxdepth 1 -name 'WD-*.md' \
         -exec grep -lE '^[[:space:]]*status:[[:space:]]*(SPECIFYING|SPECIFIED|IMPLEMENTING|COMPLETE)$' {} + \
         2>/dev/null | head -1
    

    If the command prints any path, treat as orphan. Phase C must have run (it's what writes WD-NN.md files) for any WD to exist past DRAFT; the checkpoint is therefore an orphan that survived a missed cleanup.

  • (b) phase_a_complete_at from the checkpoint frontmatter is more than 7 days old — stale-by-age.

    Cross-platform date parsing (2026-05-11 adversarial HIGH #5): the checkpoint timestamp is ISO-8601 (e.g., 2026-05-04T18:30:00Z). Use this fallback chain (GNU → BSD → fail loudly), since GNU date -d doesn't exist on macOS without coreutils:

    ts="<phase_a_complete_at value>"
    age_secs=""
    parsed=$(date -u -d "$ts" +%s 2>/dev/null \
          || date -u -j -f "%Y-%m-%dT%H:%M:%SZ" "$ts" +%s 2>/dev/null \
          || echo "")
    if [[ -n "$parsed" ]]; then
      age_secs=$(( $(date -u +%s) - parsed ))
    else
      echo "WARN: could not parse phase_a_complete_at='$ts' — treating as fresh" >&2
      # Conservative default: treat as fresh so the orphan rule doesn't
      # auto-fire on a parse failure. The "WD past DRAFT" signal still
      # catches genuine orphans without needing this branch.
    fi
    # 7 days = 604800 seconds
    if [[ -n "$age_secs" && "$age_secs" -gt 604800 ]]; then
      # stale-by-age — classify as orphan
      :
    fi
    

WD-count matching (the original heuristic) was fragile because users can add or remove WDs by hand, and Phase A's "tentative" list isn't a reliable count baseline. "Any WD past DRAFT" is a much stronger signal because no manual workflow takes a WD past DRAFT without /work-plan or /work-start having run, both of which presuppose that decomposition is complete.

For an orphan:

⚠ /work-decompose checkpoint found, but the group looks fully decomposed
  (<N> WDs in manifest, checkpoint last updated <date>).

  This is most likely an orphan from a prior session that ended
  between writing the WDs and clearing the checkpoint.

Use AskUserQuestion with options:

  • "Delete the orphan and continue" (Recommended)
  • "Treat as in-flight and resume /work-decompose"
  • "Stop"

If "Delete and continue": rm .work/<group-slug>/_decompose-progress.md and continue to Step 3 readiness routing. If "Treat as in-flight": fall through to the in-flight surface below. If "Stop": exit.

For a genuinely in-flight checkpoint:

⚠ /work-decompose was interrupted in Phase <A|B>.
  Checkpoint:    .work/<group-slug>/_decompose-progress.md
  Last updated:  <timestamp from frontmatter>

To resume:
  /work-decompose "<group-slug>"
  → the skill will detect the checkpoint, summarize Phase A's seam
    analysis, and continue from where it left off.

Stop. Do not continue to readiness routing — finishing decomposition is the prerequisite, and showing READY/BLOCKED tables before WDs are finalized is misleading.


Step 2c — Detect orchestrator state

If .work/<group-slug>/.orchestrator/ exists, the /work-run orchestrator (when present) was running a dynamic-DAG dispatch over this group and either finished, was paused for escalation, or crashed.

The orchestrator's persistent state is independent of any /work-decompose checkpoint and lives in its own directory tree — state.json + queue.txt + in-flight/ + completed/ + blocked/.

Display its current state before routing the user to readiness:

bash .claude/scripts/work-orchestrator.sh status "<group-slug>"

Interpret the output:

  • Paused: YES — the orchestrator halted on a user-required escalation. Read each blocked/<wd>.json to find the escalation_path and show the user the underlying question. The user should resolve the design point (edit specs/ADRs/context as needed), then either:

    • Run work-orchestrator.sh unblock <group> <wd-id> + resume <group> to re-queue the blocked WD, OR
    • Re-invoke /work-run (when it lands in PR C) — the skill detects the orchestrator state and resumes from where it stopped.
  • In-flight > 0 — a previous orchestrator session crashed or its parent exited mid-run. Run work-orchestrator.sh hung "<group-slug>" --threshold-seconds 1800 to find WDs whose .feature/<slug>/status.md hasn't been touched for 30+ minutes; those are recoverable via /feature-resume <slug> or by clearing the in-flight record and re-queueing.

  • All sets empty / completed = total — the orchestrator finished; the state directory can be cleared at the user's discretion with work-orchestrator.sh clear <group-slug>.

Use AskUserQuestion (2026-05-11 adversarial HIGH #6) — NOT prose — to surface the recovery options. The exact option set depends on the state shown above:

  • Paused: YES → options: Run /work-run "<group-slug>" --resume (recommended — surfaces escalations + resumes when resolved) / Inspect blocked/ manually / Stop.
  • In-flight > 0 (no Paused) → options: Run work-orchestrator.sh hung "<group-slug>" (recommended — surfaces stuck WDs) / Run /work-run "<group-slug>" --resume (re-enter the dispatch loop) / Stop.
  • All sets empty / completed == total → options: Run work-orchestrator.sh clear "<group-slug>" / Keep state for inspection / Continue to readiness routing.

When the user picks an option, route accordingly. Suppress Step 5's routing rules 3/4/5/6/7 for any WD that appears in .orchestrator/in-flight/, .orchestrator/blocked/, or .orchestrator/completed/ — those WDs are owned by /work-run's state machine and Step 5 must not present a conflicting recommendation (see Implementation Notes → "Source-of-truth precedence").


Step 3 — Refresh readiness cache (if needed)

Decide whether the cache is fresh with this two-stage check:

CACHE=".work/<group-slug>/_readiness.json"
# Stage 1: cache missing OR any source file is strictly newer →
# regenerate. The strict mtime comparison covers most cases.
needs_refresh=0
if [[ ! -f "$CACHE" ]]; then
  needs_refresh=1
elif find ".work/<group-slug>" -maxdepth 1 \
        \( -name 'WD-*.md' -o -name 'work.md' \) \
        -newer "$CACHE" -print -quit 2>/dev/null | grep -q .; then
  needs_refresh=1
else
  # Stage 2 (2026-05-11 adversarial MED #2): handle 1-second mtime
  # granularity. On filesystems where mtime has seconds resolution
  # (older HFS+, some network FS), a same-second edit then resolve
  # would show as "not strictly newer" and the cache would serve
  # stale data. Compare mtimes for equality and force a refresh
  # when any source file has the SAME mtime as the cache — the
  # rare false-positive cost (one extra resolver run) is cheap
  # compared to the stale-cache cost.
  cache_mtime=$(stat -c %Y "$CACHE" 2>/dev/null || stat -f %m "$CACHE" 2>/dev/null || echo 0)
  for src in .work/<group-slug>/WD-*.md .work/<group-slug>/work.md; do
    [[ -f "$src" ]] || continue
    src_mtime=$(stat -c %Y "$src" 2>/dev/null || stat -f %m "$src" 2>/dev/null || echo 0)
    if [[ "$src_mtime" -eq "$cache_mtime" ]]; then
      needs_refresh=1
      break
    fi
  done
fi

if (( needs_refresh )); then
  bash .claude/scripts/work-resolve.sh "<group-slug>" >/dev/null
fi

The find ... -newer test prints any WD or work.md whose mtime exceeds the cache's mtime; piping to grep -q . short-circuits on the first hit. When the cache is fresh, find finds nothing and we skip the resolver entirely — that's the cheap-path that makes /work-resume worth invoking after a /clear.

After the conditional refresh, read .work/<group-slug>/_readiness.json to render the rest of this skill's output.

If JSON parse fails AFTER a fresh resolver run, this is a real defect — either work-resolve.sh is broken or the cache file was clobbered. Do NOT silently fall back to parsing the markdown report. Surface the error explicitly:

ERROR: Could not parse .work/<group-slug>/_readiness.json after a
       fresh resolver run. The cache may be corrupt.

       Diagnostics:
         <one-line python json.load error>

       Recovery:
         rm .work/<group-slug>/_readiness.json
         bash .claude/scripts/work-resolve.sh "<group-slug>"
       (and file an issue if it recurs.)

Stop after surfacing. A silent fallback would mask the underlying bug and let downstream skills consume stale or wrong state.


Step 4 — Display compact status

From the parsed JSON summary and wds array, render:

SUMMARY
  <total> WDs · <ready> ready · <blocked> blocked · <specifying> specifying · <specified> specified · <implementing> implementing · <complete> complete

ACTIVE
  <only show WDs whose status is SPECIFYING, IMPLEMENTING, or BLOCKED>
  WD-<nn>  <title>                  <STATUS>   <one-line context — for BLOCKED, the first blocker; for SPECIFYING/IMPLEMENTING, " feature: <slug>">
  ...

NEXT UP (if any READY or SPECIFIED WDs)
  <first 3 READY or SPECIFIED WDs by deps_count ascending, unblocks descending>
  WD-<nn>  <title>                  <READY|SPECIFIED>

Skip any section with no rows. If every WD is COMPLETE, replace ACTIVE and NEXT UP with:

✓ All work definitions complete.

Do NOT print the full status table — that's /work-status's job. The goal here is to keep this skill's output under ~30 lines so it can be re-invoked cheaply after /clear.


Step 5 — Determine the next command

Apply this routing in order — first match wins. Every recommendation that names a specific command MUST use AskUserQuestion to confirm before that command runs (2026-05-11 adversarial HIGH #3). Prose "NEXT STEP" blocks let auto-mode Claude execute the recommendation without user input — the kit-development rule "Interactive prompt standard" says this is a correctness issue.

The general shape for each rule below:

  1. Display the diagnostic block (current state, what was found).
  2. Construct AskUserQuestion with 2-4 options + an Other escape hatch. Options always include at minimum:
    • <recommended command> — the rule's primary suggestion
    • Stop — exit without running anything
  3. Wait for the user's answer; only then execute (or surface alternatives via Other).

When a rule's recommendation depends on per-WD state (rule 0's stuck-marker enumeration), build the option list dynamically — one option per actionable WD, capped at 4 total with "Investigate manually" as the spillover.

  1. Any unacknowledged dispatch marker exists → a previous /work-start (sequential all or --parallel) dispatched a sub-agent whose result was never confirmed by the coordinator. Two known causes:

    • The Agent tool returned [Tool result missing due to internal error] (payload-lost), or
    • The user pressed ESC and the dispatch returned The user doesn't want to proceed with this tool use. The tool use was rejected. (user-stopped).

    In either case the WD's manifest status and .feature/ dir do not tell the full story — the coordinator's task list says in_progress but no result was ever recorded. The dispatch marker is the durable record.

    Run:

    bash .claude/scripts/work-dispatch.sh stuck "<group-slug>"
    

    One line per unacknowledged marker: <wd-id>|<dispatched_at>|<has_result>|<failure_reason>. If the list is empty, fall through to rule 1.

    For each stuck marker, gather filesystem evidence:

    • Does .feature/<group-slug>--<wd-slug>/ exist?
    • Is the WD's frontmatter status IMPLEMENTING (work-claim ran) or still SPECIFIED (sub-agent never claimed)?
    • Does .feature/<...>/cycle-log.md exist with content (sub-agent ran TDD cycles)?

    Display:

    ⚠ STUCK DISPATCHES detected in <group-slug>:
    
      WD-<nn> — dispatched <dispatched_at>
        Reason   : <failure_reason or "no result received">
        WD status: <SPECIFIED | IMPLEMENTING>
        .feature/: <present | absent>
        Cycle log: <empty | <N> cycles recorded>
    
        ```
    
    For each stuck marker, after surfacing the evidence, use
    `AskUserQuestion` (NOT prose) to route — same correctness reason
    as the rest of Step 5. The option set depends on the evidence
    shape:
    
    - **`failure_reason: user-stopped` AND WD status is SPECIFIED AND
      `.feature/` is absent** → the dispatch was cancelled before any
      work happened. Options:
      - **Re-dispatch `/work-start "<group-slug>" <wd-id>`** — recommended
      - **Clear the marker without re-dispatching**
      - **Investigate manually** — exit
    - **`failure_reason: payload-lost` (or any) AND WD status is
      IMPLEMENTING AND `.feature/` is present** → the sub-agent
      claimed the WD and started; the result was lost. Options:
      - **Resume via `/feature-resume "<group-slug>--<wd-slug>"`** — recommended
      - **Clear the marker (accept the partial result)**
      - **Investigate manually** — exit
    - **Any other shape** → surface the evidence and use
      `AskUserQuestion` with options: **Clear marker** / **Investigate
      manually** / **Stop**. Do not auto-route.
    
    After the user acts (re-dispatch, /feature-resume, or accepts the
    loss), they should clear the marker:
    ```bash
    bash .claude/scripts/work-dispatch.sh clear "<group-slug>" "<wd-id>"
    

    /work-resume SHOULD remind the user of this at the end of the stuck-marker block.

    Do NOT silently proceed to the rest of the routing list while markers are unacknowledged — recovery is the user's call, not the skill's.

  2. Group has zero WDs (total == 0) → decomposition has not run yet. Display the diagnostic, then AskUserQuestion:

    • Run /work-decompose "<group-slug>" — recommended
    • Stop — exit; the user will decompose later
  3. Any WD is SPECIFYING with a .feature/<group>--<wd-slug>/ dir present → user has an in-flight specification feature. Display the WD context, then AskUserQuestion:

    • Run /feature-resume "<group>--<wd-slug>" — recommended (the WD with the most-recently-modified status.md when several match)
    • Show alternatives — list the other in-flight SPECIFYING WDs
    • Stop — exit

    When more than one WD is SPECIFYING, the recommended option picks the WD whose .feature/<group>--<wd-slug>/status.md was modified most recently (active work tends to leave the freshest mtime). Fall back to the WD-NN.md mtime only when no matching .feature/ exists locally — in that case rule 4 already handled it.

  4. Any WD is IMPLEMENTING with a .feature/<group>--<wd-slug>/ dir present → user has an in-flight implementation feature. Display the WD context, then AskUserQuestion:

    • Run /feature-resume "<group>--<wd-slug>" — recommended
    • Show alternatives — list the other in-flight IMPLEMENTING WDs
    • Stop — exit
  5. Any WD is SPECIFYING/IMPLEMENTING but the matching .feature/ directory does NOT exist on this machine → the in-flight feature was authored on another machine or in a clobbered workspace. Surface:

    NOTE: WD-<nn> is <STATUS> but .feature/<slug>/ is not present here.
          The feature was likely authored on another machine. Check git
          to see if a feature PR exists; otherwise, treat the WD as
          needing fresh planning.
    

    Do not auto-route — let the user decide.

  6. Any WD is SPECIFIED → planning is done, ready to implement. Display the count, then AskUserQuestion:

    • Run /work-start "<group-slug>" next — recommended; picks the highest-unblocking WD
    • Run /work-start "<group-slug>" all — start every SPECIFIED WD sequentially via sub-agents
    • Run /work-run "<group-slug>" — start all WDs as a dynamic-DAG dispatch (concurrent sub-agents)
    • Stop — exit
  7. Any WD is READY → planning is the next step. Display the count, then AskUserQuestion:

    • Run /work-plan "<group-slug>" next — recommended
    • Run /work-plan "<group-slug>" all — plan every READY WD
    • Stop — exit
  8. All remaining WDs are BLOCKED → list the unique unblock actions from wds[*].blockers. Display the grouped list, then AskUserQuestion with one option per distinct unblock action (capped at 4 total):

    • Run /spec-author "<id>" "<title>" — unblocks <N> WD(s)
    • Run /architect "<problem>" — unblocks <N> WD(s)
    • Run /research "<subject>" — unblocks <N> WD(s)
    • Stop / Show alternatives as spillover when >3 unblockers
  9. All WDs are COMPLETE → display:

    This group is finished.
    

    Then AskUserQuestion:

    • Run /feature-retro on the most-recently completed feature
    • Start a new group via /work "<goal>" (Other — collects goal)
    • Stop — exit

The AskUserQuestion IS the halt — Claude does not auto-invoke any of the recommended commands until the user picks one. This is the key correctness property: prose recommendations let auto-mode Claude execute without input; AskUserQuestion forces the wait.


Implementation notes

  • No subagent dispatch. This skill is intentionally lightweight. It reads files and renders text. Heavy lifting is delegated to /work-status, /work-plan, /work-start, and /feature-resume.

  • Source-of-truth precedence (2026-05-11 adversarial HIGH #7). Three state stores can disagree:

    1. WD frontmatter status: — canonical, written by work-claim.sh.
    2. .work/<group>/.orchestrator/ — written by /work-run's state machine. Records dispatch reality (in-flight / completed / blocked).
    3. _readiness.json — cached projection of #1 + dependency resolution.

    Precedence on conflict: .orchestrator/in-flight/ > frontmatter > cache. If a WD appears in .orchestrator/in-flight/<wd>.json, the orchestrator believes it's running — Step 5 routing rules 3/4/5/6/7 MUST suppress recommendations for that WD even if the frontmatter says SPECIFIED/READY (it can lag the orchestrator's view).

    This precedence is enforced in Step 2c, which displays orchestrator state BEFORE Step 5 enters routing. The user is expected to follow Step 2c's /work-run --resume recommendation when orchestrator state is non-empty rather than treat Step 5's NEXT STEP as authoritative.

  • JSON-first. Always prefer _readiness.json over re-running the resolver. The cache is regenerated whenever any WD frontmatter changes, so staleness is bounded by file mtime.

  • Idempotent. Running /work-resume twice in a row reads the cache twice with no side effects.

  • Survives /clear. All state lives in files. The skill needs no conversation context to operate.

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Gives 0 of the 12 instructions most hr recruiting skills give in ~6.5k tokens

Counted across 356 of the 357 authors here whose files we hold, read 2026-08-07

  • Quantify achievements with specific metricsin 14 of 356, across 6 files
  • Keep the resume under two pagesin 14 of 356, across 6 files
  • Request the full job description if not providedin 12 of 356, across 4 files
  • Extract keywords and prioritize job requirementsin 12 of 356, across 4 files
  • Stop and ask for clarification if required inputs are missingin 12 of 356, across 5 files
  • Map candidate experience to job requirementsin 11 of 356, across 3 files
  • Ask if the user wants adjustmentsin 11 of 356, across 3 files
  • Provide strengths and gap analysis after the resumein 10 of 356, across 2 files
  • Request candidate background details if not providedin 10 of 356, across 2 files
  • Format experience bullets as action verb plus resultin 10 of 356, across 2 files
  • Ask for missing inputs before startingin 10 of 356, across 9 files
  • Use exact job description terminologyin 9 of 356, across 1 file

Said here and by no other author read

  • enumerate active work groups in list mode
  • validate the specified group exists
  • detect in-flight decompose checkpoints
  • detect orphan decompose checkpoints
  • detect corrupted or partially deleted checkpoints
  • detect active orchestrator state

Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.