Skip to content

install: adopt the agent-first Install SOP v1 (install/verify/uninstall contract) #6

Description

@loonghao

Part of the ecosystem-wide install standardization tracked in dcc-mcp/dcc-mcp-core#2252 (Install SOP v1 full text, audit summary, and core-side work items). Companion: agent bug-feedback mechanism v2 in dcc-mcp/dcc-mcp-core#2253.

Audit findings for this repo (2026-08)

  • Has installer + JSON doctor -- but doctor only checks file presence and cannot observe the real failure hotspot: the manual "enable in Python Plugin Manager" step and whether the extension actually loaded (no bootstrap error capture inside Krita).
  • No uninstall command; no installer unit test (unlike gimp); no host preflight (Krita presence/version); macOS pykrita default path likely wrong.
  • Hand-rolled staged install/rollback duplicates safe_replace_tree; core lifecycle helpers unused; no troubleshooting section in README.

Conformance checklist — Install SOP v1 (host-integrated adapter)

Docs & discoverability

  • Root install.md following the standard template (Requirements / Supported versions / Agent quick path / Manual path / Verify / Upgrade / Uninstall / Troubleshooting); catalog instructions_url updated to point at its raw URL
  • Platforms (win/mac/linux) stated explicitly

Installer surface (agent-first)

  • Standard verbs: install | status | verify | uninstall | upgrade under the standard entry point (dcc-mcp-<dcc> <verb> or documented dcc-mcp-cli install --dcc-type <dcc> path) — no bespoke exe names or one-off arg shapes
  • Uniform flags: --json --yes --dry-run --dcc-path <p> --python <p>; stable exit codes (0 ok / 10 preflight / 20 acquire / 30 install / 40 verify / 50 requires-restart)
  • --json output uses the shared schema incl. machine-executable next_steps[] ({id, description, command|file_edit, why})

Preflight

  • Host installation + embedded interpreter detection with --dcc-path / --python overrides; chosen interpreter recorded in the plan
  • min_core_version + host version matrix checked before touching anything
  • Partial/existing-install detection (fresh vs upgrade vs repair)

Install

  • Host enablement automated (module/addon/plugin registration, env wiring) — GUI-only steps allowed only when the host physically requires them, emitted as one structured next_step
  • Idempotent: re-running converges; staged replace, never delete-then-copy
  • Windows-lock aware via dcc_mcp_core.install_lifecycle (inspect_install_root, safe_remove_tree / safe_replace_tree, structured requires_restart deferral)
  • Install receipt written (files, versions, interpreter, host paths touched)

Verify & recover

  • verify goes to usable: import check in the target interpreter → readiness probe (wait_for_sidecar_ready / ping skill) → directly_usable: true|false with failure_stage/failure_reason
  • capture_bootstrap_errors wired around the startup hook
  • Uninstall consumes the receipt; failed install/upgrade rolls back to the previous state (not to "nothing installed")
  • Troubleshooting section covers the top observed failure modes

CI

  • Install smoke in CI: plan + dry-run + receipt round-trip minimum; full host smoke where runners allow

Findings are from a read-only audit of the default branch on 2026-08-22. If the repo has moved since, treat the checklist as the source of truth. Reference implementations for each checklist area (3dsmax MZP uninstall, unity preflight, photoshop verify-to-usable, unreal checksum discipline, fpt pinned provisioning, tiled/gimp/krita JSON doctor) are listed in the tracking issue.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestinstall-sopInstall SOP v1 conformance (dcc-mcp-core#2252)

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions