standard-out-setup

Guide for adding console output to make errors visible to agents. This is one of the most critical leverage points - without stdout visibility, agents operate blind.

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 "standard-out-setup" with this command: npx skills add melodic-software/claude-code-plugins/melodic-software-claude-code-plugins-standard-out-setup

Standard Out Setup

Guide for adding console output to make errors visible to agents. This is one of the most critical leverage points - without stdout visibility, agents operate blind.

When to Use

  • Agent failures with no visible error output

  • Silent functions that return without logging

  • New codebase setup for agentic coding

  • Debugging why agents can't self-correct

Why Standard Out Matters

Agents can only act on what they can see. If your application fails silently:

  • Agent doesn't know something went wrong

  • Agent can't identify the error

  • Agent can't fix the issue

  • Human intervention required (breaks autonomy)

Standard out is often the missing link when agents fail.

The Pattern

Before (Agent Can't See)

def process_data(data): return transform(data) # Silent - what happened?

function processData(data) { return transform(data); // Silent - success? failure? }

After (Agent Can See)

def process_data(data): try: result = transform(data) print(f"SUCCESS: Processed {len(result)} items") return result except Exception as e: print(f"ERROR in process_data: {str(e)}") raise

function processData(data) { try { const result = transform(data); console.log(SUCCESS: Processed ${result.length} items); return result; } catch (error) { console.error(ERROR in processData: ${error.message}); throw error; } }

What to Log

Always Log

Success with context

  • What operation completed

  • How many items processed

  • What was created/modified

Errors with detail

  • What operation failed

  • The error message

  • Enough context to debug

State changes

  • Files created/modified/deleted

  • API calls made

  • Database operations

Don't Over-Log

  • Avoid logging every loop iteration

  • Don't log sensitive data (passwords, tokens)

  • Keep messages concise but informative

Implementation Workflow

Step 1: Identify Key Functions

Look for:

  • API endpoints

  • Data processing functions

  • File operations

  • External service calls

  • Database operations

Step 2: Add Success Logging

For each function, add output on success:

print(f"SUCCESS: {operation} completed - {context}")

Step 3: Add Error Logging

Wrap in try/except with error output:

try: # operation except Exception as e: print(f"ERROR in {function_name}: {str(e)}") raise # Re-raise so agent sees the error

Step 4: Verify Visibility

Run the application and verify:

  • Can you see success messages?

  • Can you see error messages when things fail?

  • Is there enough context to understand what happened?

Language-Specific Patterns

Python

import logging

Simple print for immediate visibility

print(f"INFO: Starting {operation}") print(f"SUCCESS: {operation} complete") print(f"ERROR: {operation} failed - {error}")

Or use logging for more control

logging.basicConfig(level=logging.INFO) logger = logging.getLogger(name)

logger.info(f"Starting {operation}") logger.error(f"{operation} failed: {error}")

TypeScript/JavaScript

// Simple console for immediate visibility console.log(INFO: Starting ${operation}); console.log(SUCCESS: ${operation} complete); console.error(ERROR: ${operation} failed - ${error.message});

// Or use a logger import { logger } from './logger';

logger.info(Starting ${operation}); logger.error(${operation} failed, { error });

Go

import "log"

log.Printf("INFO: Starting %s", operation) log.Printf("SUCCESS: %s complete", operation) log.Printf("ERROR: %s failed - %v", operation, err)

API Endpoint Pattern

This is the most common place agents need visibility:

@app.post("/api/upload") async def upload_file(file: UploadFile): print(f"INFO: Received upload request for {file.filename}") try: result = await process_file(file) print(f"SUCCESS: Uploaded {file.filename} - {len(result)} rows processed") return {"status": "success", "rows": len(result)} except Exception as e: print(f"ERROR: Upload failed for {file.filename} - {str(e)}") raise HTTPException(status_code=500, detail=str(e))

Anti-Patterns to Fix

Silent Returns

BAD

def fetch_data(): return requests.get(url).json()

GOOD

def fetch_data(): print(f"INFO: Fetching data from {url}") response = requests.get(url) print(f"SUCCESS: Received {len(response.content)} bytes") return response.json()

Bare Except Blocks

BAD - agent never sees the error

try: risky_operation() except: pass

GOOD - agent sees what went wrong

try: risky_operation() except Exception as e: print(f"ERROR: risky_operation failed - {str(e)}") raise

Empty Catch Blocks

// BAD try { riskyOperation(); } catch (e) {}

// GOOD try { riskyOperation(); } catch (error) { console.error(ERROR: riskyOperation failed - ${error.message}); throw error; }

Verification Checklist

After adding stdout:

  • Success messages appear for normal operations

  • Error messages appear when operations fail

  • Messages include enough context to understand what happened

  • Agent can see and react to the output

  • Sensitive data is not logged

Related Memory Files

  • @12-leverage-points.md - Standard out is leverage point #5

  • @agent-perspective-checklist.md - Visibility checklist

  • @agentic-kpis.md - Measure improvement

Version History

  • v1.0.0 (2025-12-26): Initial release

Last Updated

Date: 2025-12-26 Model: claude-opus-4-5-20251101

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.

Coding

design-thinking

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

plantuml-syntax

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

system-prompt-engineering

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

resume-optimization

No summary provided by upstream source.

Repository SourceNeeds Review