Skip to content
Back to skills

Audit Object Model

ASecurity

Read the legacy ObjectModel class for the domain and extract its database schema, field definitions, multilingual fields, and validation rules. This is the authoritative source for what columns the Doctrine repository must handle.

  • 6 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added May 29, 2026
ai-agentsphpdatabase

Security analysis

A100/100

Scanned May 29, 2026

npx -y skills add jeffsenso/prestashop-skills --skill audit-object-model --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Audit Object Model?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Audit Object Model
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/jeffsenso-audit-object-model/badge)](https://www.skillsdirectory.com/skills/jeffsenso-audit-object-model)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: audit-object-model
description: >
  Read the legacy ObjectModel class for the domain and extract its database
  schema, field definitions, multilingual fields, and validation rules. This is
  the authoritative source for what columns the Doctrine repository must handle.
produces: "DB schema map, relation list, multilingual field list, validation rules from ObjectModel"
subagent: recommended
---

# audit-object-model

## Instructions

1. Open `classes/{Domain}.php` — read the `$definition` array fully.
2. Extract the `table` name — this is the primary DB table.
3. List every field in `$definition['fields']`: field name, type, validate rule, required flag, lang flag, shop flag.
4. Identify multilingual fields (`'lang' => true`) — these need `TranslatableType` in the form and multilingual handling in handlers.
5. Identify shop-scoped fields (`'shop' => true`) — these require multistore-aware repository methods.
6. If `classes/lang/{Domain}Lang.php` exists, read it and confirm the lang table structure.
7. Note any `hasMany` or `hasManyToMany` relations defined — these become sub-resources (handled by dedicated commands and repositories when the domain is non-trivial).
8. Record every `$validateFields()` rule — these inform ValueObject validation.
9. Output: structured schema map (table, columns, lang columns, shop columns, relations, validation rules).

## Rules

- Never modify ObjectModel files — read-only audit
- Flag any field with a custom validate method (`Validate::isXxx`) — these need a custom ValueObject
- Note `$identifier` field name — it becomes the `{Domain}Id` ValueObject
- Relations declared in ObjectModel that link to another entity's table are sub-resource candidates

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.