Agent skill

Gorse 05 Config Migration

by divinevideo in divinevideo/divine-mobile

Fix Gorse 0.5.x recommendation engine silently disabled or degraded due to config incompatibility with 0.4.

MPL-2.0Auto-check passed

Install Gorse 05 Config Migration

skills CLI
$ npx skills add divinevideo/divine-mobile --skill gorse-05-config-migration -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install divinevideo/divine-mobile gorse-05-config-migration --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/divinevideo/divine-mobile.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/gorse-05-config-migration .claude/skills/gorse-05-config-migration && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
gorse-05-config-migration
GitHub stars
266
Token cost
~1.5k tokens
SKILL.md length
351 words
Files
1
Skills in repo
103
Repo updated
First seen
Licence
MPL-2.0

At a glance

Fix Gorse 0.5.x recommendation engine silently disabled or degraded due to config incompatibility with 0.4.

  • Works in 5 steps: [[recommend.non-personalized]] uses Expr… → [[recommend.item-to-item]] types: "tags"… → [[recommend.user-to-user]] types:… → …
  • Gorse 0.5 recommendations are poor/empty despite having data
  • SKILL.md covers Problem, Context / Trigger Conditions, Solution and Verification, plus 2 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Gorse 05 Config Migration is an agent skill from divinevideo/divine-mobile. Fix Gorse 0.5.x recommendation engine silently disabled or degraded due to config incompatibility with 0.4. Use when: (1) Gorse 0.5 recommendations are poor/empty despite having data, (2) collaborative filtering appears disabled even though [recommend.collaborative] section exists, (3) migrating Gorse config from 0.4 to 0.5, (4) old config keys like [recommend.popular], [recommend.neighbors], [recommend.online], [recommend.offline] are being used with Gorse 0.5. Critical: type="mf" must be explicitly set in…

Its SKILL.md is about 1.5k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

The licence is MPL-2.0.

When your agent uses it

  • Gorse 0.5 recommendations are poor/empty despite having data
  • Collaborative filtering appears disabled even though [recommend.collaborative] section exists
  • Migrating Gorse config from 0.4 to 0.5
  • Old config keys like [recommend.popular]

Example prompts

  • “/gorse-05-config-migration”

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. [[recommend.non-personalized]] uses Expr language for score/filter functions
  2. [[recommend.item-to-item]] types: "tags" (label similarity), "users" (collaborative), "embedding"
  3. [[recommend.user-to-user]] types: "items" (shared items), "tags", "embedding"
  4. [recommend.ranker] types: "none", "fm" (factorization machines), "llm"
  5. Custom feedback types: Any string is valid in positive_feedback_types (e.g., "extended_view", "bookmark")

What it can do on your machine

Read from SKILL.md and the folder at commit 6487b05. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are toml).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • github.com
    • gorse.io

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Gorse 05 Config Migration loads about 1.5k tokens when it runs. Until then it costs about 152 tokens; SKILL.md has 351 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~152
When it runs · the whole SKILL.md, loaded when a task matches
~1.5k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from divinevideo/divine-mobile at commit 6487b05, republished under its MPL-2.0 licence (© divinevideo). 351 words, ~1,498 tokens.

