.claude/skills/oip-proposal/SKILL.md
Create OmoiOS Improvement Proposals (OIPs) through an interactive workflow. Gathers context from the user via clarifying questions, researches relevant codebase files, then writes a complete proposal following the OIP template. Use when requesting "create a proposal", "write an OIP", "new proposal", "propose a feature", "OIP", "improvement proposal", or when the user wants to formally propose a product, architecture, or process change for OmoiOS.
npx skillsauth add kivo360/omoios oip-proposalInstall 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.
Create OmoiOS Improvement Proposals (OIPs) through an interactive, question-driven workflow. This skill gathers context from the user, researches the codebase for accurate file references, and writes a complete proposal following the project's OIP template.
Follow these three phases in order. Do not skip the clarification phase — proposals written without understanding the user's intent produce vague specifications that require rewrites.
Goal: Understand what the user wants to propose and why, before writing anything.
Read docs/proposals/README.md and check which OIP numbers are taken:
ls docs/proposals/oip-*.md
The next number is one above the highest existing number, zero-padded to 4 digits.
Use the AskUserQuestion tool to gather essential context. Ask questions based on what the user has provided so far. Not all questions will be needed for every proposal — use judgment.
Always ask:
Ask if unclear:
Ask if the proposal involves frontend work:
Ask if the proposal involves backend work:
Summarize what you've gathered in 3-4 sentences and ask the user to confirm before proceeding. Use AskUserQuestion with options like "Yes, that's right" / "Close but let me clarify" / "No, let me re-explain".
Goal: Find the real files, components, and patterns that the proposal will reference. Proposals that reference actual codebase paths are far more useful than ones that speak abstractly.
Based on the proposal's scope, read the relevant files:
frontend/app/ for route structure, frontend/components/ for existing components, frontend/hooks/ for data patterns, frontend/lib/api/ for API client functionsbackend/omoi_os/api/routes/ for existing endpoints, backend/omoi_os/services/ for business logic, backend/omoi_os/models/ for database schemabackend/config/base.yaml for settings patternsdocs/proposals/ to avoid conflicts or duplication| Document | When to read |
|----------|-------------|
| ARCHITECTURE.md | Any backend or system-wide proposal |
| UI.md | Any frontend proposal |
| docs/proposals/README.md | Always — check status table for conflicts |
| backend/CLAUDE.md | Backend conventions (structured_output, datetime, reserved words) |
Note the exact file paths (relative from repo root) for every component, service, hook, or route you'll reference. The Specification section must use real paths, not hypothetical ones.
Goal: Write the complete OIP file following the template exactly.
docs/proposals/oip-{NNNN}-{short-title}.md
Where {NNNN} is the zero-padded number and {short-title} is a kebab-case slug (2-4 words).
Every OIP must contain these sections in this order:
```
OIP: {NNNN}
Title: {Descriptive Title}
Description: {One-line summary, max 140 characters}
Author: {Name or handle}
Status: Draft
Type: {Standards Track | Informational | Process}
Created: {YYYY-MM-DD}
Requires: (optional, other OIP numbers)
Replaces: (optional)
Superseded-By: (optional)
```
## Abstract
2-3 sentences. A reader should understand the proposal in 30 seconds.
## Motivation
Why this change is needed. Include data, user research, or metrics.
Reference the problem concretely — link to specific code that demonstrates the issue.
## Specification
Concrete technical details. This is the longest section.
For each change, specify:
- **Modified file**: `path/to/file.ts` — what changes and why
- **New file**: `path/to/new/file.ts` — what it does, key interfaces/types
Include code snippets for interfaces, types, API endpoints, config changes.
Be specific enough that another engineer could implement without asking questions.
## Rationale
Why this approach over alternatives. Name the alternatives explicitly
and explain why they were not chosen. Discuss trade-offs.
## Backwards Compatibility
How existing users and behavior are affected.
If none: "No backwards compatibility concerns."
## Security Considerations
Authentication, rate limiting, abuse vectors, data exposure.
Every proposal MUST address this, even if the answer is "no new attack surface."
## Impact Assessment
Effort estimate (small/medium/large), infrastructure costs, expected user impact.
Include metrics for measuring success.
## Open Issues
Unresolved questions. Number them for easy reference in discussions.
path/to/file.ts format for every file mentioned. Readers should be able to cat the file and see what you're talking about.docs/proposals/README.md — add the new OIP to the status tableUser: "I want to propose adding WebSocket support to the sandbox page"
Action: Ask clarifying questions about scope (which events? replace polling? backwards compatible?), research frontend/app/(app)/sandbox/[sandboxId]/page.tsx and frontend/hooks/useSandbox.ts, then write the OIP.
User: "Write an OIP for rate limiting the public API"
Action: Ask about which endpoints, what limits, whether it's IP-based or token-based, research backend/omoi_os/api/main.py and existing auth middleware, then write the OIP.
User: "New proposal" Action: Ask what they want to propose — don't assume. Start with "What problem are you looking to solve?"
development
Spec-driven development workflow for turning feature ideas into structured PRDs, requirements, designs, tickets, and tasks. Uses a state machine approach with EXPLORE → REQUIREMENTS → DESIGN → TASKS → SYNC phases. Each phase has validation gates, checkpointing, and session transcript support for cross-sandbox resumption.
development
Generate comprehensive tests including unit, integration, and property-based tests
development
Spec-driven development workflow for turning feature ideas into structured PRDs, requirements, designs, tickets, and tasks. Uses a state machine approach with EXPLORE → REQUIREMENTS → DESIGN → TASKS → SYNC phases. Each phase has validation gates, checkpointing, and session transcript support for cross-sandbox resumption.
development
Plan safe refactoring with dependency analysis, impact assessment, and rollback strategies