From aca68e73ee388aa5d118ad538d86d4e9c4e5a358 Mon Sep 17 00:00:00 2001 From: GRayHook Date: Wed, 17 Jun 2026 17:27:09 +0700 Subject: [PATCH] =?UTF-8?q?Phase=2014:=20add=20requireRegistered=20setting?= =?UTF-8?q?=20=E2=80=94=20opt-out=20for=20strict=20registry=20filter?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Default false so CLI --skill paths can be re-injected from disk in later Phase 14 items; explicit true restores registered-only behavior. Co-authored-by: Cursor --- src/settings.ts | 6 ++++++ test/settings.test.ts | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/src/settings.ts b/src/settings.ts index e6068fa..15fe850 100644 --- a/src/settings.ts +++ b/src/settings.ts @@ -28,6 +28,8 @@ export interface SkillReinjectSettings { maxSkills?: number; /** Verbose reinject filter logging via ui.notify (Phase 14 / B-002). */ debug: boolean; + /** When true, only re-inject skills present in resourceLoader (Phase 14 / B-002). */ + requireRegistered: boolean; } /** Defaults from SPEC §7.3 — extension off until explicitly enabled. */ @@ -39,6 +41,7 @@ export const DEFAULT_SKILL_REINJECT_SETTINGS: Readonly = autoCompactIntegration: "auto", suffix: "[skill-reinject] Re-applied after compaction.", debug: false, + requireRegistered: false, }; export function createDefaultSettings(): SkillReinjectSettings { @@ -83,6 +86,9 @@ export function parseSkillReinjectPartial(raw: unknown): PartialSkillReinjectSet if (typeof obj.debug === "boolean") { result.debug = obj.debug; } + if (typeof obj.requireRegistered === "boolean") { + result.requireRegistered = obj.requireRegistered; + } return result; } diff --git a/test/settings.test.ts b/test/settings.test.ts index 5e079c9..2514318 100644 --- a/test/settings.test.ts +++ b/test/settings.test.ts @@ -58,6 +58,12 @@ describe("parseSkillReinjectPartial", () => { it("parses debug flag", () => { expect(parseSkillReinjectPartial({ debug: true })).toEqual({ debug: true }); }); + + it("parses requireRegistered flag", () => { + expect(parseSkillReinjectPartial({ requireRegistered: true })).toEqual({ + requireRegistered: true, + }); + }); }); describe("mergeSkillReinjectSettings", () => {