@godv61/dsh-task-engine 0.3.0 → 0.4.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
@@ -8,6 +8,7 @@
8
8
  - **确认/验证门**:需求/方案未确认 → 进不了设计/开发;实施项没完 → 不能交付;高风险没验证证据 → 不能过评审。
9
9
  - **产物门**:每个阶段可声明必交产物 + 必填字段(需求说明 / 设计文档 / 评审记录…),字段没填全 → 不让流转。
10
10
  - **提交门禁**:到检查点才能提交,消息必须匹配 `message_pattern`,`manual` 策略永不自动提交。
11
+ - **文件范围**:任务声明 `files`(本任务该改的文件),提交碰了范围外的文件 → 工具和 git 钩子都拒绝。
11
12
 
12
13
  ## 目录
13
14
 
@@ -61,13 +62,15 @@ dsh plugin --profile <name> add .
61
62
 
62
63
  - `stages` / `start_stage` / `transitions`:阶段与流转图;每条边的 `requires` 用引擎原生 guard。
63
64
  - `artifacts`:每个阶段要交的产物(`stage` + `id` + `name` + `fields`)。给某条边加 `artifacts_present` guard,就能让「该阶段产物字段没填全」挡住流转。
64
- - `commit.policy`(`task|item|manual`)、`commit.message_pattern`/`message_hint`、`commit.checkpoints`。
65
+ - `commit.policy`(`task|item|manual`)、`commit.message_pattern`/`message_hint`、`commit.checkpoints`、`commit.file_scope`(是否强制"只提交任务内文件",默认 true)。
65
66
  - `high_risk_requires_verification`。
66
67
 
67
68
  原生 guard:`requirement_confirmation`、`solution_confirmation`、`todos_done`、`verified`、`review_passed`、`artifacts_present`。
68
69
 
69
70
  产物落库用 `dev_task`(operation=record, artifact=..., fields=...):字段不合法会拒绝,没填全会提示 still missing;被 `artifacts_present` 挡住的 `advance` 会报「guards unmet: artifacts_present」。
70
71
 
72
+ 文件范围用 `dev_task`(operation=scope, files=[...])声明,或建任务时 `create files=[...]` 直接给;提交时 `dev_task`(operation=commit, files=[...])也要带同一批文件。
73
+
71
74
  **配置写错会报错,不再悄悄退回默认**:结构校验(阶段重复/缺失、流转指向未知阶段、guard 拼错、坏正则等)逐条列出。用 `dev_task`(operation=config)随时查看「当前生效配置 + 哪里配错了」。
72
75
 
73
76
  ## git 提交门禁(防止绕过)
@@ -75,12 +78,12 @@ dsh plugin --profile <name> add .
75
78
  默认提交是「工具校验 + 模型执行 git」,模型理论上能绕过 `dev_task` 直接 `git commit`。装个机械钩子彻底封死:
76
79
 
77
80
  1. 用 `dev_task`(operation=install_hook)装进 `.git/hooks/commit-msg`(每个克隆本机装一次)。
78
- 2. 之后任何 `git commit`,钩子都用和引擎**同一套规则**检查:没有 dev_task 任务、阶段没到提交检查点、消息不匹配 `message_pattern`——一律拒绝并打印原因。
81
+ 2. 之后任何 `git commit`,钩子都用和引擎**同一套规则**检查:没有 dev_task 任务、阶段没到提交检查点、消息不匹配 `message_pattern`、提交文件不在任务 `files` 内——一律拒绝并打印原因。
79
82
 
80
83
  > 钩子读 `.dsh/eng.json` + `.dsh/task-*.json`,跨仓库零依赖、自包含。
81
84
 
82
- ## 已知待办(Phase 0 边界)
85
+ ## 状态与待办
83
86
 
