Skip to content

feat(skill): add standard package lifecycle and remote distribution - #1351

Draft
Teingi wants to merge 8 commits into
masterfrom
docs/standard-skills-lifecycle-rfc
Draft

feat(skill): add standard package lifecycle and remote distribution#1351
Teingi wants to merge 8 commits into
masterfrom
docs/standard-skills-lifecycle-rfc

Conversation

@Teingi

@Teingi Teingi commented Aug 25, 2026

Copy link
Copy Markdown
Member

Which issue or RFC does this PR close?

Implements the Standard Skill Package Lifecycle RFC in docs/en/rfcs/0000_standard_skill_package_lifecycle.md and docs/zh/rfcs/0000_standard_skill_package_lifecycle.md. No tracking issue was provided.

Rationale for this change

PowerContext can govern Experience and Skill revisions, but a useful Skill management loop also needs an authoritative package format, explicit local installation, and a secure way to distribute exact approved revisions to remote coding-agent machines. This change provides that end-to-end loop while keeping review, installation, execution, and remote credentials as separate trust boundaries.

What changes are included in this PR?

  • Add the standard managed Skill package lifecycle: package capture and validation, immutable manifests and downloads, compatibility checks, lifecycle governance, usage evidence, provenance, and drift-safe local publication.
  • Add Receiver-pull remote distribution with one-time enrollment, credential-bound reconciliation and download, atomic installation, receipts, revocation, automatic watch mode, and optional systemd user-service installation.
  • Add persisted remote target and publication state for SQLite and OceanBase-compatible backends, including schema upgrades for existing databases.
  • Extend the public OpenAPI contract, generated Python bindings, and generated DSH, Pi, and OpenCode operation tables.
  • Add Dashboard workflows for local or remote delivery, machine naming/search/rename, origin badges, replacement-Skill selection, enrollment guidance, status refresh, and publish/unpublish actions.
  • Add insecure-HTTP enrollment as an explicit opt-in for initial private-network deployments while keeping secure defaults and clear UI warnings.
  • Update build artifacts so remote Receiver installation can use a wheel produced from the same checkout.
  • Add English and Chinese RFC, configuration, and Server UI documentation.

Are there any user-facing changes?

Yes. The Skills Dashboard now exposes governed package contents, provenance, lifecycle controls, local installation targets, and remote machine distribution. New CLI commands support enrollment, reconciliation, watch mode, and user-service installation. New HTTP operations and persistence tables/columns support package and distribution state.

Existing managed Skill revisions without a standard package remain visible but cannot be published until a package-backed revision is created or uploaded. Remote distribution is pull-based: the Server does not SSH into or directly write another machine.

How was this change tested?

  • make check
  • make docs-test
  • make contract-test (29 passed)
  • uv run pytest -q tests/test_dashboard.py tests/test_dashboard_locale.py (14 passed after the latest master merge)
  • Combined pytest coverage reached 781 passed, 9 skipped; one readiness timeout under full-suite load passed on focused rerun.
  • The OpenCode real-host test remains environment-limited on the local OpenCode 1.18.21 installation, which returns an internal host error before invoking the plugin; the test and plugin code are identical to origin/master.
  • Real Firefox validation covered local installation, remote-machine creation, cancellation with empty required fields, rename cancellation, status refresh, and zero application console errors.
  • A real SSH-accessible remote host completed enrollment, pull reconciliation, installation, update, removal, receipt reporting, and cleanup.
  • After the final merge, the running Server was restarted from .env; /health/live, authenticated Handoff scope discovery, and report retrieval completed successfully.

AI usage statement

OpenAI Codex (GPT-5) was used for design refinement, implementation, documentation, conflict resolution, and test execution. The resulting changes and validation evidence were reviewed in the working tree before submission.

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.

1 participant