Update a versioned flake input to the latest tagged version from its source repository
Update a versioned flake input in flake.nix to the latest tagged version from its source repository (Forgejo/GitHub).
If parameters are missing from $ARGUMENTS, use mcp_question to gather them:
mcp_question({
questions: [
{
question: "Which flake input do you want to update?",
header: "Input",
options: [
{ label: "ruinagents", description: "Agent definitions, docs, and skills" },
{ label: "budgey-extractor", description: "OpenCode session extractor" },
{ label: "budgey-dashboard", description: "Token usage analytics dashboard" },
{ label: "all", description: "Update all versioned inputs" }
]
}
]
})
Expected $ARGUMENTS format: <input_name>
ruinagentsallThese inputs are pinned to tagged versions and managed by this skill:
| Input | Source | URL Pattern |
|-------|--------|-------------|
| ruinagents | forge.meskill.farm | git+ssh://git@forge.meskill.farm/iamruinous/ruinagents.git?ref=refs/tags/vX.Y.Z |
| budgey-extractor | forge.meskill.farm | git+ssh://git@forge.meskill.farm/iamruinous/budgey-extractor.git?ref=refs/tags/vX.Y.Z |
| budgey-dashboard | forge.meskill.farm | git+ssh://git@forge.meskill.farm/iamruinous/budgey-dashboard.git?ref=refs/tags/vX.Y.Z |
For Forgejo repositories (forge.meskill.farm):
# Get latest tag (first in list is most recent)
curl -s "https://forge.meskill.farm/api/v1/repos/iamruinous/<repo>/tags?limit=1" | jq -r '.[0].name'
For GitHub repositories:
# Get latest release tag
gh api repos/<owner>/<repo>/releases/latest --jq '.tag_name'
# Or get latest tag if no releases
gh api repos/<owner>/<repo>/tags --jq '.[0].name'
Read flake.nix and extract the current version:
grep '<input_name>.url' flake.nix
# Look for: ?ref=refs/tags/vX.Y.Z
If the latest tag matches the current version, report "Already up to date" and stop.
Edit flake.nix to update the version tag:
Before:
ruinagents.url = "git+ssh://git@forge.meskill.farm/iamruinous/ruinagents.git?ref=refs/tags/v0.8.11";
After:
ruinagents.url = "git+ssh://git@forge.meskill.farm/iamruinous/ruinagents.git?ref=refs/tags/v0.8.12";
nix flake update <input_name>
This updates only the specified input in flake.lock.
# Dry build a representative host to verify
just remote-dry-build chassis
Summarize what was updated:
When $ARGUMENTS is all:
nix flake update ruinagents budgey-extractor budgey-dashboard for efficiencyiamruinous/ruinagentshttps://forge.meskill.farm/api/v1/repos/iamruinous/ruinagents/tags?limit=1ruinagents-docs, ruinagents-global packagesiamruinous/budgey-extractorhttps://forge.meskill.farm/api/v1/repos/iamruinous/budgey-extractor/tags?limit=1budgey-extractor package, NixOS/home-manager modulesiamruinous/budgey-dashboardhttps://forge.meskill.farm/api/v1/repos/iamruinous/budgey-dashboard/tags?limit=1budgey-dashboard package, NixOS module# Update single input
/update-flake-input ruinagents
# Update all versioned inputs
/update-flake-input all
$ /update-flake-input ruinagents
Checking latest version for ruinagents...
Current: v0.8.11
Latest: v0.8.12
Updating flake.nix...
Running: nix flake update ruinagents
Verifying build...
Updated ruinagents: v0.8.11 -> v0.8.12
$ /update-flake-input all
Checking versions...
ruinagents: v0.8.11 -> v0.8.12 (update available)
budgey-extractor: v0.7.0 -> v0.7.0 (up to date)
budgey-dashboard: v0.6.0 -> v0.7.0 (update available)
Updating flake.nix...
Running: nix flake update ruinagents budgey-dashboard
Verifying build...
Summary:
- ruinagents: v0.8.11 -> v0.8.12
- budgey-dashboard: v0.6.0 -> v0.7.0
- budgey-extractor: (no update needed)
To add a new input to this skill's registry:
flake.nix with ?ref=refs/tags/vX.Y.Z suffix# NOTE: Keep pinned to tagged version. Update with: /update-flake-input <name># Check if repo exists and has tags
curl -s "https://forge.meskill.farm/api/v1/repos/iamruinous/<repo>/tags" | jq
# Force update the lock file
nix flake update <input_name> --recreate-lock-file
nix flake update <input> completedjust remote-dry-build chassisnpx skills add iamruinous/update-flake-input下载完整 Skill 目录,包含 SKILL.md 及所有相关文件
Search for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer