Skip to content

Conversation

@gricha
Copy link
Member

@gricha gricha commented Jan 31, 2026

Summary

  • Remove the concept of built-in skills entirely
  • Users now bootstrap their environment with skills from conventional directories (.warden/skills/, .agents/skills/, .claude/skills/)
  • Move warden-skill, agent-prompt, notseer to .claude/skills/
  • Delete security-review, code-simplifier, performance-review skills
  • Remove getBuiltinSkill() and getBuiltinSkillNames() from public API

Test plan

  • pnpm lint passes
  • pnpm build passes
  • pnpm test passes (502 tests)

@vercel
Copy link

vercel bot commented Jan 31, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
warden Ready Ready Preview, Comment Jan 31, 2026 4:07am

Request Review

gricha and others added 2 commits January 30, 2026 20:07
Users now bootstrap their environment with skills from conventional
directories (.warden/skills/, .agents/skills/, .claude/skills/).

- Move warden-skill, agent-prompt, notseer to .claude/skills/
- Delete security-review, code-simplifier, performance-review
- Remove getBuiltinSkill, getBuiltinSkillNames functions
- Update resolveSkillAsync to remove built-in fallback
- Update tests to use .claude/skills/testing-guidelines

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The security-review and code-simplifier examples referenced skills
that no longer exist. Delete these example directories and update
tests to handle zero examples gracefully.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@gricha gricha force-pushed the remove-builtin-skills branch from 1b73e28 to 2d2d9c2 Compare January 31, 2026 04:07
@gricha gricha merged commit a5ce813 into main Jan 31, 2026
14 checks passed
@gricha gricha deleted the remove-builtin-skills branch January 31, 2026 04:08
Copy link
Contributor

@sentry-warden sentry-warden bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

testing-guidelines

testing-guidelines: Found 2 issues (2 medium)


⏱ 369.0s · 2.0M in / 24.7k out · $3.59

Comment on lines +26 to +29
if (examples.length === 0) {
// Skip test when no examples exist
return;
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟠 Tests skip execution when no examples exist, leaving entry points untested (high confidence)

The tests for loadExample and getExampleFiles now early-return when examples.length === 0, meaning they don't actually test the happy path. Per guideline #5 (Cover Every User Entry Point), each entry point should have at least one test that proves it works.

Suggested fix: Instead of early-returning, create test fixtures (mock examples directory with _meta.json) in a temp directory to ensure these functions are actually tested. Use beforeEach/afterEach to set up and tear down test fixtures.

Suggested change
if (examples.length === 0) {
// Skip test when no examples exist
return;
}
import { mkdirSync, rmSync, writeFileSync } from 'node:fs';
import { tmpdir } from 'node:os';
import { beforeEach, afterEach } from 'vitest';
let tempDir: string;
beforeEach(() => {
tempDir = join(tmpdir(), `warden-test-${Date.now()}`);
mkdirSync(join(tempDir, 'test-example'), { recursive: true });
writeFileSync(join(tempDir, 'test-example', '_meta.json'), JSON.stringify({
skill: 'test-skill',
description: 'Test example',
expected: [{ severity: 'medium', pattern: 'test' }]
}));
writeFileSync(join(tempDir, 'test-example', 'sample.ts'), 'const x = 1;');
});
afterEach(() => {
rmSync(tempDir, { recursive: true, force: true });
});
const meta = loadExample(join(tempDir, 'test-example'));

warden: testing-guidelines

@@ -16,24 +14,6 @@ import {
SKILL_DIRECTORIES,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟠 Missing test for public entry point 'discoverAllSkills' (high confidence)

The exported function discoverAllSkills in src/skills/index.ts is a public API entry point but has no test coverage. Testing guidelines require at least one basic test for each user entry point.

Suggested fix: Add a test for the discoverAllSkills function covering its happy path behavior

Suggested change
SKILL_DIRECTORIES,
discoverAllSkills,
describe('discoverAllSkills', () => {
it('discovers skills from conventional directories', async () => {
const repoRoot = new URL('../..', import.meta.url).pathname;
const skills = await discoverAllSkills(repoRoot);
expect(skills.size).toBeGreaterThan(0);
const testingGuidelines = skills.get('testing-guidelines');
expect(testingGuidelines).toBeDefined();
expect(testingGuidelines?.directory).toMatch(/\.\/(warden|agents|claude)\/skills/);
});
});

warden: testing-guidelines

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant