Agent skill

App Settings Migration

by SurveyController in SurveyController/SurveyController

面向 SurveyController 仓库的设置、路径与配置迁移技能。用于修改 software/app/、software/io/config/、software/core/config/ 里的 QSettings 键、用户目录、配置文件路径、schema 版本、序列化字段、默认值和兼容策略,避免升级后读错配置、写错目录或把旧配置直接干爆。适合做预防性演进,不适合只修表面报错。

GPL-3.0Auto-check passedTesting & QA

Install App Settings Migration

skills CLI
$ npx skills add SurveyController/SurveyController --skill app-settings-migration -a claude-code

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

GitHub CLI
$ gh skill install SurveyController/SurveyController app-settings-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/SurveyController/SurveyController.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.codex/skills/app-settings-migration .claude/skills/app-settings-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
app-settings-migration
GitHub stars
142
Token cost
~732 tokens
SKILL.md length
144 words
Files
2
Skills in repo
9
Repo updated
First seen
Licence
GPL-3.0

At a glance

面向 SurveyController 仓库的设置、路径与配置迁移技能。用于修改 software/app/、software/io/config/、software/core/config/ 里的 QSettings 键、用户目录、配置文件路径、schema 版本、序列化字段、默认值和兼容策略,避免升级后读错配置、写错目录或把旧配置直接干爆。适合做预防性演进,不适合只修表面报错。

  • Works in 5 steps: 先分清这次改的是哪层。 → 先判断是不是兼容改动。 → 优先保旧配置可读。 → …
  • Testing & QA work in your project
  • SKILL.md covers must_read, workflow, hard_rules and migration_patterns, plus 3 more sections
  • Calls uv and rg; needs CONFIG_DIRECTORY_SETTING_KEY

What it does

App Settings Migration is an agent skill from SurveyController/SurveyController. 面向 SurveyController 仓库的设置、路径与配置迁移技能。用于修改 software/app/、software/io/config/、software/core/config/ 里的 QSettings 键、用户目录、配置文件路径、schema 版本、序列化字段、默认值和兼容策略,避免升级后读错配置、写错目录或把旧配置直接干爆。适合做预防性演进,不适合只修表面报错。

Its SKILL.md is about 730 tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `agents/openai.yaml`).

It sits in Testing & QA. The repository describes itself as: 适用于问卷星、腾讯问卷、Credamo见数平台的纯HTTP高并发提交程序. The licence is GPL-3.0.

When your agent uses it

  • Testing & QA work in your project

Example prompts

  • “/app-settings-migration”

Requirements

  • Python 3
  • A credential in CONFIG_DIRECTORY_SETTING_KEY

Workflow steps

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

  1. 先分清这次改的是哪层。
  2. 先判断是不是兼容改动。
  3. 优先保旧配置可读。
  4. UI 和存储一起改。
  5. 改完后补回归。

What it can do on your machine

Read from SKILL.md and the folder at commit 1a22ba3. 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

    Shell commands in SKILL.md call:

    • uv
    • rg

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

  • Network

    No URLs in SKILL.md. Its commands use uv, which can reach the network depending on how they are called.

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

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • CONFIG_DIRECTORY_SETTING_KEY

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

Context cost

App Settings Migration loads about 732 tokens when it runs. Until then it costs about 55 tokens; SKILL.md has 144 words of instructions outside code blocks.

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

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 SurveyController/SurveyController at commit 1a22ba3, republished under its GPL-3.0 licence (© SurveyController). 144 words, ~732 tokens.

Download SKILL.mdSave it as .claude/skills/app-settings-migration/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
app-settings-migration
description
面向 SurveyController 仓库的设置、路径与配置迁移技能。用于修改 `software/app/`、`software/io/config/`、`software/core/config/` 里的 QSettings 键、用户目录、配置文件路径、schema 版本、序列化字段、默认值和兼容策略,避免升级后读错配置、写错目录或把旧配置直接干爆。适合做预防性演进,不适合只修表面报错。

App Settings Migration

这个 skill 处理“配置怎么演进才不炸”。 重点是路径、QSettings、配置文件 schema、默认值和 UI 同步一起看,不让升级把用户数据搞烂。

