@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` / `
|
|
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/
|
|
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-
|
|
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
|
@@ -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
|
|
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
|
|
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(
|
|
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,
|
|
175
|
+
return [markerTemplate, remainingTemplate, artifactPath];
|
|
173
176
|
}
|
|
174
177
|
|
|
175
178
|
/**
|