Skip to content

Per-skill config overrides (whitelist dirs / extension sets) #15

Closed

Description

@skyzhao1223

Roadmap item. The 8 organizer skills hardcode their compliant shapes; real libraries have intentional exceptions (e.g. a 原盘/VIDEO_TS tree, deliberate sample files).

Design: an optional skills/<name>/config.json overlay next to the installed copy:

  • whitelist_dirs: paths/patterns the scanner skips or treats as compliant
  • extension_overrides: per-extension rules (e.g. treat .ass as sidecar)
  • merged over built-in defaults; absent file = today's behavior (zero breaking change)

Touches all 8 scanners + nas-report router docs; add smoke fixtures for override behavior. Good task for someone who wants to learn the skill framework end to end.

Background: docs/CONTRIBUTION_IDEAS.md → Skills family.

Activity

  1. skyzhao1223 commented on Oct 9, 2026

    @skyzhao1223
    OwnerAuthor

    8 个专项 scanner 全部接入完毕,可以关了。

    PR 覆盖的 scanner 键集
    #47 file-sorter、photo-organizer whitelist_dirs + extension_overrides
    #52 music-organizer、work-organizer、portfolio-organizer whitelist_dirs + extension_overrides
    #54 download-cleaner、backup-auditor、dedup-finder skip_dirs + extension_overrides(dedup-finder 是 skip_dirs + prefer_keep_hints)

    nas-report 刻意不接入:它只出画像与路由、不判合规,改它的类别表会静默改变路由结论并与下游专项 skill 的口径脱节。

    两点与本 issue 原设想不同的地方

    1. 键集不统一,而且是刻意的。 本 issue 的措辞是「whitelist dirs / extension rules」,但后三个 scanner 没有目录名合规判定这个概念,给它们 whitelist_dirs 却赋予另一种含义,会让「在 skill 之间复制一份 config」产生静默的意外行为。所以:做合规判定的 5 个用 whitelist_dirs(「这块是有意的结构,别判为不合规」),另外 3 个用 skip_dirs(「这块别扫」),dedup-finder 没有任何扩展名表、于是用 prefer_keep_hints。

    2. whitelist_dirs 在 5 个 scanner 里有 4 种不同效果(仍计入并归 protected / 整棵子树跳过 / 只豁免目录名 / 「不算项目」),因为它们的内置机制本来就不同。家族总表已写进 skills/README.md(#56),各 skill 的细节在各自 SKILL.md 的「配置覆盖」一节。

    顺带修掉的一个既有 Windows bug

    #54 在让 windows-latest 变绿时发现:dedup-finder 早先用字符串切片取相对路径,Windows 上输出 OLD\G.bin,而其余 8 个 scanner 都输出正斜杠。后果不止是分隔符混乱——keep_rank() 的深度这一级是 item["path"].count("/"),在反斜杠路径上恒为 0,「浅路径优先」在整个 Windows 平台上失效,于是会建议删掉浅层那份、保留深层那份,与它自己的文档和汇报文字相反。已在 scanner 侧统一为正斜杠(POSIX 上 os.sep 本就是 /,该 replace 是空操作)。

    收尾

  2. added a commit that references this issue on Oct 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requesthelp wantedExtra attention is needed

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions