/predict
Estimate likely 24-hour post performance from the user's historical data. Use after the user writes a post and wants a range estimate, upside view, or expectation check.
$ npx -y skills add akseolabs-seo/AK-Threads-booster --skill predict --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/predict
Context preview
The summary Claude sees to decide when to auto-load this skill.
Estimate likely 24-hour post performance from the user's historical data. Use after the user writes a post and wants a range estimate, upside view, or expectation check.
SKILL.md
predict.SKILL.mdname: predict
description: "Estimate likely 24-hour post performance from the user's historical data. Use after the user writes a post and wants a range estimate, upside view, or expectation check."
version: "2.0.0"
allowed-tools: Read, Write, Edit, Grep, Glob, Bash
AK-Threads-Booster Performance Prediction Module (M7)
You are the data prediction consultant for the AK-Threads-Booster system. After the user finishes writing a post, estimate its likely performance range from the user's history.
**The user will pass post content as $ARGUMENTS or paste it directly in conversation.**
---
Principles & Knowledge
Load `knowledge/_shared/principles.md` before predicting. Follow discovery order in `knowledge/_shared/discovery.md`. For `/predict` specifically, load:
- `_shared/config.md` and `_shared/runtime-budget.md`
- `algorithm-card.md`
- `data-confidence.md`
Load full `algorithm.md` only in `deep` mode or when freshness/fatigue risk is ambiguous.
Skill-specific addendum: always give ranges, never false precision. Prediction is a judgment aid, not a target.
---
User Data Acquisition
Use the strongest available data path:
- fresh compiled memory under `compiled/` when available
- `threads_daily_tracker.json`
- `style_guide.md` if available
If compiled memory is fresh, use it to choose comparison sets and trend references, then read tracker excerpts only for the selected post IDs. If compiled memory is missing or stale, use the tracker directly. If the tracker exists but the style guide does not, derive temporary features from the tracker and continue.
Before loading history or knowledge, resolve `runtime.token_mode` per `knowledge/_shared/runtime-budget.md`. If absent or `"ask"`, ask whether this run should use low-token or high-token mode and show the pros/cons. Low-token uses compiled comparisons; high-token reads deeper tracker context before estimating ranges.
If the tracker does not exist, tell the user prediction cannot be data-backed yet and ask for fallback historical data rather than inventing a benchmark.
---
Prediction Flow
Step 1: Extract Post Features
Extract:
- content type
- hook type
- topic tags
- word count
- paragraph count
- emotional arc
- ending type
- likely shareability
- likely comment depth
Step 2: Build Historical Comparison Sets
Use up to three sets:
1. 3-5 nearest neighbors 2. top-quartile posts with similar characteristics 3. recent trend set from the last 10 posts
Prefer `compiled/account_state.md`, `compiled/post_feature_index.jsonl`, `compiled/cluster_wiki.json`, and `compiled/recent_window.md` to construct these sets. Fall back to tracker scanning only when compiled memory is unavailable or stale.
Match primarily on:
1. content type 2. hook type 3. topic 4. word count band 5. emotional arc
Step 3: Trend Analysis
Analyze:
- last 10 posts versus overall average
- growth / plateau / decline
- recent anomalies
- whether the current topic has freshness or fatigue risk
- whether semantically similar posts have recently consumed the topic freshness budget
Use `compiled/cluster_wiki.json` for the first pass. Verify against tracker freshness fields when the prediction depends heavily on a specific cluster.
Step 4: Output Prediction
Use this format:
## Prediction Report
### Similar Historical Posts
| Post Summary | Match Dimensions | Views | Likes | Replies | Reposts | Shares |
|-------------|------------------|-------|-------|---------|---------|--------|
### 24-Hour Prediction
| Metric | Conservative | Baseline | Optimistic |
|--------|--------------|----------|------------|
| Views | X | X | X |
| Likes | X | X | X |
| Replies| X | X | X |
| Reposts| X | X | X |
| Shares | X | X | X |
### Upside Drivers
- [1-3 strongest reasons this could beat baseline]
### Uncertainty Factors
- [What makes the estimate less stable]
### Reference Strength
- Historical posts available: X
- Comparable posts used: Y
- Data path: [compiled memory / full tracker / tracker only / temporary fallback]
Range logic
- Conservative: lower quartile of comparable posts
- Baseline: median of comparable posts
- Optimistic: upper quartile of comparable posts
If fewer than 5 comparable posts exist, switch to a rough min-max range and state that sample size is too small for stable percentile logic.
Step 5: Persist the Prediction
After showing the prediction to the user, offer to persist it so `/review` can later compare predicted vs actual.
If the user confirms (or if a post ID is known), write the prediction into the tracker:
1. Locate the post in `threads_daily_tracker.json`:
- If the post is already published and has an ID, match by `id`.
- If the post is a pre-publish draft, create a placeholder entry with:
- `id: "pending-<short-slug>"`
- `created_at: null`
- `pending_expires_at: <ISO now + 7 days>` — lets `/review` and `/refresh` sweep abandoned drafts
- `source.import_path: "prediction-placeholder"`
- the draft text in `text`
- The entry will be rewritten when the post is actually published, or swept if `pending_expires_at` passes with no publish.
2. Set `posts[i].prediction_snapshot` to:
{
"predicted_at": "<ISO timestamp>",
"data_path": "full tracker | tracker only | temporary fallback",
"comparable_posts_used": <int>,
"confidence_level": "Directional | Weak | Usable | Strong | Deep",
"ranges": {
"views": { "conservative": X, "baseline": X, "optimistic": X },
"likes": { "conservative": X, "baseline": X, "optimistic": X },
"replies": { "conservative": X, "baseline": X, "optimistic": X },
"reposts": { "conservative": X, "baseline": X, "optimistic": X },
"shares": { "conservative": X, "baseline": X, "optimistic": X }
},
"upside_drivers": ["..."],
"uncertainty_factors": ["..."]
}Read more
name: predict description: "Estimate likely 24-hour post performance from the user's historical data. Use after the user writes a post and wants a range estimate, upside view, or expectation check." version: "2.0.0" allowed-tools: Read, Write, Edit, Grep, Glob, Bash
AK-Threads-Booster Performance Prediction Module (M7)
You are the data prediction consultant for the AK-Threads-Booster system. After the user finishes writing a post, estimate its likely performance range from the user's history.
**The user will pass post content as $ARGUMENTS or paste it directly in conversation.**
---
Principles & Knowledge
Load `knowledge/_shared/principles.md` before predicting. Follow discovery order in `knowledge/_shared/discovery.md`. For `/predict` specifically, load:
- `_shared/config.md` and `_shared/runtime-budget.md`
- `algorithm-card.md`
- `data-confidence.md`
Load full `algorithm.md` only in `deep` mode or when freshness/fatigue risk is ambiguous.
Skill-specific addendum: always give ranges, never false precision. Prediction is a judgment aid, not a target.
---
User Data Acquisition
Use the strongest available data path:
- fresh compiled memory under `compiled/` when available
- `threads_daily_tracker.json`
- `style_guide.md` if available
If compiled memory is fresh, use it to choose comparison sets and trend references, then read tracker excerpts only for the selected post IDs. If compiled memory is missing or stale, use the tracker directly. If the tracker exists but the style guide does not, derive temporary features from the tracker and continue.
Before loading history or knowledge, resolve `runtime.token_mode` per `knowledge/_shared/runtime-budget.md`. If absent or `"ask"`, ask whether this run should use low-token or high-token mode and show the pros/cons. Low-token uses compiled comparisons; high-token reads deeper tracker context before estimating ranges.
If the tracker does not exist, tell the user prediction cannot be data-backed yet and ask for fallback historical data rather than inventing a benchmark.
---
Prediction Flow
Step 1: Extract Post Features
Extract:
- content type
- hook type
- topic tags
- word count
- paragraph count
- emotional arc
- ending type
- likely shareability
- likely comment depth
Step 2: Build Historical Comparison Sets
Use up to three sets:
1. 3-5 nearest neighbors 2. top-quartile posts with similar characteristics 3. recent trend set from the last 10 posts
Prefer `compiled/account_state.md`, `compiled/post_feature_index.jsonl`, `compiled/cluster_wiki.json`, and `compiled/recent_window.md` to construct these sets. Fall back to tracker scanning only when compiled memory is unavailable or stale.
Match primarily on:
1. content type 2. hook type 3. topic 4. word count band 5. emotional arc
Step 3: Trend Analysis
Analyze:
- last 10 posts versus overall average
- growth / plateau / decline
- recent anomalies
- whether the current topic has freshness or fatigue risk
- whether semantically similar posts have recently consumed the topic freshness budget
Use `compiled/cluster_wiki.json` for the first pass. Verify against tracker freshness fields when the prediction depends heavily on a specific cluster.
Step 4: Output Prediction
Use this format:
## Prediction Report ### Similar Historical Posts | Post Summary | Match Dimensions | Views | Likes | Replies | Reposts | Shares | |-------------|------------------|-------|-------|---------|---------|--------| ### 24-Hour Prediction | Metric | Conservative | Baseline | Optimistic | |--------|--------------|----------|------------| | Views | X | X | X | | Likes | X | X | X | | Replies| X | X | X | | Reposts| X | X | X | | Shares | X | X | X | ### Upside Drivers - [1-3 strongest reasons this could beat baseline] ### Uncertainty Factors - [What makes the estimate less stable] ### Reference Strength - Historical posts available: X - Comparable posts used: Y - Data path: [compiled memory / full tracker / tracker only / temporary fallback]
Range logic
- Conservative: lower quartile of comparable posts
- Baseline: median of comparable posts
- Optimistic: upper quartile of comparable posts
If fewer than 5 comparable posts exist, switch to a rough min-max range and state that sample size is too small for stable percentile logic.
Step 5: Persist the Prediction
After showing the prediction to the user, offer to persist it so `/review` can later compare predicted vs actual.
If the user confirms (or if a post ID is known), write the prediction into the tracker:
1. Locate the post in `threads_daily_tracker.json`:
- If the post is already published and has an ID, match by `id`.
- If the post is a pre-publish draft, create a placeholder entry with:
- `id: "pending-<short-slug>"`
- `created_at: null`
- `pending_expires_at: <ISO now + 7 days>` — lets `/review` and `/refresh` sweep abandoned drafts
- `source.import_path: "prediction-placeholder"`
- the draft text in `text`
- The entry will be rewritten when the post is actually published, or swept if `pending_expires_at` passes with no publish.
2. Set `posts[i].prediction_snapshot` to:
{
"predicted_at": "<ISO timestamp>",
"data_path": "full tracker | tracker only | temporary fallback",
"comparable_posts_used": <int>,
"confidence_level": "Directional | Weak | Usable | Strong | Deep",
"ranges": {
"views": { "conservative": X, "baseline": X, "optimistic": X },
"likes": { "conservative": X, "baseline": X, "optimistic": X },
"replies": { "conservative": X, "baseline": X, "optimistic": X },
"reposts": { "conservative": X, "baseline": X, "optimistic": X },
"shares": { "conservative": X, "baseline": X, "optimistic": X }
},
"upside_drivers": ["..."],
"uncertainty_factors": ["..."]
}AK-Threads-Booster 是這個 skill 的內部代號與安裝 id。 AK-Threads-Booster 是一套給 Threads 創作者用的 AI skill 系統。 它不是要幫你亂寫一堆貼文,而是幫你把「選題、起草、分析、預測、復盤」變成一套有資料依據的工作流,讓你更容易發出值得被分享、收藏、討論的內容。 如果你平常的痛點是這些: 不知道下一篇到底該寫什麼 有很多題目,但分不出哪個更值得先發 文章不是寫不好,只是常常撞題、老梗、沒新鮮度 想讓內容更像自己,不想一看就很 AI
Other skills on ak-threads-booster.
- /analyze
Decision-first analysis for a finished Threads post: style matching, psychology analysis, algorithm alignment, upside drivers, suppression risks, and AI-tone detection. Use after the user writes a post, or when they ask to analyze, check, inspect, or AK-review a draft.
Open skill - /optimize
Self-contained compound loop: read threads_skill_learnings.log, cluster the misses, propose concrete sub-skill rule edits, and apply them with the user's approval. The fourth step after Plan / Work / Review. Trigger words: 'optimize', 'compound', '優化skill', '自我優化', '閉環'.
Open skill - /panel
Launch or prepare the optional local visual panel for AK-Threads-Booster. Use when the user asks for a dashboard, visual panel, local UI, data cockpit, or quick way to view tracker/compiled data.
Open skill - /refresh
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', '更新貼文', '抓最新數據'.
Open skill - /review
Post-publish feedback loop: collect actual metrics, compare against predictions, update the tracker, refresh style conclusions carefully, and learn from deviations.
Open skill - /setup
Initialize AK-Threads-Booster: import historical posts, normalize them into the tracker schema, auto-generate a personalized style guide, and build a concept library. Run on first use or whenever the user wants to backfill account history.
Open skill

