Skip to content

Migrate workflow-plugin-template to strict gRPC proto contracts #1

@intel352

Description

@intel352

Goal

Migrate this plugin to Workflow strict gRPC proto contracts so contract shape issues are caught during code generation, compilation, wfctl validation, or startup checks instead of runtime execution.

Context

Workflow now supports strict plugin contract descriptors and typed proto payloads. Use the current Workflow repo as the source of truth, especially:

  • docs/plans/2026-04-26-strict-grpc-plugin-contracts.md
  • docs/plans/2026-04-26-strict-grpc-plugin-contracts-design.md
  • docs/WFCTL.md sections for wfctl audit plugins --strict-contracts and wfctl plugin validate --strict-contracts

Current workspace strict-contract audit result for this repo:

  • manifest shape: canonical
  • modules strict/total: 0/0
  • steps strict/total: 0/0
  • triggers strict/total: 0/0
  • service methods strict/total: 0/0
  • findings: placeholder_plugin_identity

Required work

  • Inspect this repository's AGENTS.md, CLAUDE.md, README, Makefile, go.mod, plugin manifest, proto/codegen setup, and tests before editing.
  • If the plugin manifest is missing or legacy-shaped, add or migrate it to the canonical Workflow plugin manifest shape expected by current wfctl audit plugins.
  • Add or update strict proto-backed contracts for every advertised module, step, trigger, and service method.
  • Add or update proto messages for typed module config, step config/input/output, trigger payloads, and service method payloads as applicable.
  • Add plugin.contracts.json or inline manifest contracts in the format expected by Workflow's current strict contract audit.
  • Replace map-only boundary parsing at plugin entrypoints with Workflow SDK typed adapters where applicable, while preserving internal behavior.
  • Keep compatibility code only when explicitly needed and documented; strict descriptors should be the default for advertised types.
  • Update docs only where they help future maintainers run validation or understand generated code.

Validation

Run and include results in the PR body:

  • go test ./...
  • go test -race ./... if practical for this repo; otherwise explain why not.
  • go vet ./...
  • go mod tidy and confirm no unintended diff remains.
  • Build the plugin binary using the repo's normal build command.
  • With a current wfctl, run wfctl plugin validate --file plugin.json --strict-contracts.
  • From a sibling Workflow checkout if available, run GOWORK=off go run ./cmd/wfctl audit plugins --repo-root --strict-contracts and confirm this repo no longer reports strict-contract findings.

PR expectations

  • Open a PR against main.
  • Request Copilot code review on the PR.
  • Keep iterating until CI is green and meaningful Copilot review comments are addressed.

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions