diff --git a/skills/how/SKILL.md b/skills/how/SKILL.md index 0b9aa8f..03f0684 100644 --- a/skills/how/SKILL.md +++ b/skills/how/SKILL.md @@ -60,7 +60,7 @@ Then proceed to Step 3. ### Step 2b. Direct Explain (simple questions) -Spawn a single subagent subagent that explores and explains in one pass: +Spawn a single subagent that explores and explains in one pass: - `agent`: `oracle` - omit `model` to use the configured oracle profile @@ -71,7 +71,7 @@ Proceed to Step 4. ### Step 3. Synthesize (complex questions only) -Once all explorers return, spawn a single subagent subagent to synthesize their findings into one coherent explanation: +Once all explorers return, spawn a single subagent to synthesize their findings into one coherent explanation: - `agent`: `oracle` - omit `model` to use the configured oracle profile diff --git a/skills/no-comments/SKILL.md b/skills/no-comments/SKILL.md index 8052109..050a4a7 100644 --- a/skills/no-comments/SKILL.md +++ b/skills/no-comments/SKILL.md @@ -16,7 +16,7 @@ Use the caller's files or diff. Otherwise use the current diff against the base ## Steps -1. Spawn `subagent` with `agent: "Comment Sicko"`. Pass the scope. Do not restate its rules. +1. Spawn `subagent` with `agent: "comment-sicko"`. Pass the scope. Do not restate its rules. 2. Inspect its report and diff. Reject application-code edits, scope escapes, exception-protected deletions, misstated `MUST KILL` reasons, and flags that treat kept intentional code as guilty. Reshape flags on our-code surprises stay actionable. Do not restore those comments. A keep survives only with proof it is about something we cannot change. Audit missed scoped lint and TypeScript suppressions. Correctness or safety suppressions stay actionable `MUST KILL`s. Restore deletions only with exact exceptions and scoped proof. Before accepting thin `IMPORTANT` or `do not remove` kills or keeps, run `/skill:how` or `/skill:why` on their symbol. If a kill is ambiguous, do not restore. If a keep is refuted or still ambiguous, delete it. Revert and rerun one rejected report with the failure named. Reject a second, report it open, and fail `/skill:no-comments`. 3. Fix trivial accepted flags directly by deleting a dead path, dropping a parameter, or using the real API. If any fix needs a shape, run `/skill:architect` once for the accepted set and surrounding code. Stop at the sketch. Architect shapes. Step 4 implements. 4. Implement the smallest root-cause fix in scope. Remove every named workaround. If the root cause is out of scope, land the smallest in-scope fix and report the rest open. The **principle-fix-root-causes** and **principle-redesign-from-first-principles** skills guide intent only: fix real causes, redesign as if requirements always existed, never bolt on symptom guards. Neither authorizes widening the fence nor fixing instances outside it. diff --git a/test/resources/resources.test.mjs b/test/resources/resources.test.mjs index 5012d42..393684e 100644 --- a/test/resources/resources.test.mjs +++ b/test/resources/resources.test.mjs @@ -120,11 +120,14 @@ test("active resources use Pi runtime contracts", async () => { ["symbolic model profile", /profile:(?:fast|reasoning|instruction|review)/], ["unsupported subagents.profiles", /subagents\.profiles/], ["unsupported read-write acceptance role", /acceptanceRole:\s*read-write/], + ["Comment Sicko spawn", /agent: "Comment Sicko"/], + ["doubled subagent", /subagent subagent/], ]) { assert.doesNotMatch(corpus, pattern, `${token} remains in active resources`); } const mode = await readFile(join(skillsDir, "poteto-mode", "SKILL.md"), "utf8"); const how = await readFile(join(skillsDir, "how", "SKILL.md"), "utf8"); + const noComments = await readFile(join(skillsDir, "no-comments", "SKILL.md"), "utf8"); const recall = await readFile(join(skillsDir, "recall", "SKILL.md"), "utf8"); const shipping = await readFile( join(skillsDir, "poteto-mode", "playbooks", "shipping.md"), @@ -133,6 +136,7 @@ test("active resources use Pi runtime contracts", async () => { assert.match(mode, /workflowScript/); assert.match(how, /runs\.all/); assert.match(mode, /\bask\b/); + assert.match(noComments, /agent: "comment-sicko"/); assert.match(recall, /PI_SESSION_FILE/); assert.match(shipping, /gh stack/); assert.match(shipping, /Graphite/);