odf-propose
Create an ODF change proposal with business context, scope, and approach. Trigger: Phase 0 (PROPOSE) of /odf-new.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Create an ODF change proposal with business context, scope, and approach. Trigger: Phase 0 (PROPOSE) of /odf-new.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Implement Odoo tasks from design artifact. Write code following spec + design. Trigger: Phase 3 (IMPLEMENT) of /odf-new after DESIGN approved.
Detect + persist Odoo project context: version, modules, test runner, lint tools, conventions. Trigger: /odf-init, first time in a project.
Quality gate for ODF: evidence-based risk tiers (0/1/4 lenses), spec compliance matrix, single-attempt correction budget. Trigger: Phase 4 (VERIFY) of /odf-new.
Strict TDD mode for ODF: tests before code. Two-source kill switch (global + local), any off wins, fail-closed. Trigger: /odf-tdd on, effective TDD mode active, or when strict TDD enforcement is needed.
Deep investigation of Odoo codebase to understand patterns before proposing solutions. Trigger: /odf-explore, 'how does Odoo handle X', research, investigation.
Assess Odoo requirement: determine standard vs custom strategy, analyze functional feasibility, produce functional spec. Trigger: Phase 1 (ASSESS) of /odf-new.
| name | odf-propose |
| description | Create an ODF change proposal with business context, scope, and approach. Trigger: Phase 0 (PROPOSE) of /odf-new. |
| license | MIT |
| metadata | {"author":"adruban","version":"1.1"} |
Use as the first phase after preflight in /odf-new. Transform the user's requirement into a structured proposal document: business problem, scope boundaries, capabilities, approach, risks. This is the bridge between "what the user wants" and "what ASSESS will analyze."
NEVER write code, functional specs, or config guides in this phase. Only the proposal document.
| Rule | Requirement |
|---|---|
| No code | Produce only the proposal document. No analysis beyond scope/approach |
| Questions first | Before finalizing, offer the user a question round for business decisions |
| Size budget | Proposal MUST be under 300 words. Bullet points and tables over prose |
| Capabilities section | Must be filled — it's the contract with ASSESS |
| Rollback plan | Every proposal MUST have one |
| Success criteria | Every proposal MUST have measurable criteria |
| Condition | Action |
|---|---|
| User changes scope | Update proposal, re-present for approval |
| User cancels | Archive the change gracefully without handing off to ASSESS |
| Proposal approved | next_recommended: ["assess"] |
Before writing the proposal, offer the user 3–5 business questions via the question tool (or plain text if the tool is unavailable — list the questions and ask the user to answer one by one). Explain that these clarify scope and risks before investing in a full assessment. Cover the smallest useful subset of:
After answers, summarize assumptions and ask if the user wants a second round or to proceed.
Read shared conventions: skills/_shared/persistence-contract.md, skills/_shared/result-contract.md, skills/_shared/odoo-sources.md.
Produce a structured proposal document in the response:
## Proposal: {Change Name}
### Intent
{What problem are we solving? Why Odoo? Why now?}
### Scope
**In scope:**
- {deliverable 1}
- {deliverable 2}
**Out of scope (deferred):**
- {explicit non-goal 1}
- {explicit non-goal 2}
### Capabilities
**New:** <kebab-name> — {one-line description}
**Modified (spec-level):** <existing-capability> — {what behavior changes}
### Approach
{High-level: standard Odoo config, custom module, migration, or integration. 2-3 sentences max.}
### Affected Areas
| Area | Impact | Description |
|------|--------|-------------|
| {module/path} | New/Mod/Rem | {what changes} |
### Risks
| Risk | Likelihood | Mitigation |
|------|------------|------------|
| {risk} | Low/Med/High | {mitigation} |
### Rollback Plan
{How to revert. Be concrete.}
### Success Criteria
- [ ] {measurable outcome}
- [ ] {verifiable condition}
mem_save(
title: "odf/{change}/propose",
topic_key: "odf/{change}/propose",
type: "architecture",
capture_prompt: false,
content: {full proposal markdown}
)
## PROPOSE Complete
**Change**: {change-name}
**Status**: awaiting approval
### Summary
- Strategy hint: {standard | custom | unclear}
- Scope: {N items in, N deferred}
- Risk level: {Low/Medium/High}
### Next Step
Run ASSESS phase for functional analysis
Keep the proposal semantics and summary above, then end the response with the
shared ## ODF Result envelope from skills/_shared/result-contract.md.
Use blocked while awaiting interactive approval or user input, ok only after
approval and handoff to ASSESS, and failed only for an execution error. Set artifacts_saved to the
persisted proposal artifact and next_recommended to ["assess"] after
approval, or [] when cancelled.
skills/_shared/result-contract.md — shared inner result envelope and status semantics.skills/_shared/persistence-contract.md — selected artifact-store persistence convention.