84
- - **已验证**:strict `tsc` typecheck/build 零错误;`dsh plugin add` 装进独立实例 web profile、`--dump-config` 确认 `task-engine` 进组合树、可选 `eng` 预设可被 roster 发现;`validateWorkflow`(配置校验)、`artifacts_present`(产物门)与 `hooks/commit-msg`(机械提交门禁)已单测/冒烟——非法配置逐条报错、产物没填全挡流转、钩子该放放该拦拦。
85
- - **没跑**:真实模型会话端到端(模型实际调用 `dev_task` 走完整流程 + `install_hook` 装钩子),要 `DEEPSEEK_API_KEY`。
86
- - **后续档**:按「文件范围」拦截提交、网页图形化配置界面(Phase 1b)。
87
+ - **脚本级已验证**:strict `tsc` typecheck/build 零错误;`dsh plugin add` 装进独立实例、`--dump-config` 确认 `task-engine` 进组合树;`validateWorkflow`(配置校验)、`artifacts_present`(产物门)、`file_scope`(文件范围门)、`hooks/commit-msg`(机械门禁)单测/冒烟全过——非法配置逐条报错、产物没填全挡流转、范围外文件挡提交、钩子该放放该拦拦。
88
+ - **真实模型端到端(0.4.1)**:headless + NewAPI DeepSeek 下让真模型走 `dev_task` 全流程,抓到并修掉一个真实 bug——`readText`/`writeText` 调 `fs.resolve()` 漏了 `await`,把 `Promise<FsTarget>` 当 `target` 传给了读写方法,导致 create/record/advance/commit 全部写不了任务文件、读永远返回 undefined。0.4.1 修复(`await fs.resolve(relPath)`),并把 `task_id` 在 create 也必填的说明补进工具 schema 与技能。修复后走真实 `ctx.fs` 路径冒烟全绿。
89
+ - **后续档**:网页图形化配置界面(Phase 1b)。
package/defaults/eng.json CHANGED
@@ -17,7 +17,8 @@
17
17
  "policy": "task",
18
18
  "message_pattern": "^【(\\S+)】【(?:TASK|T\\d+)】.+",
19
19
  "message_hint": "【<module>】【TASK/T1】说明 —— 写结果,不写空泛动作",
20
- "checkpoints": ["deliver"]
20
+ "checkpoints": ["deliver"],
21
+ "file_scope": true
21
22
  },
22
23
  "high_risk_requires_verification": true
23
24
  }
package/hooks/commit-msg CHANGED
@@ -52,6 +52,7 @@ const DEFAULTS = {
52
52
  message_pattern: '^【(\\S+)】【(?:TASK|T\\d+)】.+',
53
53
  message_hint: '【<module>】【TASK/T1】说明',
54
54
  checkpoints: ['deliver'],
55
+ file_scope: true,
55
56
  },
56
57
  high_risk_requires_verification: true,
57
58
  }
@@ -126,6 +127,28 @@ function validateCommitMessage(message, config) {
126
127
  }
127
128
  }
128
129
 
130
+ // Mirrors engine.checkFileScope.
131
+ function checkFileScope(state, committing, config) {
132
+ if (!config.commit.file_scope) return { ok: true, outside: [], noScope: false }
133
+ const files = Array.isArray(state.files) ? state.files : []
134
+ if (files.length === 0) return { ok: false, outside: [], noScope: true }
135
+ const outside = committing.filter(file => !files.includes(file))
136
+ return outside.length === 0
137
+ ? { ok: true, outside: [], noScope: false }
138
+ : { ok: false, outside, noScope: false }
139
+ }
140
+
141
+ function stagedFiles() {
142
+ try {
143
+ return execSync('git diff --cached --name-only --diff-filter=ACMR', { encoding: 'utf8' })
144
+ .split('\n')
145
+ .map(line => line.trim())
146
+ .filter(Boolean)
147
+ } catch {
148
+ return []
149
+ }
150
+ }
151
+
129
152
  // --- gather project state ---
130
153
  const cwd = process.cwd()
131
154
  const configPath = path.join(cwd, '.dsh', 'eng.json')
@@ -200,6 +223,14 @@ if (!checkpoint.allowed) {
200
223
  refuse(checkpoint.reason + '(当前阶段: ' + state.stage + ')')
201
224
  }
202
225
 
226
+ const scope = checkFileScope(state, stagedFiles(), config)
227
+ if (!scope.ok) {
228
+ if (scope.noScope) {
229
+ refuse('任务没有声明文件范围(files 为空)——先用 dev_task operation=scope 声明本任务涉及的文件')
230
+ }
231
+ refuse('提交了任务范围之外的文件: ' + scope.outside.join(', '))
232
+ }
233
+
203
234
  const message = fs.readFileSync(messageFile, 'utf8')
204
235
  .split('\n')
205
236
  .filter(line => !line.startsWith('#'))
package/lib/engine.d.ts CHANGED
@@ -38,6 +38,8 @@ export interface CommitRule {
38
38
  message_hint: string;
39
39
  /** Stages at which a commit checkpoint sits (a commit is due before leaving these). */
40
40
  checkpoints: string[];
41
+ /** When true (default), a commit may only touch files listed in the task's `files`. */
42
+ file_scope: boolean;
41
43
  }
