Skip to content

Conversation

@shunkakinoki
Copy link
Owner

@shunkakinoki shunkakinoki commented Jan 20, 2026

Changes

  • Moved SKILLS_REPOS list from Makefile to SKILLS.txt
  • Makes skill repositories configurable without editing Makefile

Technical Details

  • Added SKILL_FILE variable pointing to SKILLS.txt
  • SKILL_REPOS now dynamically loaded from SKILLS.txt using shell command

Testing

  • Verified make targets work with new configuration

Generated with opencode by claude-3.5-sonnet


Summary by cubic

Skill repositories are now configurable via SKILLS.txt, so you can add or update skills without touching the Makefile. Dotdir syncing uses rsync, and Ruler defaults were simplified with .gitignore updates enabled.

  • Refactors

    • Load SKILL_REPOS from SKILLS.txt (includes subsy/ralph-tui).
    • Added SKILLS_FILE; existing make targets keep working.
    • Replaced ruler-dotdirs-link with ruler-dotdirs-sync (rsync to $HOME).
    • Trimmed default_agents and enabled .gitignore updates in .ruler/ruler.toml.
  • Migration

    • Edit SKILLS.txt to manage skill repos, then run make sync.
    • Use make sync (or ruler-dotdirs-sync) instead of ruler-dotdirs-link.

Written for commit 1a57d1a. Summary will update on new commits.

Copilot AI review requested due to automatic review settings January 20, 2026 01:24
@shunkakinoki shunkakinoki enabled auto-merge (squash) January 20, 2026 01:24
@coderabbitai
Copy link

coderabbitai bot commented Jan 20, 2026

Caution

Review failed

The pull request is closed.

📝 Walkthrough

Summary by CodeRabbit

  • New Features

    • Added Ralph TUI skill
  • Improvements

    • Enabled automatic .gitignore file updates
    • Refined default agent configuration
    • Updated dot-directory synchronization approach
  • Chores

    • Restructured skill repository management in build system

✏️ Tip: You can customize this high-level summary in your review settings.

Walkthrough

The pull request externalize skill repository definitions into a separate SKILLS.txt file, refactoring the Makefile to read repositories dynamically. Additionally, it replaces symlink-based dot-directory setup with rsync-based synchronization and simplifies ruler.toml configuration by removing agent-specific blocks.

Changes

Cohort / File(s) Summary
Configuration simplification
\.ruler/ruler\.toml
Reduced default_agents list, removed 12 agent-specific configuration blocks, enabled .gitignore auto-updates, added explicit global merge strategy
Build system refactoring
Makefile, SKILLS\.txt
Extracted static SKILL_REPOS list to external SKILLS.txt file; added SKILLS_FILE variable for dynamic repo reading; replaced ruler-dotdirs-link symlink target with ruler-dotdirs-sync using rsync-based copying

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

Suggested labels

enhancement

Poem

🐰 A tidy warren grows today,
Configuration swept away,
Skills now dance from textfile's grace,
Symlinks fade—rsync takes their place!

✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch ruler-sync

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@shunkakinoki shunkakinoki merged commit e979c8a into main Jan 20, 2026
7 of 8 checks passed
@shunkakinoki shunkakinoki deleted the ruler-sync branch January 20, 2026 01:26
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR aims to make skill repositories configurable by moving the SKILLS_REPOS list from hardcoded Makefile variables to an external SKILLS.txt file. However, the PR includes multiple unrelated changes that significantly expand its scope beyond the stated objective.

Changes:

  • Created SKILLS.txt file with skill repository list (including one new repository not in original)
  • Updated Makefile to load SKILL_REPOS from SKILLS.txt dynamically
  • Changed ruler-dotdirs-link target to ruler-dotdirs-sync, replacing symlink creation with rsync copying
  • Removed multiple agent configurations from ruler.toml and reordered default_agents list
  • Changed gitignore.enabled from false to true in ruler.toml

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 9 comments.

