@godv61/dsh-task-engine 0.26.1 → 0.27.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/.acceptance.mjs +11 -6
- package/.assessment-batch1.mjs +14 -11
- package/.codex-project-test.mjs +80 -0
- package/.enforce-test.mjs +12 -17
- package/.evidence-test.mjs +8 -8
- package/.filter-test.mjs +6 -8
- package/.freeze-test.mjs +44 -40
- package/.p0-test.mjs +21 -24
- package/.revision-test.mjs +16 -16
- package/.roundtrip-test.mjs +247 -120
- package/.workflow-test.mjs +119 -102
- package/README.md +14 -12
- package/defaults/eng.json +1 -97
- package/docs/CHANGELOG.md +33 -19
- package/docs/configuration.md +22 -21
- package/docs/development.md +1 -1
- package/docs/faq.md +5 -5
- package/docs/manual.html +41 -59
- package/docs/resource-install.md +5 -3
- package/docs/roadmap.md +2 -2
- package/hooks/commit-msg +4 -33
- package/lib/client.js +332 -226
- package/lib/client.js.map +3 -3
- package/lib/controller.d.ts +19 -3
- package/lib/controller.js +132 -28
- package/lib/controller.js.map +1 -1
- package/lib/dev-task.js +130 -79
- package/lib/dev-task.js.map +1 -1
- package/lib/engine.d.ts +10 -13
- package/lib/engine.js +3 -3
- package/lib/engine.js.map +1 -1
- package/lib/shipped-skills.d.ts +2 -4
- package/lib/shipped-skills.js +2 -4
- package/lib/shipped-skills.js.map +1 -1
- package/lib/skill-audit.d.ts +4 -4
- package/lib/skill-audit.js +19 -14
- package/lib/skill-audit.js.map +1 -1
- package/lib/user-skill-profiles.d.ts +7 -0
- package/lib/user-skill-profiles.js +69 -0
- package/lib/user-skill-profiles.js.map +1 -0
- package/lib/workflows.d.ts +24 -4
- package/lib/workflows.js +57 -41
- package/lib/workflows.js.map +1 -1
- package/package.json +4 -4
- package/preset/agent.cordis.yml +3 -3
- package/preset/persona.md +2 -2
- package/scripts/verify-package.mjs +3 -1
- package/skills/eng-delivery/SKILL.md +17 -17
- package/rules/coding-conventions.md +0 -7
- package/rules/commit-conventions.md +0 -6
- package/rules/security-redlines.md +0 -6
- package/skills/code-commit/SKILL.md +0 -13
- package/skills/code-implement/SKILL.md +0 -24
- package/skills/code-review/SKILL.md +0 -13
- package/skills/code-verify/SKILL.md +0 -20
- package/skills/requirement-analysis/SKILL.md +0 -16
- package/skills/solution-design/SKILL.md +0 -19
package/lib/skill-audit.js
CHANGED
|
@@ -1,17 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
/** Return successful loader call ids in the calling session, including resumed history. */
|
|
1
|
+
/** Return successful loader call ids in the calling session, including task-scoped Codex project loads. */
|
|
3
2
|
export function loadedSkills(session) {
|
|
4
3
|
const calls = new Map();
|
|
5
4
|
const loaded = new Map();
|
|
6
5
|
for (const event of session?.snapshotEvents?.() ?? []) {
|
|
7
6
|
if (event.type === 'tool/call') {
|
|
8
7
|
const data = event.data;
|
|
9
|
-
if (data.name !== 'skill' || !data.callId)
|
|
8
|
+
if ((data.name !== 'skill' && data.name !== 'dev_task') || !data.callId)
|
|
10
9
|
continue;
|
|
11
10
|
try {
|
|
12
11
|
const args = JSON.parse(data.arguments ?? '{}');
|
|
13
|
-
if (typeof args.name === 'string')
|
|
12
|
+
if (data.name === 'skill' && typeof args.name === 'string')
|
|
14
13
|
calls.set(data.callId, args.name);
|
|
14
|
+
if (data.name === 'dev_task' && args.operation === 'load_skill' && typeof args.skill_name === 'string'
|
|
15
|
+
&& args.skill_name.startsWith('codex-project:') && typeof args.task_id === 'string')
|
|
16
|
+
calls.set(data.callId, `${args.task_id}#${args.skill_name}`);
|
|
15
17
|
}
|
|
16
18
|
catch { /* Failed or malformed loader requests are not loading evidence. */ }
|
|
17
19
|
}
|
|
@@ -42,18 +44,18 @@ export function obligationStages(state, workflow) {
|
|
|
42
44
|
* A binding may declare how it proves execution. A requirement or design skill
|
|
43
45
|
* produces a document, and demanding a "real validation command" from it forced an
|
|
44
46
|
* irrelevant command to satisfy a gate — the evidence existed, just in another
|
|
45
|
-
* form.
|
|
46
|
-
*
|
|
47
|
+
* form. An undeclared evidence type defaults to a command receipt for every
|
|
48
|
+
* skill, regardless of its name.
|
|
47
49
|
* @param name - the bound skill's name.
|
|
48
50
|
* @param evidence - the declared evidence kind, if the binding named one.
|
|
49
51
|
* @returns true when a command receipt is what this binding owes.
|
|
50
52
|
*/
|
|
51
|
-
export function needsSkillReceipt(
|
|
53
|
+
export function needsSkillReceipt(_name, evidence) {
|
|
52
54
|
if (evidence === 'none' || evidence === 'artifact' || evidence === 'review' || evidence === 'manual')
|
|
53
55
|
return false;
|
|
54
56
|
if (evidence === 'command')
|
|
55
57
|
return true;
|
|
56
|
-
return
|
|
58
|
+
return true;
|
|
57
59
|
}
|
|
58
60
|
/**
|
|
59
61
|
* Whether a skill's declared evidence is present for this stage.
|
|
@@ -102,12 +104,15 @@ export function skillBlockers(state, workflow, session) {
|
|
|
102
104
|
return [];
|
|
103
105
|
const loaded = loadedSkills(session);
|
|
104
106
|
return obligationStages(state, workflow).flatMap(stage => (workflow.stage_bindings?.[stage]?.skills ?? []).flatMap(entry => {
|
|
105
|
-
//
|
|
106
|
-
//
|
|
107
|
-
//
|
|
108
|
-
const name = entry.skill.name;
|
|
109
|
-
|
|
110
|
-
|
|
107
|
+
// The host skill tool uses a bare name. A Codex project Skill instead uses
|
|
108
|
+
// a task-scoped, source-qualified dev_task load so a same-named Skill or a
|
|
109
|
+
// load for another task cannot satisfy this binding.
|
|
110
|
+
const name = entry.skill.source === 'codex-project' ? `codex-project:${entry.skill.name}` : entry.skill.name;
|
|
111
|
+
const loadKey = entry.skill.source === 'codex-project' ? `${state.id}#${name}` : name;
|
|
112
|
+
if (!loaded.has(loadKey))
|
|
113
|
+
return [entry.skill.source === 'codex-project'
|
|
114
|
+
? `${stage}: load skill "${name}" with dev_task operation=load_skill before leaving this stage`
|
|
115
|
+
: `${stage}: load skill "${name}" with the skill tool before leaving this stage`];
|
|
111
116
|
// A declared non-command kind is checked against its own record rather than
|
|
112
117
|
// falling through to the command requirement, which would demand evidence of a
|
|
113
118
|
// kind this binding never asked for.
|
package/lib/skill-audit.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-audit.js","sourceRoot":"","sources":["../src/skill-audit.ts"],"names":[],"mappings":"AAQA,
|
|
1
|
+
{"version":3,"file":"skill-audit.js","sourceRoot":"","sources":["../src/skill-audit.ts"],"names":[],"mappings":"AAQA,2GAA2G;AAC3G,MAAM,UAAU,YAAY,CAAC,OAAsB;IACjD,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAA;IACvC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAA;IACxC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,cAAc,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC;QACtD,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAC/B,MAAM,IAAI,GAAG,KAAK,CAAC,IAA8D,CAAA;YACjF,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM;gBAAE,SAAQ;YACjF,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAqF,CAAA;gBACnI,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ;oBAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;gBAC7F,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,SAAS,KAAK,YAAY,IAAI,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ;uBACjG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,gBAAgB,CAAC,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ;oBACnF,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC,CAAA;YAChE,CAAC;YAAC,MAAM,CAAC,CAAC,mEAAmE,CAAC,CAAC;QACjF,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;YACxC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAgH,CAAA;YACnI,IAAI,IAAI,CAAC,KAAK;gBAAE,SAAQ;YACxB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE,OAAO,IAAI,EAAE,EAAE,CAAC;gBAChD,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,IAAI,KAAK,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU;oBAAE,SAAQ;gBAChF,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;gBACxC,IAAI,IAAI;oBAAE,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,UAAU,CAAC,CAAA;YAC9C,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,gGAAgG;AAChG,MAAM,UAAU,gBAAgB,CAAC,KAAgB,EAAE,QAAwB;IACzE,MAAM,eAAe,GAAG,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,KAAK;WAC1E,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;IAC3E,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,eAAe,CAAC,CAAC,CAAC,CAAA;AACxD,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAa,EAAE,QAAuB;IACtE,IAAI,QAAQ,KAAK,MAAM,IAAI,QAAQ,KAAK,UAAU,IAAI,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IAClH,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,IAAI,CAAA;IACvC,OAAO,IAAI,CAAA;AACb,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,SAAS,gBAAgB,CACvB,IAAkB,EAClB,KAAgB,EAChB,KAAa,EACb,IAAY,EACZ,QAAwB;IAExB,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,MAAM;YACT,OAAO,EAAE,CAAA;QACX,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,8EAA8E;YAC9E,0EAA0E;YAC1E,wCAAwC;YACxC,MAAM,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,KAAK,KAAK,CAAC,CAAA;YAChF,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,CAAC,GAAG,KAAK,MAAM,IAAI,yEAAyE,CAAC,CAAA;YAC/H,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,IAAI,EAAE,CAAA;YACtC,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAA;YAC/H,OAAO,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,MAAM,IAAI,yEAAyE,CAAC,CAAA;QACrH,CAAC;QACD,KAAK,QAAQ;YACX,OAAO,KAAK,CAAC,MAAM,EAAE,OAAO,KAAK,MAAM;gBACrC,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,CAAC,GAAG,KAAK,MAAM,IAAI,+DAA+D,CAAC,CAAA;QACzF,KAAK,QAAQ;YACX,0EAA0E;YAC1E,+EAA+E;YAC/E,OAAO,KAAK,CAAC,aAAa,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,QAAQ,KAAK,IAAI;gBAC5D,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,CAAC,GAAG,KAAK,MAAM,IAAI,qEAAqE,CAAC,CAAA;QAC/F,KAAK,SAAS;YACZ,OAAO,EAAE,CAAA;IACb,CAAC;AACH,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAgB,EAAE,QAAwB,EAAE,OAAsB;IAC9F,IAAI,KAAK,CAAC,iBAAiB,KAAK,CAAC;QAAE,OAAO,EAAE,CAAA;IAC5C,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,CAAA;IACpC,OAAO,gBAAgB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QACzH,2EAA2E;QAC3E,2EAA2E;QAC3E,qDAAqD;QACrD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,eAAe,CAAC,CAAC,CAAC,iBAAiB,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAA;QAC5G,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,eAAe,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;QACrF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC;YAAE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,eAAe;oBACtE,CAAC,CAAC,GAAG,KAAK,iBAAiB,IAAI,gEAAgE;oBAC/F,CAAC,CAAC,GAAG,KAAK,iBAAiB,IAAI,iDAAiD,CAAC,CAAA;QACnF,4EAA4E;QAC5E,+EAA+E;QAC/E,qCAAqC;QACrC,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YACjE,OAAO,gBAAgB,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAA;QACvE,CAAC;QACD,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC;YAAE,OAAO,EAAE,CAAA;QACvD,MAAM,MAAM,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,CAAA;QACnD,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS;eACjH,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,YAAY,EAAE,CAAC;YAC5E,OAAO,CAAC,GAAG,KAAK,cAAc,IAAI,iGAAiG,CAAC,CAAA;QACtI,CAAC;QACD,OAAO,EAAE,CAAA;IACX,CAAC,CAAC,CAAC,CAAA;AACL,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type SkillProfile } from './engine.ts';
|
|
2
|
+
import type { ProjectConfig } from './workflows.ts';
|
|
3
|
+
export declare function userSkillProfilePath(name: string): string;
|
|
4
|
+
/** Global user profiles override old copies in each project's eng.json. */
|
|
5
|
+
export declare function withUserSkillProfiles(project: ProjectConfig): ProjectConfig;
|
|
6
|
+
/** Persist a user skill's method beside its body, never in a particular project. */
|
|
7
|
+
export declare function saveUserSkillProfile(name: string, profile: SkillProfile): string;
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/** User-scoped Skill -> Rule ownership shared by every workspace and session. */
|
|
2
|
+
import { existsSync, readFileSync, readdirSync, renameSync, rmSync, writeFileSync } from 'node:fs';
|
|
3
|
+
import { homedir } from 'node:os';
|
|
4
|
+
import { join } from 'node:path';
|
|
5
|
+
import { formatResourceRef } from "./engine.js";
|
|
6
|
+
const NAME = /^[a-z0-9]+(?:-[a-z0-9]+)*$/u;
|
|
7
|
+
const EVIDENCE = new Set(['command', 'artifact', 'review', 'manual', 'none']);
|
|
8
|
+
const SOURCES = new Set(['bundled', 'project', 'user']);
|
|
9
|
+
function home() { return process.env.DSH_HOME ?? join(homedir(), '.dsh'); }
|
|
10
|
+
export function userSkillProfilePath(name) {
|
|
11
|
+
if (!NAME.test(name))
|
|
12
|
+
throw new Error(`invalid user skill name: ${name}`);
|
|
13
|
+
return join(home(), 'skills', name, 'profile.json');
|
|
14
|
+
}
|
|
15
|
+
function isRef(value) {
|
|
16
|
+
if (value === null || typeof value !== 'object')
|
|
17
|
+
return false;
|
|
18
|
+
const ref = value;
|
|
19
|
+
return typeof ref.source === 'string' && SOURCES.has(ref.source)
|
|
20
|
+
&& typeof ref.name === 'string' && NAME.test(ref.name);
|
|
21
|
+
}
|
|
22
|
+
function parseProfile(raw, name) {
|
|
23
|
+
const value = JSON.parse(raw);
|
|
24
|
+
if (!Array.isArray(value.rules) || !value.rules.every(isRef)
|
|
25
|
+
|| (value.evidence !== undefined && !EVIDENCE.has(value.evidence))) {
|
|
26
|
+
throw new Error(`invalid user skill profile: ${name}`);
|
|
27
|
+
}
|
|
28
|
+
return { rules: value.rules, ...(value.evidence !== undefined ? { evidence: value.evidence } : {}) };
|
|
29
|
+
}
|
|
30
|
+
/** Global user profiles override old copies in each project's eng.json. */
|
|
31
|
+
export function withUserSkillProfiles(project) {
|
|
32
|
+
const root = join(home(), 'skills');
|
|
33
|
+
if (!existsSync(root))
|
|
34
|
+
return project;
|
|
35
|
+
const profiles = { ...project.skill_profiles };
|
|
36
|
+
for (const entry of readdirSync(root, { withFileTypes: true })) {
|
|
37
|
+
if (!entry.isDirectory() || !NAME.test(entry.name))
|
|
38
|
+
continue;
|
|
39
|
+
const file = userSkillProfilePath(entry.name);
|
|
40
|
+
if (!existsSync(file))
|
|
41
|
+
continue;
|
|
42
|
+
if (!existsSync(join(root, entry.name, 'SKILL.md'))) {
|
|
43
|
+
throw new Error(`user skill profile has no skill: ${entry.name}`);
|
|
44
|
+
}
|
|
45
|
+
profiles[formatResourceRef({ source: 'user', name: entry.name })] = parseProfile(readFileSync(file, 'utf8'), entry.name);
|
|
46
|
+
}
|
|
47
|
+
return { ...project, skill_profiles: profiles };
|
|
48
|
+
}
|
|
49
|
+
/** Persist a user skill's method beside its body, never in a particular project. */
|
|
50
|
+
export function saveUserSkillProfile(name, profile) {
|
|
51
|
+
const file = userSkillProfilePath(name);
|
|
52
|
+
if (!existsSync(join(home(), 'skills', name, 'SKILL.md'))) {
|
|
53
|
+
throw new Error(`user skill not found: ${name}`);
|
|
54
|
+
}
|
|
55
|
+
const validated = parseProfile(JSON.stringify(profile), name);
|
|
56
|
+
if (validated.rules.some(rule => rule.source === 'project')) {
|
|
57
|
+
throw new Error('用户级技能不能绑定项目级规则;请把规则复制到用户级,或把技能复制到项目级');
|
|
58
|
+
}
|
|
59
|
+
const temporary = `${file}.${process.pid}.${Date.now()}.tmp`;
|
|
60
|
+
try {
|
|
61
|
+
writeFileSync(temporary, JSON.stringify(validated, null, 2) + '\n', { encoding: 'utf8', flag: 'wx' });
|
|
62
|
+
renameSync(temporary, file);
|
|
63
|
+
}
|
|
64
|
+
finally {
|
|
65
|
+
rmSync(temporary, { force: true });
|
|
66
|
+
}
|
|
67
|
+
return file;
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=user-skill-profiles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user-skill-profiles.js","sourceRoot":"","sources":["../src/user-skill-profiles.ts"],"names":[],"mappings":"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"}
|
package/lib/workflows.d.ts
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* also baked in skills, a commit format and artifact fields would make every
|
|
7
7
|
* project follow the shipped method whether or not that suits it.
|
|
8
8
|
*
|
|
9
|
-
*
|
|
9
|
+
* Optional text conventions and artifact fields are offered separately as a
|
|
10
10
|
* {@link FlowRecommendation}, and enters a project only when a user adopts it
|
|
11
11
|
* explicitly. After adoption those values are the user's own config: edited,
|
|
12
12
|
* extended or removed, with nothing merged back by a later version.
|
|
@@ -31,9 +31,8 @@ export interface FlowPreset extends FlowOption {
|
|
|
31
31
|
/** The complete engine config this preset resolves to. */
|
|
32
32
|
config: WorkflowConfig;
|
|
33
33
|
/**
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
* reasonable way of working.
|
|
34
|
+
* Optional commit text, artifact fields and review depth a user may adopt.
|
|
35
|
+
* Current recommendations contain no skill or rule bindings.
|
|
37
36
|
*
|
|
38
37
|
* Separate from `config` on purpose. The skeleton states how the work moves;
|
|
39
38
|
* the recommendation states one opinion about how to do it. A preset that also
|
|
@@ -72,6 +71,11 @@ export declare const FLOW_OPTIONS: readonly FlowOption[];
|
|
|
72
71
|
export declare const FLOW_PRESETS: Record<string, FlowPreset>;
|
|
73
72
|
/** Whether `flow` names a built-in workflow. */
|
|
74
73
|
export declare function isKnownFlow(flow: string): boolean;
|
|
74
|
+
/** Keep bindings for stages shared with a newly selected flow. */
|
|
75
|
+
export declare function retainStageBindings(flow: string, bindings: Record<string, StageBinding>): {
|
|
76
|
+
bindings: Record<string, StageBinding>;
|
|
77
|
+
dropped: string[];
|
|
78
|
+
};
|
|
75
79
|
/**
|
|
76
80
|
* The capabilities a high-risk task must have from its flow. A `high_risk`
|
|
77
81
|
* task therefore cannot be created on a flow that lacks a verification gate,
|
|
@@ -123,6 +127,22 @@ export interface ProjectConfig {
|
|
|
123
127
|
}
|
|
124
128
|
/** Persist stages as references and each skill's rules exactly once. */
|
|
125
129
|
export declare function compactProjectConfig(project: ProjectConfig): ProjectConfig;
|
|
130
|
+
/** A single bundled body to copy when adopting a recommendation. */
|
|
131
|
+
export interface RecommendedResourceCopy {
|
|
132
|
+
kind: 'skill' | 'rule';
|
|
133
|
+
name: string;
|
|
134
|
+
targetName: string;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Turn source-qualified bundled references into editable project/user references.
|
|
138
|
+
* Repeated rule references share one target and therefore one physical file.
|
|
139
|
+
* This is invoked only for an explicit adoption save; existing configurations
|
|
140
|
+
* are never migrated or rewritten merely because they are opened.
|
|
141
|
+
*/
|
|
142
|
+
export declare function materializeBundledReferences(project: ProjectConfig, level: 'project' | 'user'): {
|
|
143
|
+
config: ProjectConfig;
|
|
144
|
+
copies: RecommendedResourceCopy[];
|
|
145
|
+
};
|
|
126
146
|
/**
|
|
127
147
|
* Resolve a preset workflow plus a project's stage-binding additions into the
|
|
128
148
|
* complete engine config. Unknown `flow` ids fail closed with an explicit
|
package/lib/workflows.js
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* also baked in skills, a commit format and artifact fields would make every
|
|
7
7
|
* project follow the shipped method whether or not that suits it.
|
|
8
8
|
*
|
|
9
|
-
*
|
|
9
|
+
* Optional text conventions and artifact fields are offered separately as a
|
|
10
10
|
* {@link FlowRecommendation}, and enters a project only when a user adopts it
|
|
11
11
|
* explicitly. After adoption those values are the user's own config: edited,
|
|
12
12
|
* extended or removed, with nothing merged back by a later version.
|
|
@@ -14,20 +14,6 @@
|
|
|
14
14
|
* @module dsh-task-engine/workflows
|
|
15
15
|
*/
|
|
16
16
|
import { formatResourceRef } from "./engine.js";
|
|
17
|
-
/**
|
|
18
|
-
* Build one skill binding from a bare name plus its bundled rules.
|
|
19
|
-
*
|
|
20
|
-
* The preset's own bindings are all bundled resources, so the `bundled:` prefix
|
|
21
|
-
* is applied here rather than repeated at every call site. Project and user
|
|
22
|
-
* resources enter through a project's config, where their source is explicit.
|
|
23
|
-
* @param skill - the bundled skill name.
|
|
24
|
-
* @param rules - bundled rule names that belong to this skill.
|
|
25
|
-
* @returns the binding.
|
|
26
|
-
*/
|
|
27
|
-
function bundled(skill, ...rules) {
|
|
28
|
-
const ref = (name) => ({ source: 'bundled', name });
|
|
29
|
-
return { skill: ref(skill), rules: rules.map(ref) };
|
|
30
|
-
}
|
|
31
17
|
/** The selectable preset workflows (shown in the workbench flow picker). */
|
|
32
18
|
export const FLOW_OPTIONS = [
|
|
33
19
|
{ id: 'standard', label: '完整研发', description: '新功能、架构或跨模块改动、高风险任务:需求确认 → 方案确认 → 实现 → 验证 → 审核 → 提交' },
|
|
@@ -78,18 +64,6 @@ const STANDARD_RECOMMENDATION = {
|
|
|
78
64
|
{ stage: '设计', id: 'design', name: '设计文档', fields: ['approach', 'risks', 'impact'] },
|
|
79
65
|
{ stage: '代码审核', id: 'review', name: '评审记录', fields: ['conclusion', 'issues'] },
|
|
80
66
|
],
|
|
81
|
-
stage_bindings: {
|
|
82
|
-
'需求评审': { skills: [bundled('requirement-analysis', 'security-redlines')] },
|
|
83
|
-
'设计': { skills: [bundled('solution-design')] },
|
|
84
|
-
'开发': { skills: [bundled('code-implement', 'coding-conventions', 'security-redlines')] },
|
|
85
|
-
'交付': { skills: [bundled('code-verify')] },
|
|
86
|
-
'代码审核': {
|
|
87
|
-
skills: [
|
|
88
|
-
bundled('code-review', 'coding-conventions', 'security-redlines'),
|
|
89
|
-
bundled('code-commit', 'commit-conventions'),
|
|
90
|
-
],
|
|
91
|
-
},
|
|
92
|
-
},
|
|
93
67
|
};
|
|
94
68
|
/** Lighter four-stage flow: the skeleton only. */
|
|
95
69
|
const AGILE = {
|
|
@@ -125,18 +99,9 @@ const AGILE_RECOMMENDATION = {
|
|
|
125
99
|
},
|
|
126
100
|
artifacts: [
|
|
127
101
|
{ stage: '需求', id: 'requirement', name: '需求说明', fields: ['scope'] },
|
|
128
|
-
//
|
|
129
|
-
// `record artifact=review`. Declaring it keeps that binding executable: the
|
|
130
|
-
// engine refuses an undeclared artifact, so a bound skill pointing at one would
|
|
131
|
-
// be a contract the recommendation made impossible to satisfy.
|
|
102
|
+
// Optional review record; the flow's review gate itself does not require a skill.
|
|
132
103
|
{ stage: '审查', id: 'review', name: '评审记录', fields: ['conclusion', 'issues'] },
|
|
133
104
|
],
|
|
134
|
-
stage_bindings: {
|
|
135
|
-
'需求': { skills: [bundled('requirement-analysis', 'security-redlines')] },
|
|
136
|
-
'开发': { skills: [bundled('code-implement', 'coding-conventions', 'security-redlines')] },
|
|
137
|
-
'交付': { skills: [bundled('code-verify'), bundled('code-commit', 'commit-conventions')] },
|
|
138
|
-
'审查': { skills: [bundled('code-review', 'coding-conventions', 'security-redlines')] },
|
|
139
|
-
},
|
|
140
105
|
};
|
|
141
106
|
/** Minimal two-stage flow: the skeleton only. */
|
|
142
107
|
const MINIMAL = {
|
|
@@ -155,10 +120,6 @@ const MINIMAL_RECOMMENDATION = {
|
|
|
155
120
|
// short change rarely distinguishes. The item still has to be reviewed — what
|
|
156
121
|
// drops is the duplicated verdict, which is where the weight actually was.
|
|
157
122
|
review_depth: 'single',
|
|
158
|
-
stage_bindings: {
|
|
159
|
-
'开发': { skills: [bundled('code-implement', 'coding-conventions', 'security-redlines')] },
|
|
160
|
-
'交付': { skills: [bundled('code-commit', 'commit-conventions')] },
|
|
161
|
-
},
|
|
162
123
|
};
|
|
163
124
|
/**
|
|
164
125
|
* Derive a preset's capability set from its own structure, so the capability
|
|
@@ -203,6 +164,19 @@ export const FLOW_PRESETS = {
|
|
|
203
164
|
export function isKnownFlow(flow) {
|
|
204
165
|
return Object.prototype.hasOwnProperty.call(FLOW_PRESETS, flow);
|
|
205
166
|
}
|
|
167
|
+
/** Keep bindings for stages shared with a newly selected flow. */
|
|
168
|
+
export function retainStageBindings(flow, bindings) {
|
|
169
|
+
const stages = new Set(FLOW_PRESETS[flow]?.config.stages ?? []);
|
|
170
|
+
const kept = {};
|
|
171
|
+
const dropped = [];
|
|
172
|
+
for (const [stage, binding] of Object.entries(bindings)) {
|
|
173
|
+
if (stages.has(stage))
|
|
174
|
+
kept[stage] = binding;
|
|
175
|
+
else
|
|
176
|
+
dropped.push(stage);
|
|
177
|
+
}
|
|
178
|
+
return { bindings: kept, dropped };
|
|
179
|
+
}
|
|
206
180
|
/**
|
|
207
181
|
* The capabilities a high-risk task must have from its flow. A `high_risk`
|
|
208
182
|
* task therefore cannot be created on a flow that lacks a verification gate,
|
|
@@ -396,6 +370,48 @@ export function compactProjectConfig(project) {
|
|
|
396
370
|
}
|
|
397
371
|
return { ...project, stage_bindings: bindings, skill_profiles: profiles };
|
|
398
372
|
}
|
|
373
|
+
/**
|
|
374
|
+
* Turn source-qualified bundled references into editable project/user references.
|
|
375
|
+
* Repeated rule references share one target and therefore one physical file.
|
|
376
|
+
* This is invoked only for an explicit adoption save; existing configurations
|
|
377
|
+
* are never migrated or rewritten merely because they are opened.
|
|
378
|
+
*/
|
|
379
|
+
export function materializeBundledReferences(project, level) {
|
|
380
|
+
const compact = compactProjectConfig(project);
|
|
381
|
+
const copies = new Map();
|
|
382
|
+
const remap = (ref, kind) => {
|
|
383
|
+
if (ref.source !== 'bundled')
|
|
384
|
+
return ref;
|
|
385
|
+
const targetName = `${ref.name}-copy`;
|
|
386
|
+
copies.set(`${kind}:${ref.name}`, { kind, name: ref.name, targetName });
|
|
387
|
+
return { source: level, name: targetName };
|
|
388
|
+
};
|
|
389
|
+
const stage_bindings = {};
|
|
390
|
+
for (const [stage, binding] of Object.entries(compact.stage_bindings ?? {})) {
|
|
391
|
+
stage_bindings[stage] = {
|
|
392
|
+
...binding,
|
|
393
|
+
...(binding.skill_refs ? { skill_refs: binding.skill_refs.map(ref => remap(ref, 'skill')) } : {}),
|
|
394
|
+
};
|
|
395
|
+
}
|
|
396
|
+
const skill_profiles = {};
|
|
397
|
+
for (const [key, profile] of Object.entries(compact.skill_profiles ?? {})) {
|
|
398
|
+
// A user-level skill's profile is globally owned and may legitimately use
|
|
399
|
+
// bundled rules. A project adoption must never rewrite that global method.
|
|
400
|
+
if (key.startsWith('user:')) {
|
|
401
|
+
skill_profiles[key] = profile;
|
|
402
|
+
continue;
|
|
403
|
+
}
|
|
404
|
+
const colon = key.indexOf(':');
|
|
405
|
+
const ref = colon < 0 ? undefined : { source: key.slice(0, colon), name: key.slice(colon + 1) };
|
|
406
|
+
const mapped = ref?.source === 'bundled' ? remap(ref, 'skill') : ref;
|
|
407
|
+
const mappedKey = mapped ? formatResourceRef(mapped) : key;
|
|
408
|
+
if (skill_profiles[mappedKey] !== undefined) {
|
|
409
|
+
throw new Error(`采用推荐配置后技能档案重复:${mappedKey}`);
|
|
410
|
+
}
|
|
411
|
+
skill_profiles[mappedKey] = { ...profile, rules: profile.rules.map(rule => remap(rule, 'rule')) };
|
|
412
|
+
}
|
|
413
|
+
return { config: { ...compact, stage_bindings, skill_profiles }, copies: [...copies.values()] };
|
|
414
|
+
}
|
|
399
415
|
/**
|
|
400
416
|
* Resolve a preset workflow plus a project's stage-binding additions into the
|
|
401
417
|
* complete engine config. Unknown `flow` ids fail closed with an explicit
|
package/lib/workflows.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflows.js","sourceRoot":"","sources":["../src/workflows.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"workflows.js","sourceRoot":"","sources":["../src/workflows.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
|
+
"version": "0.27.1",
|
|
4
4
|
"description": "Workflow engine for DeepSeek Harness: a `dev_task` tool that hard-gates stage transitions and commit scope/message, per-node skill bindings with progressive disclosure, and a workbench to configure flows and mount skills. A preset is a flow SKELETON — state control only — and one reasonable engineering setup is offered separately for explicit adoption; which skills run, which rules they follow and what a commit message must look like stay the user's decisions.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "lib/index.js",
|
|
@@ -31,7 +31,6 @@
|
|
|
31
31
|
"defaults/eng.json",
|
|
32
32
|
"hooks/**",
|
|
33
33
|
"skills/**",
|
|
34
|
-
"rules/**",
|
|
35
34
|
"preset/**",
|
|
36
35
|
"scripts/**",
|
|
37
36
|
"docs/**",
|
|
@@ -50,7 +49,8 @@
|
|
|
50
49
|
".enforce-test.mjs",
|
|
51
50
|
".evidence-test.mjs",
|
|
52
51
|
".roundtrip-test.mjs",
|
|
53
|
-
".filter-test.mjs"
|
|
52
|
+
".filter-test.mjs",
|
|
53
|
+
".codex-project-test.mjs"
|
|
54
54
|
],
|
|
55
55
|
"license": "MIT",
|
|
56
56
|
"publishConfig": {
|
|
@@ -71,7 +71,7 @@
|
|
|
71
71
|
"scripts": {
|
|
72
72
|
"build": "tsc -p tsconfig.json && node build-client.mjs && node build-hook.mjs",
|
|
73
73
|
"typecheck": "tsc -p tsconfig.json --noEmit && tsc -p tsconfig.client.json --noEmit",
|
|
74
|
-
"test": "node .p0-test.mjs && node .acceptance.mjs && node .hook-consistency.mjs && node --test .resource-test.mjs .workflow-test.mjs .hook-test.mjs .preset-test.mjs .assessment-batch1.mjs .e2e-presets.mjs .revision-test.mjs .freeze-test.mjs .enforce-test.mjs .evidence-test.mjs .roundtrip-test.mjs .filter-test.mjs",
|
|
74
|
+
"test": "node .p0-test.mjs && node .acceptance.mjs && node .hook-consistency.mjs && node --test .resource-test.mjs .workflow-test.mjs .hook-test.mjs .preset-test.mjs .assessment-batch1.mjs .e2e-presets.mjs .revision-test.mjs .freeze-test.mjs .enforce-test.mjs .evidence-test.mjs .roundtrip-test.mjs .filter-test.mjs .codex-project-test.mjs",
|
|
75
75
|
"verify:package": "node scripts/verify-package.mjs",
|
|
76
76
|
"verify:dsh": "node scripts/verify-dsh-compat.mjs",
|
|
77
77
|
"prepare": "npm run build"
|
package/preset/agent.cordis.yml
CHANGED
|
@@ -14,9 +14,9 @@
|
|
|
14
14
|
text: |-
|
|
15
15
|
You are an engineering-delivery coding agent, powered by the {{model}} model, running on DeepSeek Harness. Your working directory is {{cwd}}.
|
|
16
16
|
|
|
17
|
-
本仓库使用 `dev_task` 管理工程任务的状态机。项目根 `.dsh/eng.json`
|
|
17
|
+
本仓库使用 `dev_task` 管理工程任务的状态机。项目根 `.dsh/eng.json` 选择流程骨架,并可配置阶段技能、技能规则、产物字段和提交文本;没有配置的业务方法不能自动补齐。任何开发类请求开始前,先加载 `eng-delivery` 并读取当前任务状态。
|
|
18
18
|
|
|
19
|
-
阶段流转、确认、验证、评审、任务完成及受控提交通过 `dev_task`;它拒绝时按返回的条件修正,不绕过。具体工作方法以当前任务冻结的用户配置为准,远程操作或发布由用户明确决定。
|
|
19
|
+
阶段流转、确认、验证、评审、任务完成及受控提交通过 `dev_task`;它拒绝时按返回的条件修正,不绕过。具体工作方法以当前任务冻结的用户配置为准,远程操作或发布由用户明确决定。
|
|
20
20
|
|
|
21
21
|
- id: task-engine-agent
|
|
22
|
-
name: '@godv61/dsh-task-engine/agent'
|
|
22
|
+
name: '@godv61/dsh-task-engine/agent'
|
package/preset/persona.md
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
You are an engineering-delivery coding agent, powered by the {{model}} model, running on DeepSeek Harness. Your working directory is {{cwd}}.
|
|
2
2
|
|
|
3
|
-
本仓库使用 `dev_task` 管理工程任务的状态机。项目根 `.dsh/eng.json`
|
|
3
|
+
本仓库使用 `dev_task` 管理工程任务的状态机。项目根 `.dsh/eng.json` 选择流程骨架,并可配置阶段技能、技能规则、产物字段和提交文本;没有配置的业务方法不能自动补齐。任何开发类请求开始前,先加载 `eng-delivery` 并读取当前任务状态。
|
|
4
4
|
|
|
5
|
-
阶段流转、确认、验证、评审、任务完成及受控提交通过 `dev_task`;它拒绝时按返回的条件修正,不绕过。具体工作方法以当前任务冻结的用户配置为准,远程操作或发布由用户明确决定。
|
|
5
|
+
阶段流转、确认、验证、评审、任务完成及受控提交通过 `dev_task`;它拒绝时按返回的条件修正,不绕过。具体工作方法以当前任务冻结的用户配置为准,远程操作或发布由用户明确决定。
|
|
@@ -39,7 +39,9 @@ execSync(`tar -xzf "${tgzPath}"`, { cwd: tmp, stdio: 'pipe' })
|
|
|
39
39
|
const pkgDir = join(tmp, 'package')
|
|
40
40
|
const listing = execSync(`tar -tzf "${tgzPath}"`, { encoding: 'utf8' })
|
|
41
41
|
.trim().split(/\r?\n/u).map(line => line.replace(/^package\//u, ''))
|
|
42
|
-
check('extract', existsSync(join(pkgDir, 'package.json')))
|
|
42
|
+
check('extract', existsSync(join(pkgDir, 'package.json')))
|
|
43
|
+
check('only the orchestration skill ships', listing.filter(line => /^skills\/[^/]+\/SKILL\.md$/u.test(line)).join(',') === 'skills/eng-delivery/SKILL.md')
|
|
44
|
+
check('no bundled business rules ship', !listing.some(line => line.startsWith('rules/')))
|
|
43
45
|
|
|
44
46
|
// 3. files whitelist sanity
|
|
45
47
|
for (const required of ['hooks/commit-msg', 'lib/index.js', 'lib/client.js', 'lib/client.d.ts', 'preset/enable.mjs', 'README.md', '.p0-test.mjs', '.acceptance.mjs', '.hook-consistency.mjs', '.resource-test.mjs', '.workflow-test.mjs', '.hook-test.mjs', '.preset-test.mjs', '.assessment-batch1.mjs', '.e2e-presets.mjs', '.revision-test.mjs', '.freeze-test.mjs', '.enforce-test.mjs', '.evidence-test.mjs', '.roundtrip-test.mjs', '.filter-test.mjs']) {
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: eng-delivery
|
|
3
|
-
description: 使用 dev_task 读取任务状态、执行流程门禁与完成条件;具体技能、规则、产物和提交文本以用户配置为准。
|
|
4
|
-
whenToUse: 在启用工程化交付会话预设后,开始或继续开发任务时先读取状态;阶段流转与完成必须通过 dev_task。
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# 工程流程编排
|
|
8
|
-
|
|
9
|
-
`dev_task`
|
|
10
|
-
|
|
11
|
-
1. 先调用 `dev_task`(operation=status)查找当前工作区和分支的任务;有多个候选时让使用者明确目标。没有任务时按实际需求调用 `create`,已有任务则从返回的 `stage` 继续。
|
|
12
|
-
2. 读取 `status.bindings`、`skill_obligations`、`artifact_requirements`、`legal_next` 和 `commit
|
|
13
|
-
3. 技能要求的证据以其配置和 `status.skill_obligations` 为准:仅对 `command_receipts_required` 列出的技能通过带真实命令的 `skill_result` 记录;`manual` 通过人工审批记录;`artifact`、`review` 与 `none` 按对应阶段操作或无需额外回执处理。不要把所有技能都当成命令型技能。技能加载成功不等于要求的证据已经完成。
|
|
14
|
-
4. 需要记录产物时,只使用 `artifact_requirements` 给出的 id 与字段。按当前流程要求完成确认、实施项、验证和审核,再调用 `advance`;被拒绝时按返回的阻塞原因修正,不改任务文件绕过门禁。
|
|
15
|
-
5. 只在 `status.commit`
|
|
16
|
-
|
|
17
|
-
|
|
1
|
+
---
|
|
2
|
+
name: eng-delivery
|
|
3
|
+
description: 使用 dev_task 读取任务状态、执行流程门禁与完成条件;具体技能、规则、产物和提交文本以用户配置为准。
|
|
4
|
+
whenToUse: 在启用工程化交付会话预设后,开始或继续开发任务时先读取状态;阶段流转与完成必须通过 dev_task。
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# 工程流程编排
|
|
8
|
+
|
|
9
|
+
`dev_task` 是任务状态、阶段流转与门禁的唯一事实来源。流程预设决定阶段图与守卫;项目配置决定阶段使用哪些技能、每个技能遵守哪些规则,以及产物字段和提交文本。没有绑定时仅执行状态机,不自行补充技能或规则。
|
|
10
|
+
|
|
11
|
+
1. 先调用 `dev_task`(operation=status)查找当前工作区和分支的任务;有多个候选时让使用者明确目标。没有任务时按实际需求调用 `create`,已有任务则从返回的 `stage` 继续。
|
|
12
|
+
2. 读取 `status.bindings`、`skill_obligations`、`artifact_requirements`、`legal_next` 和 `commit`。只加载当前及即将进入的终态实际绑定的技能,遵守本次交互读取的最新规则正文;没有绑定时不自行补上技能或规则。
|
|
13
|
+
3. 技能要求的证据以其配置和 `status.skill_obligations` 为准:仅对 `command_receipts_required` 列出的技能通过带真实命令的 `skill_result` 记录;`manual` 通过人工审批记录;`artifact`、`review` 与 `none` 按对应阶段操作或无需额外回执处理。不要把所有技能都当成命令型技能。技能加载成功不等于要求的证据已经完成。
|
|
14
|
+
4. 需要记录产物时,只使用 `artifact_requirements` 给出的 id 与字段。按当前流程要求完成确认、实施项、验证和审核,再调用 `advance`;被拒绝时按返回的阻塞原因修正,不改任务文件绕过门禁。
|
|
15
|
+
5. 只在 `status.commit` 允许的检查点申请提交,并按任务创建时的流程配置校验文件范围与消息。提交后按工具要求回写真实 Git HEAD。到达终态后调用 `complete`,以其完成条件为准;需要返工时使用 `revise`。
|
|
16
|
+
|
|
17
|
+
不同流程的阶段数与守卫不同,不把某一预设的阶段顺序或提交格式当作所有项目的默认工作方法。用户修改流程配置只影响之后创建的任务;进行中的任务继续遵守创建时的阶段与门禁,但在下次交互读取所引用技能和规则的最新正文。
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
# 提交规范
|
|
2
|
-
|
|
3
|
-
- 内置流程的提交消息使用 `【<task_id>】【TASK】说明` 或 `【<task_id>】【Tn】说明`,第一段必须是当前任务 id,不能填模块名;第二段使用 `dev_task status` 返回的 `commit.label`。自定义格式以任务冻结流程中的 `commit.message_hint` 和 `message_pattern` 为准。说明写结果,不写"修改代码"这类空泛动作。
|
|
4
|
-
- 只提交任务 files 范围内的文件;逐文件暂存,禁止 `git add .` / `git add -A`。
|
|
5
|
-
- 提交前 `git diff --cached --check`;发现范围外文件、密钥或环境配置时停止。
|
|
6
|
-
- 不 push、不合并、不建 PR、不部署、不发布。
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: code-commit
|
|
3
|
-
description: 提交节点:校验阶段、文件范围与消息格式,执行范围受控的本地提交。以 dev_task status 返回的提交检查点为准,标准流程在代码审核通过后提交。
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# 提交
|
|
7
|
-
|
|
8
|
-
1. `dev_task`(operation=commit, files=[...], message=...) 校验阶段、范围与消息格式。
|
|
9
|
-
2. 拿到 approved 后逐文件 `git add <files>`(禁止 `git add .` / `git add -A`),再 `git commit -m "<message>"`。
|
|
10
|
-
3. 用 `dev_task`(operation=commit, files=同一列表, message=同一消息, hash=<真实HEAD>)回写。引擎核对真实提交后才允许离开检查点。不要在回写前宣告完成。
|
|
11
|
-
4. 只提交任务 files 范围内文件;发现范围外文件、密钥或环境配置时停止并报告。
|
|
12
|
-
|
|
13
|
-
不 push、不合并、不建 PR、不执行数据库、部署或发布。
|