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.
@@ -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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-dev-env",
3
- "version": "1.54.0",
3
+ "version": "1.55.1",
4
4
  "description": "Claude Code development standards — rules, hooks, agents, commands, and skills",
5
5
  "type": "module",
6
6
  "bin": {
@@ -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`, fable), per-loop
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'.
@@ -144,7 +144,6 @@ Spawn:
144
144
  Agent(
145
145
  subagent_type="clean-coder",
146
146
  name="bugfix-pr<N>-loop<L>",
147
- model="fable",
148
147
  mode="bypassPermissions",
149
148
  run_in_background=true,
150
149
  description="Bugfix PR <N> loop <L>",
@@ -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 fable
113
+ - `bugfix` — `clean-coder`, no model pin (the lead picks the model per task)
114
114
 
115
115
  ### Loop state block
116
116
 
@@ -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 test_step2_spawn_should_include_model_fable_parameter() -> None:
116
+ def test_step2_primary_spawn_should_not_pin_a_model() -> None:
117
117
  skill_text = _load_skill_text()
118
- assert 'model="fable"' in skill_text, (
119
- "Step 2 Agent() spawn template must include model=\"fable\" for the primary subagent"
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
 
@@ -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