Skip to content
Back to skills

Refresh

ASecurity

Refresh threads_daily_tracker.json. Prefer the Threads API when available; fall back to authenticated browser profile scraping when API access is not available. Trigger words: 'refresh', 'update tracker', 'scrape profile', '更新貼文', '抓最新數據'.

  • 270 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added May 26, 2026
devopsbashapi

Works with

  • api

Security analysis

A100/100

Pro scans all 5 files and shows the line behind each finding

Scanned May 27, 2026

npx -y skills add akseolabs-seo/AK-Threads-booster --skill refresh --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Refresh?

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

Security grade badge for Refresh
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/akseolabs-seo-refresh/badge)](https://www.skillsdirectory.com/skills/akseolabs-seo-refresh)

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: refresh
description: "Refresh threads_daily_tracker.json. Prefer the Threads API when available; fall back to authenticated browser profile scraping when API access is not available. Trigger words: 'refresh', 'update tracker', 'scrape profile', '更新貼文', '抓最新數據'."
version: "2.0.0"
allowed-tools: Read, Write, Edit, Bash, Glob, Grep
---

# AK-Threads-Booster Profile Refresh Module

You are the tracker-refresh worker for the AK-Threads-Booster system. Pull the user's latest posts, metrics, and comments, then merge them into `threads_daily_tracker.json` without losing existing data.

Two refresh sources are supported and must be tried in this order:

1. **Threads API** — preferred when a token is available. Faster, more reliable, better for scheduled refresh.
2. **Authenticated browser automation** — fallback for users who cannot or do not want to use the API. Scrapes the user's own logged-in Threads profile.

Browser scraping is slower and more fragile than the API. Use it only when the API path is unavailable or the user explicitly asks for browser-based refresh.

---

## Step 0: Pick the Refresh Source

Follow `references/api-path.md` to decide whether the API path applies. If it does, run the API commands there and **stop** — do not run the Chrome flow. If the user explicitly asks for Chrome even with a token, honor that and note the override in the final summary.

---

## Execution Modes

`/refresh` runs in **interactive mode** (direct user invocation — may ask questions, pause) or **headless mode** (scheduler, other skill, or `--headless` in `$ARGUMENTS` — must not ask or pause).

Full contract, recognized arguments, log schema, and preconditions (browser automation available, logged in, handle match, handle known) are in `references/headless-contract.md`. Every precondition failure in headless mode maps to a specific `reason` value for the log entry.

---

## Principles and Knowledge

Load `knowledge/_shared/principles.md` before scraping. Follow discovery order in `knowledge/_shared/discovery.md`. For `/refresh`, also load:

- `data-confidence.md`
- `chrome-selectors.md`

Never hard-code selectors in this skill. `chrome-selectors.md` is the source of truth.

---

## Chrome Execution Flow

Follow `references/chrome-flow.md` for Steps 1–7:

- **Step 1** — load or create tracker (ask for handle in interactive mode if needed)
- **Step 2** — navigate to `https://www.threads.com/@<handle>` and confirm header handle
- **Step 2.5** — mandatory selector health check from `knowledge/chrome-selectors.md` (abort with `login_wall` or `selector_health_failed` on failure)
- **Step 3** — scroll until no new posts, `--max-posts` reached, or `--max-minutes` reached
- **Step 4** — extract post data (id, text, created_at, permalink, media_type, metrics); preserve last-known tracker value when a metric token fails to parse
- **Step 5** — extract replies only for posts that are new or whose reply count changed
- **Step 5.5** — sweep expired `pending-` placeholders (into `discarded_drafts[]`, merge snapshot into real post if matched)
- **Step 6** — merge into tracker per the 6-rule merge matrix; keep existing `prediction_snapshot` untouched
- **Step 7** — persist under `templates/FAILSAFE.md`: backup → prune to 5 → write temp → atomic rename → regenerate companions → rebuild compiled memory → write headless log if applicable. Companion and compiled-memory failures are non-fatal.

### Step 8: Report

Use the exact report shape in `references/output-and-failures.md`. The failure-mode table is there too — consult it before giving up on a partial refresh.

---

## Boundary Reminders

- It is valid for this skill to write the tracker, backup files, refresh log, and companion files. Those writes are part of the contract.
- It is valid for this skill to rebuild `compiled/` after tracker changes. Compiled memory is a cache; if rebuild fails, keep the refreshed tracker and report that low-token runtime is stale.
- Do not modify `prediction_snapshot`, `review_state`, or enriched analysis fields outside the merge rules in `references/chrome-flow.md`.
- If a post is no longer visible on the profile, report it but do not delete historical data.
- Browser automation actions must stay inside `threads.com` during this flow.

Files in this skill

  • SKILL.md4.2 KB
  • references/api-path.md1.5 KB
  • references/chrome-flow.md3.7 KB
  • references/headless-contract.md2.7 KB
  • references/output-and-failures.md1 KB

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.