guild-cli 0.22.0__tar.gz → 0.22.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {guild_cli-0.22.0 → guild_cli-0.22.2}/.claude/skills/ask-colleague/SKILL.md +77 -18
- {guild_cli-0.22.0 → guild_cli-0.22.2}/.claude/skills/ask-colleague/prompts/explore.md +11 -1
- {guild_cli-0.22.0 → guild_cli-0.22.2}/.claude/skills/ask-colleague/prompts/review.md +9 -8
- {guild_cli-0.22.0 → guild_cli-0.22.2}/.claude/skills/ask-colleague/prompts/write.md +7 -1
- guild_cli-0.22.2/.claude/skills/ask-colleague/scripts/ask-colleague.sh +941 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/CHANGELOG.md +65 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/PKG-INFO +2 -2
- {guild_cli-0.22.0 → guild_cli-0.22.2}/docs/skill-sources.md +65 -45
- {guild_cli-0.22.0 → guild_cli-0.22.2}/pyproject.toml +1 -1
- {guild_cli-0.22.0 → guild_cli-0.22.2}/uv.lock +1 -1
- guild_cli-0.22.0/.claude/skills/ask-colleague/scripts/ask-colleague.sh +0 -567
- {guild_cli-0.22.0 → guild_cli-0.22.2}/.claude/skills/agent-config/SKILL.md +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/.claude/skills/agent-config/data/backend-fingerprints.yaml +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/.claude/skills/agent-config/scripts/show.sh +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/.claude/skills/assign-to-workforce/SKILL.md +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/.claude/skills/assign-to-workforce/scripts/assign-to-workforce.sh +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/.claude/skills/challenge/SKILL.md +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/.claude/skills/challenge/scripts/challenge.sh +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/.claude/skills/cicd/SKILL.md +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/.claude/skills/cicd/scripts/_resolve-nick.sh +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/.claude/skills/cicd/scripts/portability-lint.sh +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/.claude/skills/cicd/scripts/pr-reply.sh +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/.claude/skills/cicd/scripts/pr-status.sh +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/.claude/skills/cicd/scripts/workflow.sh +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/.claude/skills/communicate/SKILL.md +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/.claude/skills/communicate/scripts/fetch-issues.sh +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/.claude/skills/communicate/scripts/mesh-message.sh +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/.claude/skills/communicate/scripts/post-comment.sh +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/.claude/skills/communicate/scripts/post-issue.sh +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/.claude/skills/communicate/scripts/templates/skill-new-brief.md +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/.claude/skills/communicate/scripts/templates/skill-update-brief.md +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/.claude/skills/deviate/SKILL.md +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/.claude/skills/deviate/scripts/deviate.sh +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/.claude/skills/doc-test-alignment/SKILL.md +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/.claude/skills/doc-test-alignment/scripts/check.sh +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/.claude/skills/guild/SKILL.md +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/.claude/skills/guild/scripts/configure-repo.sh +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/.claude/skills/guild/scripts/create.sh +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/.claude/skills/guild/scripts/overview.sh +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/.claude/skills/onboard/SKILL.md +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/.claude/skills/onboard/scripts/onboard.sh +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/.claude/skills/outsource/SKILL.md +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/.claude/skills/outsource/prompts/explore.md +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/.claude/skills/outsource/prompts/review.md +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/.claude/skills/outsource/prompts/write.md +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/.claude/skills/outsource/scripts/outsource.sh +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/.claude/skills/pypi-maintainer/SKILL.md +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/.claude/skills/pypi-maintainer/scripts/switch-source.sh +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/.claude/skills/recall/SKILL.md +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/.claude/skills/recall/scripts/recall.sh +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/.claude/skills/remember/SKILL.md +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/.claude/skills/remember/scripts/remember.sh +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/.claude/skills/run-tests/SKILL.md +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/.claude/skills/run-tests/scripts/test.sh +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/.claude/skills/scope/SKILL.md +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/.claude/skills/scope/scripts/scope.sh +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/.claude/skills/sonarclaude/SKILL.md +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/.claude/skills/sonarclaude/scripts/sonar.sh +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/.claude/skills/spec-to-plan/SKILL.md +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/.claude/skills/spec-to-plan/scripts/spec-to-plan.sh +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/.claude/skills/summarize-delivery/SKILL.md +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/.claude/skills/summarize-delivery/scripts/summarize-delivery.sh +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/.claude/skills/teach/SKILL.md +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/.claude/skills/teach/scripts/teach.sh +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/.claude/skills/think/SKILL.md +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/.claude/skills/think/scripts/think.sh +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/.claude/skills/version-bump/SKILL.md +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/.claude/skills/version-bump/scripts/bump.py +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/.claude/skills.local.yaml.example +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/.devague/frames/guildmaster-ships-teach-and-onboard-two-agent-firs.json +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/.devague/plans/guildmaster-ships-teach-and-onboard-two-agent-firs.json +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/.eidetic/memory/default__public.jsonl +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/.eidetic/memory/guildmaster__public.jsonl +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/.flake8 +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/.github/workflows/publish.yml +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/.github/workflows/tests.yml +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/.gitignore +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/.markdownlint-cli2.yaml +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/CLAUDE.md +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/LICENSE +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/README.md +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/culture.yaml +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/docs/cutover.md +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/docs/onboarding/reachy-mini-mcp.json +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/docs/plans/2026-05-24-guildmaster-ships-teach-and-onboard-two-agent-firs.md +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/docs/specs/2026-05-24-guildmaster-ships-teach-and-onboard-two-agent-firs.md +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/guild/__init__.py +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/guild/__main__.py +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/guild/cli/__init__.py +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/guild/cli/_commands/__init__.py +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/guild/cli/_commands/_broadcast.py +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/guild/cli/_commands/_provision_template.py +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/guild/cli/_commands/create.py +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/guild/cli/_commands/explain.py +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/guild/cli/_commands/learn.py +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/guild/cli/_commands/onboard.py +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/guild/cli/_commands/overview.py +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/guild/cli/_commands/show.py +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/guild/cli/_commands/teach.py +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/guild/cli/_commands/whoami.py +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/guild/cli/_errors.py +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/guild/cli/_output.py +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/guild/cli/_repo.py +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/guild/scaffold/__init__.py +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/guild/scaffold/instantiate.py +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/guild/skills/__init__.py +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/guild/skills/identity.py +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/guild/skills/ledger.py +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/guild/skills/render.py +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/guild/skills/sources.py +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/sonar-project.properties +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/tests/__init__.py +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/tests/test_broadcast_post.py +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/tests/test_cli.py +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/tests/test_cli_create.py +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/tests/test_cli_explain.py +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/tests/test_cli_learn.py +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/tests/test_cli_onboard.py +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/tests/test_cli_overview.py +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/tests/test_cli_show.py +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/tests/test_cli_teach.py +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/tests/test_cli_whoami.py +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/tests/test_configure_repo_sonar.py +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/tests/test_scaffold_instantiate.py +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/tests/test_skills_convention.py +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/tests/test_skills_identity.py +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/tests/test_skills_ledger.py +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/tests/test_skills_render.py +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/tests/test_skills_sources.py +0 -0
- {guild_cli-0.22.0 → guild_cli-0.22.2}/tests/test_version_fallback.py +0 -0
|
@@ -7,24 +7,27 @@ description: >
|
|
|
7
7
|
isn't a stronger model; it's a second, independent mind, and that diversity is
|
|
8
8
|
the value: `ask-colleague review` gets a candid second opinion on a diff,
|
|
9
9
|
`ask-colleague explore` gets a fresh read of an area, `ask-colleague write`
|
|
10
|
-
hands off a small implementation,
|
|
11
|
-
work item (the ROI loop)
|
|
10
|
+
hands off a small implementation, `ask-colleague feedback` grades a finished
|
|
11
|
+
work item (the ROI loop), and `ask-colleague clean` reaps stale/corrupt
|
|
12
|
+
`colleague/*` branches a crashed run left behind (which can break `git fetch`).
|
|
13
|
+
Pilot a running work item with `monitor`/`guide`/`stop`.
|
|
14
|
+
Reach for it REFLEXIVELY, the way you'd lean over to the
|
|
12
15
|
teammate at the next desk — not only when asked: before you present or open a PR
|
|
13
16
|
on a non-trivial committed diff, run `review` for a diverse second opinion; for a
|
|
14
17
|
fresh read of an unfamiliar area whose answer is independent of your current
|
|
15
18
|
context, run `explore`. Both are read-only — isolated in a throwaway git
|
|
16
|
-
worktree, zero side effects — so the reflex is always safe; the
|
|
17
|
-
`write --apply` / `write --pr` still needs the user's go-ahead. Triggers when the
|
|
19
|
+
worktree, zero side effects to your tree/branch — so the reflex is always safe; the
|
|
20
|
+
side-effecting `write --apply` / `write --pr` still needs the user's go-ahead. Triggers when the
|
|
18
21
|
user says "ask colleague", "ask a colleague to review/explore/write this", "have
|
|
19
22
|
colleague take a look", "get a second opinion", "ask the other model", "rate that
|
|
20
|
-
work item" — and still on the legacy "outsource this".
|
|
21
|
-
opinion to verify and own, never authority.
|
|
23
|
+
work item", "clean up a crashed colleague run" — and still on the legacy "outsource this".
|
|
24
|
+
Colleague's output is a second opinion to verify and own, never authority.
|
|
22
25
|
---
|
|
23
26
|
|
|
24
27
|
# ask-colleague — lean on colleague as a different mind
|
|
25
28
|
|
|
26
29
|
`ask-colleague` drives the **`colleague`** CLI so a Claude agent can hand a scoped
|
|
27
|
-
task to a *different* backend (default: a local vLLM `Qwen3.
|
|
30
|
+
task to a *different* backend (default: a local vLLM `Qwen3.8-27B` on
|
|
28
31
|
`:8001`). Colleague's model is **not** assumed to be stronger than you — its
|
|
29
32
|
value is **diversity**. A second, independent mind catches things the author's
|
|
30
33
|
mind glides past, which is why **review** is the headline verb. Treat it the way
|
|
@@ -95,10 +98,13 @@ else an install hint.
|
|
|
95
98
|
|
|
96
99
|
| Verb | What it does | Side effects |
|
|
97
100
|
|------|--------------|--------------|
|
|
98
|
-
| `explore "<question or area>"` | Read-only investigation of the repo; the model reads and reports findings. | **None** — runs in a throwaway worktree at HEAD. |
|
|
99
|
-
| `review "<what to focus on>" [--base main]` | A diverse second opinion on the **committed** diff (`<base>...HEAD`). | **None** — throwaway worktree
|
|
100
|
-
| `write "<task>" [--apply\|--pr]` | Implement a change. **Previews by default** (throwaway worktree, prints the would-be diff); `--apply` lands a work branch in place; `--pr` pushes + opens a PR. | **None** by default (preview); a `colleague/<id>` work branch / PR only with `--apply` / `--pr`. |
|
|
101
|
+
| `explore "<question or area>"` | Read-only investigation of the repo; the model reads and reports findings. | **None** to your working tree / branch — runs in a throwaway worktree at HEAD; writes only a gradable run artifact under the gitignored `.colleague/` bookkeeping dir. |
|
|
102
|
+
| `review "<what to focus on>" [--base main]` | A diverse second opinion on the **committed** diff (`<base>...HEAD`). | **None** to your working tree / branch — throwaway worktree, committed changes only; writes only a gradable run artifact under the gitignored `.colleague/` bookkeeping dir. |
|
|
103
|
+
| `write "<task>" [--apply\|--pr]` | Implement a change. **Previews by default** (throwaway worktree, prints the would-be diff); `--apply` lands a work branch in place; `--pr` pushes + opens a PR. | **None** to your working tree / branch by default (preview); a `colleague/<id>` work branch / PR only with `--apply` / `--pr`. |
|
|
104
|
+
| `plan "<task>"` | Colleague **PLANS** a complex task: it proposes a spec, then a split plan, then fans the waves out to a subagent-colleague workforce (`colleague plan run … --yes`). The *inverse of `/think`* — same arc, but colleague is the planning mind, not Claude. Needs a live backend. | Runs `colleague plan` in `--repo` (not a throwaway worktree): the workforce stage spawns isolated subagent worktrees and can land branches — treat like `write --apply` (gets a user nod). |
|
|
101
105
|
| `feedback <id\|last> [--rating N]` | **Grade a finished work item** (the ROI loop). With `--rating N` (1–5, plus `--notes`) it records feedback; without, it shows the work item's existing feedback. `last` resolves the most recent work item in `--repo`. | Writes `.colleague/<id>.feedback.json` only when `--rating` is given; read-only otherwise. |
|
|
106
|
+
| `resume <task-id\|last> [--detach]` | **Resume a cut run** — a timed-out / SIGTERM'd / budget-exhausted work item picked back up from its persisted artifact (`colleague work --continue`, lineage on `TaskResult.continued_from`). `last` resolves the most recent work item in `--repo`. `--detach` runs it under `setsid`/`nohup` and returns at once (not `--background`, which drops the continue id — colleague#418). | Continues the ORIGINAL run's `colleague/<id>` work branch; never touches your tree / branch. |
|
|
107
|
+
| `clean [--dry-run]` | **Reap what a crashed run left behind** (#162): stale/corrupt `colleague/*` branches + orphaned 0-byte `.colleague/` artifacts that can wedge `git fetch`. Scoped strictly to `colleague/*` (never touches an unrelated branch); conservative with `.git/objects` (reports 0-byte loose objects + suggests `git prune`, never deletes them). A thin pass-through to `colleague clean`. | Deletes corrupt `colleague/<id>` refs + 0-byte `.colleague/` artifacts in `--repo`; `--dry-run` changes nothing. |
|
|
102
108
|
|
|
103
109
|
### Options
|
|
104
110
|
|
|
@@ -107,19 +113,28 @@ else an install hint.
|
|
|
107
113
|
| `--repo PATH` | Target repo (default: `.`). |
|
|
108
114
|
| `--base BRANCH` | Base for the `review` diff (default: `main`). |
|
|
109
115
|
| `--engine NAME` | Backend plugin (default: `$COLLEAGUE_ENGINE` or `vllm-openai`). |
|
|
110
|
-
| `--model NAME` | Model (default: `$COLLEAGUE_MODEL` or `
|
|
116
|
+
| `--model NAME` | Model (default: `$COLLEAGUE_MODEL` or `unsloth/Qwen3.8-27B-NVFP4`). |
|
|
111
117
|
| `--base-url URL` | OpenAI base URL (default: `$COLLEAGUE_BASE_URL` or `http://localhost:8001/v1`). |
|
|
112
|
-
| `--
|
|
118
|
+
| `--role NAME` | Typed subagent role for the run (`explorer`, `reviewer`, `validator`, `planner`, `writer`). Since #416 a top-level `--role explorer` runs at thinking effort **`low`** (off selectable via `--effort off`); other top-level roles keep the acting seat's effort. |
|
|
119
|
+
| `--effort RUNG` | **Thinking effort for the acting seat** (#416): `off` \| `low` \| `medium` \| `high` \| `xhigh` \| `default`. Unset = colleague's own table (acting seat `medium`). `off` sends `enable_thinking:false` — the measured win for small, well-specified briefs (same brief: off 24 s / xhigh 88 s / medium 129 s, all correct — `docs/evidence/2026-08-22-per-seat-thinking-effort-416-results.md`); `xhigh` for open-ended judgement; `default` = the kill-switch (send nothing, the pre-#416 wire). Exported as `COLLEAGUE_CORTEX_REASONING_EFFORT` + `COLLEAGUE_WORKER_REASONING_EFFORT`; validated before the run. |
|
|
120
|
+
| `--seat-effort S=R[,S=R]` | Per-seat override for the other seats (`cortex`, `worker`, `deepthink`, `senses`, `evaluator`, `design`) — e.g. `--seat-effort senses=off,deepthink=xhigh`. Exported as `COLLEAGUE_<SEAT>_REASONING_EFFORT`. Children keep their role table (writer/planner medium, reviewer/validator low, explorer off) unless the parent overrides per delegation. |
|
|
121
|
+
| `--detach` | (`resume`) run detached and return at once; pilot with `monitor` / `guide` / `stop` once the log names the new flight id. |
|
|
122
|
+
| `--max-steps N` | Loop step budget (default: 20). `explore`/`review` select colleague's own native **`explore`**/**`review`** mode profile (`colleague/profiles.py`, applied via `colleague work --mode`) instead of a wrapper-side override — today that profile defaults to 30, since read-only mapping fans out across more files. An explicit `--max-steps N` always overrides the profile's default, in either direction. If the resolved `colleague` predates `--mode` (a stale install on `PATH`), the wrapper falls back to the old caller-side `--max-steps 30` + reserved-steps behavior so it keeps working. |
|
|
113
123
|
| `--apply` | (`write`) apply the change in place (work branch) instead of previewing. |
|
|
114
124
|
| `--allow-dirty` | (`write`) allow running on a dirty tree (only matters with `--apply` / `--pr`). |
|
|
115
125
|
| `--pr` | (`write`) push + open a PR instead of a local work branch (implies `--apply`). |
|
|
116
126
|
| `--rating N` | (`feedback`) record a 1–5 quality rating for the work item. |
|
|
117
127
|
| `--notes "..."` | (`feedback`) free-text notes stored with the rating. |
|
|
118
128
|
| `--by NAME` | (`feedback`) who is grading (default: colleague's resolved identity). |
|
|
129
|
+
| `--dry-run` | (`clean`) report what would be reaped without changing anything. |
|
|
130
|
+
| `--json` | (any verb) machine-readable output: stdout carries **only** the result JSON, every diagnostic/digest line goes to stderr. |
|
|
119
131
|
|
|
120
132
|
The result printed to stdout is the work item's `TaskResult.summary` (plus
|
|
121
133
|
`changed_files` / work branch for `write`), parsed from `colleague work
|
|
122
|
-
--json`. Per-step progress streams to stderr while it runs.
|
|
134
|
+
--json`. Per-step progress streams to stderr while it runs. Pass `--json` to get
|
|
135
|
+
the raw `TaskResult` on stdout instead of the human digest (the drive verbs emit
|
|
136
|
+
the normalized `TaskResult`; `feedback` / `clean` forward `--json` to colleague),
|
|
137
|
+
keeping stdout valid JSON for a machine consumer while diagnostics stay on stderr.
|
|
123
138
|
|
|
124
139
|
## When to reach for which verb
|
|
125
140
|
|
|
@@ -140,6 +155,41 @@ The result printed to stdout is the work item's `TaskResult.summary` (plus
|
|
|
140
155
|
says how *good* it was — together they let you compute the **ROI of asking
|
|
141
156
|
colleague** and decide whether to ask again (and which backend). Grade the most
|
|
142
157
|
recent work item with `ask-colleague feedback last --rating 4 --notes "…"`.
|
|
158
|
+
- **clean** — recovery, not routine. A crashed / interrupted `write --apply` can
|
|
159
|
+
leave a dangling `colleague/<id>` branch pointing at half-written (0-byte)
|
|
160
|
+
objects that **breaks `git fetch` / `git pull`**. Run `ask-colleague clean`
|
|
161
|
+
(or `colleague clean`) to reap it — start with `--dry-run` to see what it would
|
|
162
|
+
remove. It only ever touches `colleague/*` refs and `.colleague/` artifacts.
|
|
163
|
+
|
|
164
|
+
## Thinking effort and resuming (#416)
|
|
165
|
+
|
|
166
|
+
Colleague resolves a **per-seat thinking effort** where each seat is built,
|
|
167
|
+
never per turn — the acting seat defaults to `medium`, deepthink `xhigh`,
|
|
168
|
+
senses/Talker `off`, children by role (writer/planner `medium`,
|
|
169
|
+
reviewer/validator `low`, explorer `off`). The wrapper exposes the operator
|
|
170
|
+
overrides as `--effort` (acting seat) and `--seat-effort` (any seat); a typo
|
|
171
|
+
fails fast. Rule of thumb from the measurements: **`--effort off` for small,
|
|
172
|
+
well-specified briefs** (5× faster, same result), **leave the default for
|
|
173
|
+
ordinary work**, **`--effort xhigh` for open-ended judgement** (review of a
|
|
174
|
+
subtle diff, a plan). Effort does not rescue a module-sized brief — split the
|
|
175
|
+
request instead (#415).
|
|
176
|
+
|
|
177
|
+
A run cut by a timeout, SIGTERM or an exhausted budget is **resumable**:
|
|
178
|
+
`ask-colleague resume <task-id|last>` continues it from its artifact on the same
|
|
179
|
+
work branch; `--detach` keeps your shell free. Prefer resume over re-dispatch —
|
|
180
|
+
the continuation carries the prior steps and lineage.
|
|
181
|
+
|
|
182
|
+
## Piloting a flight
|
|
183
|
+
|
|
184
|
+
Dispatch a drive with `--watch` (on `explore`, `review`, or `write`) to make the
|
|
185
|
+
work item watchable. While it runs you can:
|
|
186
|
+
|
|
187
|
+
- **`ask-colleague monitor <task-id>`** — watch the flight's live feed
|
|
188
|
+
- **`ask-colleague guide <task-id> "<message>"`** — send mid-flight guidance
|
|
189
|
+
- **`ask-colleague stop <task-id>`** — cooperatively ask the flight to stop
|
|
190
|
+
|
|
191
|
+
Control is applied at the running loop's next turn boundary, so guidance and
|
|
192
|
+
stop requests take effect on the next iteration rather than interrupting mid-step.
|
|
143
193
|
|
|
144
194
|
## Hard rules (do not violate)
|
|
145
195
|
|
|
@@ -168,11 +218,20 @@ The result printed to stdout is the work item's `TaskResult.summary` (plus
|
|
|
168
218
|
uncommitted work, commit it first.
|
|
169
219
|
- The default backend is whatever single model is running locally; a multi-model
|
|
170
220
|
fleet (different model per verb) is separate infrastructure.
|
|
221
|
+
- **Every verb writes bookkeeping under `.colleague/`** (run artifacts for
|
|
222
|
+
explore/review/write; feedback records; the `last_work` pointer) — none of it
|
|
223
|
+
in your tracked tree, but in a repo that does **not** already gitignore
|
|
224
|
+
`.colleague/` it shows up as untracked files. **Add `.colleague/` to your
|
|
225
|
+
`.gitignore`** (keep `!/.colleague/commands/` if you commit command templates).
|
|
226
|
+
- **A crashed run can wedge `git fetch`.** A `write --apply` interrupted
|
|
227
|
+
mid-commit can leave a dangling `colleague/<id>` branch + 0-byte artifacts;
|
|
228
|
+
`ask-colleague clean` recovers it. A SIGKILL/OOM *during* the commit can still
|
|
229
|
+
corrupt git objects (git/filesystem durability, not the skill's to guarantee)
|
|
230
|
+
— which is exactly what `clean` is for.
|
|
171
231
|
|
|
172
232
|
## Provenance
|
|
173
233
|
|
|
174
|
-
This is a **first-party colleague
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
or depend on it.
|
|
234
|
+
This is a **first-party** colleague skill — colleague is its origin. See
|
|
235
|
+
`docs/skill-sources.md` for the consumer's per-repo skill ledger. The `cite,
|
|
236
|
+
don't import` policy holds: downstream repos copy it, they don't symlink or
|
|
237
|
+
depend on it.
|
|
@@ -18,8 +18,18 @@ Rules:
|
|
|
18
18
|
report (or you are within a few steps of the budget), STOP reading and call
|
|
19
19
|
`finish`. Err on the side of finishing early — a focused finding beats endless
|
|
20
20
|
reading.
|
|
21
|
+
- For a WIDE codebase map (many folders/modules), do NOT read every file in series
|
|
22
|
+
— that exhausts the step budget. Partition the surface by folder and delegate the
|
|
23
|
+
per-folder sub-surveys to the `subagents` tool (one child per folder/subtree, each
|
|
24
|
+
returning its findings), then synthesize their results into your report.
|
|
25
|
+
- NARRATE PROGRESS: with EVERY tool call, write one short line of plain text
|
|
26
|
+
first — what you just learned and what you are checking next. That line rides
|
|
27
|
+
the run's flight feed, so the operator can see where you are instead of a
|
|
28
|
+
silent turn. A long think with nothing written looks like a stall. If you are
|
|
29
|
+
within ~3 steps of the budget, STOP and write the answer-so-far (partial is
|
|
30
|
+
fine, mark it partial) rather than reading one more file.
|
|
21
31
|
|
|
22
32
|
When you are done, call finish with a structured findings report:
|
|
23
33
|
1. What it is / how it works (with file:line references).
|
|
24
34
|
2. Notable details, edge cases, or surprises.
|
|
25
|
-
3. Open questions or risks worth a closer look.
|
|
35
|
+
3. Open questions or risks worth a closer look.
|
|
@@ -5,13 +5,8 @@ Focus the review on:
|
|
|
5
5
|
|
|
6
6
|
$ARGUMENTS
|
|
7
7
|
|
|
8
|
-
The
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
git diff $BASE...HEAD --stat
|
|
12
|
-
git diff $BASE...HEAD
|
|
13
|
-
|
|
14
|
-
then read the touched files for the context you need.
|
|
8
|
+
The diff for this change is ALREADY PROVIDED below the instructions (filtered +
|
|
9
|
+
capped). Read specific files only if you need more context.
|
|
15
10
|
|
|
16
11
|
Rules:
|
|
17
12
|
- READ-ONLY. Do NOT modify, create, or delete any file. Only read and run
|
|
@@ -29,8 +24,14 @@ Rules:
|
|
|
29
24
|
NOTHING and wastes the entire drive — so the moment you have enough to write a
|
|
30
25
|
useful review (or you are within a few steps of the budget), STOP reading and
|
|
31
26
|
call `finish`. Err on the side of finishing early.
|
|
27
|
+
- NARRATE PROGRESS: with EVERY tool call, write one short line of plain text
|
|
28
|
+
first — what you just learned and what you are checking next. That line rides
|
|
29
|
+
the run's flight feed, so the operator can see where you are instead of a
|
|
30
|
+
silent turn. A long think with nothing written looks like a stall. If you are
|
|
31
|
+
within ~3 steps of the budget, STOP and write the answer-so-far (partial is
|
|
32
|
+
fine, mark it partial) rather than reading one more file.
|
|
32
33
|
|
|
33
34
|
When you are done, call finish with a structured review:
|
|
34
35
|
1. Correctness risks / likely bugs (with file:line).
|
|
35
36
|
2. Design, clarity, or maintainability concerns.
|
|
36
|
-
3. Concrete, actionable suggestions (ranked; most important first).
|
|
37
|
+
3. Concrete, actionable suggestions (ranked; most important first).
|
|
@@ -10,6 +10,12 @@ Rules:
|
|
|
10
10
|
text file with exactly one trailing newline.
|
|
11
11
|
- You may read, create, modify files, and run commands as needed.
|
|
12
12
|
- Don't widen the scope: do exactly what was asked, nothing more.
|
|
13
|
+
- NARRATE PROGRESS: with EVERY tool call, write one short line of plain text
|
|
14
|
+
first — what you just learned and what you are checking next. That line rides
|
|
15
|
+
the run's flight feed, so the operator can see where you are instead of a
|
|
16
|
+
silent turn. A long think with nothing written looks like a stall. If you are
|
|
17
|
+
within ~3 steps of the budget, STOP and write the answer-so-far (partial is
|
|
18
|
+
fine, mark it partial) rather than reading one more file.
|
|
13
19
|
|
|
14
20
|
When you are done, call finish with a short summary of exactly what you changed
|
|
15
|
-
and why.
|
|
21
|
+
and why.
|