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.