Skip to content

refactor(skills): consolidate 16 swamp-* skills into 11#1364

Merged
stack72 merged 2 commits into
mainfrom
stack72/restructure-skills
May 11, 2026
Merged

refactor(skills): consolidate 16 swamp-* skills into 11#1364
stack72 merged 2 commits into
mainfrom
stack72/restructure-skills

Conversation

@stack72
Copy link
Copy Markdown
Contributor

@stack72 stack72 commented May 11, 2026

Summary

  • Merged 5 extension-creation skills (model, vault, driver, datastore, quality) into a single swamp-extension skill with type-specific reference subdirectories
  • Absorbed swamp-data-query into swamp-data
  • Narrowed swamp-report to usage-only (report creation content moved to swamp-extension)
  • Cleaned up trigger overlaps across swamp-vault, swamp-repo, swamp-troubleshooting, and swamp-extension-publish
  • Added removeSupersededSkills() migration to clean up old skill directories on swamp repo upgrade
  • Updated skill_assets.ts, repo_service.ts (CLAUDE.md generation), and generate_config.ts (eval runner)
  • Bumped promptfoo from 0.121.9 to 0.121.11

Eval results

Metric Before After
Skills 16 11
Test cases 202 264
Pass rate 198/202 (98.0%) 262/264 (99.2%)
Fixed baseline failures 2 of 4

Test plan

  • deno check passes
  • deno lint passes
  • deno fmt passes
  • deno run test — 5813 passed, 0 failed
  • deno run compile succeeds
  • deno run review-skills — all skills pass (93-96%)
  • deno run eval-skill-triggers --model sonnet — 262/264 (99.2%)
  • Migration verified: swamp repo init (old binary) → swamp repo upgrade (new binary) correctly removes old skill dirs and creates new structure
  • CI

🤖 Generated with Claude Code

…rigger routing

Five extension-creation skills (model, vault, driver, datastore, quality)
merged into one `swamp-extension` skill with type-specific references.
swamp-data-query absorbed into swamp-data. swamp-report narrowed to
usage-only (creation content moved to swamp-extension). Trigger overlaps
cleaned up across swamp-vault, swamp-repo, swamp-troubleshooting, and
swamp-extension-publish. Migration added to remove superseded skill
directories on `swamp repo upgrade`.

Eval baseline: 198/202 (98.0%) → 262/264 (99.2%) with 62 additional test cases.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@stack72 stack72 marked this pull request as ready for review May 11, 2026 23:13
…limit

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Copy link
Copy Markdown

@github-actions github-actions Bot left a comment

Choose a reason for hiding this comment

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

Code Review

Clean consolidation — 16 → 11 skills with improved eval coverage (98.0% → 99.2%). The migration path, asset registry, and cross-references are well-handled.

Blocking Issues

None.

Suggestions

  1. Stale cross-reference in swamp-report/references/report-types.md:180 — still links to ../swamp-extension-model/references/api.md#datahandle-structure, which no longer exists after the consolidation. Should be ../swamp-extension/references/model/api.md#datahandle-structure. This is the only remaining reference to any old skill name across all skill files.

  2. No unit test for removeSupersededSkills() (src/domain/repo/repo_service.ts:116) — the function is simple and was verified via manual migration testing per the test plan, but a unit test confirming it removes existing directories and silently skips missing ones would prevent future regressions if the migration list grows.

DDD Assessment

The removeSupersededSkills function is appropriately placed in the repo service — repo lifecycle management (init/upgrade) including skill migration is squarely within this service's responsibility. The SUPERSEDED_SKILLS constant is co-located with its consumer, keeping the blast radius minimal.

Notes

  • All bundled skill paths in skill_assets.ts verified to exist on the branch — no phantom entries.
  • All skill description lengths are under the 1024-char limit (largest: swamp-data at 1001 chars).
  • New swamp-extension/SKILL.md is 401 lines, under the 500-line body limit.
  • SKILL_NAMES in generate_config.ts now includes swamp-extension-publish and swamp-getting-started which were previously missing from the eval list despite having trigger_evals.json — nice improvement.
  • No libswamp import boundary violations.
  • No security concerns.

Copy link
Copy Markdown

@github-actions github-actions Bot left a comment

Choose a reason for hiding this comment

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

Adversarial Review

Critical / High

None found.

Medium

  1. Stale cross-reference — dead link after merge (swamp-report/references/report-types.md:180):

    The line reads:

    [extension model API reference](../swamp-extension-model/references/api.md#datahandle-structure)

    After this PR merges, swamp-extension-model/ is deleted (superseded skill), making this a broken link. The correct post-consolidation path would be ../swamp-extension/references/model/api.md#datahandle-structure. This file is a bundled skill asset copied into every user's skills directory on swamp repo init/upgrade, so every new and upgraded repo will receive the dead link.

    Fix: Update swamp-report/references/report-types.md:180 to ../swamp-extension/references/model/api.md#datahandle-structure.

Low

None.

Verdict

PASS — The core logic changes are sound. The skill consolidation is mechanically straightforward: rename directories, update the BUNDLED_SKILLS manifest, fix cross-references, and add an idempotent migration function (removeSupersededSkills) that correctly handles NotFound. The generate_config.ts skill list, repo_service.ts instructions body, and all modified skill files consistently reference the new consolidated names. The one stale cross-reference in an unmodified bundled file is a minor documentation issue, not a code correctness problem.

@stack72 stack72 merged commit 7152bd5 into main May 11, 2026
11 checks passed
@stack72 stack72 deleted the stack72/restructure-skills branch May 11, 2026 23:28
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