Provides guidance on writing effective technical documentation, including in-code docs (JSDoc, docstrings), API documentation, user guides, and READMEs. Activates when discussing documentation practices, writing docs, or improving documentation quality. Use for creating clear, maintainable documentation.
Provides expert guidance on creating effective technical documentation, including in-code docs (JSDoc, docstrings), API references, READMEs, and user guides. Activates when discussing documentation practices, writing docs, or improving documentation quality.
/plugin marketplace add elafo/hefesto/plugin install hefesto@hermesThis skill inherits all available tools. When active, it can use any tool Claude has access to.
Provide expert guidance on creating effective, maintainable technical documentation.
Activate when the user:
Project Documentation
├── README.md # First impression, quick start
├── CONTRIBUTING.md # How to contribute
├── CHANGELOG.md # Version history
├── docs/
│ ├── getting-started.md # Onboarding guide
│ ├── user-guide.md # End-user documentation
│ ├── api-reference.md # API documentation
│ └── architecture.md # Technical deep-dive
└── In-code documentation # Context-specific docs
/**
* Authenticates a user and creates a session.
*
* This function validates credentials against the database and,
* if successful, creates a new session token with the configured
* expiration time.
*
* @param email - The user's email address
* @param password - The user's password (will be hashed for comparison)
* @returns A promise resolving to the authentication result
* @throws {AuthenticationError} When credentials are invalid
* @throws {RateLimitError} When too many attempts have been made
*
* @example
* ```typescript
* try {
* const result = await authenticate('user@example.com', 'password');
* if (result.success) {
* setSession(result.token);
* }
* } catch (error) {
* handleAuthError(error);
* }
* ```
*/
export async function authenticate(
email: string,
password: string
): Promise<AuthResult> {
def authenticate(email: str, password: str) -> AuthResult:
"""
Authenticate a user and create a session.
This function validates credentials against the database and,
if successful, creates a new session token with the configured
expiration time.
Args:
email: The user's email address.
password: The user's password (will be hashed for comparison).
Returns:
AuthResult containing:
- success: Whether authentication succeeded
- token: Session token (if successful)
- user: User data (if successful)
Raises:
AuthenticationError: When credentials are invalid.
RateLimitError: When too many attempts have been made.
Example:
>>> result = authenticate('user@example.com', 'password')
>>> if result.success:
... set_session(result.token)
"""
// Authenticate verifies user credentials and creates a session.
//
// This function validates credentials against the database and,
// if successful, creates a new session token with the configured
// expiration time.
//
// Parameters:
// - email: The user's email address
// - password: The user's password (will be hashed for comparison)
//
// Returns an AuthResult and an error. Possible errors:
// - AuthenticationError: credentials are invalid
// - RateLimitError: too many attempts
//
// Example:
//
// result, err := Authenticate("user@example.com", "password")
// if err != nil {
// return handleError(err)
// }
// if result.Success {
// SetSession(result.Token)
// }
func Authenticate(email, password string) (*AuthResult, error) {
/users/{id}:
get:
summary: Get user by ID
description: |
Retrieves a single user by their unique identifier.
Returns 404 if the user doesn't exist.
parameters:
- name: id
in: path
required: true
schema:
type: string
format: uuid
description: The unique user identifier
responses:
'200':
description: User found
content:
application/json:
schema:
$ref: '#/components/schemas/User'
example:
id: "123e4567-e89b-12d3-a456-426614174000"
name: "John Doe"
email: "john@example.com"
'404':
description: User not found
# Project Name
Brief description (1-2 sentences).
## Features
- Feature 1
- Feature 2
- Feature 3
## Installation
Step-by-step installation instructions.
## Quick Start
Minimal code example to get started.
## Usage
More detailed usage examples.
## Configuration
Configuration options and environment variables.
## Contributing
Link to CONTRIBUTING.md or brief guidelines.
## License
License information.
i++ // increment i# Changelog
## [1.2.0] - 2025-01-15
### Added
- User authentication with OAuth support
- Password reset functionality
### Changed
- Improved login form validation
- Updated session timeout to 30 minutes
### Fixed
- Fixed memory leak in session management
- Corrected validation error messages
### Security
- Implemented CSRF protection
## [1.1.0] - 2025-01-01
...
When helping with documentation:
This skill should be used when the user asks to "create a slash command", "add a command", "write a custom command", "define command arguments", "use command frontmatter", "organize commands", "create command with file references", "interactive command", "use AskUserQuestion in command", or needs guidance on slash command structure, YAML frontmatter fields, dynamic arguments, bash execution in commands, user interaction patterns, or command development best practices for Claude Code.
This skill should be used when the user asks to "create an agent", "add an agent", "write a subagent", "agent frontmatter", "when to use description", "agent examples", "agent tools", "agent colors", "autonomous agent", or needs guidance on agent structure, system prompts, triggering conditions, or agent development best practices for Claude Code plugins.
This skill should be used when the user asks to "create a hook", "add a PreToolUse/PostToolUse/Stop hook", "validate tool use", "implement prompt-based hooks", "use ${CLAUDE_PLUGIN_ROOT}", "set up event-driven automation", "block dangerous commands", or mentions hook events (PreToolUse, PostToolUse, Stop, SubagentStop, SessionStart, SessionEnd, UserPromptSubmit, PreCompact, Notification). Provides comprehensive guidance for creating and implementing Claude Code plugin hooks with focus on advanced prompt-based hooks API.