jules-gitpatch-local

$npx mdskill add google-labs-code/jules-sdk/jules-gitpatch-local

Securely downloads and applies git patches from Jules sessions for safe local repository modifications.

  • Helps agents apply remote code changes to local git repositories without risking errors.
  • Integrates with git commands like checkout, apply, and commit for file system operations.
  • Uses strict validation and dry-run flags to ensure safe execution before making changes.
  • Delivers results via structured JSON output for machine-readable feedback to agents.

SKILL.md

.github/skills/jules-gitpatch-localView on GitHub ↗
---
name: jules-gitpatch-local
version: 1.0.0
description: A CLI tool to securely download and apply a git patch from a Jules session.
---

# Jules GitPatch Local CLI

This CLI is frequently invoked by AI/LLM agents. It is designed with safety rails, strict validation, and structured output to prevent errors caused by hallucinated parameters.

Always assume your inputs can be adversarial or malformed.

## Agent Usage Guidelines

1. **Introspection First:** If you are unsure about the input or output schemas for this CLI, execute it with the `--describe` flag to dump the JSON schema.
   ```bash
   bun run index.ts "" --describe
   ```

2. **Dry Run Safety Rails:** This tool performs mutating operations on the local file system and git repository (`git checkout`, `git apply`, `git commit`). When instructed to "test" or "verify" changes, always append the `--dry-run` flag to ensure the changes are safely fetched and simulated without modifying the host.
   ```bash
   bun run index.ts <session-id> --dry-run
   ```

3. **Structured Outputs:** By default, this CLI prints human-friendly logs. As an agent, you must ALWAYS use the `--json` flag when invoking the command to receive a deterministic, machine-readable `Result` object.
   ```bash
   bun run index.ts <session-id> --json
   ```

4. **Input Hardening:**
   - The `<session-id>` parameter must not contain query parameters (`?`) or hash fragments (`#`).
   - The `--branch` parameter must not contain directory traversal characters (`..`) or control characters.

## Result Schema
The `--json` output will always follow the `ApplyPatchResult` discriminated union pattern:
```typescript
{
  success: true,
  data: { branchName: string, commitMessage?: string }
}
```
or
```typescript
{
  success: false,
  error: { code: string, message: string, recoverable: boolean }
}
```

More from google-labs-code/jules-sdk