Agent skill

Skill Doli Dev

by Dolibarr in Dolibarr/dolibarr

A skill your agent uses when developing Dolibarr ERP/CRM code, working with database queries, or asking about Dolibarr best practices.

MITAuto-check passedSales & Support

Install Skill Doli Dev

skills CLI
$ npx skills add Dolibarr/dolibarr --skill skill-doli-dev -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install Dolibarr/dolibarr skill-doli-dev --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/Dolibarr/dolibarr.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/skill-doli-dev .claude/skills/skill-doli-dev && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
skill-doli-dev
GitHub stars
7.7k
Token cost
~2.9k tokens
SKILL.md length
1,071 words
Files
1
Skills in repo
6
Repo updated
First seen
Licence
MIT

At a glance

A skill your agent uses when developing Dolibarr ERP/CRM code, working with database queries, or asking about Dolibarr best practices.

  • Works in 3 steps: Database Abstraction Layer: All database… → Input/Output Escaping → Variable Safety Naming: When…
  • Developing Dolibarr ERP/CRM code
  • SKILL.md covers Relationship with AGENTS.md, Core Principles:…, Workflow and Tasks Guidance and Comprehensive Reference…
  • Calls git

What it does

Skill Doli Dev is an agent skill from Dolibarr/dolibarr. Use when developing Dolibarr ERP/CRM code, working with database queries, or asking about Dolibarr best practices.

Its SKILL.md is about 2.9k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Sales & Support. It works with PHP. The repository describes itself as: Dolibarr ERP CRM is a modern software package to manage your company or foundation's activity (contacts, suppliers, invoices, orders, stocks, agenda, accounting, ...). it's an… The licence is MIT.

When your agent uses it

  • Developing Dolibarr ERP/CRM code
  • Working with database queries
  • Asking about Dolibarr best practices

Example prompts

  • “/skill-doli-dev”

Requirements

  • Pre-approved tools (allowed-tools): read_file, write_file, grep, bash

Workflow steps

3 steps, taken from the first numbered list in SKILL.md.

  1. Database Abstraction Layer: All database interactions must exclusively use the Dolibarr Database Abstraction Layer ($db or $this->db)…
  2. Input/Output Escaping
  3. Variable Safety Naming: When constructing dynamic SQL, the resulting variable holding the entire query string MUST be clearly prefixed…

What it can do on your machine

Read from SKILL.md and the folder at commit 2472641. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • read_file
    • write_file
    • grep
    • bash

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • git

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • wiki.dolibarr.org
    • dolibarr.org

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Skill Doli Dev loads about 2.9k tokens when it runs. Until then it costs about 32 tokens; SKILL.md has 1,071 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~32
When it runs · the whole SKILL.md, loaded when a task matches
~2.9k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from Dolibarr/dolibarr at commit 2472641, republished under its MIT licence (© Dolibarr). 1,071 words, ~2,902 tokens.