must_read

  • software/app/settings_store.py
  • software/app/user_paths.py
  • software/app/runtime_paths.py
  • software/io/config/store.py
  • software/core/config/codec.py
  • software/core/config/schema.py
  • 涉及配置展示时再读对应 UI 页面

workflow

  1. 先分清这次改的是哪层。
    • QSettings 键和值:software/app/settings_store.py
    • 用户目录、日志、缓存、更新目录:software/app/user_paths.py
    • 安装目录和只读资源目录:software/app/runtime_paths.py
    • 配置文件读写:software/io/config/store.py
    • schema、字段归一化、序列化:software/core/config/codec.py
  2. 先判断是不是兼容改动。
    • 只加默认值
    • 改字段语义
    • 改路径来源
    • 改 schema 版本
    • 删旧字段
  3. 优先保旧配置可读。
    • 新字段先给默认值
    • 旧字段要删时,先决定是迁移、忽略还是明确报错
    • 不准偷偷把用户配置写到安装目录
  4. UI 和存储一起改。
    • 设置页显示
    • 运行时 config snapshot
    • 保存和加载
    • 报错文案
  5. 改完后补回归。

hard_rules

  1. 用户可写数据只能走 software/app/user_paths.py。
  2. software/app/runtime_paths.py 只表示安装目录和只读资源目录,别拿去存配置。
  3. CONFIG_DIRECTORY_SETTING_KEY 这种 QSettings 键改名时,要同步考虑旧值读取和页面回填。
  4. 改 config_schema_version 前先想清楚。 当前 software/core/config/codec.py 只接受当前 schema,旧版本会直接报不兼容。 如果你要改成可迁移,必须把迁移逻辑写清楚,别半吊子。
  5. 不要把敏感配置写进仓库、日志或测试样本。

migration_patterns

常见改法:

  • 新增配置字段:
    • 在 RuntimeConfig 增字段
    • 在 normalize_runtime_config_payload() 给默认值
    • 在 serialize_runtime_config() 和相关 UI 同步路径确认能 round-trip
  • 调整字段范围或格式:
    • 在 codec 里做归一化
    • 保持旧输入还能落到新格式
    • 补边界测试
  • 改默认配置目录:
    • 改 user_paths.py
    • 检查设置页是否还允许自定义目录
    • 检查 ensure_user_data_directories() 和打开目录行为
  • 删除旧字段:
    • 先确认有没有现网旧配置
    • 能迁就迁
    • 不能迁就明确报错,并补测试锁住错误信息

project_conventions

  • 默认配置文件路径来自 get_default_runtime_config_path()。
  • 当前配置文件允许带 JSON 注释,清洗逻辑在 software/io/config/store.py::_strip_json_comments()。
  • 不兼容 schema 和已移除字段现在会抛 ValueError。
  • QSettings 隔离测试依赖 SURVEYCONTROLLER_QSETTINGS_FILE,CI/unit_tests/conftest.py 已经有夹具。
  • 配置快照和序列化会影响 UI、执行引擎、反填和平台 provider,别只改一头。

common_commands

bash
uv run pytest CI/unit_tests/app/test_config_codec.py
uv run pytest CI/unit_tests/app/test_config_store.py
uv run pytest CI/unit_tests/app/test_settings_page_qtbot.py
uv run pytest CI/unit_tests/app/test_workbench_presenter.py
uv run pytest CI/unit_tests/app/test_workbench_pages_smoke.py
uv run python CI/python_ci.py
uv run python CI/python_ci.py --full
rg "config_schema_version|QSettings|config_directory|user_paths|load_config|save_config" software CI/unit_tests/app

validation_checklist

  • 是否先分清了 QSettings、用户路径、配置文件、schema 这几层。
  • 是否没有把可写数据放进安装目录。
  • 新增字段是否有默认值,旧配置是否还能读。
  • 删除旧字段时,是否明确做了迁移或明确报错。
  • 设置页展示、保存、重新加载是否一致。
  • 是否补了 test_config_codec.py、test_config_store.py 或相关 qtbot 测试。
  • 涉及启动或页面装配时,是否跑了 CI/python_ci.py --full。

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

