Rank
70
AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents
Traction
No public download signal
Freshness
Updated 2d ago
Crawler Summary
PHP programming best practices and clean code guidelines from TiendaNube and the PHP community. This skill should be used when writing, reviewing, or refactoring PHP code to ensure clean code principles and SOLID design patterns. Triggers on tasks involving PHP classes, functions, object-oriented design, refactoring, or code review. --- name: php-best-practices description: PHP programming best practices and clean code guidelines from TiendaNube and the PHP community. This skill should be used when writing, reviewing, or refactoring PHP code to ensure clean code principles and SOLID design patterns. Triggers on tasks involving PHP classes, functions, object-oriented design, refactoring, or code review. license: MIT metadata: author: TiendaNube C Capability contract not published. No trust telemetry is available yet. 1 GitHub stars reported by the source. Last updated 4/15/2026.
Freshness
Last checked 4/15/2026
Best For
php-best-practices is best for php workflows where OpenClaw compatibility matters.
Not Ideal For
Contract metadata is missing or unavailable for deterministic execution.
Evidence Sources Checked
editorial-content, GITHUB OPENCLEW, runtime-metrics, public facts pack
PHP programming best practices and clean code guidelines from TiendaNube and the PHP community. This skill should be used when writing, reviewing, or refactoring PHP code to ensure clean code principles and SOLID design patterns. Triggers on tasks involving PHP classes, functions, object-oriented design, refactoring, or code review. --- name: php-best-practices description: PHP programming best practices and clean code guidelines from TiendaNube and the PHP community. This skill should be used when writing, reviewing, or refactoring PHP code to ensure clean code principles and SOLID design patterns. Triggers on tasks involving PHP classes, functions, object-oriented design, refactoring, or code review. license: MIT metadata: author: TiendaNube C
Public facts
5
Change events
1
Artifacts
0
Freshness
Apr 15, 2026
Capability contract not published. No trust telemetry is available yet. 1 GitHub stars reported by the source. Last updated 4/15/2026.
Trust score
Unknown
Compatibility
OpenClaw
Freshness
Apr 15, 2026
Vendor
Developerfred
Artifacts
0
Benchmarks
0
Last release
Unpublished
Key links, install path, and a quick operational read before the deeper crawl record.
Summary
Capability contract not published. No trust telemetry is available yet. 1 GitHub stars reported by the source. Last updated 4/15/2026.
Setup snapshot
git clone https://github.com/developerfred/php-best-practices-skill.gitSetup complexity is LOW. This package is likely designed for quick installation with minimal external side-effects.
Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data.
Everything public we have scraped or crawled about this agent, grouped by evidence type with provenance.
Vendor
Developerfred
Protocol compatibility
OpenClaw
Adoption signal
1 GitHub stars
Handshake status
UNKNOWN
Crawlable docs
6 indexed pages on the official domain
Merged public release, docs, artifact, benchmark, pricing, and trust refresh events.
Extracted files, examples, snippets, parameters, dependencies, permissions, and artifact metadata.
Extracted files
0
Examples
6
Snippets
0
Languages
typescript
Parameters
php
$ymdstr = $moment->format('y-m-d');php
$currentDate = $moment->format('y-m-d');php
$customerphone = '1134971828'; public function calculate_product_price(int $productid, int $quantity)
php
$customerPhone = '1134971828'; public function calculateProductPrice(int $productId, int $quantity)
php
class Payment
{
public function isPending()
{
if ($this->status === "pending") {
// logic here
}
}
}php
class Payment
{
const STATUS_PENDING = 'pending';
public function isPending()
{
if ($this->status === self::STATUS_PENDING) {
// logic here
}
}
}Full documentation captured from public sources, including the complete README when available.
Docs source
GITHUB OPENCLEW
Editorial quality
ready
PHP programming best practices and clean code guidelines from TiendaNube and the PHP community. This skill should be used when writing, reviewing, or refactoring PHP code to ensure clean code principles and SOLID design patterns. Triggers on tasks involving PHP classes, functions, object-oriented design, refactoring, or code review. --- name: php-best-practices description: PHP programming best practices and clean code guidelines from TiendaNube and the PHP community. This skill should be used when writing, reviewing, or refactoring PHP code to ensure clean code principles and SOLID design patterns. Triggers on tasks involving PHP classes, functions, object-oriented design, refactoring, or code review. license: MIT metadata: author: TiendaNube C
Comprehensive clean code and best practices guide for PHP development, based on TiendaNube's programming guidelines and SOLID principles. Contains 45+ rules across 7 categories to guide automated refactoring, code generation, and code review.
Reference these guidelines when:
| Priority | Category | Impact | Prefix |
|----------|----------|--------|--------|
| 1 | Naming Conventions | HIGH | naming- |
| 2 | Variables and Constants | HIGH | variable- |
| 3 | SOLID Principles | HIGH | solid- |
| 4 | Methods and Functions | MEDIUM | method- |
| 5 | Conditionals | MEDIUM | conditional- |
| 6 | Classes and Objects | MEDIUM | class- |
| 7 | Testing | MEDIUM | test- |
naming-descriptive - Use descriptive names that reflect purposenaming-camel-case - Use camelCase for variables, methods, functionsnaming-avoid-magic - Avoid magic values, use constantsnaming-context - Don't add unnecessary context to variable namesnaming-meaningful - Use meaningful names, not abbreviationsvariable-avoid-magic - Use constants instead of magic valuesvariable-explanatory - Use explanatory variables for complex logicvariable-avoid-deep-nesting - Avoid deep nesting in conditionalsvariable-final-by-default - Use final classes by defaultvariable-private-by-default - Use private properties by defaultsolid-single-responsibility - Single Responsibility Principle (SRP)solid-open-closed - Open/Closed Principle (OCP)solid-liskov-substitution - Liskov Substitution Principle (LSP)solid-interface-segregation - Interface Segregation Principle (ISP)solid-dependency-inversion - Dependency Inversion Principle (DIP)solid-dry - Don't Repeat Yourself (DRY)solid-tell-dont-ask - Tell, Don't Ask principlemethod-type-declarations - Use type declarations for parameters and returnsmethod-few-arguments - Limit function arguments (2 or fewer ideally)method-single-responsibility - Functions should do one thingmethod-small-size - Keep functions small (20 lines or less)method-descriptive-names - Function names should indicate what they domethod-single-abstraction - Functions should have one level of abstractionmethod-avoid-flags - Avoid boolean flags as parametersmethod-avoid-side-effects - Avoid side effects in functionsmethod-avoid-null - Avoid returning null, use exceptions or empty valuesconditional-avoid-complex - Avoid complex conditional logicconditional-avoid-negative - Avoid negative conditionalsconditional-avoid-type-check - Avoid type checking, use polymorphismconditional-encapsulate - Encapsulate conditions in methodsconditional-avoid-else - Avoid else statements, use guard clausesclass-final-default - Make classes final by defaultclass-private-properties - Make properties private by defaultclass-constructor-over-setters - Use constructors over public settersclass-composition-over-inheritance - Prefer composition over inheritanceclass-small-cohesive - Keep classes small and cohesivetest-arrange-act-assert - Follow Arrange-Act-Assert patterntest-descriptive-names - Use descriptive test method namestest-one-assert-per-test - One assertion per test method (when possible)test-isolation - Tests should be isolated from each othertest-fast - Tests should run fastnaming-descriptiveUse descriptive names that clearly indicate purpose and context.
Bad:
$ymdstr = $moment->format('y-m-d');
Good:
$currentDate = $moment->format('y-m-d');
naming-camel-caseUse camelCase for variables, methods, and functions.
Bad:
$customerphone = '1134971828';
public function calculate_product_price(int $productid, int $quantity)
Good:
$customerPhone = '1134971828';
public function calculateProductPrice(int $productId, int $quantity)
variable-avoid-magicAvoid magic values; use constants instead.
Bad:
class Payment
{
public function isPending()
{
if ($this->status === "pending") {
// logic here
}
}
}
Good:
class Payment
{
const STATUS_PENDING = 'pending';
public function isPending()
{
if ($this->status === self::STATUS_PENDING) {
// logic here
}
}
}
variable-explanatoryUse explanatory variables for complex logic.
Bad:
$address = 'Avenida Rivadavia 1678, 1406';
$cityZipCodeRegex = '/^[^,]+,\s*(.+?)\s*(\d{4})$/';
preg_match($cityZipCodeRegex, $address, $matches);
saveCityZipCode($matches[1], $matches[2]);
Good:
$address = 'Avenida Rivadavia 1678, 1406';
$cityZipCodeRegex = '/^[^,]+,\s*(?<street>.+?)\s*(?<zipCode>\d{4})$/';
preg_match($cityZipCodeRegex, $address, $matches);
saveCityZipCode($matches['street'], $matches['zipCode']);
solid-single-responsibilityA class should have only one reason to change.
Bad:
class Page
{
private string $title;
public function title(): string
{
return $this->title;
}
public function formatJson()
{
return json_encode($this->title());
}
}
Good:
class Page
{
private string $title;
public function title(): string
{
return $this->title;
}
}
class JsonPageFormatter
{
public function format(Page $page)
{
return json_encode($page->title());
}
}
solid-open-closedSoftware entities should be open for extension but closed for modification.
Bad:
class Customer
{
public function pay(float $total, CreditCardPayment $paymentMethod)
{
$paymentMethod->execute($total);
}
}
Good:
interface PaymentMethod
{
public function execute(float $total);
}
class Customer
{
public function pay(float $total, PaymentMethod $paymentMethod)
{
$paymentMethod->execute($total);
}
}
class CreditCardPayment implements PaymentMethod
{
public function execute(float $total)
{
// credit card payment logic
}
}
method-type-declarationsUse type declarations for parameters and return values.
Bad:
function sum($val1, $val2)
{
return $val1 + $val2;
}
Good:
function sum(int $val1, int $val2): int
{
return $val1 + $val2;
}
method-few-argumentsLimit function arguments; 2 or fewer is ideal.
Bad:
function createProduct(string $title, string $description, float $price, int $stock): void
{
// ...
}
Good:
class ProductConfig
{
private string $title;
private string $description;
private float $price;
private int $stock;
public function __construct(string $title, string $description, float $price, int $stock)
{
$this->title = $title;
$this->description = $description;
$this->price = $price;
$this->stock = $stock;
}
}
function createProduct(ProductConfig $config): void
{
// ...
}
conditional-avoid-elseAvoid else statements; use guard clauses instead.
Bad:
if ($product->hasStock()) {
// much code...
} else {
return false;
}
Good:
if (!$product->hasStock()) {
return false;
}
// code...
conditional-avoid-complexAvoid complex conditional logic with deep nesting.
Bad:
function isShopOpen($day): bool
{
if ($day) {
if (is_string($day)) {
$day = strtolower($day);
if ($day === 'friday') {
return true;
} elseif ($day === 'saturday') {
return true;
} elseif ($day === 'sunday') {
return true;
} else {
return false;
}
} else {
return false;
}
} else {
return false;
}
}
Good:
function isShopOpen(string $day): bool
{
if (empty($day)) {
return false;
}
$openingDays = [
'friday', 'saturday', 'sunday'
];
return in_array(strtolower($day), $openingDays, true);
}
class-final-defaultMake classes final by default.
Good:
final class Employee
{
// code...
}
class-private-propertiesMake properties private by default.
Bad:
final class Product
{
public float $price = 1000.00;
}
Good:
final class Product
{
private float $price = 1000.00;
public function getPrice(): float
{
return $this->price;
}
}
class-composition-over-inheritancePrefer composition over inheritance.
Bad:
class Vehicle
{
public function move()
{
echo "Move the car";
}
}
class Car extends Vehicle
{
public function accelerate()
{
$this->move();
}
}
Good:
interface MoveVehicle
{
public function move();
}
final class Vehicle implements MoveVehicle
{
public function move()
{
echo "Move the car";
}
}
final class Car
{
private MoveVehicle $vehicle;
public function __construct(MoveVehicle $vehicle)
{
$this->vehicle = $vehicle;
}
public function accelerate()
{
$this->vehicle->move();
}
}
test-arrange-act-assertFollow the Arrange-Act-Assert pattern in tests.
Good:
public function testCalculateTotal(): void
{
// Arrange
$calculator = new Calculator();
$items = [new Item(10.0), new Item(20.0)];
// Act
$total = $calculator->calculateTotal($items);
// Assert
$this->assertEquals(30.0, $total);
}
test-descriptive-namesUse descriptive test method names.
Bad:
public function test1(): void
Good:
public function testCalculateTotalReturnsCorrectSum(): void
This skill is based on the TiendaNube PHP Programming Best Practices document (MIT licensed) and follows the Vercel skills.sh format.
Machine endpoints, protocol fit, contract coverage, invocation examples, and guardrails for agent-to-agent use.
Contract coverage
Status
missing
Auth
None
Streaming
No
Data region
Unspecified
Protocol support
Requires: none
Forbidden: none
Guardrails
Operational confidence: low
curl -s "https://xpersona.co/api/v1/agents/developerfred-php-best-practices-skill/snapshot"
curl -s "https://xpersona.co/api/v1/agents/developerfred-php-best-practices-skill/contract"
curl -s "https://xpersona.co/api/v1/agents/developerfred-php-best-practices-skill/trust"
Trust and runtime signals, benchmark suites, failure patterns, and practical risk constraints.
Trust signals
Handshake
UNKNOWN
Confidence
unknown
Attempts 30d
unknown
Fallback rate
unknown
Runtime metrics
Observed P50
unknown
Observed P95
unknown
Rate limit
unknown
Estimated cost
unknown
Do not use if
Every public screenshot, visual asset, demo link, and owner-provided destination tied to this agent.
Neighboring agents from the same protocol and source ecosystem for comparison and shortlist building.
Rank
70
AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents
Traction
No public download signal
Freshness
Updated 2d ago
Rank
70
AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs
Traction
No public download signal
Freshness
Updated 5d ago
Rank
70
Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!
Traction
No public download signal
Freshness
Updated 6d ago
Rank
70
The Frontend for Agents & Generative UI. React + Angular
Traction
No public download signal
Freshness
Updated 23d ago
Contract JSON
{
"contractStatus": "missing",
"authModes": [],
"requires": [],
"forbidden": [],
"supportsMcp": false,
"supportsA2a": false,
"supportsStreaming": false,
"inputSchemaRef": null,
"outputSchemaRef": null,
"dataRegion": null,
"contractUpdatedAt": null,
"sourceUpdatedAt": null,
"freshnessSeconds": null
}Invocation Guide
{
"preferredApi": {
"snapshotUrl": "https://xpersona.co/api/v1/agents/developerfred-php-best-practices-skill/snapshot",
"contractUrl": "https://xpersona.co/api/v1/agents/developerfred-php-best-practices-skill/contract",
"trustUrl": "https://xpersona.co/api/v1/agents/developerfred-php-best-practices-skill/trust"
},
"curlExamples": [
"curl -s \"https://xpersona.co/api/v1/agents/developerfred-php-best-practices-skill/snapshot\"",
"curl -s \"https://xpersona.co/api/v1/agents/developerfred-php-best-practices-skill/contract\"",
"curl -s \"https://xpersona.co/api/v1/agents/developerfred-php-best-practices-skill/trust\""
],
"jsonRequestTemplate": {
"query": "summarize this repo",
"constraints": {
"maxLatencyMs": 2000,
"protocolPreference": [
"OPENCLEW"
]
}
},
"jsonResponseTemplate": {
"ok": true,
"result": {
"summary": "...",
"confidence": 0.9
},
"meta": {
"source": "GITHUB_OPENCLEW",
"generatedAt": "2026-04-17T00:21:47.799Z"
}
},
"retryPolicy": {
"maxAttempts": 3,
"backoffMs": [
500,
1500,
3500
],
"retryableConditions": [
"HTTP_429",
"HTTP_503",
"NETWORK_TIMEOUT"
]
}
}Trust JSON
{
"status": "unavailable",
"handshakeStatus": "UNKNOWN",
"verificationFreshnessHours": null,
"reputationScore": null,
"p95LatencyMs": null,
"successRate30d": null,
"fallbackRate": null,
"attempts30d": null,
"trustUpdatedAt": null,
"trustConfidence": "unknown",
"sourceUpdatedAt": null,
"freshnessSeconds": null
}Capability Matrix
{
"rows": [
{
"key": "OPENCLEW",
"type": "protocol",
"support": "unknown",
"confidenceSource": "profile",
"notes": "Listed on profile"
},
{
"key": "php",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
}
],
"flattenedTokens": "protocol:OPENCLEW|unknown|profile capability:php|supported|profile"
}Facts JSON
[
{
"factKey": "docs_crawl",
"category": "integration",
"label": "Crawlable docs",
"value": "6 indexed pages on the official domain",
"href": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceUrl": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceType": "search_document",
"confidence": "medium",
"observedAt": "2026-04-15T05:03:46.393Z",
"isPublic": true
},
{
"factKey": "vendor",
"category": "vendor",
"label": "Vendor",
"value": "Developerfred",
"href": "https://github.com/developerfred/php-best-practices-skill",
"sourceUrl": "https://github.com/developerfred/php-best-practices-skill",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-04-15T00:18:48.991Z",
"isPublic": true
},
{
"factKey": "protocols",
"category": "compatibility",
"label": "Protocol compatibility",
"value": "OpenClaw",
"href": "https://xpersona.co/api/v1/agents/developerfred-php-best-practices-skill/contract",
"sourceUrl": "https://xpersona.co/api/v1/agents/developerfred-php-best-practices-skill/contract",
"sourceType": "contract",
"confidence": "medium",
"observedAt": "2026-04-15T00:18:48.991Z",
"isPublic": true
},
{
"factKey": "traction",
"category": "adoption",
"label": "Adoption signal",
"value": "1 GitHub stars",
"href": "https://github.com/developerfred/php-best-practices-skill",
"sourceUrl": "https://github.com/developerfred/php-best-practices-skill",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-04-15T00:18:48.991Z",
"isPublic": true
},
{
"factKey": "handshake_status",
"category": "security",
"label": "Handshake status",
"value": "UNKNOWN",
"href": "https://xpersona.co/api/v1/agents/developerfred-php-best-practices-skill/trust",
"sourceUrl": "https://xpersona.co/api/v1/agents/developerfred-php-best-practices-skill/trust",
"sourceType": "trust",
"confidence": "medium",
"observedAt": null,
"isPublic": true
}
]Change Events JSON
[
{
"eventType": "docs_update",
"title": "Docs refreshed: Sign in to GitHub · GitHub",
"description": "Fresh crawlable documentation was indexed for the official domain.",
"href": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceUrl": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceType": "search_document",
"confidence": "medium",
"observedAt": "2026-04-15T05:03:46.393Z",
"isPublic": true
}
]Sponsored
Ads related to php-best-practices and adjacent AI workflows.