odoo-ps/ps-ai-skills · Archived

odev-ai

"Maps a technical analysis or functional specification onto the presales.analysis Odoo data structure via MCP tools, populating the parent record and its typed child specification lines."

Hot #3462

Installation

$ npx skills add odoo-ps/ps-ai-skills --skill odev-ai

Stronger alternatives

This repository is archived — consider an actively maintained alternative.

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from odoo-ps/ps-ai-skills · top by installs.

npx skills add odoo-ps/ps-ai-skills

Browse all from odoo-ps/ps-ai-skills

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Default branch main
Open issues 0
Status Archived

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 7,910 B
  • docs SUMMARY.md 200 B

History

  1. First recorded snapshot · 3 installs

SKILL.md

SKILL: Ps-Tools Analysis Architecture Mapping & Structuring

Main Objective

Translate a technical analysis or functional specification into a precise and qualified Odoo data structure. The goal is to populate the main parent record presales.analysis and all its child technical specification lines via MCP tools. All child lines must explicitly populate the analysis_id field with the ID of the parent record.


Rules That Apply To Every Line

  • Never write a line count in a description. No "~40 LOC", no "about 30 lines of Python", no "≈ 3 files

of 20 lines". The line count is derived from estimatedtime, never the reverse — restating it in the text duplicates that computation and contradicts it the moment the estimate is adjusted. The description says what is built and why; estimatedtime alone carries the size.


Target Odoo Database Architecture Catalog

For each component discovered during the analysis, the data must be mapped according to the strict models and fields defined below:

1. Central Workspace (presales.analysis)

  • Usage: Main parent record. Initialize this record first to capture the main analysis workspace ID.
  • Key Fields: * isnewmodule: (Boolean) Default assumption: the requirement is built as a new custom module. Set to false only when it genuinely extends a module that already exists and it makes sense to keep the change there rather than add a new module.

* existingmodulename: (String - Technical name) Required when isnewmodule is false, naming the module being extended.

2. Business Logic & Python Workflows (presales.businessflowline)

  • Usage: Used for custom methods, computation overrides, or major business workflows.
  • Key Fields: * action: 'add' | 'override'

model: (String - e.g., 'sale.order') name: (String - Method/Field technical name) actionname: (String - Label) dependsfields: (String) estimated_time: (Float) description: (Text)

3. HTTP & Routing Controllers (presales.controller_line)

  • Usage: Used for web controllers, routes, or custom endpoints.
  • Key Fields: * action: 'add' | 'override'

actionname: (String - Route name) estimatedtime: (Float) * description: (Text)

4. Initial / Demo Data (presales.data_line)

  • Usage: Used for required data files, CSV loads, or XML base records installation.
  • Key Fields: * model: (String - Target model string)

estimated_time: (Float) description: (Text)

5. Database Fields Modifications (presales.field_line)

  • Usage: Used whenever custom fields are added or existing fields are extended.
  • action: 'studio' depends on the hosting, and the prompt states which one applies:

Odoo Online (SaaS): allowed — a Studio field is a legitimate implementation there. Odoo.sh / On-Premise: not allowed. A Studio customisation that already exists in the database has to be migrated into code: raise the field as 'add' (or 'override') on the custom module, and estimate the migration of the existing Studio field and of the data it already holds (a presales.scriptline with 'premigrate' / 'post_migrate'). Never leave a 'studio' line on an Odoo.sh analysis.

  • Key Fields: * model_type: 'existing' | 'new'

action: 'add' | 'override' | 'studio' fieldname: (String - Technical name) model: (String - Target model) type: (Many2one link ID to data type) comodelname: (String) defaultvalue: (String) iscompute | isstored | isrequired | isreadonly | istracked | index | inheritmailthread | inheritmailactivitymixin: (Boolean) domain: (String) relation: (String - M2M relation name) estimatedtime: (Float) * description: (Text)

6. External Connectors & APIs (presales.integration_line)

  • Usage: Used for file synchronization, APIs, cron data syncs, or webhook pipelines.
  • Key Fields: * model: (String)

name: (String - Integration label) flow: 'in' | 'out' | 'outreal' type: 'ftp' | 'sftp' | 'api' format: 'csv' | 'json' | 'text' | 'pdf' | 'sql' | 'xml' intervalnumber: (Integer) intervaltype: 'minutes' | 'hours' | 'days' | 'weeks' | 'months' filter: (String) process | postprocess: (Text specification) * estimated_time: (Float)

7. Frontend Web Client & Assets (presales.js_line)

  • Usage: Used for custom widgets, Owl components, or custom style sheets styling.
  • Key Fields: * action: 'add' | 'override' | 'new'

type: 'js' | 'css' assets: 'backend' | 'frontend' | 'common' filepath: (String) objectname: (String) name: (String - Method string) actionname: (String) estimatedtime: (Float) description: (Text)

8. Documents & PDF Layouts (presales.report_line)

  • Usage: Used for custom QWeb actions, printed actions documents, or HTML report templates.
  • Key Fields: * action: 'add' | 'override'

model: (String) view: (String - View XML external ID) estimated_time: (Float) description: (Text)

9. Database Installation & Migration Hooks (presales.script_line)

  • Usage: Used for pre/post installation hooks, data migration paths, or optimization raw SQL scripts that ship inside the custom module itself. Scope each line to what the hook's own code does (e.g. backfilling a field, scaffolding module-level tests) — never to hosting or deployment workflow (branch creation, builds, staging/production deployment). Those belong on the analysis as a whole, not on a script line, and only when the hosting rules call for stating them.
  • Prefer a migration script over an init hook. preinithook and postinithook are deprecated and are

the wrong default: use 'premigrate' / 'postmigrate' (or 'end_migrate') for anything touching existing data — backfilling a field, renaming a model, moving Studio customisations into code. Pick an init hook only where the work genuinely can run nowhere but the module's first install, and say why in the description.

  • Key Fields: * action: 'preinithook' | 'postinithook' | 'uninstall' | 'posthook' | 'premigrate' | 'postmigrate' | 'endmigrate' | 'sql'

model | fieldname: (String) estimatedtime: (Float) * description: (Text)

10. Security Groups & Access Control (presales.security_line)

  • Usage: Used for security matrix layout, explicit access right modifications, or structural record rules.
  • Key Fields: * action: 'add' | 'override'

type: 'acl' | 'recordrules' | 'newgroup' name: (String) model: (String - Technical target string) groups: (String - Names comma-separated) domain: (String - Evaluation filters) asreadaccess | aswriteaccess | ascreateaccess | asdeleteaccess: (Boolean) estimated_time: (Float) description: (Text)

11. Frontend Portal & E-commerce Templates (presales.websitetemplateline)

  • Usage: Used for QWeb portal pages adjustments or specific website template customization block extensions.
  • Key Fields: * action: 'add' | 'override' | 'disable'

view: (String - View External ID) field: (String - Target node string) estimated_time: (Float) description: (Text)