Files

SKILL.md and 1 other file in .codex/skills/app-settings-migration of SurveyController/SurveyController.

  • SKILL.md
  • agents/openai.yaml

Open the folder on GitHubat commit 1a22ba3

Compare with similar skills

App Settings 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.

App Settings Migration compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
App Settings Migration this skillSurveyController/SurveyController142—~732Automated safety check: PassGPL-3.0
Web Application Testinganthropics/skills180k51 repos~966Automated safety check: PassApache-2.0
Diagnosing Bugsfossasia/eventyay-interpretation1.6k32 repos~2.1kAutomated safety check: PassApache-2.0
TDDpietheinstrengholt/rssmonster56430 repos~906Automated safety check: PassMIT
TDD WorkflowhellangleZ/burn-in-cceverywhere-ralph11211 repos~2.4kAutomated safety check: PassNone
TDDsanity-io/sanity6.4k20 repos~1kAutomated safety check: PassMIT

Similar skills

  • Web Application Testing

    anthropics/skills

    Official

    Tests local web applications with Python Playwright scripts, checking frontend behavior, capturing screenshots and reading browser console logs.

    180k GitHub starsUsed in 51 repos~966 tokens
    Testing & QAAuto-check passed
  • Diagnosing Bugs

    fossasia/eventyay-interpretation

    Diagnosis loop for hard bugs and performance regressions. An agent skill from fossasia/eventyay-interpretation.

    1.6k GitHub starsUsed in 32 repos~2.1k tokens
    Testing & QAAuto-check passed
  • TDD

    pietheinstrengholt/rssmonster

    Test-driven development. An agent skill from pietheinstrengholt/rssmonster.

    564 GitHub starsUsed in 30 repos~906 tokens
    Testing & QAAuto-check passed
  • TDD Workflow

    hellangleZ/burn-in-cceverywhere-ralph

    A skill your agent uses when writing new features, fixing bugs, or refactoring code.

    112 GitHub starsUsed in 11 repos~2.4k tokens
    Testing & QAAuto-check passed
  • TDD

    sanity-io/sanity

    Official

    Test-driven development with red-green-refactor loop. An agent skill from sanity-io/sanity.

    6.4k GitHub starsUsed in 20 repos~1k tokens
    Testing & QAAuto-check passed
  • Context Driven Development

    Ibrahim-3d/orchestrator-supaconductor

    A skill your agent uses when working with Conductor's context-driven development methodology, managing project context artifacts, or understanding the relationship between product.md, tech-stack.md…

    380 GitHub starsUsed in 9 repos~2.9k tokens
    Testing & QAAuto-check passed

More from SurveyController/SurveyController