File Description
SKILLS.txt New file containing skill repository list (5 repos including 1 new addition)
Makefile Modified to load SKILL_REPOS from SKILLS.txt; refactored ruler-dotdirs-link to ruler-dotdirs-sync with behavioral changes
.ruler/ruler.toml Removed multiple agent configurations, reordered default_agents, and enabled gitignore

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

better-auth/skills \
trailofbits/skills \
vercel-labs/agent-skills
SKILLS_FILE := $(dir $(lastword $(MAKEFILE_LIST)))SKILLS.txt
Copy link

Copilot AI Jan 20, 2026

Choose a reason for hiding this comment

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

The SKILLS_FILE variable uses a complex expression "$(dir $(lastword $(MAKEFILE_LIST)))SKILLS.txt" which may fail in edge cases where the Makefile is included from other locations or when using make with -f flag. Consider using a simpler approach like "SKILLS_FILE := SKILLS.txt" or "SKILLS_FILE := $(PWD)/SKILLS.txt" to make the path resolution more predictable.

Suggested change
SKILLS_FILE := $(dir $(lastword $(MAKEFILE_LIST)))SKILLS.txt
SKILLS_FILE := SKILLS.txt

Copilot uses AI. Check for mistakes.
trailofbits/skills \
vercel-labs/agent-skills
SKILLS_FILE := $(dir $(lastword $(MAKEFILE_LIST)))SKILLS.txt
SKILL_REPOS := $(shell cat $(SKILLS_FILE) 2>/dev/null)
Copy link

Copilot AI Jan 20, 2026

Choose a reason for hiding this comment

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

While the command includes "2>/dev/null" to suppress errors, if SKILLS.txt is missing or empty, SKILL_REPOS will be empty and the skills-install target will silently do nothing. Consider adding validation in the skills-install target to check if SKILL_REPOS is empty and provide a helpful error message.

Suggested change
SKILL_REPOS := $(shell cat $(SKILLS_FILE) 2>/dev/null)
SKILL_REPOS := $(shell cat $(SKILLS_FILE) 2>/dev/null)
ifeq ($(strip $(SKILL_REPOS)),)
$(warning SKILLS.txt is missing or empty; no skills will be installed by the 'skills-install' target.)
endif

Copilot uses AI. Check for mistakes.
@@ -0,0 +1,5 @@
anthropics/claude-plugins-official
Copy link

Copilot AI Jan 20, 2026

Choose a reason for hiding this comment

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

The SKILLS.txt file lacks documentation explaining its format and purpose. Consider adding a comment at the top of the file explaining that each line should contain a GitHub repository in the format "owner/repo" and that these repositories will be installed as skills.

Copilot uses AI. Check for mistakes.
@make mcp-sync
@make ruler-apply-global
@make ruler-dotdirs-link
@make ruler-dotdirs-sync
Copy link

Copilot AI Jan 20, 2026

Choose a reason for hiding this comment

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

The call to "ruler-dotdirs-link" has been changed to "ruler-dotdirs-sync" in the sync target. While this matches the renamed target below, this behavioral change (from symlink creation to rsync copying) is unrelated to making SKILLS_REPOS configurable and should be in a separate PR.

Copilot uses AI. Check for mistakes.
@@ -85,54 +85,6 @@ output_path = ".goosehints"
[agents.jules]
enabled = true

Copy link

Copilot AI Jan 20, 2026

Choose a reason for hiding this comment

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

The removal of multiple agent configurations (pi, roo, antigravity, amazonqcli, qwen, zed, trae, warp, kiro, firebender, agentsmd, mistral) is unrelated to making SKILLS_REPOS configurable. This substantial configuration change should be in a separate PR with proper justification and documentation.

Suggested change
[agents.pi]
enabled = true
[agents.roo]
enabled = true
[agents.antigravity]
enabled = true
[agents.amazonqcli]
enabled = true
[agents.qwen]
enabled = true
[agents.zed]
enabled = true
[agents.trae]
enabled = true
[agents.warp]
enabled = true
[agents.kiro]
enabled = true
[agents.firebender]
enabled = true
[agents.agentsmd]
enabled = true
[agents.mistral]
enabled = true

Copilot uses AI. Check for mistakes.
[gitignore]
# Enable/disable automatic .gitignore updates (default: true)
enabled = false
enabled = true
Copy link

