Skip to main content

outfitter-upgrade

Manages @outfitter/* package upgrades — handles version detection, dependency bumps, mechanical codemods, and test verification. Use when upgrading dependencies, migrating breaking changes, or running outfitter upgrade.

معلومات المصدر

المستودع
outfitter-dev/outfitter
آخر نشاط في المصدر
٢٤ فبراير ٢٠٢٦ في ٢٣:٠٩
لغة SKILL.md المكتشفة
الإنجليزية
النجوم
٦
التفرعات
١

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

مستكشف الملفات
3 ملفات

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
name
outfitter-upgrade
version
2.0.0
description
Manages @outfitter/* package upgrades — handles version detection, dependency bumps, mechanical codemods, and test verification. Use when upgrading dependencies, migrating breaking changes, or running outfitter upgrade.
allowed-tools
Read, Write, Edit, Grep, Glob, Bash, Skill, AskUserQuestion
related-skills
outfitter-atlas, outfitter-check, outfitter-start, tdd-fieldguide
# Outfitter Upgrade Upgrade @outfitter/\* packages with structured migration — from version detection through codemod execution to test verification. ## Steps 1. **Detect** — Run `outfitter upgrade --json` to discover installed versions and available updates. 2. **Decide** — Present findings. Choose interactive or autonomous mode based on scope. 3. **Apply** — Run `outfitter upgrade` to bump deps, install, and run mechanical codemods (interactive prompt by default; use `--yes` to skip). 4. **Migrate** — For remaining changes not covered by codemods, apply code transforms manually using structured change metadata. 5. **Verify** — Run tests. If failures, diagnose using migration docs as context, fix, re-verify. 6. **Confirm** — Load `outfitter-check` for final compliance scan. ## Mode Selection | Condition | Mode | Rationale | | ------------------------------ | --------------- | --------------------------------------------------- | | No breaking changes | **Auto** | Bump, install, run tests — no code changes expected | | Breaking changes with codemods | **Autonomous** | CLI handles mechanical transforms, agent verifies | | Breaking changes, no codemods | **Interactive** | Agent needs judgment for code migration | | Major version jump (>2 minor) | **Interactive** | Too many changes to auto-apply safely | ## Autonomous Loop When in autonomous mode, follow this cycle: ``` detect → apply → codemod → migrate → test → fix → repeat ↓ (green) → confirm → done ``` ### Step-by-step 1. Run `outfitter upgrade --json` to get structured output 2. Parse the `packages` array for updates, check `hasBreaking` 3. Run `outfitter upgrade --yes` (or `--all --yes` if breaking changes are expected) 4. CLI bumps deps, installs, discovers codemods, runs them automatically 5. Parse `codemods` summary from output — check `errors` array 6. Run `outfitter upgrade --guide --json` to fetch structured migration guides 7. For each `guide` in the guide output with `changes`: - Skip changes where `change.codemod` exists (already handled) - Apply remaining changes using the structured metadata (see Decision Framework) 8. Run `bun test` (or `bun run test` from repo root) 9. If tests fail: a. Read failure output b. Cross-reference with migration doc guidance (`outfitter upgrade --guide`) c. Fix the issue d. Re-run tests e. If still failing after 3 attempts, escalate to user 10. When green: load `outfitter-check` skill for compliance verification ## CLI Reference ```bash # Check installed versions outfitter upgrade # JSON output for programmatic parsing outfitter upgrade --json # Show migration instructions outfitter upgrade --guide outfitter upgrade --guide @outfitter/cli # specific package # Upgrade with interactive prompt (default) outfitter upgrade # Upgrade non-interactively (skip prompts) outfitter upgrade --yes # Include breaking changes outfitter upgrade --all # Preview without making changes outfitter upgrade --dry-run # Upgrade without running codemods outfitter upgrade --no-codemods ``` ### JSON Output Shape ```typescript interface UpdateResult { packages: PackageVersionInfo[]; total: number; updatesAvailable: number; hasBreaking: boolean; applied: boolean; appliedPackages: string[]; skippedBreaking: string[]; guides?: MigrationGuide[]; codemods?: CodemodSummary; } ``` See `references/structured-changes.md` for full type definitions and parsing examples. ## Decision Framework ### By Change Type | `change.type` | Agent Action | | ------------------- | ------------------------------------------------------------- | | `moved` | Update import paths: `from` → `to` | | `renamed` | Find-and-replace: `from` → `to` in imports and usages | | `removed` | Find usages of `from`, replace with alternative from `detail` | | `signature-changed` | Update call sites per `detail` description | | `deprecated` | Optional: migrate now or add TODO for later | | `added` | No action needed — informational | ### By Update Type | Update Type | Action | | ------------------------- | --------------------------------------------------------- | | **Patch** (0.1.0 → 0.1.1) | Bump, test — no code changes expected | | **Minor** (0.1.0 → 0.2.0) | Review migration doc for new APIs, adopt if beneficial | | **Breaking** (flagged) | Follow migration guide, apply codemods, update code, test | ## Dependency Order When updating multiple packages, follow the tier order: 1. **Foundation**: contracts, types 2. **Runtime**: cli, mcp, config, logging, file-ops, state, index, daemon, schema, tui 3. **Tooling**: testing, outfitter (umbrella CLI) Update lower tiers first — runtime packages depend on foundation changes. ## Migration Docs Migration guides are at `${CLAUDE_PLUGIN_ROOT}/shared/migrations/` with naming: ``` outfitter-<package>-<version>.md ``` Each doc has YAML frontmatter with structured `changes`: ```yaml --- package: "@outfitter/cli" version: 0.4.0 breaking: true changes: - type: moved from: "@outfitter/cli/render" to: "@outfitter/tui/render" codemod: "cli/0.4.0-move-tui-imports.ts" - type: renamed from: "formatOutput" to: "renderOutput" --- ``` Changes with a `codemod` field are handled automatically during upgrade. The remaining changes need manual migration. ## Codemods Codemod scripts live at `${CLAUDE_PLUGIN_ROOT}/shared/codemods/` organized by package: ``` codemods/ cli/ 0.4.0-move-tui-imports.ts contracts/ adopt-result-types.ts ``` Each exports a `transform(options)` function. The CLI discovers and runs them automatically during upgrade. Agents should not run codemods directly — let the CLI handle it. ## Error Recovery | Failure | Recovery | | -------------------------- | ----------------------------------------------------- | | Upgrade fails on install | Check network, verify package exists on npm | | Codemod reports errors | Read the `errors` array, fix manually, re-run | | Tests fail after migration | Read failure, cross-reference migration doc, fix code | | 3+ test fix attempts fail | Escalate to user with evidence | ## Related Skills - `outfitter-atlas` — Patterns and templates for current package versions - `outfitter-check` — Compliance verification after updates - `outfitter-start` — Full adoption workflow (for new or first-time setup) - `tdd-fieldguide` — Test-driven development methodology for the verify loop
عرض على GitHub