All 9 skills in this repo
  • Async HTTP Pipeline

    SurveyController/SurveyController

    面向 SurveyController 仓库的全异步 HTTP 解析与执行链路技能。用于修改或排查 software/network/http/、software/core/engine/、software/providers/、software/network/proxy/ 以及各平台 provider 的异步请求、响应解析、任务调度、并发控制、超时、重试、取消和资源释放问题。适合处理纯…

    142 GitHub stars~648 tokensUpdated 19 days ago
    Auto-check passed
  • Gui Development

    SurveyController/SurveyController

    面向 SurveyController 桌面端的 GUI 开发与界面修复技能。用于修改 software/ui/ 下的 PySide6 + QFluentWidgets 页面、弹窗、导航、配置编辑、运行状态展示和日志界面,处理信号槽、线程协作、对象生命周期、布局、主题和窗口缩放问题。适合做桌面界面开发、交互修复和配置同步,不适合把耗时逻辑直接塞进主线程。

    142 GitHub stars~580 tokensUpdated 19 days ago
    Auto-check passed
  • Log Config Debugging

    SurveyController/SurveyController

    面向 SurveyController 的日志、配置与报错排查技能。用于根据用户提供的日志、截图、配置文件、调用栈、运行环境和最近改动定位根因,修复 software/app/、software/io/、software/logging/、software/network/、software/ui/…

    142 GitHub stars~481 tokensUpdated 19 days ago
    Auto-check passed
  • Playwright Pipeline

    SurveyController/SurveyController

    面向 SurveyController 仓库 v3 分支的 Playwright 作答执行层技能。仅在修改或排查 Playwright 作答链路、异步浏览器 owner/context 池、BrowserDriver 封装、页面加载、运行时答题、翻页、提交、取消、超时、资源释放和并发调度时使用。只能用于 v3 分支;只允许系统自带 Microsoft Edge,不允许安装或引入…

    142 GitHub stars~945 tokensUpdated 19 days ago
    Auto-check passed
  • Question Parser Rules

    SurveyController/SurveyController

    面向 SurveyController 仓库的题型解析、字段映射与 parser 规则技能。用于修改 wjx/provider/、tencent/provider/、credamo/provider/、software/core/questions/、software/providers/ 中的题目结构解析、元数据字段、题型识别、逻辑规则标记、答案模型映射和最小兼容适配。适合处理 parser…

    142 GitHub stars~653 tokensUpdated 19 days ago
    Auto-check passed
  • Structure Refactor

    SurveyController/SurveyController

    面向 SurveyController 仓库的目录结构重构与模块拆分技能。用于整理 software/、wjx/、tencent/、credamo/、CI/unittests/ 等真实目录,处理文件移动、命名调整、导入修复、测试路径更新、资源路径修复、CI 检查联动。适合在需要小步重构、保持行为不变、清理屎山边界时使用,不适合纯样式改名或无关大洗牌。

    142 GitHub stars~645 tokensUpdated 19 days ago
    Auto-check passed

Categories

Questions about App Settings Migration

What does App Settings Migration do?

面向 SurveyController 仓库的设置、路径与配置迁移技能。用于修改 software/app/、software/io/config/、software/core/config/ 里的 QSettings 键、用户目录、配置文件路径、schema 版本、序列化字段、默认值和兼容策略,避免升级后读错配置、写错目录或把旧配置直接干爆。适合做预防性演进,不适合只修表面报错。. App Settings Migration is an agent skill from SurveyController/SurveyController.

When should I use App Settings Migration?

App Settings Migration fits situations like: testing & QA work in your project.

How do I install App Settings Migration in Claude Code?

Run `npx skills add SurveyController/SurveyController --skill app-settings-migration -a claude-code`. Or copy the skill folder (.codex/skills/app-settings-migration in SurveyController/SurveyController) into .claude/skills/app-settings-migration in your project. Claude Code loads it when a task matches its description.

How do I install App Settings Migration in Codex?

Run `npx skills add SurveyController/SurveyController --skill app-settings-migration -a codex`. Or copy the skill folder (.codex/skills/app-settings-migration in SurveyController/SurveyController) into .agents/skills/app-settings-migration in your project. Codex loads it when a task matches its description.

Can I use App Settings 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 SurveyController/SurveyController --skill app-settings-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/app-settings-migration, .gemini/skills/app-settings-migration, .github/skills/app-settings-migration and .opencode/skills/app-settings-migration in your project.

What does App Settings Migration need to run?

Going by SKILL.md and its folder, App Settings Migration needs the command-line tools its instructions call (uv and rg) and credentials named CONFIG_DIRECTORY_SETTING_KEY. Our summary lists: Python 3; A credential in CONFIG_DIRECTORY_SETTING_KEY.

Does App Settings Migration access the network?

SKILL.md contains no URLs. Its commands use uv, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is App Settings 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 App Settings Migration use?

App Settings Migration is published under the GPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does App Settings Migration use?

About 732 tokens (SKILL.md is roughly 2.9k 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 App Settings Migration?

Skills that share tags, products or a category with App Settings Migration: Web Application Testing (anthropics/skills, 180k stars), Diagnosing Bugs (fossasia/eventyay-interpretation, 1.6k stars), TDD (pietheinstrengholt/rssmonster, 564 stars) and TDD Workflow (hellangleZ/burn-in-cceverywhere-ralph, 112 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains App Settings Migration?

SurveyController (a GitHub organization) maintains it in SurveyController/SurveyController, which has 142 GitHub stars. The repository holds 9 skills in this directory. The repository was last updated on September 18, 2026.

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