Skip to content

feat(schema): add optional status enum to registry-schema#53

Merged
intel352 merged 3 commits into
mainfrom
chore/qol-sweep-2026-05-19
May 19, 2026
Merged

feat(schema): add optional status enum to registry-schema#53
intel352 merged 3 commits into
mainfrom
chore/qol-sweep-2026-05-19

Conversation

@intel352
Copy link
Copy Markdown
Contributor

@intel352 intel352 commented May 19, 2026

Summary

  • Adds an optional status property to schema/registry-schema.json with enum values verified | experimental | deprecated
  • Field is not in the required array — all 59 existing manifests continue to pass ajv validate --spec=draft2020
  • Bogus values (e.g. status: "bogus") correctly fail the enum check
  • Updates README Schema section to list status alongside type and tier enums

Status enum semantics

Value Meaning
verified Pinned in a merged main-branch wfctl.yaml of an active GoCodeAlone project
experimental Compiles + unit-tests pass but no verified production usage
deprecated Scheduled removal

Related

  • Manifest population (setting status values on plugin entries) follows in PR-R2 once this PR + the workflow RegistryManifest struct PR both merge
  • Companion workflow Go struct PR adds Status field to PluginSummary (Task 1)

Test plan

  • ajv validate --spec=draft2020 -s schema/registry-schema.json -d plugins/*/manifest.json → all 59 pass
  • Probe with status: "experimental" → valid
  • Probe with status: "bogus" → fails enum check

Rollback

Revert this PR. Existing manifests are unaffected — status was never required, so manifests without the field continue to validate against the original schema. If Task 16 (manifest population CI) has already merged when a rollback is needed, revert Task 16 first to keep registry CI green, then revert this PR.

🤖 Generated with Claude Code

Adds an optional `status` property (verified|experimental|deprecated)
to the per-plugin manifest schema. The field is not required so all
existing 59 manifests continue to validate; manifest population follows
in PR-R2 (workflow Go struct side) and plugin README sweeps.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings May 19, 2026 15:12
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR extends the plugin manifest JSON Schema (schema/registry-schema.json) to support an optional status field, enabling registry entries to express verification maturity (verified, experimental, deprecated) while keeping all existing manifests valid.

Changes:

  • Added optional status property to the manifest schema.
  • Constrained status to an explicit enum: verified | experimental | deprecated.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 1 out of 1 changed files in this pull request and generated no new comments.

intel352 and others added 2 commits May 19, 2026 11:25
Updates the Schema section description to include `status` in the list
of enum fields defined by the schema.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Adds one-paragraph description of the optional `status` enum
  (verified/experimental/deprecated) under the Schema overview
- Lists `status` as optional in the Manifest Requirements section

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@intel352 intel352 merged commit df383a6 into main May 19, 2026
3 checks passed
@intel352 intel352 deleted the chore/qol-sweep-2026-05-19 branch May 19, 2026 15:29
intel352 added a commit that referenced this pull request May 19, 2026
Preceding commit body listed `agent` in the verified set, but
plugins/agent/manifest.json has type=builtin — the population script
correctly skipped it per the `type != "external"` guard. The 6-count
was always correct; only the parenthetical name list was wrong.

Correct verified set (6): audit-chain, digitalocean, eventbus,
payments, twilio, workflow-plugin-auth.

No manifest files changed; schema validation still passes.

Part of 2026-05-19 OSS-readiness QoL sweep.
See: GoCodeAlone/workflow#714
See: #53
See: GoCodeAlone/workflow#715

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
intel352 added a commit that referenced this pull request May 19, 2026
#54)

* feat(registry): populate status field across external plugin manifests

Sets status=verified on 6 established plugins (agent, audit-chain,
digitalocean, eventbus, payments, twilio, workflow-plugin-auth) and
status=experimental on 33 remaining external plugins. Private plugins
(waf, security, sandbox, supply-chain, data-protection, authz-ui,
cloud-ui, workflow-plugin-supply-chain) left unchanged. Built-in plugin
manifests (type != "external") unchanged.

Validated against schema/registry-schema.json (draft2020) — all 59
manifests pass. Negative assertion confirms no private-plugin manifests
touched.

Part of 2026-05-19 OSS-readiness QoL sweep.
See: GoCodeAlone/workflow#714
See: #53
See: GoCodeAlone/workflow#715

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* docs(registry): correct verified plugin list in preceding commit body

Preceding commit body listed `agent` in the verified set, but
plugins/agent/manifest.json has type=builtin — the population script
correctly skipped it per the `type != "external"` guard. The 6-count
was always correct; only the parenthetical name list was wrong.

Correct verified set (6): audit-chain, digitalocean, eventbus,
payments, twilio, workflow-plugin-auth.

No manifest files changed; schema validation still passes.

Part of 2026-05-19 OSS-readiness QoL sweep.
See: GoCodeAlone/workflow#714
See: #53
See: GoCodeAlone/workflow#715

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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.

2 participants