agentleFS
ItsWendellItsWendell/palot/.agents/skills/opencode-runtime/SKILL.md

opencode-runtime

Skill194 starsChanged 46 days agoMITView on GitHub

Check or update Palot's OpenCode CLI, client, protocol/schema and runtime contract. Use for release availability, Stable/Beta selection, dependency upgrades, version mismatches and runtime-specific feature gates. Use opencode for general upstream APIs and opencode-coverage for integration depth.

The file

We split this skill into the rules it gives an agent

11 rules. About 0 are common, 5 are distinctive, and 6 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈5

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 6

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Keep Palot's declared OpenCode dependencies aligned without replacing the user's running service.

    line 8
  2. Very specific:

    Use opencode for upstream API and architecture questions.

    line 13
  3. Distinctive:

    Check npm tags for all four published units:

    line 23
  4. Very specific:

    If the question concerns the setup/settings channel selector, also check the official opencode.ai/update/api/{latest|beta}/cli/opencode …

    line 37
  5. Very specific:

    Read publication dates, release notes and published package dependencies/types.

    line 41
  6. Very specific:

    Use release tags or publish-run inputs.

    line 52
  7. Very specific:

    Use opencode-coverage only when operation/event adoption needs an audit.

    line 56
  8. Distinctive:

    Update directly imported client/protocol packages with the pinned toolchain:

    line 63
  9. Distinctive:

    Verify actual desktop module resolution for client/protocol, and schema from the client's context, against the lockfile.

    line 79
  10. Distinctive:

    If a used verifier needs new executable hashes, obtain the exact architecture's official archive, verify registry integrity, then hash the …

    line 95
  11. Distinctive:

    Prefer the user's existing installation.

    line 102

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

OpenCode runtime alignment

Keep Palot's declared OpenCode dependencies aligned without replacing the user's running service. Stable is the default; use Beta when requested. A release check is read-only. A dependency upgrade authorizes workspace changes, not a global CLI update, service restart, app installation or publication.

Use opencode for upstream API and architecture questions. Read ../../../docs/opencode-runtime.md for Palot's current runtime-selection and compatibility contract. Public desktop packages acquire OpenCode separately; they do not bundle its standalone executable.

Read-only comparison

  1. Establish Palot's baseline from apps/desktop/package.json, bun.lock and SUPPORTED_OPENCODE_VERSION in apps/desktop/src/main/opencode-version.ts. Distinguish these from the installed CLI and connected service versions.
  2. Check npm tags for all four published units:

    npm view @opencode/cli dist-tags --json
    npm view @opencode/client dist-tags --json
    npm view @opencode/protocol dist-tags --json
    npm view @opencode/schema dist-tags --json

    A candidate is aligned only when the selected tags resolve to the same exact version. Verify that latest is a supported stable major; the tag alone is not a compatibility guarantee. Use that exact version for subsequent reads, and report tag skew instead of mixing releases.

  3. If the question concerns the setup/settings channel selector, also check the official opencode.ai/update/api/{latest|beta}/cli/opencode feeds. These can differ from npm tags. Report each source separately; do not substitute one channel mechanism for another.
  4. Read publication dates, release notes and published package dependencies/types. For a routine stable patch, inspect the changed contracts and relevant Palot callers. Identical contracts need no integration audit. Escalate to a deeper source comparison for a new minor/major, changed public surface, unreviewed beta, ambiguous release notes or a requested feature's availability.
  5. Report the checked date, baseline/candidate, important inherited fixes versus changes needing Palot work, evidence gaps and a recommendation. Do not install packages, execute downloaded binaries or call APIs that can start a service as part of a read-only check.

For a deeper comparison, map both exact published builds to upstream source. Use release tags or publish-run inputs; numbered betas map to publish workflow run_number, not the run database ID or nearest timestamp. Do not infer a source branch from a channel name. Paginate commit comparisons and state any incomplete retrieval. Source explains intent; the published package establishes availability. Use opencode-coverage only when operation/event adoption needs an audit.

Authorized dependency update

  1. Select an aligned exact version. Inspect relevant exports, request/response types and event unions before changing Palot callers. Stable 2.x compatibility is the existing product policy, not a reason to skip checking upstream changes.
  2. Update directly imported client/protocol packages with the pinned toolchain:

    # Run with apps/desktop as the working directory; VERSION is the exact selection.
    vp add -D -E "@opencode/client@$VERSION" "@opencode/protocol@$VERSION"

    Let Vite+ and Bun update the lockfile. Schema stays transitive unless Palot starts importing it. Keep exact pins. Do not add the legacy @opencode-ai/sdk.

  3. Align SUPPORTED_OPENCODE_VERSION and current runtime defaults, fixtures and verification metadata. Search for the old version and review each match; preserve reviewed-beta compatibility and historical evidence. Inspect retained runtime manifests, source/notice declarations and hash checks before changing them. An external-package policy is not permission to leave a used exact-version verifier stale, nor a reason to reintroduce bundled binaries.
  4. Verify actual desktop module resolution for client/protocol, and schema from the client's context, against the lockfile. Bun can leave obsolete nested packages shadowing root packages. If proven, move only those obsolete entries into a unique primary-checkout .local/ backup and recheck. Don't delete the whole dependency tree as a first response.
  5. Force the desktop TypeScript build after dependency changes:

    bun run --cwd apps/desktop typecheck --force

    Format/lint touched files and run affected contract/service tests. Use ../../../docs/agent-development.md to select native E2E or packaging checks. API-adoption changes may need a feature-specific runtime gate. Do not raise a blanket connection minimum just because a newer package adds an API.

If a used verifier needs new executable hashes, obtain the exact architecture's official archive, verify registry integrity, then hash the original bytes. Follow the current verifier's signature contract; do not blindly ad-hoc sign an upstream signed executable. Test downloaded runtimes only in an owned isolated harness.

Local CLI and service lifecycle

  • Prefer the user's existing installation. If a global update was separately authorized, identify the real executable and its package manager first. Update that installation rather than creating another or using a Vite+ global shim.
  • Updating an executable and restarting a service are separate actions. Keep a healthy compatible stable 2.x service running; an unreviewed beta requires exact-version consent. Do not replace the task host for dependency validation.
  • Palot's official download flow prepares an app-private fallback only after an explicit action. Preparing/resetting it must not start or restart a service.
  • With restart authorization, use the existing lifecycle workflow in palot-desktop-dev and verify the resulting service version. Commands such as opencode2 api ... can start a service, so they are not read-only diagnostics.

Completion

An upgrade is complete when the manifest, lockfile, resolved modules and current verification metadata agree, relevant checks pass, and remaining compatibility limits are reported. Distinguish workspace changes from global CLI, running service and installed-app state. Do not claim those were upgraded unless they were separately authorized and verified.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.