Copilot AI Jan 20, 2026

Choose a reason for hiding this comment

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

The change from "enabled = false" to "enabled = true" for gitignore configuration is unrelated to making SKILLS_REPOS configurable. This behavioral change should be in a separate PR to keep changes focused and traceable.

Suggested change
enabled = true
enabled = false

Copilot uses AI. Check for mistakes.
@@ -0,0 +1,5 @@
anthropics/claude-plugins-official
better-auth/skills
subsy/ralph-tui
Copy link

Copilot AI Jan 20, 2026

Choose a reason for hiding this comment

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

The SKILLS.txt file includes a new repository "subsy/ralph-tui" that was not present in the original SKILL_REPOS list in the Makefile. This appears to be an unrelated addition that should not be part of this refactoring PR. If this repository should be added, it should be done in a separate PR with appropriate justification and testing.

Suggested change
subsy/ralph-tui

Copilot uses AI. Check for mistakes.
Comment on lines +147 to 160
.PHONY: ruler-dotdirs-sync
ruler-dotdirs-sync: ## Sync repo dot directories to $HOME equivalents.
@bash -c 'set -e; \
root="$$(pwd)"; \
dirs="$(DOTDIRS)"; \
for d in $$dirs; do \
src="$$root/$$d"; \
target="$$HOME/$$d"; \
link="$$root/$$d"; \
if [ -e "$$link" ] && [ ! -L "$$link" ]; then \
echo "Skipping $$link (exists and is not a symlink)" >&2; \
continue; \
fi; \
if [ ! -e "$$target" ]; then \
if [ -d "$$src" ]; then \
mkdir -p "$$target"; \
rsync -a "$$src/" "$$target/"; \
echo "Synced $$src → $$target"; \
fi; \
ln -sfn "$$target" "$$link"; \
done'
Copy link

Copilot AI Jan 20, 2026

Choose a reason for hiding this comment

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

The renaming and refactoring of "ruler-dotdirs-link" to "ruler-dotdirs-sync" changes the functionality from creating symlinks to using rsync for copying files. This is a significant behavioral change that appears unrelated to the PR's stated objective of making SKILLS_REPOS configurable. This change should be in a separate PR with its own testing and justification, as it affects how dot directories are managed.

Copilot uses AI. Check for mistakes.

# Default agents to use when --agents is not specified
default_agents = ["copilot", "claude", "cursor", "codex", "aider", "amp", "windsurf", "cline", "gemini-cli", "kilocode", "firebase", "crush", "openhands", "junie", "augmentcode", "opencode", "goose", "jules", "pi", "roo", "antigravity", "amazonqcli", "qwen", "zed", "trae", "warp", "kiro", "firebender", "agentsmd", "mistral"]
default_agents = ["copilot", "claude", "codex", "cursor", "windsurf", "cline", "aider", "firebase", "openhands", "gemini-cli", "jules", "junie", "augmentcode", "kilocode", "opencode", "goose", "crush", "amp"]
Copy link

Copilot AI Jan 20, 2026

Choose a reason for hiding this comment

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

The default_agents list has been significantly reordered and modified. This change appears unrelated to the PR's stated objective of making SKILLS_REPOS configurable via SKILLS.txt. Changes to agent configuration should be in a separate PR to maintain clear change history and facilitate easier review and rollback if needed.

Suggested change
default_agents = ["copilot", "claude", "codex", "cursor", "windsurf", "cline", "aider", "firebase", "openhands", "gemini-cli", "jules", "junie", "augmentcode", "kilocode", "opencode", "goose", "crush", "amp"]
default_agents = ["amp", "copilot", "claude", "codex", "cursor", "windsurf", "cline", "aider", "kilocode", "firebase", "gemini-cli", "crush", "openhands", "junie", "augmentcode", "opencode", "goose", "jules"]

Copilot uses AI. Check for mistakes.
Copy link

@cubic-dev-ai cubic-dev-ai bot left a comment

Choose a reason for hiding this comment

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

No issues found across 3 files

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.

2 participants