원클릭으로
plan-interface-contracts
Public function/method signatures per WP
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Public function/method signatures per WP
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
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>