42
44
  export interface WorkflowConfig {
43
45
  stages: string[];
@@ -74,6 +76,8 @@ export interface TaskState {
74
76
  };
75
77
  /** Recorded artifacts (artifact id -> field -> value). */
76
78
  artifacts: Record<string, Record<string, string>>;
79
+ /** Repo-relative paths this task may touch (checked by the file-scope commit gate). */
80
+ files: string[];
77
81
  commits: {
78
82
  label: string;
79
83
  hash?: string;
@@ -126,6 +130,19 @@ export interface CommitCheckpoint {
126
130
  * hold, so the engine cannot be asked to commit before its own state is valid.
127
131
  */
128
132
  export declare function commitCheckpoint(state: TaskState, config: WorkflowConfig): CommitCheckpoint;
133
+ export interface FileScopeResult {
134
+ ok: boolean;
135
+ /** Paths outside the declared scope (present only when the scope is set but violated). */
136
+ outside: string[];
137
+ /** True when the task declared no `files` at all (file_scope on). */
138
+ noScope: boolean;
139
+ }
140
+ /**
141
+ * Check a commit's file set against the task's declared scope. No-op when
142
+ * `file_scope` is off; an empty declared scope refuses every commit (the task
143
+ * must first declare what it may touch).
144
+ */
145
+ export declare function checkFileScope(state: TaskState, committing: string[], config: WorkflowConfig): FileScopeResult;
129
146
  /** A fresh task pinned to the config's start stage. */
130
147
  export declare function newTask(input: {
131
148
  id: string;
package/lib/engine.js CHANGED
@@ -224,6 +224,21 @@ export function commitCheckpoint(state, config) {
224
224
  }
225
225
  return { allowed: false, reason: 'no commit is due at this stage under the current policy' };
226
226
  }
227
+ /**
228
+ * Check a commit's file set against the task's declared scope. No-op when
229
+ * `file_scope` is off; an empty declared scope refuses every commit (the task
230
+ * must first declare what it may touch).
231
+ */
232
+ export function checkFileScope(state, committing, config) {
233
+ if (!config.commit.file_scope)
234
+ return { ok: true, outside: [], noScope: false };
235
+ if (state.files.length === 0)
236
+ return { ok: false, outside: [], noScope: true };
237
+ const outside = committing.filter(file => !state.files.includes(file));
238
+ return outside.length === 0
239
+ ? { ok: true, outside: [], noScope: false }
240
+ : { ok: false, outside, noScope: false };
241
+ }
227
242
  /** A fresh task pinned to the config's start stage. */
228
243
  export function newTask(input, config) {
229
244
  return {
@@ -240,6 +255,7 @@ export function newTask(input, config) {
240
255
  verification: { passed: false, evidence: [] },
241
256
  review: { outcome: 'pending' },
242
257
  artifacts: {},
258
+ files: [],
243
259
  commits: [],
244
260
  };
245
261
  }
package/lib/engine.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"engine.js","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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"}
package/lib/index.js CHANGED
@@ -7,7 +7,7 @@
7
7
  import { readFileSync, readdirSync } from 'node:fs';
8
8
  import { fileURLToPath } from 'node:url';
9
9
  import { defineTool } from '@deepseek-ai/dsh-tools';
10
- import { assertAdvance, commitCheckpoint, legalTargets, loadWorkflow, newTask, validateCommitMessage, validateWorkflow, } from "./engine.js";
10
+ import { assertAdvance, checkFileScope, commitCheckpoint, legalTargets, loadWorkflow, newTask, validateCommitMessage, validateWorkflow, } from "./engine.js";
11
11
  export const name = 'task-engine';
12
12
  export const inject = ['tools', 'fs'];
13
13
  const DEFAULTS = JSON.parse(readFileSync(fileURLToPath(new URL('../defaults/eng.json', import.meta.url)), 'utf8'));
@@ -17,14 +17,16 @@ const HOOK_TEMPLATE = readFileSync(fileURLToPath(new URL('../hooks/commit-msg',
17
17
  const HOOK_PACKAGE_JSON = '{\n "type": "commonjs"\n}\n';
18
18
  async function readText(fs, relPath) {
19
19
  try {
20
- return await fs.readText(fs.resolve(relPath));
20
+ const target = await fs.resolve(relPath);
21
+ return await fs.readText(target);
21
22
  }
22
23
  catch {
23
24
  return undefined;
24
25
  }
25
26
  }
26
27
  async function writeText(fs, relPath, content) {
27
- await fs.writeText(fs.resolve(relPath), content);
28
+ const target = await fs.resolve(relPath);
29
+ await fs.writeText(target, content);
28
30
  }
29
31
  function sanitize(id) {
30
32
  return id.replace(/[^0-9a-zA-Z_-]/g, '-');
@@ -68,14 +70,15 @@ async function loadTask(fs, id) {
68
70
  if (raw === undefined)
69
71
  throw new Error(`no task "${id}" under ${taskPath(id)}`);
70
72
  const state = JSON.parse(raw);
71
- // Tasks recorded before the artifacts feature lack the field; treat them as empty.
73
+ // Tasks recorded before these features lack the fields; treat them as empty.
72
74
  state.artifacts = state.artifacts ?? {};
75
+ state.files = state.files ?? [];
73
76
  return state;
74
77
  }
75
78
  async function writeTask(fs, state) {
76
79
  await writeText(fs, taskPath(state.id), JSON.stringify(state, null, 2));
77
80
  }
78
- const OPERATIONS = ['status', 'create', 'confirm', 'record', 'advance', 'verify', 'review', 'commit', 'config', 'install_hook'];
81
+ const OPERATIONS = ['status', 'create', 'confirm', 'record', 'scope', 'advance', 'verify', 'review', 'commit', 'config', 'install_hook'];
79
82
  const TOOL_DESCRIPTION = 'Own the engineering delivery workflow as hard state. Read or create the task record, record a ' +
80
83
  'confirmation or a stage artifact, advance one stage (rejected unless every configured guard already ' +
81
84
  'holds, including the stage artifacts), record verification or review, and gate a commit on ' +
@@ -87,7 +90,7 @@ export function apply(ctx) {
87
90
  description: TOOL_DESCRIPTION,
88
91
  parameters: {
89
92
  operation: { type: 'string', enum: [...OPERATIONS], required: true, description: 'Which task-record action to perform.' },
90
- task_id: { type: 'string', description: 'Task id; required except for create.' },
93
+ task_id: { type: 'string', description: 'Task id (short stable id like GREET-001); required on create and every other operation.' },
91
94
  branch: { type: 'string', description: 'Current git branch (recorded on create).' },
92
95
  title: { type: 'string', description: 'Task title (create).' },
93
96
  work_size: { type: 'string', enum: ['tiny', 'standard', 'complex'], description: 'Workload tier (create).' },
@@ -116,6 +119,11 @@ export function apply(ctx) {
116
119
  description: 'Field values for the artifact (record).',
117
120
  additionalProperties: true,
118
121
  },
122
+ files: {
123
+ type: 'array',
124
+ items: { type: 'string' },
125
+ description: 'Repo-relative paths in scope (create/scope) or being committed (commit).',
126
+ },
119
127
  message: { type: 'string', description: 'Commit summary to validate (commit).' },
120
128
  hash: { type: 'string', description: 'Commit hash to record after the git commit (commit).' },
121
129
  },
@@ -157,6 +165,7 @@ export function apply(ctx) {
157
165
  risk_level: a.risk_level ?? 'standard',
158
166
  }, workflow);
159
167
  state.items = a.items ?? [];
168
+ state.files = a.files ?? [];
160
169
  await writeTask(ctx.fs, state);
161
170
  return `created ${state.id} at stage ${state.stage}; legal next: ${legalTargets(state.stage, workflow).join(', ') || 'none'}`;
162
171
  }
@@ -175,6 +184,7 @@ export function apply(ctx) {
175
184
  verification: state.verification,
176
185
  review: state.review,
177
186
  artifacts: state.artifacts,
187
+ files: state.files,
178
188
  legal_next: legalTargets(state.stage, workflow),
179
189
  commit: commitCheckpoint(state, workflow),
180
190
  }, null, 2);
@@ -183,13 +193,24 @@ export function apply(ctx) {
183
193
  const checkpoint = commitCheckpoint(state, workflow);
184
194
  if (!checkpoint.allowed)
185
195
  throw new Error(checkpoint.reason ?? 'no commit is due');
196
+ if (workflow.commit.file_scope) {
197
+ if (!a.files || a.files.length === 0) {
198
+ throw new Error('commit requires files (the repo-relative paths being committed) when file_scope is on');
199
+ }
200
+ const scope = checkFileScope(state, a.files, workflow);
201
+ if (!scope.ok) {
202
+ throw new Error(scope.noScope
203
+ ? 'task declares no file scope; record files first (create files=... or scope files=...)'
204
+ : `commit touches files outside the task scope: ${scope.outside.join(', ')}`);
205
+ }
206
+ }
186
207
  const message = validateCommitMessage(a.message ?? '', workflow);
187
208
  if (!message.ok)
188
209
  throw new Error(message.errors.join('; '));
189
210
  if (a.hash)
190
211
  state.commits.push({ label: checkpoint.label, hash: a.hash });
191
212
  await writeTask(ctx.fs, state);
192
- return `commit approved (${checkpoint.label ?? ''}) — git add <task files>; git commit -m "${a.message ?? ''}"`;
213
+ return `commit approved (${checkpoint.label ?? ''}) — git add ${(a.files ?? []).join(' ')}; git commit -m "${a.message ?? ''}"`;
193
214
  }
194
215
  let note;
195
216
  switch (a.operation) {
@@ -222,6 +243,10 @@ export function apply(ctx) {
222
243
  : `recorded ${def.name} ("${def.id}"); still missing: ${missing.join(', ')}`;
223
244
  break;
224
245
  }
246
+ case 'scope':
247
+ state.files = a.files ?? [];
248
+ note = `file scope set to ${state.files.length} files${state.files.length > 0 ? ': ' + state.files.join(', ') : ' (empty — commits are blocked until files are declared)'}`;
249
+ break;
225
250
  case 'advance': {
226
251
  const result = assertAdvance(state, a.target_stage ?? '', workflow);
227
252
  if (!result.ok)
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@godv61/dsh-task-engine",
3
- "version": "0.3.0",
3
+ "version": "0.4.1",
4
4
  "description": "Config-driven engineering delivery engine for DeepSeek Harness: a `dev_task` tool that hard-gates workflow stage transitions and commit scope/message, plus bundled skills and an opt-in preset.",
5
5
  "type": "module",
6
6
  "main": "lib/index.js",
@@ -10,15 +10,16 @@ whenToUse: 开始任何开发、改 bug、加功能、代码评审或提交任
10
10
 
11
11
  ## 入口
12
12
 
13
- 1. 先 `dev_task`(operation=status)读当前分支任务;没有任务则(operation=create)建立任务并停在起始阶段。
13
+ 1. 先 `dev_task`(operation=status)读当前分支任务;没有任务则 `dev_task`(operation=create,task_id=短 ID 如 GREET-001,title=任务标题,branch=当前 git 分支,files=本任务涉及的文件列表)建立任务并停在起始阶段。文件范围一时不清就先 `operation=create` 建任务,摸清后用 `operation=scope, files=...` 补齐。
14
14
  2. 每阶段:完成本阶段产物后:
15
15
  - 若本阶段配置了必交产物(`dev_task` operation=status 会列出 still missing 的字段),先用 `dev_task`(operation=record, artifact=..., fields=...)逐字段记录;字段不填全,流转会被 `artifacts_present` guard 拒绝。
16
16
  - 再用 `dev_task`(operation=advance)流转到目标阶段;被拒绝说明 guard 未满足(确认没过 / 产物字段没填全 / 实施项没完 / 高风险没验证 / 评审没过),先补齐再重试,不得绕过。
17
- 3. 提交前用 `dev_task`(operation=commit)校验阶段、提交范围与消息格式;拿到 approved 消息后再执行 `git add <任务内文件>; git commit -m "<approved>"`,并把 commit hash 通过 `dev_task`(operation=commit, hash=...)回写。
17
+ 3. 提交前用 `dev_task`(operation=commit, files=<要提交的文件列表>, message=...)校验阶段、文件范围与消息格式;拿到 approved 后再 `git add <同一批文件>; git commit -m "<approved>"`,并把 commit hash 通过 `dev_task`(operation=commit, hash=...)回写。落在任务 `files` 之外的文件一律不能提交。
18
18
 
19
19
  ## 硬规则
20
20
 
21
21
  - 需求、Bug、继续开发、验证、评审、提交请求一律经 `dev_task` 状态机推进,不自行绕过。
22
22
  - 阶段必交产物(如需求说明、设计文档、评审记录)必须用 `dev_task` operation=record 落库,字段不能留空、不能装样子。
23
+ - 先声明文件范围:任务 `files` 只放本任务真正要改的文件;提交的文件必须全在 `files` 内,范围外的文件(哪怕是"顺手改一下")也必须另开任务。
23
24
  - 只做任务范围内的本地提交;绝不 push、合并、创建 PR、执行数据库、操作 Jenkins、部署或发布。
24
25
  - `dev_task` 的拒绝是硬事实:修正前置条件,而不是换一种方式绕过。