xiaohongshu
xiaohongshu
audit-skill
Comprehensive audit capabilities for security, code quality, module structure, compliance, and performance analysis. Use this skill when performing security audits, code reviews, vulnerability assessments, module structure validation, or generating audit reports.
Full skill instructions
A comprehensive skill for performing multi-dimensional audits on Odoo codebases, including security vulnerabilities, code quality, module structure compliance, and performance analysis.
Use this skill when you need to:
Critical Vulnerability Detection:
Secret Detection Patterns:
# Hardcoded passwords
admin_passwd = "password123"
db_password = "secret"
# API keys in code
OPENAI_API_KEY = "sk-..."
GITHUB_TOKEN = "ghp_..."
# Base64 encoded secrets
SECRET = "YWRtaW46cGFzc3dvcmQ="
Security Best Practices:
OCA Compliance Checks:
__manifest__.py) completenessir.model.access.csv)Code Smell Detection:
Anti-Patterns:
# Anti-pattern: Direct SQL queries
self.env.cr.execute("SELECT * FROM users")
# Better: Use ORM
self.env['res.users'].search([])
# Anti-pattern: No error handling
result = external_api_call()
# Better: Proper exception handling
try:
result = external_api_call()
except Exception as e:
_logger.error(f"API call failed: {e}")
raise UserError(_("External service unavailable"))
Required Files Check:
__manifest__.py (required)__init__.py (required)README.md (recommended)security/ir.model.access.csv (if has models)views/ directory (if has UI)models/ directory (if has models)data/ directory (if has data files)tests/ directory (recommended)Manifest Validation:
# Required keys
{
'name': 'Module Name',
'version': '19.0.1.0.0',
'category': 'Category',
'summary': 'Short description',
'description': 'Long description',
'author': 'Author Name',
'website': 'https://...',
'license': 'LGPL-3',
'depends': ['base', 'mail'],
'data': [
'security/ir.model.access.csv',
'views/menu.xml',
],
'installable': True,
'application': False,
'auto_install': False,
}
Dependency Validation:
Module State Verification:
Performance Analysis:
Production Readiness:
Docker Configuration:
LGPL-3.0 License:
GDPR Compliance:
# Set audit context
AUDIT_TYPE="security" # or: code-quality, module-structure, performance
AUDIT_SCOPE="full" # or: module-name, directory-path
AUDIT_OUTPUT="json" # or: markdown, csv
# Security audit
./scripts/audit-security.sh --scope "$AUDIT_SCOPE" --output "$AUDIT_OUTPUT"
# Module structure audit
./scripts/audit-modules.sh odoo_db --output table
# Code quality audit
flake8 addons/ --config .flake8
pylint addons/ --rcfile .pylintrc-mandatory
Report Structure:
# Security Audit Report
**Project**: InsightPulse Odoo
**Date**: YYYY-MM-DD
**Auditor**: Agent Name
**Scope**: Full codebase / Specific module
## Executive Summary
Overall Risk Score: X.X/10 (Critical/High/Medium/Low)
- Critical: X vulnerabilities
- High: X vulnerabilities
- Medium: X vulnerabilities
- Low: X vulnerabilities
## Critical Vulnerabilities
### 1. Hardcoded Credentials
**Location**: `/path/to/file.py:line`
**Risk**: CVSS 9.8 (Critical)
**Description**: Admin password exposed in configuration
**Remediation**:
- Use environment variables
- Rotate credentials immediately
- Implement secret management
## Recommendations
1. Immediate actions (Critical/High)
2. Short-term improvements (Medium)
3. Long-term enhancements (Low)
## Compliance Status
- [x] LGPL-3.0 License
- [ ] GDPR Compliance
- [x] Security Best Practices
- [ ] Code Quality Standards
# Bandit - Python security linter
bandit -r addons/ -f json -o security-audit.json
# Safety - Dependency vulnerability scanner
safety check --json
# Semgrep - Static analysis
semgrep --config=auto addons/
# Flake8 - Style guide enforcement
flake8 addons/ --max-line-length=88 --extend-ignore=E203
# Pylint - Code quality checker
pylint addons/ --output-format=json
# Black - Code formatter (check only)
black addons/ --check
# OCA maintainer tools
oca-autopep8 -ri addons/
oca-isort -rc addons/
# Odoo module analyzer
./scripts/audit-modules.sh odoo_db --output json
.env files with .gitignorestore=TrueDetection:
grep -r "password\s*=\s*['\"]" addons/ --include="*.py"
Solution:
# Bad
db_password = "mysecret"
# Good
import os
db_password = os.environ.get('DB_PASSWORD')
Detection:
# Check for models without access rules
models_with_no_access = []
for model in self.env['ir.model'].search([]):
access_count = self.env['ir.model.access'].search_count([
('model_id', '=', model.id)
])
if access_count == 0:
models_with_no_access.append(model.model)
Solution:
Create security/ir.model.access.csv:
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_my_model_user,my.model.user,model_my_model,base.group_user,1,0,0,0
access_my_model_manager,my.model.manager,model_my_model,base.group_system,1,1,1,1
Detection:
# Bad - N+1 queries
for order in orders:
print(order.partner_id.name) # Separate query for each order
Solution:
# Good - Single query with prefetch
orders = self.env['sale.order'].search([]).with_prefetch(['partner_id'])
for order in orders:
print(order.partner_id.name)
Detection:
# Analyze slow queries in PostgreSQL logs
grep "duration:" /var/log/postgresql/postgresql.log | sort -t: -k2 -n | tail -20
Solution:
class MyModel(models.Model):
_name = 'my.model'
reference = fields.Char(string='Reference', index=True) # Add index
date = fields.Date(string='Date', index=True)
cd /home/runner/work/insightpulse-odoo/insightpulse-odoo
grep -r "password\s*=\s*['\"]" . --include="*.py" --include="*.conf"
bandit -r addons/ -ll
safety check
./scripts/audit-modules.sh odoo_db --output table
flake8 addons/ --config .flake8
pylint addons/ --rcfile .pylintrc-mandatory
./scripts/comprehensive-audit.sh --output-dir ./audit-reports
This skill should be updated when:
Version: 1.0.0 Last Updated: 2025-11-01 Maintainer: InsightPulse Team
xiaohongshu
technical spec
product ux expert
database patterns
Conduct multi-agent task orchestration and workflow coordination.
Initialize project with Conductor artifacts (product definition,
Expert in web animations, transitions, and motion design using Framer Motion and CSS
Creates Mermaid and ASCII diagrams for flowcharts, architecture, ERDs, state machines, mindmaps, and more. Use when user mentions diagram, flowchart, mermaid, ASCII diagram, text diagram, terminal diagram, visualize, C4, mindmap, architecture diagram, sequence diagram, ERD, or needs visual docume...
PostgreSQL bindings for H3 hexagonal grid system. Use when working with H3 cells in Postgres, including spatial indexing, geometry/geography integration, and raster analysis.
Context-Driven Development skill for projects using Conductor. Use this skill when you detect a `conductor/` directory in the project, when working on tasks defined in a `plan.md` file, or when the user asks about tracks, specs, or plans. Automatically applies TDD workflow, tracks task completion...
Display project status, active tracks, and next actions
Official Stakpak application containerization standard operating procedure, a step-by-step guidline to properly dockerize applications. This is a rule book curated by the Stakpak Team.
Generate, edit, and beat-sync AI video with leading models in one workspace.
The world's fastest calendar for remote work
Transform Your Design with AI Designer by ImgCreator.ai
Revolutionizing Video Production with AI-Powered Creativity
Extend an image past the frame and let AI fill the new aspect ratio.
Discover your celebrity doppelgänger with StarByFace!
ChainClarity explains 700+ crypto whitepapers in plain English, with layered summaries, comparisons, research tools, alerts, and a $4.99 Pro plan.
Opus.ai: Revolutionize Your Web Experience