Download SKILL.mdSave it as .claude/skills/skill-doli-dev/SKILL.md (or your agent's skills folder).
name
skill-doli-dev
description
Use when developing Dolibarr ERP/CRM code, working with database queries, or asking about Dolibarr best practices.
allowed-tools
read_file, write_file, grep, bash
license
MIT
user-invocable
true

Dolibarr Development Best Practices (Core Agent Skill)

This skill guides agents on developing, modifying, and debugging code within the Dolibarr ERP/CRM codebase while strictly adhering to professional standards, security guidelines, and the project's established architecture.

Relationship with AGENTS.md

The instructions in this file are complementary to the instructions defined in AGENTS.md.

  • AGENTS.md contains the general instructions and rules for the project.
  • SKILLS.md contains additional instructions specific to skills.
  • Unless explicitly stated otherwise, the instructions from both files apply.
  • SKILLS.md does not replace or override AGENTS.md.
  • If an instruction in SKILLS.md conflicts with AGENTS.md, follow the rules defined by AGENTS.md.

Core Principles: Non-Negotiable Mandatory Rules

These principles must be followed even before reviewing specific task details. Violation of these principles results in failed suggestions.

Security & Data Integrity
  1. Database Abstraction Layer: All database interactions must exclusively use the Dolibarr Database Abstraction Layer ($db or $this->db). Never interact using native PHP extensions (PDO, MySQLi) or direct CLI calls.
  2. Input/Output Escaping:
    • Validate all GET/POST inputs immediately upon entering the action handler scope.
    • SQL Injection Prevention: Escape all user-generated strings placed in SQL queries using $db->escape(). For integers, use explicit casting: ((int) $var); for floats, use (float) $var.
  3. Variable Safety Naming: When constructing dynamic SQL, the resulting variable holding the entire query string MUST be clearly prefixed (e.g., $sqlWhereClause, $queryParams). This pattern helps static analysis tools detect unsafe assignments.
Code Structure & Quality
  1. Coding Standard: All new and modified committed code must strictly adhere to PSR-12 (enforceable by using phpcbf and phpcs).All properties and all function arguments and return value need detailed PHPDoc (e.g., array<string,array{key1?:?type,...}>).Variables expected to exist in view files require both a PHPDoc declaration and the use of '@phan-var-force'; declarations near the HEAD of the file for strict static analysis tracking.
  2. Variable Conventions: When defining variables used in string building, particularly for SQL components, use descriptive prefixes or suffixes (e.g., $sql_select, $actionSuffix). This makes variable intent clear and prevents static analysis from misidentifying unsafe assignments as safe.
  3. Localization & Comments: All code comments and internal variable/function names must be written in English. Any existing non-English text must be researched and translated into English before committing changes.
  4. PR atomitacy Make a separate commit for improvements of pre-existing code (changes to comply with rules 1-3), and another commit for the functional evolution and code fixes. Do not apply rules 1-3 to existing code in backports (i.e., non-functional changes not applied to a (fork of) the develop branch.
Workflow & Architecture
  1. PHP version: 7.2+
  2. Action/View Separation: Always clearly separate page action logic (executed on POST) from pure rendering (the HTML view).

Workflow and Tasks Guidance

This section guides the agent through common development tasks.

Code Investigation / Searching / Database analysis
  • Use pre-commit to run tools (php-cbf, php-cs, shellcheck, php-lint - example:pre-commit run php-cbf --files RELATIVEFILEPATH) when the git hook is installed as local direct installations differ across systems.
  • IMPORTANT: Always use git grep instead of find for searching the codebase. find searches all directories including .git which is very slow. Use:
    bash
    git grep -n "pattern" -- "*.php"
    git grep -n "function_name" htdocs/core/lib/ -- "*.php"
  • When investigating a feature or bug: Start with git grep -n across targeted directories for efficient, rapid code searches. Using $db->prefix() consistently is the first step in tracing data flows.
  • Dependency Check: Before modifying a file, search both htdocs/core/lib/ and htdocs/core/class/ to ensure similar methods or utilities are not already in use. Always check if the concern object extends CommonObject, favouring its built-in methods (fetch(), create(), update(), etc.).
  • Dolibarr Function & Method Arguments: Check the function signature before implementing a call - the parameter order is not consistent across dolibarr functions that have the same name.
  • When you need to access the database for analysis, use php, example:
    bash
    php <<'EOPHP'
    <?php
    error_reporting(E_ALL); ini_set('display_errors', 1);
    require_once 'htdocs/master.inc.php'; // *NOT* main.inc.php
    global $db;
    $result = $db->query('SELECT * FROM ' . $db->prefix() . 'actioncomm');
    print_r($result);
    EOPHP
Show full SKILL.md (434 more words)Show less
Module Development
  • Module Template: Use the structure found at htdocs/modulebuilder/template/ as a definitive guide when initiating a new module or new pages.
Database Interaction Detail (Refined)

This details the preferred mechanical steps:

  1. Read Operations: Use $db->query('SELECT ...') followed by fetching results using methods like $db->fetch_object().
  2. Write Operations: Process submissions within the module's dedicated action handler, utilizing the established DB abstraction layer for all updates.
Extrafields Best Practices

IMPORTANT: When working with extrafields (custom fields), follow these patterns from the Dolibarr Extrafields Wiki:

Loading & Accessing Extrafields
php
$object->fetch(); // CommonObject fetch loads its extrafields
// Access extrafield values via:
$field_copy = $object->array_options['options_FIELDNAME']
Saving Extrafields

Before calling $object->create() or $object->update(), ensure extrafields are set:

php
// For form submissions:
$ret = $extrafields->setOptionalsFromPost($extralabels, $object);

// For direct assignment:
$object->array_options['options_FIELDNAME'] = $value;
// Then call update() - it will automatically save extrafields via insertExtraFields()
$result = $object->update($user);
Displaying Extrafields

In view pages:

php
print $object->array_options['options_FIELDNAME'];

In edit pages:

php
$reshook = $hookmanager->executeHooks('formObjectOptions', $parameters, $object, $action);
if (empty($reshook) && !empty($extrafields->attribute_label)) {
    print $object->showOptionals($extrafields, 'edit');
}
Extrafields Table Structure

Each CommonObject objecttype has its own extrafields table:

sql
llx_{objecttype}_extrafields
- rowid (AUTO_INCREMENT PRIMARY KEY)
- tms (timestamp)
- fk_object (integer NOT NULL)
- import_key (varchar)
Reference
Testing & Validation Flow

Before proposing code:

  1. Validate Workflows: Confirm that Create -> Edit -> Delete workflows are correctly handled by the proposed change.
  2. Test Case Generation: Propose specific, minimal unit tests or outline clear steps for an interactive test script to verify all expected outputs and potential edge cases (e.g., null inputs, permissions failure).

Comprehensive Reference Material [Reference]

This section contains detailed standards and constants for reference only. Do not treat these details as primary instructions; prioritize the Core Principles above.

Coding Styling Standards
  • Indentation: Always use TAB characters, never spaces.
  • Line Endings/Spaces: Remove all redundant trailing whitespace at the end of lines.
  • Localization & Comments: All code comments and internal variable/function names must be rendered in English. Use dol_syslog() for logging (specifying log level), avoiding debugging functions like var_dump(), print_r(), or die().
Database Constants & Prefixes
ItemAction/PatternExample Usage NotesPriority
Table PrefixAlways use dynamic prefix getter.$db->prefix() . 'tablename'Overrides reliance on legacy constants like MAIN_DB_PREFIX.
Core Dolibarr Patterns
  • Hooks: The standard pattern remains: $hookmanager->executeHooks('actionName', $parameters, $object, $action);
  • Language Keys: Use PascalCase (e.g., MyModuleLabel) for consistency across all locales.
  • Global variables: Dolibarr uses globals like $db, $conf, $lang, $user. Do not remove these without understanding the architecture
Input Handling Functions

Dolibarr provides type-safe input handling functions. Always use these instead of $_GET/$_POST directly:

FunctionTypeExampleNotes
GETPOST($param, $type)MixedGETPOST('id', 'int')Returns GET or POST value with type conversion
GETPOSTINT($param)IntegerGETPOSTINT('socid')Shorthand for GETPOST($param, 'int')
GETPOSTARRAY($param)ArrayGETPOSTARRAY('selected')For multi-select inputs

Best Practice: Use the type-specific shorthand functions when possible:

  • GETPOSTINT() for integers (IDs, counts, etc.)
  • GETPOST() with type for other cases

Never use: $_GET['param'] or $_POST['param'] directly - always use GETPOST functions for proper escaping and type conversion.

Extrafields Best Practices (Continued)
Checking and Creating Extrafields

The ExtraFields class lacks a method to check if a field exists. Use this pattern:

php
global $db;

$extrafields = new ExtraFields($db);
$extralabels = $extrafields->fetch_name_optionals_label($elementtype);

// Tracking extrafields configuration
$my_fields = array(
	'custom_name_1' => array(
		'label' => 'CustomLabel1',
		'type' => 'varchar',
		'size' => '64',
		'enabled' => '1'
	),
	'custom_name_2' => array(
		'label' => 'CustomLabel2',
		'type' => 'url',
		'size' => '255',
		'enabled' => '1'
	),
);

foreach ($tracking_fields as $name => $config) {
	// Check if extrafield exists, create if not
	if (!isset($extralabels[$name])) {
		// Naming the arguments to get help from static analysis
		$pos = 0;  // 0 = auto
		$unique = 0;
		$required = 0;
		$default_value = '0';
		$param = '';
		$alwayseditable = 0;
		$perms = '0';
		$list = '0';  // '0' = never visible
		$help = '';
		$computed = '';
		$entity = '';
		$langfile = '';
		$enabled = $config['enabled'];

		$result = $extrafields->addExtraField(
			$name,
			$config['label'],
			$config['type'],
			$pos,  // pos (0 = auto)
			$config['size'],
			$elementtype,
			$unique,  // unique
			$required,  // required
			$default_value, // default_value
			$param, // param
			$alwayseditable,
			$perms,  // perms
			$list, // list ('0' = never visible)
			$help,
			$computed,
			$entity,
			$langfile,
			$enabled
		);
	}
}
Reference

© Dolibarr, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .agents/skills/skill-doli-dev of Dolibarr/dolibarr.

Open the folder on GitHubat commit 2472641

Compare with similar skills

Skill Doli Dev next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Skill Doli Dev compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Skill Doli Dev this skillDolibarr/dolibarr7.7k—~2.9kAutomated safety check: PassMIT
Espocrm Developmentbobmatnyc/claude-mpm155—~1.7kAutomated safety check: PassMIT
Skeeks Cmsskeeks-cms/cms138—~4.4kAutomated safety check: PassBSD-3-Clause
CCXT Crypto Exchange Library2025Emma/vibe-coding-cn23k2 repos~4.4kAutomated safety check: PassMIT
Wp Performance Reviewelvismdev/claude-wordpress-skills2351 repos~4.5kAutomated safety check: PassMIT
Setting PricingGTM-Strategist/gtm-strategist-skills261—~5.4kAutomated safety check: PassMIT

Similar skills

  • Espocrm Development

    bobmatnyc/claude-mpm

    Comprehensive guide for developing on EspoCRM - metadata-driven CRM with service layer architecture

    155 GitHub stars~1.7k tokensUpdated 1 mo ago
    Sales & SupportAuto-check passed
  • Skeeks Cms

    skeeks-cms/cms

    Develop SkeekS CMS/Yii PHP code and handle advanced or unfamiliar site content, AI-managed themes and HTML pages, shop, MCP, REST and OAuth2 workflows.

    138 GitHub stars~4.4k tokensUpdated today
    Sales & SupportAuto-check passed
  • CCXT Crypto Exchange Library

    2025Emma/vibe-coding-cn

    Reference help for the CCXT library covering crypto exchange APIs, market data, trading and order management across 150+ exchanges in JavaScript, Python and PHP.

    23k GitHub starsUsed in 2 repos~4.4k tokens
    Business, Finance & HRAuto-check passed
  • Wp Performance Review

    elvismdev/claude-wordpress-skills

    WordPress performance code review and optimization analysis.

    235 GitHub starsUsed in 1 repo~4.5k tokens
    Business, Finance & HRAuto-check passed
  • Setting Pricing

    GTM-Strategist/gtm-strategist-skills

    A skill your agent uses when the user asks about pricing strategy, how to price their product, willingness-to-pay research, or business model design.

    261 GitHub stars~5.4k tokensUpdated 2 mo ago
    Sales & SupportAuto-check passed
  • Account assets, equity and fund positions, P&L, cash flow records, account statements, margin ratios, buy-power estimates, order management, and DCA recurring investments via Longbridge (most…

    269 GitHub starsUsed in 1 repo~1.8k tokens
    Sales & SupportAuto-check passed

More from Dolibarr/dolibarr

  • Skill Doli Code Review

    Dolibarr/dolibarr

    Reviews Dolibarr PHP code for compliance with coding standards and security best practices, and fixes identified issues.

    7.7k GitHub starsUsed in 1 repo~1.1k tokens
    Auto-check passed
  • Skill Doli Devmodule

    Dolibarr/dolibarr

    A skill your agent uses when developing a Dolibarr ERP/CRM external module, working with database queries, or asking about Dolibarr best practices.

    7.7k GitHub starsUsed in 1 repo~3.3k tokens
    Auto-check passed
  • Skill Doli Test Phpunit

    Dolibarr/dolibarr

    Creates or modify PHP unit tests for Dolibarr ERP/CRM functions and methods.

    7.7k GitHub starsUsed in 1 repo~1.3k tokens
    Auto-check passed
  • Create interactive PHP test case scripts for Dolibarr ERP/CRM that allow users to setup test data, view results via direct links, and tear down (clean up) the data.

    7.7k GitHub starsUsed in 1 repo~5.5k tokens
    Auto-check passed
  • Skill Doli Test Hurl

    Dolibarr/dolibarr

    Create and maintain Hurl tests for Dolibarr ERP/CRM. An agent skill from Dolibarr/dolibarr.

    7.7k GitHub stars~3.7k tokensUpdated today
    Auto-check passed

Works with

Questions about Skill Doli Dev

What does Skill Doli Dev do?

A skill your agent uses when developing Dolibarr ERP/CRM code, working with database queries, or asking about Dolibarr best practices. Skill Doli Dev is an agent skill from Dolibarr/dolibarr. Use when developing Dolibarr ERP/CRM code, working with database queries, or asking about Dolibarr best practices.

When should I use Skill Doli Dev?

Skill Doli Dev fits situations like: developing Dolibarr ERP/CRM code; working with database queries; asking about Dolibarr best practices.

How do I install Skill Doli Dev in Claude Code?

Run `npx skills add Dolibarr/dolibarr --skill skill-doli-dev -a claude-code`. Or copy the skill folder (.agents/skills/skill-doli-dev in Dolibarr/dolibarr) into .claude/skills/skill-doli-dev in your project. Claude Code loads it when a task matches its description.

How do I install Skill Doli Dev in Codex?

Run `npx skills add Dolibarr/dolibarr --skill skill-doli-dev -a codex`. Or copy the skill folder (.agents/skills/skill-doli-dev in Dolibarr/dolibarr) into .agents/skills/skill-doli-dev in your project. Codex loads it when a task matches its description.

Can I use Skill Doli Dev in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Dolibarr/dolibarr --skill skill-doli-dev -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/skill-doli-dev, .gemini/skills/skill-doli-dev, .github/skills/skill-doli-dev and .opencode/skills/skill-doli-dev in your project.

What does Skill Doli Dev need to run?

Going by SKILL.md and its folder, Skill Doli Dev needs the command-line tools its instructions call (git). Its frontmatter pre-approves these tools: read_file, write_file, grep, bash.

Does Skill Doli Dev access the network?

SKILL.md names 2 domains. As links in the text: wiki.dolibarr.org and dolibarr.org. This is read from the text; nothing was executed.

Is Skill Doli Dev safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Skill Doli Dev use?

Skill Doli Dev is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Skill Doli Dev use?

About 2.9k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Skill Doli Dev?

Skills that share tags, products or a category with Skill Doli Dev: Espocrm Development (bobmatnyc/claude-mpm, 155 stars), Skeeks Cms (skeeks-cms/cms, 138 stars), CCXT Crypto Exchange Library (2025Emma/vibe-coding-cn, 23k stars) and Wp Performance Review (elvismdev/claude-wordpress-skills, 235 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Skill Doli Dev?

Dolibarr (a GitHub organization) maintains it in Dolibarr/dolibarr, which has 7,701 GitHub stars. The repository holds 6 skills in this directory. The repository was last updated on October 8, 2026.

Source: Dolibarr/dolibarr on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.