-
Notifications
You must be signed in to change notification settings - Fork 0
feat(skills): vendor the outsource skill (explore/review/write) #4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
OriNachum
wants to merge
1
commit into
main
Choose a base branch
from
feat/vendor-outsource-skill
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,104 @@ | ||
| --- | ||
| name: outsource | ||
| type: command | ||
| description: > | ||
| Hand a scoped repo task to convertible — a *different* engine/model than you | ||
| (e.g. a local vLLM Qwen) — and fold its answer back. The point isn't a stronger | ||
| model; it's a different mind, and diversity helps: `outsource review` gets an | ||
| independent second opinion on a diff, `outsource explore` gets a fresh read of | ||
| an area, `outsource write` delegates a small implementation. Use when the user | ||
| says "outsource this", "get a second opinion", "have convertible review/explore/ | ||
| write", "ask the other model", or when you want a diverse perspective rather | ||
| than just doing it yourself. Read-only verbs (explore/review) run isolated in a | ||
| throwaway git worktree and cannot touch the working tree. | ||
| --- | ||
|
|
||
| # outsource — use convertible as a different mind | ||
|
|
||
| `outsource` drives the **`convertible`** CLI so a Claude agent can hand a scoped | ||
| task to a *different* engine (default: a local vLLM `Qwen3.6-27B` on | ||
| `:8001`). Convertible's model is **not** assumed to be stronger than you — its | ||
| value is **diversity**. A second, independent mind catches things the author's | ||
| mind glides past, which is why **review** is the headline verb. | ||
|
|
||
| This skill is the operator: a portable wrapper that resolves the CLI and turns | ||
| each verb into a `convertible drive`, then prints the drive's result summary. | ||
|
|
||
| ## How to run | ||
|
|
||
| The entry point is `scripts/outsource.sh`. Invoke it from the repo you want | ||
| convertible to work on: | ||
|
|
||
| ```bash | ||
| bash .claude/skills/outsource/scripts/outsource.sh <verb> "<text>" [options] | ||
| ``` | ||
|
|
||
| It resolves the CLI portably — an installed `convertible` on `PATH` (the normal | ||
| case), falling back to `uv run convertible` when inside the convertible checkout, | ||
| else an install hint. | ||
|
|
||
| ### Verbs | ||
|
|
||
| | Verb | What it does | Side effects | | ||
| |------|--------------|--------------| | ||
| | `explore "<question or area>"` | Read-only investigation of the repo; the model reads and reports findings. | **None** — runs in a throwaway worktree at HEAD. | | ||
| | `review "<what to focus on>" [--base main]` | A diverse second opinion on the **committed** diff (`<base>...HEAD`). | **None** — throwaway worktree; reviews committed changes only. | | ||
| | `write "<task>" [--pr]` | Implement a change. Commits to a drive branch by default; `--pr` pushes + opens a PR. | In-place: a `convertible/<id>` drive branch (or a PR). | | ||
|
|
||
| ### Options | ||
|
|
||
| | Option | Meaning | | ||
| |--------|---------| | ||
| | `--repo PATH` | Target repo (default: `.`). | | ||
| | `--base BRANCH` | Base for the `review` diff (default: `main`). | | ||
| | `--engine NAME` | Engine wheel (default: `$CONVERTIBLE_ENGINE` or `vllm-openai`). | | ||
| | `--model NAME` | Model (default: `$CONVERTIBLE_MODEL` or `mmangkad/Qwen3.6-27B-NVFP4`). | | ||
| | `--base-url URL` | OpenAI base URL (default: `$CONVERTIBLE_BASE_URL` or `http://localhost:8001/v1`). | | ||
| | `--max-steps N` | Loop step budget (default: 20). | | ||
| | `--allow-dirty` | (`write`) allow running on a dirty tree. | | ||
| | `--pr` | (`write`) push + open a PR instead of a local drive branch. | | ||
|
|
||
| The result printed to stdout is the drive's `TaskResult.summary` (plus | ||
| `changed_files` / drive branch for `write`), parsed from `convertible drive | ||
| --json`. Per-step progress streams to stderr while it runs. | ||
|
|
||
| ## When to reach for which verb | ||
|
|
||
| - **review** — the standing use. You wrote (or an agent wrote) a change and you | ||
| want a candid, independent pass over the *committed* diff before you trust it. | ||
| Treat the output as a second opinion to weigh, not a verdict. | ||
| - **explore** — you want a fresh, unbiased read of an unfamiliar area ("how does | ||
| X work here?") without anchoring on your own assumptions. | ||
| - **write** — a small, well-scoped implementation you're happy to delegate. The | ||
| result lands on a drive branch you can inspect, merge, or discard. | ||
|
|
||
| ## Hard rules (do not violate) | ||
|
|
||
| - **explore and review are read-only.** They run in a throwaway `git worktree` | ||
| at HEAD, so a stray write can't reach your working tree or branch; the prompts | ||
| also tell the model not to modify anything. Don't route a change-making task | ||
| through them — use `write`. | ||
| - **`write` refuses a dirty tree** unless you pass `--allow-dirty`. This guards | ||
| the dirty-tree hazard: `convertible drive --no-pr` commits *uncommitted* edits | ||
| onto the drive branch and leaves you there. Commit or stash first. | ||
| - **Outsourced output is a second opinion, not authority.** The engine may be a | ||
| smaller/different model; weigh its findings, verify its claims, and own the | ||
| decision yourself. | ||
|
|
||
| ## Honest limits | ||
|
|
||
| - Read-only is enforced by **worktree isolation + prompt constraint**, not a | ||
| sandbox — the loop always exposes `write_file`/`run_command`, so the model can | ||
| still run arbitrary *read-only* commands. | ||
| - `review` covers **committed** changes only (`<base>...HEAD`). To review | ||
| uncommitted work, commit it first. | ||
| - The default engine is whatever single model is running locally; a multi-model | ||
| fleet (different model per verb) is separate infrastructure. | ||
|
|
||
| ## Provenance | ||
|
|
||
| This is a **first-party convertible** skill — `agentculture/convertible` is its | ||
| origin. guildmaster **re-broadcasts** it to the mesh (the same inbound pattern as | ||
| the devague-origin workflow skills), tracking it in `docs/skill-sources.md`. The | ||
| `cite, don't import` policy holds: downstream repos copy it, they don't symlink | ||
| or depend on it. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,24 @@ | ||
| # Outsource Explore Prompt | ||
|
|
||
| You are a second, independent mind brought in for a fresh read of this repository. | ||
| You are NOT the original author — your value is a different perspective, not authority. | ||
|
|
||
| Investigate the following and report what you find: | ||
|
|
||
| $ARGUMENTS | ||
|
|
||
| Rules: | ||
|
|
||
| - This is READ-ONLY. Use read_file, list_dir, and read-only run_command only | ||
| (e.g. `git log`, `git grep`, `ls`, `rg`). Do NOT create, modify, or delete any | ||
| file, and do NOT run any command that changes state. | ||
| - Be concrete: cite file paths and line numbers; quote the key code you rely on. | ||
| - Surface what's surprising, risky, or unclear — not just a tidy summary. | ||
| - You have a limited step budget. Read efficiently and call finish with your | ||
| report well before you run out — a focused finding beats endless reading. | ||
|
|
||
| When you are done, call finish with a structured findings report: | ||
|
|
||
| 1. What it is / how it works (with file:line references). | ||
| 2. Notable details, edge cases, or surprises. | ||
| 3. Open questions or risks worth a closer look. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,31 @@ | ||
| # Outsource Review Prompt | ||
|
|
||
| You are an independent reviewer — a different mind from whoever wrote this change. | ||
| Your job is a candid second opinion, not a rubber stamp. | ||
|
|
||
| Focus the review on: | ||
|
|
||
| $ARGUMENTS | ||
|
|
||
| The change under review is the committed diff on this branch versus its base | ||
| (`$BASE`). Start by running, read-only: | ||
|
|
||
| git diff $BASE...HEAD --stat | ||
| git diff $BASE...HEAD | ||
|
|
||
| then read the touched files for the context you need. | ||
|
|
||
| Rules: | ||
|
|
||
| - READ-ONLY. Do NOT modify, create, or delete any file. Only read and run | ||
| read-only commands. | ||
| - Be terse and prioritized — lead with what actually matters. Don't pad. | ||
| - Call out real problems; if it's genuinely fine, say so and say why. | ||
| - You have a limited step budget. Read the diff efficiently and call finish with | ||
| your review well before you run out of steps. | ||
|
|
||
| When you are done, call finish with a structured review: | ||
|
|
||
| 1. Correctness risks / likely bugs (with file:line). | ||
| 2. Design, clarity, or maintainability concerns. | ||
| 3. Concrete, actionable suggestions (ranked; most important first). | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,16 @@ | ||
| # Outsource Write Prompt | ||
|
|
||
| Implement the following task in this repository: | ||
|
|
||
| $ARGUMENTS | ||
|
|
||
| Rules: | ||
|
|
||
| - Make the SMALLEST change that correctly satisfies the task. | ||
| - Follow the repository's existing patterns, style, and conventions — read the | ||
| neighbouring files first so your change reads like the surrounding code. | ||
| - You may read, create, modify files, and run commands as needed. | ||
| - Don't widen the scope: do exactly what was asked, nothing more. | ||
|
|
||
| When you are done, call finish with a short summary of exactly what you changed | ||
| and why. |
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
2. Base value command injection
🐞 Bug⛨ SecurityAgent Prompt
ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools