Skip to content

feat: canonical skills system with auto-sync to agent discovery roots - #1275

Open
thekidnamedkd wants to merge 6 commits into
mainfrom
skills-refactor
Open

feat: canonical skills system with auto-sync to agent discovery roots#1275
thekidnamedkd wants to merge 6 commits into
mainfrom
skills-refactor

Conversation

@thekidnamedkd

@thekidnamedkd thekidnamedkd commented Jul 31, 2026

Copy link
Copy Markdown
Contributor

Description

Establishes one source of truth for repository skills under skills/ with automatic synchronization to project-level agent discovery roots on pnpm install. Supports Codex, Claude Code, Cursor, and Gemini CLI via the pinned skills@1.5.20 CLI.

What changed:

  • New canonical skills/ tree with skills/shared/ (committed, repo-wide) and skills/local/ (private, gitignored) catalogs.
  • 7 rule-skills migrated from flat .md files (.agents/shared/skills/rules/*.md) to proper SKILL.md directories (skills/shared/rules/<name>/SKILL.md), preserving git rename history.
  • scripts/sync-skills.mjs — cross-platform sync wrapper: discovers, validates frontmatter, rejects duplicates, installs via --copy --yes --full-depth, validates generated filesystem independently, reconciles stale skills, skips on CI/SKIP_SKILLS_SYNC/missing CLI.
  • package.jsonskills@1.5.20 exact devDep; skills:sync, test:skills, postinstall scripts.
  • .gitignore — generated roots (.agents/skills/, .claude/skills/, .codex/skills/, .cursor/skills/, .gemini/skills/) + skills-lock.json.
  • Guardrails hook loader (.agents/shared/hooks/inject-rules.mjs) repointed to skills/shared/rules/; collectRules now discovers <name>/SKILL.md directories instead of flat .md.
  • Guardrails tests rewritten for the new directory shape (30 tests, all pass).
  • 13 new skills system contract tests (scripts/sync-skills.test.mjs).
  • AGENTS.md, hook/metrics READMEs updated for new paths (scope/structure preserved).
  • Stale SKILL_MANIFEST.json (pointed at a different repo) removed.

Type of Change

  • Minor: Feature (non-breaking change which adds new functionality)

Developer Checklist:

  • Manually smoke tested the functionality in a preview or locally
  • Confirmed there are no new warnings or errors in the browser console
  • (For User Stories only) Double-checked that all Acceptance Criteria are satisfied
  • Confirmed there are no new warnings on automated tests
  • Merged and published any dependent changes in downstream modules
  • Selected the correct base branch
  • Commented the code in hard-to-understand areas
  • Followed the code style guidelines of this project
  • Reviewed that the Files Changed in Github's UI reflect my intended changes
  • Confirmed the pipeline checks are not failing

Review Checklist:

  • (For User Stories only) Tested in a preview or locally that all Acceptance Criteria are satisfied
  • Confirmed that changes follow the code style guidelines of this project

@thekidnamedkd
thekidnamedkd requested a review from a team as a code owner July 31, 2026 22:02
@github-actions

github-actions Bot commented Jul 31, 2026

Copy link
Copy Markdown

🚀 Preview Deployment: View Here

@github-actions

github-actions Bot commented Jul 31, 2026

Copy link
Copy Markdown

E2E results (preview)

Smoke

Base URL https://app-next-p70bpbhbg-aragon-app.vercel.app
Suite smoke
Playwright result ✅ passed
Summary 82 passed
HTML report View report
GitHub job ✅ completed

View run #4859

…x docs

- sync-skills.mjs: replace `-a codex/cursor/gemini-cli` (all resolve to the
  same universal .agents/skills store, causing 3x clean+recopy) with
  `-a universal -a claude-code`, so each generated root is written once.
- sync-skills.mjs: CI skip now treats any truthy CI except '0'/'false' as CI,
  not only '1'/'true'.
- sync-skills.mjs: correct the README.md-skip comment — the pinned CLI
  (1.5.20) excludes only metadata.json, not README.md.
- .gitignore: drop .codex/skills, .cursor/skills, .gemini/skills; the pinned
  CLI never creates them (those agents map to .agents/skills).
- skills/README.md: accurate install-target description + explicit note that
  node_modules-provided skills are not auto-authorized (experimental_sync is
  deliberately unused).
…omposition

- Preserve lower-layer approvals with `gh stack rebase --upstack --no-trunk`;
  a full trunk rebase rewrites unchanged lower layers' SHAs and dismisses
  their reviews.
- Verify shared-file diffs (en.json/generated registries) against base before
  pushing; a rebase/re-apply can silently drop unrelated keys.
Review bottom-up (1->N), merge once from the top PR. Document the
bottom-by-bottom merge trap (each bottom merge rebases the layer above ->
dismiss-stale-reviews wipes its approval) and the web merge button's
misleading label; prefer gh stack merge.
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