logger-messages

Logger Message Guidelines

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "logger-messages" with this command: npx skills add bonny/wordpress-simple-history/bonny-wordpress-simple-history-logger-messages

Logger Message Guidelines

Write clear, user-friendly messages for Simple History event logs.

Core Principle: Active Voice

Write as if someone is telling you what they just did.

✅ DO ❌ DON'T ───────────────────────────────────────────── Activated plugin Plugin was activated Created menu Menu has been created Updated settings Settings were updated Published post Post has been published

In Logger Classes

public function getInfo() { return [ 'messages' => [ 'plugin_activated' => __( 'Activated plugin', 'simple-history' ), 'plugin_deactivated' => __( 'Deactivated plugin', 'simple-history' ), 'post_updated' => __( 'Updated post "{post_title}"', 'simple-history' ), ], ]; }

Message Key Uniqueness

Keys must be globally unique across all loggers (used as RFC 5424 MSGID).

// ✅ Good - descriptive prefix 'plugin_activated', 'theme_switched', 'user_logged_in'

// ❌ Bad - too generic 'activated', 'updated', 'deleted'

Verify uniqueness: grep -r "'your_key'" loggers/

Common Verbs

  • Create: Created, Added, Generated

  • Modify: Updated, Changed, Edited

  • Delete: Deleted, Removed, Trashed

  • Toggle: Activated, Deactivated, Enabled, Disabled

Avoid

  • ❌ "was [verb]" - passive

  • ❌ "has been [verb]" - passive

  • ❌ Technical jargon users won't understand

Context Key Naming

Prefix all context keys with the entity name to avoid collisions and keep keys self-documenting.

// ✅ Good - prefixed with entity 'plugin_name', 'plugin_current_version', 'theme_new_version' 'site_health_status', 'site_health_label', 'site_health_badge_label'

// ❌ Bad - too generic 'test', 'label', 'status', 'name', 'version'

Event Details Output

Use the Event Details API for get_log_row_details_output() . Never build raw HTML with SimpleHistoryLogitem__keyValueTable .

use Simple_History\Event_Details\Event_Details_Group; use Simple_History\Event_Details\Event_Details_Group_Table_Formatter; use Simple_History\Event_Details\Event_Details_Item;

public function get_log_row_details_output( $row ) { $group = new Event_Details_Group(); $group->set_formatter( new Event_Details_Group_Table_Formatter() ); $group->add_items( array( // Read value directly from context key. new Event_Details_Item( 'status', __( 'Status', 'simple-history' ) ), // Read new/prev pair from context (looks for key_new and key_prev). new Event_Details_Item( array( 'setting_name' ), __( 'Setting', 'simple-history' ) ), ) ); return $group; }

Formatters:

  • Event_Details_Group_Table_Formatter — key-value table (default)

  • Event_Details_Group_Diff_Table_Formatter — before/after with diffs

  • Event_Details_Group_Inline_Formatter — compact inline text

Manual values (when context keys don't match conventions):

( new Event_Details_Item( null, __( 'Label', 'simple-history' ) ) ) ->set_new_value( $value )

See docs/architecture/event-details.md for full API reference.

Detailed Resources

  • examples.md - Extensive examples across all WordPress contexts

  • integration.md - Complete logger class implementation

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

changelog

No summary provided by upstream source.

Repository SourceNeeds Review
General

wordpress-org-compliance

No summary provided by upstream source.

Repository SourceNeeds Review
General

release

No summary provided by upstream source.

Repository SourceNeeds Review
General

sql

No summary provided by upstream source.

Repository SourceNeeds Review