xiaohongshu
xiaohongshu
logger-messages
Writes user-friendly logger messages in active voice for Simple History event logs. Fixes passive voice issues. Use when creating or modifying logger classes in loggers/ directory, writing getInfo() messages, fixing passive voice, reviewing log message clarity, or adding new events to the activit...
Full skill instructions
Guidelines for writing clear, user-friendly messages for Simple History event logs.
Trigger scenarios:
loggers/ directoryFor comprehensive guidance:
Write messages in active tone as if someone is telling you what happened in the present or recent past.
Think of it as: "I just did this action" or "Someone just performed this task"
✅ Do: Use active voice - what action was performed ❌ Don't: Use passive voice - what was done to something
✅ DO ❌ DON'T
─────────────────────────────────────────────
Activated plugin Plugin was activated
Created menu Menu has been created
Updated settings Settings were updated
Detected modifications Modifications were detected
Changed password Password was changed
Published post Post has been published
See examples.md for comprehensive examples across all contexts.
Write for regular users, not developers.
✅ "Updated site settings" ❌ "Modified wp_options table"
Remove filler words. Be direct.
✅ "Published post" ❌ "Successfully published the post to the website"
Include relevant context without overwhelming.
✅ "Changed site language to Spanish" ❌ "Updated something"
class SimpleHistoryPluginLogger extends SimpleLogger {
public function getInfo() {
return [
'messages' => [
// ✅ All active voice
'plugin_activated' => __( 'Activated plugin', 'simple-history' ),
'plugin_deactivated' => __( 'Deactivated plugin', 'simple-history' ),
'plugin_installed' => __( 'Installed plugin', 'simple-history' ),
],
];
}
}
// ✅ Good - Clear placeholders
'post_updated' => __( 'Updated post "{post_title}"', 'simple-history' )
// ✅ Good - Multiple variables
'role_changed' => __( 'Changed role from {old_role} to {new_role}', 'simple-history' )
Message keys must be globally unique across all loggers, not just within a single logger.
Message keys are used as message identifiers in syslog RFC 5424 logging, where unique MSGID values are required for proper log parsing and filtering. Duplicate keys would cause conflicts in external logging systems.
// ✅ Good - Use descriptive prefixes that indicate the logger context
'plugin_activated' // Plugin_Logger
'theme_switched' // Theme_Logger
'user_logged_in' // User_Logger
'privacy_data_exported' // Privacy_Logger
'crontrol_event_added' // Plugin_WP_Crontrol_Logger
// ❌ Bad - Generic keys that could conflict
'activated' // Too generic
'updated' // Could exist in multiple loggers
'deleted' // Ambiguous
Before adding new message keys, verify they don't already exist in other loggers:
# Search for existing key usage
grep -r "'your_proposed_key'" loggers/
Never use passive constructions:
Ask yourself:
Remember: Write as if you're telling someone what you just did, not what happened to something.
Pattern: [I/Someone] + [Action verb] + [Object] + [Optional context]
Always: Active voice, user-friendly, concise, specific
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