with one click
plan-interface-contracts
Public function/method signatures per WP
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
Public function/method signatures per WP
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
Test failure diagnosis, source code fixes, and regression detection
Environment verification, dependency installation, baseline test verification
Contract-first single-task implementation dispatched by Coder Coordinator
Integration test writing for component boundaries and external dependencies
Unit test writing and execution with coverage threshold enforcement
API reference documentation skill. Produces and updates API endpoint documentation from contract files in .sdd/docs/api-reference.md.
| name | plan-interface-contracts |
| description | Public function/method signatures per WP |
| argument-hint | Invoked by Planner Coordinator - do not call directly |
Phase: 2 (Contract Generation) Common contract:
.github/skills/PLAN-SKILL-CONTRACT.mdSpec refs: FR-037, FR-038, FR-039
This skill is dispatched by the Planner Coordinator during Phase 2. It reads the plan accumulator (WP files from Phase 1) and generates language-specific interface contract files scoped per work package.
| # | Input | Description |
|---|---|---|
| 1 | skill_path | Path to this SKILL.md file |
| 2 | plan_dir | Path to .sdd/plans/ directory |
| 3 | contracts_dir | Path to .sdd/plans/contracts/ directory |
| 4 | spec_path | Path to the source spec file |
| 5 | spec_artifacts_dir | Path to spec companion artifacts |
| 6 | research_summary | Key findings from the research phase |
| 7 | target_language | Programming language for contract generation |
| 8 | patterns | Active plan-domain patterns to avoid |
| 9 | phase | Phase indicator (always 2 for this skill) |
interfaces.<ext> from spec_artifacts_dir. Read spec and artifact files in parallel.interfaces.<ext> to contracts_dir/<WP-slug>/ per applicable WPRead the plan README and all WP files. For each WP, determine if it introduces or modifies:
Skip WPs that:
Build a WP-to-interface mapping:
WP01 -> [UserService.create(), UserService.getById(), AuthMiddleware.verify()]
WP02 -> [OrderService.place(), OrderService.cancel(), PaymentGateway.charge()]
...
Check if spec_artifacts_dir contains an interfaces.<ext> file. If it exists:
If the spec artifact does NOT exist:
For each applicable WP, generate <contracts_dir>/<WP-slug>/interfaces.<ext>:
Every contract file MUST start with the manifest header:
// Generated by: plan-interface-contracts skill
// Source spec: <spec_path>
// Work package: WP<NN>-<slug>
// Target language: <target_language>
// DO NOT EDIT MANUALLY -- regenerated on plan revision
Adjust comment syntax for the target language:
//#//////For each public function or method the WP introduces:
// TypeScript example
export interface UserService {
create(input: CreateUserInput): Promise<User>;
getById(id: string): Promise<User | null>;
update(id: string, input: UpdateUserInput): Promise<User>;
delete(id: string): Promise<void>;
}
# Python example
from abc import ABC, abstractmethod
class UserService(ABC):
@abstractmethod
async def create(self, input: CreateUserInput) -> User: ...
@abstractmethod
async def get_by_id(self, id: str) -> User | None: ...
Requirements:
For abstract classes, protocols, traits, or interface types:
For module-level exports:
Each WP's interface file MUST contain ONLY the interfaces that WP introduces or modifies:
For interfaces that will be consumed by subsequent WPs:
<contracts_dir>/<WP-slug>/interfaces.<ext> AND <contracts_dir>/shared/interfaces.<ext>.../shared/interfaces rather than from the owning WP's directory.<contracts_dir>/shared/interfaces.<ext> does not exist, create it with the standard manifest header.Import syntax by language:
import { UserService } from '../shared/interfaces';from ..shared.interfaces import UserServiceIf a WP's interface file exceeds 800 lines:
For most WPs, interface files will be well under 800 lines.
<contracts_dir>/<WP-slug>/interfaces.<ext>