workledger-cli 0.6.1__tar.gz → 0.8.0__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.
- {workledger_cli-0.6.1 → workledger_cli-0.8.0}/.claude/skills/ask-colleague/SKILL.md +31 -7
- {workledger_cli-0.6.1 → workledger_cli-0.8.0}/.claude/skills/ask-colleague/prompts/explore.md +10 -0
- {workledger_cli-0.6.1 → workledger_cli-0.8.0}/.claude/skills/ask-colleague/prompts/review.md +8 -7
- {workledger_cli-0.6.1 → workledger_cli-0.8.0}/.claude/skills/ask-colleague/prompts/write.md +6 -0
- {workledger_cli-0.6.1 → workledger_cli-0.8.0}/.claude/skills/ask-colleague/scripts/ask-colleague.sh +302 -36
- {workledger_cli-0.6.1 → workledger_cli-0.8.0}/.github/workflows/tests.yml +12 -0
- {workledger_cli-0.6.1 → workledger_cli-0.8.0}/.gitignore +3 -0
- {workledger_cli-0.6.1 → workledger_cli-0.8.0}/CHANGELOG.md +36 -0
- {workledger_cli-0.6.1 → workledger_cli-0.8.0}/PKG-INFO +4 -2
- {workledger_cli-0.6.1 → workledger_cli-0.8.0}/README.md +2 -0
- {workledger_cli-0.6.1 → workledger_cli-0.8.0}/pyproject.toml +1 -1
- workledger_cli-0.8.0/scripts/sonar-pr-issues.py +168 -0
- workledger_cli-0.8.0/tests/test_ledger.py +440 -0
- workledger_cli-0.8.0/tests/test_sonar_pr_issues.py +128 -0
- {workledger_cli-0.6.1 → workledger_cli-0.8.0}/uv.lock +32 -32
- {workledger_cli-0.6.1 → workledger_cli-0.8.0}/workledger/cli/__init__.py +4 -0
- workledger_cli-0.8.0/workledger/cli/_commands/_store.py +292 -0
- workledger_cli-0.8.0/workledger/cli/_commands/append.py +66 -0
- {workledger_cli-0.6.1 → workledger_cli-0.8.0}/workledger/cli/_commands/learn.py +9 -0
- workledger_cli-0.8.0/workledger/cli/_commands/list.py +56 -0
- {workledger_cli-0.6.1 → workledger_cli-0.8.0}/workledger/cli/_commands/overview.py +2 -0
- {workledger_cli-0.6.1 → workledger_cli-0.8.0}/workledger/explain/catalog.py +37 -0
- {workledger_cli-0.6.1 → workledger_cli-0.8.0}/.claude/skills/agent-config/SKILL.md +0 -0
- {workledger_cli-0.6.1 → workledger_cli-0.8.0}/.claude/skills/agent-config/data/backend-fingerprints.yaml +0 -0
- {workledger_cli-0.6.1 → workledger_cli-0.8.0}/.claude/skills/agent-config/scripts/show.sh +0 -0
- {workledger_cli-0.6.1 → workledger_cli-0.8.0}/.claude/skills/assign-to-workforce/SKILL.md +0 -0
- {workledger_cli-0.6.1 → workledger_cli-0.8.0}/.claude/skills/assign-to-workforce/scripts/assign-to-workforce.sh +0 -0
- {workledger_cli-0.6.1 → workledger_cli-0.8.0}/.claude/skills/challenge/SKILL.md +0 -0
- {workledger_cli-0.6.1 → workledger_cli-0.8.0}/.claude/skills/cicd/SKILL.md +0 -0
- {workledger_cli-0.6.1 → workledger_cli-0.8.0}/.claude/skills/cicd/scripts/_resolve-nick.sh +0 -0
- {workledger_cli-0.6.1 → workledger_cli-0.8.0}/.claude/skills/cicd/scripts/portability-lint.sh +0 -0
- {workledger_cli-0.6.1 → workledger_cli-0.8.0}/.claude/skills/cicd/scripts/pr-reply.sh +0 -0
- {workledger_cli-0.6.1 → workledger_cli-0.8.0}/.claude/skills/cicd/scripts/pr-status.sh +0 -0
- {workledger_cli-0.6.1 → workledger_cli-0.8.0}/.claude/skills/cicd/scripts/workflow.sh +0 -0
- {workledger_cli-0.6.1 → workledger_cli-0.8.0}/.claude/skills/communicate/SKILL.md +0 -0
- {workledger_cli-0.6.1 → workledger_cli-0.8.0}/.claude/skills/communicate/scripts/fetch-issues.sh +0 -0
- {workledger_cli-0.6.1 → workledger_cli-0.8.0}/.claude/skills/communicate/scripts/mesh-message.sh +0 -0
- {workledger_cli-0.6.1 → workledger_cli-0.8.0}/.claude/skills/communicate/scripts/post-comment.sh +0 -0
- {workledger_cli-0.6.1 → workledger_cli-0.8.0}/.claude/skills/communicate/scripts/post-issue.sh +0 -0
- {workledger_cli-0.6.1 → workledger_cli-0.8.0}/.claude/skills/communicate/scripts/templates/skill-new-brief.md +0 -0
- {workledger_cli-0.6.1 → workledger_cli-0.8.0}/.claude/skills/communicate/scripts/templates/skill-update-brief.md +0 -0
- {workledger_cli-0.6.1 → workledger_cli-0.8.0}/.claude/skills/deviate/SKILL.md +0 -0
- {workledger_cli-0.6.1 → workledger_cli-0.8.0}/.claude/skills/doc-test-alignment/SKILL.md +0 -0
- {workledger_cli-0.6.1 → workledger_cli-0.8.0}/.claude/skills/doc-test-alignment/scripts/check.sh +0 -0
- {workledger_cli-0.6.1 → workledger_cli-0.8.0}/.claude/skills/pypi-maintainer/SKILL.md +0 -0
- {workledger_cli-0.6.1 → workledger_cli-0.8.0}/.claude/skills/pypi-maintainer/scripts/switch-source.sh +0 -0
- {workledger_cli-0.6.1 → workledger_cli-0.8.0}/.claude/skills/recall/SKILL.md +0 -0
- {workledger_cli-0.6.1 → workledger_cli-0.8.0}/.claude/skills/recall/scripts/recall.sh +0 -0
- {workledger_cli-0.6.1 → workledger_cli-0.8.0}/.claude/skills/remember/SKILL.md +0 -0
- {workledger_cli-0.6.1 → workledger_cli-0.8.0}/.claude/skills/remember/scripts/remember.sh +0 -0
- {workledger_cli-0.6.1 → workledger_cli-0.8.0}/.claude/skills/run-tests/SKILL.md +0 -0
- {workledger_cli-0.6.1 → workledger_cli-0.8.0}/.claude/skills/run-tests/scripts/test.sh +0 -0
- {workledger_cli-0.6.1 → workledger_cli-0.8.0}/.claude/skills/scope/SKILL.md +0 -0
- {workledger_cli-0.6.1 → workledger_cli-0.8.0}/.claude/skills/sonarclaude/SKILL.md +0 -0
- {workledger_cli-0.6.1 → workledger_cli-0.8.0}/.claude/skills/sonarclaude/scripts/sonar.sh +0 -0
- {workledger_cli-0.6.1 → workledger_cli-0.8.0}/.claude/skills/spec-to-plan/SKILL.md +0 -0
- {workledger_cli-0.6.1 → workledger_cli-0.8.0}/.claude/skills/spec-to-plan/scripts/spec-to-plan.sh +0 -0
- {workledger_cli-0.6.1 → workledger_cli-0.8.0}/.claude/skills/summarize-delivery/SKILL.md +0 -0
- {workledger_cli-0.6.1 → workledger_cli-0.8.0}/.claude/skills/think/SKILL.md +0 -0
- {workledger_cli-0.6.1 → workledger_cli-0.8.0}/.claude/skills/think/scripts/think.sh +0 -0
- {workledger_cli-0.6.1 → workledger_cli-0.8.0}/.claude/skills/version-bump/SKILL.md +0 -0
- {workledger_cli-0.6.1 → workledger_cli-0.8.0}/.claude/skills/version-bump/scripts/bump.py +0 -0
- {workledger_cli-0.6.1 → workledger_cli-0.8.0}/.claude/skills.local.yaml.example +0 -0
- {workledger_cli-0.6.1 → workledger_cli-0.8.0}/.flake8 +0 -0
- {workledger_cli-0.6.1 → workledger_cli-0.8.0}/.github/workflows/publish.yml +0 -0
- {workledger_cli-0.6.1 → workledger_cli-0.8.0}/.markdownlint-cli2.yaml +0 -0
- {workledger_cli-0.6.1 → workledger_cli-0.8.0}/AGENTS.colleague.md +0 -0
- {workledger_cli-0.6.1 → workledger_cli-0.8.0}/CLAUDE.md +0 -0
- {workledger_cli-0.6.1 → workledger_cli-0.8.0}/LICENSE +0 -0
- {workledger_cli-0.6.1 → workledger_cli-0.8.0}/culture.yaml +0 -0
- {workledger_cli-0.6.1 → workledger_cli-0.8.0}/docs/skill-sources.md +0 -0
- {workledger_cli-0.6.1 → workledger_cli-0.8.0}/sonar-project.properties +0 -0
- {workledger_cli-0.6.1 → workledger_cli-0.8.0}/tests/__init__.py +0 -0
- {workledger_cli-0.6.1 → workledger_cli-0.8.0}/tests/test_cli.py +0 -0
- {workledger_cli-0.6.1 → workledger_cli-0.8.0}/tests/test_cli_introspection.py +0 -0
- {workledger_cli-0.6.1 → workledger_cli-0.8.0}/workledger/__init__.py +0 -0
- {workledger_cli-0.6.1 → workledger_cli-0.8.0}/workledger/__main__.py +0 -0
- {workledger_cli-0.6.1 → workledger_cli-0.8.0}/workledger/cli/_commands/__init__.py +0 -0
- {workledger_cli-0.6.1 → workledger_cli-0.8.0}/workledger/cli/_commands/cli.py +0 -0
- {workledger_cli-0.6.1 → workledger_cli-0.8.0}/workledger/cli/_commands/doctor.py +0 -0
- {workledger_cli-0.6.1 → workledger_cli-0.8.0}/workledger/cli/_commands/explain.py +0 -0
- {workledger_cli-0.6.1 → workledger_cli-0.8.0}/workledger/cli/_commands/whoami.py +0 -0
- {workledger_cli-0.6.1 → workledger_cli-0.8.0}/workledger/cli/_errors.py +0 -0
- {workledger_cli-0.6.1 → workledger_cli-0.8.0}/workledger/cli/_output.py +0 -0
- {workledger_cli-0.6.1 → workledger_cli-0.8.0}/workledger/explain/__init__.py +0 -0
|
@@ -27,7 +27,7 @@ description: >
|
|
|
27
27
|
# ask-colleague — lean on colleague as a different mind
|
|
28
28
|
|
|
29
29
|
`ask-colleague` drives the **`colleague`** CLI so a Claude agent can hand a scoped
|
|
30
|
-
task to a *different* backend (default: a local vLLM `Qwen3.
|
|
30
|
+
task to a *different* backend (default: a local vLLM `Qwen3.8-27B` on
|
|
31
31
|
`:8001`). Colleague's model is **not** assumed to be stronger than you — its
|
|
32
32
|
value is **diversity**. A second, independent mind catches things the author's
|
|
33
33
|
mind glides past, which is why **review** is the headline verb. Treat it the way
|
|
@@ -101,7 +101,9 @@ else an install hint.
|
|
|
101
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
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
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). |
|
|
104
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. |
|
|
105
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. |
|
|
106
108
|
|
|
107
109
|
### Options
|
|
@@ -111,9 +113,13 @@ else an install hint.
|
|
|
111
113
|
| `--repo PATH` | Target repo (default: `.`). |
|
|
112
114
|
| `--base BRANCH` | Base for the `review` diff (default: `main`). |
|
|
113
115
|
| `--engine NAME` | Backend plugin (default: `$COLLEAGUE_ENGINE` or `vllm-openai`). |
|
|
114
|
-
| `--model NAME` | Model (default: `$COLLEAGUE_MODEL` or `
|
|
116
|
+
| `--model NAME` | Model (default: `$COLLEAGUE_MODEL` or `unsloth/Qwen3.8-27B-NVFP4`). |
|
|
115
117
|
| `--base-url URL` | OpenAI base URL (default: `$COLLEAGUE_BASE_URL` or `http://localhost:8001/v1`). |
|
|
116
|
-
| `--
|
|
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. |
|
|
117
123
|
| `--apply` | (`write`) apply the change in place (work branch) instead of previewing. |
|
|
118
124
|
| `--allow-dirty` | (`write`) allow running on a dirty tree (only matters with `--apply` / `--pr`). |
|
|
119
125
|
| `--pr` | (`write`) push + open a PR instead of a local work branch (implies `--apply`). |
|
|
@@ -155,6 +161,24 @@ keeping stdout valid JSON for a machine consumer while diagnostics stay on stder
|
|
|
155
161
|
(or `colleague clean`) to reap it — start with `--dry-run` to see what it would
|
|
156
162
|
remove. It only ever touches `colleague/*` refs and `.colleague/` artifacts.
|
|
157
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
|
+
|
|
158
182
|
## Piloting a flight
|
|
159
183
|
|
|
160
184
|
Dispatch a drive with `--watch` (on `explore`, `review`, or `write`) to make the
|
|
@@ -207,7 +231,7 @@ stop requests take effect on the next iteration rather than interrupting mid-ste
|
|
|
207
231
|
|
|
208
232
|
## Provenance
|
|
209
233
|
|
|
210
|
-
This is a **first-party** colleague skill — colleague is its origin.
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
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.
|
{workledger_cli-0.6.1 → workledger_cli-0.8.0}/.claude/skills/ask-colleague/prompts/explore.md
RENAMED
|
@@ -18,6 +18,16 @@ 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).
|
{workledger_cli-0.6.1 → workledger_cli-0.8.0}/.claude/skills/ask-colleague/prompts/review.md
RENAMED
|
@@ -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,6 +24,12 @@ 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).
|
|
@@ -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
21
|
and why.
|