claude-dev-env 1.54.0 → 1.55.1
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.
- package/agents/clean-coder.md +0 -1
- package/package.json +1 -1
- package/skills/bugteam/SKILL.md +1 -1
- package/skills/bugteam/reference/audit-and-teammates.md +0 -1
- package/skills/bugteam/reference/team-setup.md +1 -1
- package/skills/qbug/SKILL.md +0 -1
- package/skills/qbug/test_qbug_skill_audit_schema.py +9 -3
- package/skills/update/SKILL.md +11 -0
package/agents/clean-coder.md
CHANGED
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
name: clean-coder
|
|
3
3
|
description: "Use PROACTIVELY for ALL code generation — feature development, bug fixes, refactoring, hook creation, automation scripts, and any task that produces code. Internalizes CODE_RULES.md and the 8-dimension readability standard so thoroughly that /check finds zero issues. The definitive code-writing agent."
|
|
4
4
|
tools: Read, Write, Edit, Bash, Grep, Glob, Task, Skill
|
|
5
|
-
model: fable
|
|
6
5
|
color: green
|
|
7
6
|
---
|
|
8
7
|
|
package/package.json
CHANGED
package/skills/bugteam/SKILL.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: bugteam
|
|
3
3
|
description: >-
|
|
4
4
|
Open pull request audit–fix until convergence: CODE_RULES gate, clean-room
|
|
5
|
-
audit (`code-quality-agent`, opus) and fix (`clean-coder
|
|
5
|
+
audit (`code-quality-agent`, opus) and fix (`clean-coder`), per-loop
|
|
6
6
|
GitHub reviews, 20-audit cap; grant then revoke `.claude/**`. Spawns
|
|
7
7
|
background subagents (`Agent(..., run_in_background=true)`). Triggers: '/bugteam', 'run
|
|
8
8
|
the bug team', 'auto-fix the PR until clean', 'loop audit and fix'.
|
|
@@ -110,7 +110,7 @@ truth.
|
|
|
110
110
|
|
|
111
111
|
- **Subagent roles (spawned per loop, not at invocation start):**
|
|
112
112
|
- `bugfind` — `code-quality-agent`, model opus (Opus 4.7 at default xhigh effort)
|
|
113
|
-
- `bugfix` — `clean-coder`, model
|
|
113
|
+
- `bugfix` — `clean-coder`, no model pin (the lead picks the model per task)
|
|
114
114
|
|
|
115
115
|
### Loop state block
|
|
116
116
|
|
package/skills/qbug/SKILL.md
CHANGED
|
@@ -107,7 +107,6 @@ Then call `Agent` twice in the same message — the primary clean-coder and the
|
|
|
107
107
|
```
|
|
108
108
|
Agent(
|
|
109
109
|
subagent_type="clean-coder",
|
|
110
|
-
model="fable",
|
|
111
110
|
description="qbug primary audit/fix cycle for PR <number>",
|
|
112
111
|
prompt="<filled cycle XML; see § Subagent cycle prompt>",
|
|
113
112
|
run_in_background=False
|
|
@@ -113,10 +113,16 @@ def test_contract_should_require_files_opened_in_proof_of_absence() -> None:
|
|
|
113
113
|
)
|
|
114
114
|
|
|
115
115
|
|
|
116
|
-
def
|
|
116
|
+
def test_step2_primary_spawn_should_not_pin_a_model() -> None:
|
|
117
117
|
skill_text = _load_skill_text()
|
|
118
|
-
|
|
119
|
-
|
|
118
|
+
primary_spawn_start = skill_text.find('subagent_type="clean-coder"')
|
|
119
|
+
assert primary_spawn_start != -1, (
|
|
120
|
+
"Step 2 Agent() spawn template must spawn the clean-coder primary subagent"
|
|
121
|
+
)
|
|
122
|
+
primary_spawn_end = skill_text.find(")", primary_spawn_start)
|
|
123
|
+
primary_spawn_block = skill_text[primary_spawn_start:primary_spawn_end]
|
|
124
|
+
assert "model=" not in primary_spawn_block, (
|
|
125
|
+
"Primary clean-coder spawn must omit model= so the lead picks the spawn effort"
|
|
120
126
|
)
|
|
121
127
|
|
|
122
128
|
|
package/skills/update/SKILL.md
CHANGED
|
@@ -111,6 +111,16 @@ git -C "<path>" log --oneline -1 main
|
|
|
111
111
|
|
|
112
112
|
Report the move as `main <old> → <new>`, or "already up to date" when nothing changed.
|
|
113
113
|
|
|
114
|
+
Then report what the checkout runs — a move of the `main` ref says nothing about the files on disk:
|
|
115
|
+
|
|
116
|
+
```
|
|
117
|
+
git -C "<path>" branch --show-current
|
|
118
|
+
git -C "<path>" status --short
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
- **Checked-out branch.** When a branch other than `main` is checked out, say so plainly: the fast-forward moves a ref only and no file on disk changes. Code that runs from this checkout comes from the checked-out branch, not from `main`.
|
|
122
|
+
- **Dirty tracked files.** List every modified tracked file from `status --short`. Uncommitted edits sit on top of the checked-out branch and are what runs — flag them, because a ref update can neither see nor repair them. When the tree is clean, report "working tree clean".
|
|
123
|
+
|
|
114
124
|
## Constraints (non-negotiable)
|
|
115
125
|
|
|
116
126
|
- **Fast-forward only.** If the remote's `main` is not a descendant of local `main`, stop. Never `--force`, never `branch -f`, never a merge commit. Divergence is a job for `/rebase`.
|
|
@@ -125,6 +135,7 @@ Report the move as `main <old> → <new>`, or "already up to date" when nothing
|
|
|
125
135
|
- `<remote>/main` only moves after an explicit `git fetch`. Fetch inside every run; never compare against a remote-tracking ref left over from an earlier fetch.
|
|
126
136
|
- `origin` is not always the source of truth. When a fork is `origin` and the canonical repo is another remote (often `upstream`), the confirmed remote should be the canonical one, not whichever is named `origin`.
|
|
127
137
|
- Quote the path on every command — `git -C "<path>"` — so paths with spaces or a NAS drive letter survive.
|
|
138
|
+
- "Up to date" describes the `main` ref, not the running code. A checkout deployed on a feature branch, or carrying uncommitted edits, runs that branch plus those edits regardless of where `main` points. Phase 4's checkout-state report exists so the operator sees that gap on every run.
|
|
128
139
|
|
|
129
140
|
## What this skill does NOT do
|
|
130
141
|
|