marketplace/bundles/pm-documents/skills/manage-interface/SKILL.md
Manage Interface specifications with CRUD operations, automatic numbering, and AsciiDoc formatting
npx skillsauth add cuioss/plan-marshall manage-interfaceInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Execution mode: Select workflow and execute immediately using documented script commands.
Prohibited actions:
Constraints:
python3 .plan/execute-script.py pm-documents:manage-interface:manage-interface ...doc/interfaces/ directoryManage Interface specifications stored in doc/interfaces/ directory.
Provide structured management of interface documentation:
| Workflow | Purpose | Script Used |
|----------|---------|-------------|
| list-interfaces | List all interfaces with optional filtering | manage-interface.py list |
| create-interface | Create new interface from template | manage-interface.py create |
| read-interface | Read interface content | manage-interface.py read |
| update-interface | Update interface content | manage-interface.py update |
| delete-interface | Delete interface (with confirmation) | manage-interface.py delete |
| validate-interface | Validate interface format | ref-asciidoc workflows |
List all interfaces with optional type filtering.
type (optional): Filter by type (REST_API, Event, gRPC, Database, File, Other)Step 1: Execute List
python3 .plan/execute-script.py pm-documents:manage-interface:manage-interface list [--type {type}]
Step 2: Parse Output
Parse TOON output containing interface list with metadata.
status: success
operation: list
count: 2
interfaces[2]{number,title,type,path}:
1,User Service API,REST_API,doc/interfaces/001-User_Service_API.adoc
2,Event Bus,Event,doc/interfaces/002-Event_Bus.adoc
Create a new interface specification with automatic numbering.
title (required): Interface nametype (required): Interface type (REST_API, Event, gRPC, Database, File, Other)Step 1: Create Interface
python3 .plan/execute-script.py pm-documents:manage-interface:manage-interface create --title "{title}" --type "{type}"
Step 2: Parse Output
Extract created file path from TOON output.
Step 3: Open for Editing
Read the created file and inform user to fill in content sections.
Step 4: Validate Format
Skill: pm-documents:ref-asciidoc
Execute workflow: validate-format
Parameters:
target: {created_path}
Interface Created: doc/interfaces/003-{title}.adoc
Number: INTER-003
Type: REST_API
Next steps:
1. Edit doc/interfaces/003-{title}.adoc to fill in:
- Contract definition (request/response)
- Error handling
- Authentication requirements
- Examples
2. Add consumers and providers
Read interface content by number.
number (required): Interface number (1, 2, 3, etc.)Step 1: Read Interface
python3 .plan/execute-script.py pm-documents:manage-interface:manage-interface read --number {number}
Step 2: Display Content
Show interface metadata and content to user.
Update interface field content.
number (required): Interface numberfield (required): Field to update (overview, type, input, output, errors, auth, versioning, consumers, providers)value (required): New value for the fieldStep 1: Update Interface
python3 .plan/execute-script.py pm-documents:manage-interface:manage-interface update --number {number} --field {field} --value "{value}"
Step 2: Confirm Update
Report updated field to user.
Delete interface with confirmation.
number (required): Interface numberforce (required): Must be true to confirm deletionStep 1: Delete Interface
python3 .plan/execute-script.py pm-documents:manage-interface:manage-interface delete --number {number} --force
Step 2: Confirm Deletion
Report deletion to user.
Validate interface format using ref-asciidoc skill.
number (required): Interface number to validateStep 1: Find Interface Path
Use list-interfaces workflow to get interface path by number.
Step 2: Validate Format
Skill: pm-documents:ref-asciidoc
Execute workflow: validate-format
Parameters:
target: {interface_path}
Step 3: Report Results
Report validation results to user.
This skill integrates with ref-asciidoc for:
| Type | Description | |------|-------------| | REST_API | HTTP/REST service endpoints | | Event | Event-driven message contracts | | gRPC | gRPC service and message definitions | | Database | Database schema and access contracts | | File | File format and exchange specifications | | Other | Other interface types |
Each interface specification contains these sections:
Interfaces follow this naming pattern:
doc/interfaces/{NNN}-{Title_With_Underscores}.adoc
Examples:
doc/interfaces/001-User_Service_API.adocdoc/interfaces/002-Event_Bus_Interface.adocdoc/interfaces/003-Database_Schema_V2.adocScript: pm-documents:manage-interface → manage-interface.py
| Subcommand | Description |
|------------|-------------|
| list | List all interfaces with optional type filtering |
| create | Create new interface from template with automatic numbering |
| read | Read interface content by number |
| update | Update interface field content |
| delete | Delete interface (requires --force) |
Usage Examples:
# List all interfaces
python3 .plan/execute-script.py pm-documents:manage-interface:manage-interface list
# Create new interface
python3 .plan/execute-script.py pm-documents:manage-interface:manage-interface create --title "User Service API" --type REST_API
# Update interface field
python3 .plan/execute-script.py pm-documents:manage-interface:manage-interface update --number 1 --field overview --value "Updated description"
The canonical argparse surface for manage-interface.py. The plugin-doctor analyzer (_analyze_manage_invocation.py) reads this section as source-of-truth for the manage-invocation-invalid and missing-canonical-block rules. Consuming docs xref this section by name instead of restating the command inline. See pm-plugin-development:plugin-script-architecture cross-skill-integration.md § "Script invocation in documentation".
python3 .plan/execute-script.py pm-documents:manage-interface:manage-interface list \
[--type {REST_API,Event,gRPC,Database,File,Other}]
python3 .plan/execute-script.py pm-documents:manage-interface:manage-interface create \
--title TITLE --type {REST_API,Event,gRPC,Database,File,Other}
python3 .plan/execute-script.py pm-documents:manage-interface:manage-interface read --number NUMBER
python3 .plan/execute-script.py pm-documents:manage-interface:manage-interface update \
--number NUMBER [--field FIELD] [--value VALUE]
python3 .plan/execute-script.py pm-documents:manage-interface:manage-interface delete --number NUMBER [--force]
python3 .plan/execute-script.py pm-documents:manage-interface:manage-interface next-number
pm-documents:ref-asciidoc - Format validationtools
Plan-marshall-domain implementor of the ext-self-review-{domain} extension point. Surfaces deterministic candidates (regexes, user-facing strings, markdown sections, symmetric-pair functions, flag-guard pairs, contract sources, schema-bearing files) for pre-submission structural self-review.
development
The single shared contract every untrusted-external-content ingestion surface loads — reader/orchestrator/writer isolation, the deterministic validator script as the containment boundary, and the output-schema discipline for candidate structs parsed from web pages, GitHub issue/PR/comment bodies, and Sonar issue messages
development
Domain-invariant recipe for deliberate wide-scope simplification campaigns across a scope x thoroughness cell, with a T4+ relation-graph pre-deliverable
testing
A test skill for README generation