Skip to content

[OpenSpec] mcp-full-action-surface #622

Description

@github-actions

⚠️ OpenSpec-managed issue — this content is automatically synced
from the openspec/ directory. Manual edits will be overwritten on next sync.

Artifacts

Specs

Tasks

  • 1.1 Add lib/Settings/register.d/mcp-full-action-surface.json:
  • 1.2 Re-derive every search.filters list from the HEAD properties
  • 1.3 Agent-facing English description prose per verb per schema
  • 1.4 Import on the dev instance and verify the derived tool listing:
  • 2.1 Add lib/Mcp/SoftwareCatalogToolProvider.php
  • 2.2 Register the DI alias
  • 2.3 Add lib/Mcp/McpArgumentValidator.php (port of decidesk's:
  • 3.1 Add lib/Mcp/McpContractGate.php: load contract →
  • 3.2 Add lib/Mcp/McpPublicationGate.php reusing the
  • 3.3 Admin gates for moderation/merge/EOL/membership tools via
  • 4.1 Implement the curated read handlers (design.md §5 read table):
  • 5.1 Contract seam: submitContractApproval, submitContractRenewal
  • 5.2 Publication seam: publishObject, depublishObject
  • 5.3 Moderation/review/intake: approveRegistration,
  • 5.4 Offers/usages/membership/merge: acceptOffer, declineOffer
  • 5.5 Ops: importSbom (SbomImportService::importForModuleVersie(),
  • 6.1 PHPUnit descriptor fixture: every entry has scope + reach
  • 6.2 PHPUnit per gate: non-owning caller → forbidden AND delegate
  • 6.3 PHPUnit validator ladder: missing/badly-typed argument →
  • 6.4 PHPUnit submitReview pending-forcing;
  • 6.5 PHPUnit fragment/merge: schema key set unchanged after merge
  • 6.6 composer check:strict clean (PHPCS, PHPMD, Psalm, PHPStan) —
  • 7.1 Archive softwarecatalog-mcp-adoption as superseded by this
  • 7.2 Sync this change's spec delta into
  • 7.3 CHANGELOG entry under Unreleased: full MCP action surface

Design

See design.md for technical design details.


Synced from openspec/changes/mcp-full-action-surface by OpenSpec workflow
App: softwarecatalog

Metadata

Metadata

Assignees

No one assigned

    Labels

    openspecOpenSpec-driven changeopenspec:tasksOpenSpec phase: Tasksspec:too-largeBuilder bounced: >20 unchecked tasks. Fallback needs-input; re-split via Specter.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions