@dalzoubi/dev-agents-sync 2.2.9 → 3.0.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/README.md CHANGED
@@ -121,7 +121,7 @@ The CLI seeds a blank steering scaffold under `.claude/steering/` — `decisions
121
121
  | `force-push-guard.sh` | `PreToolUse` | `Bash` | **blocking** | Denies `git push` carrying `--force` / `-f` / `--force-with-lease` at `main` or `master` (by explicit refspec, or by the checked-out branch when the push names no ref). Force-pushing a feature branch, and a plain push to `main`, both pass. |
122
122
  | `spec-approval-gate.sh` | `PreToolUse` | `Edit\|Write` | **blocking** | Denies an edit that sets a spec to `Status: Approved` while an unresolved clarification marker — a bare bracketed `NEEDS CLARIFICATION` token — remains in prose. Occurrences inside code spans or fenced blocks are documentation and never match. |
123
123
  | `handoff-state-guard.sh` | `PreToolUse` | `Write` | **blocking** | Denies a write to `.claude/state/*.json` whose `handoff.status`, `from_agent`, or `to_agent` is outside the vocabulary `.claude/rules/handoff.md` defines. |
124
- | `spec-drift-warn.sh` | `PostToolUse` | `Edit\|Write` | warning | After an edit to `spec.md` / `plan.md` / `tasks.md` under `docs/specs/`, warns when that folder's `spec.md` has already moved past `Draft`. Draft folders stay silent. |
124
+ | `spec-drift-warn.sh` | `PostToolUse` | `Edit\|Write` | warning | After an edit to `spec.md` / `design.md` / `tasks.md` under `docs/specs/`, warns when that folder's `spec.md` has already moved past `Draft`. Draft folders stay silent. |
125
125
  | `pre-pr-preflight.sh` | `PreToolUse` | `Bash` | warning | On a command containing `gh pr create`, prints `reminder: run /deliver-preflight before opening a PR — it checks the branch is clean, rebased, and green`. Never blocks. |
126
126
 
127
127
  Hook scripts use the shell-comment marker form `# managed-by: dev-agents-sync vX.Y.Z`. Like other managed files, the CLI overwrites them on `update` and `check` reports drift (exit 1) if one is deleted or locally modified.
@@ -211,9 +211,9 @@ project's `CLAUDE.md` / `AGENTS.md` at the start of a session.
211
211
 
212
212
  | Agent | Command | Purpose |
213
213
  |---|---|---|
214
- | `define` | `/define` | Q&A orchestrator. Runs a one-question-at-a-time Q&A to turn a vague ask into spec/plan/tasks artifacts, then auto-runs `define-analyze`. Read-only on source code. |
214
+ | `define` | `/define` | Q&A orchestrator. Runs a one-question-at-a-time Q&A to turn a vague ask into spec/design/tasks artifacts, then auto-runs `define-analyze`. Read-only on source code. |
215
215
  | `define-spec` | `/define-spec` | Writes `spec.md` (requirements). |
216
- | `define-plan` | `/define-plan` | Writes `plan.md` (technical plan + authoritative working branch). |
216
+ | `define-design` | `/define-design` | Writes `design.md` (technical design + authoritative working branch). |
217
217
  | `define-tasks` | `/define-tasks` | Writes `tasks.md` (slices + estimates). |
218
218
  | `define-analyze` | `/define-analyze` | Readiness gate. Scans for unresolved `[NEEDS CLARIFICATION]` markers, checks structure and estimates, and emits a `PASS` or `BLOCKED` verdict. Read-only; reports only. |
219
219
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dalzoubi/dev-agents-sync",
3
- "version": "2.2.9",
3
+ "version": "3.0.1",
4
4
  "type": "module",
5
5
  "description": "CLI that syncs managed dev-agent prompts into consumer repos (.claude/ and/or .cursor/).",
6
6
  "license": "UNLICENSED",
@@ -150,7 +150,7 @@ function buildReleaseMap() {
150
150
 
151
151
  /**
152
152
  * Content sentinels extracted from the canonical skill: the progress-marker
153
- * template, the boundary header's remaining-work line, and the artifact path.
153
+ * template, the boundary header's remaining-work fragment, and the artifact path.
154
154
  * Extracted rather than transcribed so a reworded skill updates them for free
155
155
  * and a gutted skill cannot satisfy them.
156
156
  */
@@ -162,14 +162,17 @@ function deriveSentinels() {
162
162
  const raw = readFileSync(CANONICAL_SKILL, 'utf8');
163
163
 
164
164
  const markerTemplate = raw.match(/^▸ \[<slice-index>.*$/m)?.[0];
165
- const remainingLine = raw.match(/^\s*Remaining after this:.*$/m)?.[0]?.trim();
165
+ const remainingTemplate = raw.match(/<n> slices \+ <n> phases left/)?.[0];
166
166
  const artifactPath = raw.match(/docs\/specs\/<YYMMDD-slug>\/delivery-status\.md/)?.[0];
167
167
 
168
168
  assert.ok(markerTemplate, 'canonical skill must define the "▸ [<slice-index>…" marker template');
169
- assert.ok(remainingLine, 'canonical skill must define the "Remaining after this:" header line');
169
+ assert.ok(
170
+ remainingTemplate,
171
+ 'canonical skill must define the "<n> slices + <n> phases left" remaining-work template',
172
+ );
170
173
  assert.ok(artifactPath, 'canonical skill must name docs/specs/<YYMMDD-slug>/delivery-status.md');
171
174
 
172
- return [markerTemplate, remainingLine, artifactPath];
175
+ return [markerTemplate, remainingTemplate, artifactPath];
173
176
  }
174
177
 
175
178
  /**