Download SKILL.mdSave it as .claude/skills/gorse-05-config-migration/SKILL.md (or your agent's skills folder).
name
gorse-05-config-migration
description
Fix Gorse 0.5.x recommendation engine silently disabled or degraded due to config incompatibility with 0.4. Use when: (1) Gorse 0.5 recommendations are poor/empty despite having data, (2) collaborative filtering appears disabled even though [recommend.collaborative] section exists, (3) migrating Gorse config from 0.4 to 0.5, (4) old config keys like [recommend.popular], [recommend.neighbors], [recommend.online], [recommend.offline] are being used with Gorse 0.5. Critical: type="mf" must be explicitly set in [recommend.collaborative] or CF is silently disabled (default "none").
author
Claude Code
version
1.0.0
date
2026-02-28

Gorse 0.5.x Config Migration from 0.4

Problem

Gorse 0.5 introduced breaking config changes from 0.4. Old config sections are silently ignored (no error, no warning), making it appear that features like collaborative filtering, trending, and item neighbors are configured when they're actually disabled.

The most critical issue: [recommend.collaborative] defaults to type = "none" in 0.5, meaning collaborative filtering is silently disabled unless you explicitly set type = "mf".

Context / Trigger Conditions

  • Gorse 0.5.x is deployed but recommendations seem random or low quality
  • Collaborative filtering doesn't seem to work despite config having [recommend.collaborative]
  • Config has old 0.4 sections: [recommend.popular], [recommend.neighbors], [recommend.online], [recommend.offline]
  • Upgrading from Gorse 0.4 to 0.5
  • Gorse master starts successfully but old config features don't take effect

Solution

Removed 0.4 Sections (silently ignored in 0.5)
0.4 Section0.5 Replacement
[recommend.popular][[recommend.non-personalized]] (TOML array of tables)
[recommend.neighbors][[recommend.item-to-item]] + [[recommend.user-to-user]]
[recommend.online] (explore/exploit)[recommend.ranker] (FM or LLM-based)
[recommend.offline][recommend.ranker] cache_expire + [recommend.fallback]
Removed 0.4 Keys (do not exist in 0.5)
  • enable_item_neighbor_index
  • enable_user_neighbor_index
  • item_neighbor_type
  • neighbor_type
  • explore_recommend
  • popular_window
Critical Fix: Enable Collaborative Filtering
toml
# 0.4 style (BROKEN in 0.5 — CF silently disabled):
[recommend.collaborative]
fit_period = "60m"
fit_epoch = 100

# 0.5 style (WORKING — must add type = "mf"):
[recommend.collaborative]
type = "mf"
fit_period = "60m"
fit_epoch = 100
Complete 0.5 Config Template
toml
[recommend]
cache_size = 100
cache_expire = "72h"
context_size = 100

[recommend.data_source]
positive_feedback_types = ["reaction", "comment", "repost"]
read_feedback_types = ["view"]
positive_feedback_ttl = 0
item_ttl = 0

# Collaborative filtering — MUST set type = "mf" to enable
[recommend.collaborative]
type = "mf"
fit_period = "60m"
fit_epoch = 100
optimize_period = "360m"
optimize_trials = 10

[recommend.collaborative.early_stopping]
patience = 10

# Trending/popular — TOML array syntax [[...]] for multiple leaderboards
[[recommend.non-personalized]]
name = "trending_weekly"
score = "count(feedback, .FeedbackType == 'reaction') + count(feedback, .FeedbackType == 'comment') * 2"
filter = "(now() - item.Timestamp).Hours() < 168"

# Content-based item similarity (requires items to have Labels)
[[recommend.item-to-item]]
name = "similar_content"
type = "tags"         # matches on item Labels

# Collaborative item similarity
[[recommend.item-to-item]]
name = "also_liked"
type = "users"        # users who liked X also liked Y

# User similarity
[[recommend.user-to-user]]
name = "similar_users"
type = "items"        # users who share liked items

# FM ranker blends all candidate sources
[recommend.ranker]
type = "fm"           # or "llm" for LLM-based reranking
recommenders = ["latest", "collaborative", "non-personalized/trending_weekly", "item-to-item/similar_content", "item-to-item/also_liked", "user-to-user/similar_users"]
fit_period = "60m"
fit_epoch = 100

[recommend.ranker.early_stopping]
patience = 10

[recommend.fallback]
recommenders = ["latest"]

[recommend.replacement]
enable_replacement = true
positive_replacement_decay = 0.8
read_replacement_decay = 0.6
Key 0.5 Config Differences
  1. [[recommend.non-personalized]] uses Expr language for score/filter functions

    • Available: count(feedback, .FeedbackType == 'X'), item.Timestamp, now()
    • Filter: (now() - item.Timestamp).Hours() < N
  2. [[recommend.item-to-item]] types: "tags" (label similarity), "users" (collaborative), "embedding"

  3. [[recommend.user-to-user]] types: "items" (shared items), "tags", "embedding"

  4. [recommend.ranker] types: "none", "fm" (factorization machines), "llm"

    • recommenders list uses "category/name" format to reference specific recommenders
  5. Custom feedback types: Any string is valid in positive_feedback_types (e.g., "extended_view", "bookmark")

Show full SKILL.md (112 more words)Show less

Verification

After updating the config:

  1. Restart Gorse master and check logs for config parse errors
  2. Visit Gorse dashboard (port 8088) — new recommenders should appear
  3. Check /api/dashboard/config endpoint to verify config was accepted
  4. After fit_period (default 60m), verify model training runs in worker logs

Notes

  • Gorse 0.5 does NOT warn about unrecognized config keys — they're silently ignored
  • The [[double.bracket]] syntax is TOML array of tables — allows multiple entries
  • The [single.bracket] syntax is a regular table — only one allowed
  • [recommend.ranker].recommenders must reference recommenders by their "category/name" path
  • Custom feedback types are supported — Gorse doesn't validate feedback type names

References

© divinevideo, MPL-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .agents/skills/gorse-05-config-migration of divinevideo/divine-mobile.

Open the folder on GitHubat commit 6487b05

Compare with similar skills

Gorse 05 Config Migration next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Gorse 05 Config Migration compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Gorse 05 Config Migration this skilldivinevideo/divine-mobile266—~1.5kAutomated safety check: PassMPL-2.0
Reversible MigrationJuliusBrussee/caveman111k1 repos~196Automated safety check: PassApache-2.0
Database Migrationsaffaan-m/ECC276k4 repos~3kAutomated safety check: PassMIT
Database Migrationsaffaan-m/ECC276k1 repos~2.4kAutomated safety check: PassMIT
Safe Database Migration Patternsaffaan-m/ECC276k—~3.3kAutomated safety check: PassMIT
Migrate Createruvnet/ruflo74k—~583Automated safety check: NotesMIT

Similar skills

  • Reversible Migration

    JuliusBrussee/caveman

    Implement reversible compatibility-safe transitions. Use for schema, data, API, protocol, configuration, or dependency migrations requiring rollback and…

    111k GitHub starsUsed in 1 repo~196 tokens
    DevelopmentAuto-check passed
  • Safe, reversible database migration patterns: forward-only production changes, expand-contract zero-downtime renames, concurrent indexes, batched backfills, and per-tool workflows for PostgreSQL…

    276k GitHub starsUsed in 4 repos~3k tokens
    DatabasesAuto-check passed
  • Şema değişiklikleri, veri migration'ları, rollback'ler ve PostgreSQL, MySQL ve yaygın ORM'ler (Prisma, Drizzle, Django, TypeORM, golang-migrate) arasında sıfır kesinti deployment'ları için…

    276k GitHub starsUsed in 1 repo~2.4k tokens
    DatabasesAuto-check passed
  • Rules and examples for safe, reversible schema changes in production: zero-downtime column and index changes, large data backfills and ORM migration workflows.

    276k GitHub stars~3.3k tokensUpdated 5 days ago
    DatabasesAuto-check passed
  • Migrate Create

    ruvnet/ruflo

    Create a new sequentially numbered database migration with up/down SQL files

    74k GitHub stars~583 tokensUpdated today
    DatabasesAuto-check: notes
  • Migration

    kortix-ai/suna

    How to change the database schema in this repo. An agent skill from kortix-ai/suna.

    20k GitHub stars~1.2k tokensUpdated today
    DatabasesAuto-check passed

More from divinevideo/divine-mobile

All 103 skills in this repo
  • Fix ArgoCD ExternalSecret deployment failing with "namespace X is not permitted in project Y".

    266 GitHub stars~931 tokensUpdated today
    Auto-check passed
  • Art Direct

    divinevideo/divine-mobile

    Art direction for any content — reads text, PDF, Word, HTML, PPT, then proposes 2-3 creative directions with photography style, mood, and visual language.

    266 GitHub stars~4.8k tokensUpdated today
    Auto-check passed
  • Async Await Null Race Condition

    divinevideo/divine-mobile

    Fix "Null check operator used on a null value" errors when an object is set to null during an async await.

    266 GitHub stars~881 tokensUpdated today
    Auto-check passed
  • AWS V4 Signing Custom Headers Gcs

    divinevideo/divine-mobile

    Add custom metadata headers (x-amz-meta-) to AWS v4 signed requests for GCS S3-compatible API.

    266 GitHub stars~1k tokensUpdated today
    Auto-check passed
  • Bash Herestring Newline Secrets

    divinevideo/divine-mobile

    Fix password/secret authentication failures caused by trailing newlines when creating Google Cloud secrets (or similar) with bash here-strings.

    266 GitHub stars~791 tokensUpdated today
    Auto-check passed
  • Fix silent video/media processing failures caused by URL extraction code that filters on file extensions (.mp4, .webm, .webp).

    266 GitHub stars~1.1k tokensUpdated today
    Auto-check passed

Questions about Gorse 05 Config Migration

What does Gorse 05 Config Migration do?

Fix Gorse 0.5.x recommendation engine silently disabled or degraded due to config incompatibility with 0.4. Gorse 05 Config Migration is an agent skill from divinevideo/divine-mobile.4.

When should I use Gorse 05 Config Migration?

Gorse 05 Config Migration fits situations like: gorse 0.5 recommendations are poor/empty despite having data; collaborative filtering appears disabled even though [recommend.collaborative] section exists; migrating Gorse config from 0.4 to 0.5; old config keys like [recommend.popular].

How do I install Gorse 05 Config Migration in Claude Code?

Run `npx skills add divinevideo/divine-mobile --skill gorse-05-config-migration -a claude-code`. Or copy the skill folder (.agents/skills/gorse-05-config-migration in divinevideo/divine-mobile) into .claude/skills/gorse-05-config-migration in your project. Claude Code loads it when a task matches its description.

How do I install Gorse 05 Config Migration in Codex?

Run `npx skills add divinevideo/divine-mobile --skill gorse-05-config-migration -a codex`. Or copy the skill folder (.agents/skills/gorse-05-config-migration in divinevideo/divine-mobile) into .agents/skills/gorse-05-config-migration in your project. Codex loads it when a task matches its description.

Can I use Gorse 05 Config Migration in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add divinevideo/divine-mobile --skill gorse-05-config-migration -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/gorse-05-config-migration, .gemini/skills/gorse-05-config-migration, .github/skills/gorse-05-config-migration and .opencode/skills/gorse-05-config-migration in your project.

What does Gorse 05 Config Migration need to run?

SKILL.md names no scripts, command-line tools or credentials: Gorse 05 Config Migration is instructions for the agent only.

Does Gorse 05 Config Migration access the network?

SKILL.md names 2 domains. As links in the text: github.com and gorse.io. This is read from the text; nothing was executed.

Is Gorse 05 Config Migration safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Gorse 05 Config Migration use?

Gorse 05 Config Migration is published under the MPL-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Gorse 05 Config Migration use?

About 1.5k tokens (SKILL.md is roughly 6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Gorse 05 Config Migration?

Skills that share tags, products or a category with Gorse 05 Config Migration: Reversible Migration (JuliusBrussee/caveman, 111k stars), Database Migrations (affaan-m/ECC, 276k stars), Database Migrations (affaan-m/ECC, 276k stars) and Safe Database Migration Patterns (affaan-m/ECC, 276k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Gorse 05 Config Migration?

divinevideo (a GitHub organization) maintains it in divinevideo/divine-mobile, which has 266 GitHub stars. The repository holds 103 skills in this directory. The repository was last updated on October 9, 2026.

Source: divinevideo/divine-mobile on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.