autonomous-coding-agent

Autonomous Coding Agent

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 "autonomous-coding-agent" with this command: npx skills add shunsukehayashi/miyabi/shunsukehayashi-miyabi-autonomous-coding-agent

Autonomous Coding Agent

Version: 1.0.0 Purpose: Build autonomous coding agents and workflows

Triggers

Trigger Examples

Autonomous "autonomous coding", "自律コーディング"

Agent "coding agent", "コーディングエージェント"

Automation "automate coding tasks", "コーディング自動化"

Overview

Create MCP servers that can:

  • Execute Claude Code commands programmatically

  • Manage multi-session coding workflows

  • Integrate with CI/CD pipelines

  • Build autonomous coding agents

Claude Code CLI Commands

Basic Commands

Start interactive session

claude

One-shot prompt

claude -p "explain this code"

With specific model

claude --model claude-sonnet-4-20250514

Print mode (no streaming)

claude --print "generate a function"

Session Management

Resume last session

claude --resume

Continue specific session

claude --continue abc123

Non-interactive mode

claude --no-interactive

Output Formats

JSON output for parsing

claude --output-format json -p "list files"

Stream JSON for real-time processing

claude --output-format stream-json -p "explain"

MCP Tool Definition

import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';

const server = new McpServer({ name: 'codex-connector' });

// Define tool server.tool( 'codex_execute', 'Execute a Claude Code command', { prompt: { type: 'string', description: 'The prompt to execute' }, workdir: { type: 'string', description: 'Working directory' }, timeout: { type: 'number', description: 'Timeout in ms', default: 300000 } }, async ({ prompt, workdir, timeout }) => { const result = await executeCodex(prompt, workdir, timeout); return { content: [{ type: 'text', text: JSON.stringify(result) }] }; } );

Execution Pattern

Safe Execution

import { spawn } from 'child_process';

async function executeCodex( prompt: string, workdir: string, timeout: number = 300000 ): Promise<CodexResult> { return new Promise((resolve, reject) => { const proc = spawn('claude', [ '--print', '--output-format', 'json', '-p', prompt ], { cwd: workdir, timeout, env: { ...process.env, FORCE_COLOR: '0' } });

let stdout = '';
let stderr = '';

proc.stdout.on('data', (data) => { stdout += data; });
proc.stderr.on('data', (data) => { stderr += data; });

proc.on('close', (code) => {
  if (code === 0) {
    resolve({ success: true, output: JSON.parse(stdout) });
  } else {
    reject(new Error(`Exit code ${code}: ${stderr}`));
  }
});

proc.on('error', reject);

}); }

With Abort Controller

async function executeWithAbort( prompt: string, signal: AbortSignal ): Promise<CodexResult> { const proc = spawn('claude', ['--print', '-p', prompt], { signal // Node.js 16+ supports this });

// ... handle output }

Multi-Session Workflow

class CodingSession { private sessionId?: string;

async start(initialPrompt: string): Promise<void> { const result = await executeCodex(initialPrompt); this.sessionId = result.sessionId; }

async continue(prompt: string): Promise<string> { if (!this.sessionId) throw new Error('No session'); return executeCodex(prompt, { continue: this.sessionId }); }

async end(): Promise<void> { // Session cleanup this.sessionId = undefined; } }

GitHub Actions Integration

  • name: Run Claude Code run: | claude --print --output-format json
    -p "Fix the failing test in ${{ github.event.issue.body }}"
    > result.json

  • name: Parse Result run: | jq '.result' result.json

Security Considerations

// Sanitize user input function sanitizePrompt(prompt: string): string { return prompt .replace(/[`$]/g, '') // Remove shell metacharacters .slice(0, 10000); // Limit length }

// Validate working directory function validateWorkdir(dir: string): boolean { const resolved = path.resolve(dir); const allowed = ['/home/user/projects', '/tmp/sandbox']; return allowed.some(a => resolved.startsWith(a)); }

Error Handling

try { const result = await executeCodex(prompt, workdir); return { success: true, ...result }; } catch (error) { if (error.message.includes('timeout')) { return { success: false, error: 'TIMEOUT', message: 'Execution timed out' }; } if (error.message.includes('ENOENT')) { return { success: false, error: 'NOT_FOUND', message: 'Claude CLI not installed' }; } return { success: false, error: 'UNKNOWN', message: error.message }; }

Checklist

  • MCP server properly configured

  • Tool definitions have clear descriptions

  • Input sanitization implemented

  • Timeout handling in place

  • Error handling covers common cases

  • Working directory validation

  • Session management if needed

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.

Automation

agent-skill-use

No summary provided by upstream source.

Repository SourceNeeds Review
General

ccg

No summary provided by upstream source.

Repository SourceNeeds Review
General

teachable-course-creator

No summary provided by upstream source.

Repository SourceNeeds Review
General

test-generator

No summary provided by upstream source.

Repository SourceNeeds Review