rhachet-roles-bhuild 0.14.6 → 0.15.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/dist/contract/cli/init.behavior.js +2 -0
- package/dist/contract/cli/init.behavior.js.map +1 -1
- package/dist/domain.operations/behavior/feedback/giveFeedback.js +1 -1
- package/dist/domain.operations/behavior/feedback/giveFeedback.js.map +1 -1
- package/dist/domain.operations/behavior/init/getAllTemplatesBySize.d.ts +61 -0
- package/dist/domain.operations/behavior/init/getAllTemplatesBySize.js +122 -0
- package/dist/domain.operations/behavior/init/getAllTemplatesBySize.js.map +1 -0
- package/dist/domain.operations/behavior/init/initBehaviorDir.d.ts +4 -1
- package/dist/domain.operations/behavior/init/initBehaviorDir.js +41 -13
- package/dist/domain.operations/behavior/init/initBehaviorDir.js.map +1 -1
- package/dist/domain.operations/behavior/init/templates/3.2.distill.domain._.v1.guard +35 -0
- package/dist/domain.operations/behavior/init/templates/3.3.1.blueprint.product.v1.guard.heavy +66 -14
- package/dist/domain.operations/behavior/init/templates/3.3.1.blueprint.product.v1.guard.light +62 -10
- package/dist/domain.roles/behaver/skills/review.deliverable.sh +1 -1
- package/package.json +6 -6
- /package/dist/domain.operations/behavior/init/templates/{.ref.[feedback].v1.[given].by_human.md → refs/template.[feedback].v1.[given].by_human.md} +0 -0
|
@@ -27,6 +27,7 @@ const schemaOfArgs = zod_1.z.object({
|
|
|
27
27
|
name: zod_1.z.string(),
|
|
28
28
|
dir: zod_1.z.string().optional(),
|
|
29
29
|
open: zod_1.z.string().optional(),
|
|
30
|
+
size: zod_1.z.enum(['nano', 'mini', 'medi', 'mega', 'giga']).optional(),
|
|
30
31
|
guard: zod_1.z.enum(['light', 'heavy']).optional(),
|
|
31
32
|
// rhachet passthrough args (optional, ignored)
|
|
32
33
|
repo: zod_1.z.string().optional(),
|
|
@@ -95,6 +96,7 @@ const initBehavior = async () => {
|
|
|
95
96
|
const result = (0, init_1.initBehaviorDir)({
|
|
96
97
|
behaviorDir,
|
|
97
98
|
behaviorDirRel,
|
|
99
|
+
size: named.size,
|
|
98
100
|
guard: named.guard,
|
|
99
101
|
});
|
|
100
102
|
// render tree-style output
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.behavior.js","sourceRoot":"","sources":["../../../src/contract/cli/init.behavior.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"init.behavior.js","sourceRoot":"","sources":["../../../src/contract/cli/init.behavior.ts"],"names":[],"mappings":"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"}
|
|
@@ -59,7 +59,7 @@ const giveFeedback = (input, context) => {
|
|
|
59
59
|
}
|
|
60
60
|
// resolve template path
|
|
61
61
|
const templatePath = input.template ??
|
|
62
|
-
(0, path_1.join)(behaviorDir, '.
|
|
62
|
+
(0, path_1.join)(behaviorDir, 'refs/template.[feedback].v1.[given].by_human.md');
|
|
63
63
|
if (!(0, fs_1.existsSync)(templatePath)) {
|
|
64
64
|
throw new helpful_errors_1.BadRequestError(`template not found: ${templatePath}`);
|
|
65
65
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"giveFeedback.js","sourceRoot":"","sources":["../../../../src/domain.operations/behavior/feedback/giveFeedback.ts"],"names":[],"mappings":";;;AAAA,2BAAgC;AAChC,mDAAiD;AACjD,+BAAsC;AAEtC,+EAA4E;AAC5E,2EAAwE;AACxE,uEAAoE;AACpE,yEAAsE;AACtE,iEAA8D;AAE9D;;;;;GAKG;AACI,MAAM,YAAY,GAAG,CAC1B,KAOC,EACD,OAAwB,EAMxB,EAAE;IACF,yBAAyB;IACzB,MAAM,WAAW,GAAG,IAAA,qDAAyB,EAC3C;QACE,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,SAAS,EAAE,KAAK,CAAC,SAAS;KAC3B,EACD,OAAO,CACR,CAAC;IAEF,uBAAuB;IACvB,MAAM,QAAQ,GAAG,IAAA,iDAAuB,EACtC,EAAE,WAAW,EAAE,YAAY,EAAE,KAAK,CAAC,OAAO,EAAE,EAC5C,OAAO,CACR,CAAC;IACF,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,gCAAe,CACvB,0BAA0B,KAAK,CAAC,OAAO,QAAQ,WAAW,EAAE,CAC7D,CAAC;IACJ,CAAC;IAED,2BAA2B;IAC3B,MAAM,aAAa,GAAG,IAAA,mDAAwB,EAAC;QAC7C,WAAW;QACX,gBAAgB,EAAE,QAAQ,CAAC,QAAQ;KACpC,CAAC,CAAC;IACH,MAAM,eAAe,GAAG,CAAC,GAAG,EAAE;QAC5B,8BAA8B;QAC9B,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC,OAAO,CAAC;QAE5D,4CAA4C;QAC5C,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI;YAAE,OAAO,CAAC,aAAa,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAE5D,wCAAwC;QACxC,OAAO,aAAa,IAAI,CAAC,CAAC;IAC5B,CAAC,CAAC,EAAE,CAAC;IAEL,4BAA4B;IAC5B,MAAM,gBAAgB,GAAG,IAAA,yDAA2B,EAAC;QACnD,gBAAgB,EAAE,QAAQ,CAAC,QAAQ;QACnC,eAAe;KAChB,CAAC,CAAC;IACH,MAAM,YAAY,GAAG,IAAA,WAAI,EAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;IAEzD,+CAA+C;IAC/C,IAAI,IAAA,eAAU,EAAC,YAAY,CAAC,EAAE,CAAC;QAC7B,OAAO;YACL,YAAY,EAAE,YAAY;YAC1B,YAAY,EAAE,QAAQ,CAAC,IAAI;YAC3B,WAAW;YACX,OAAO,EAAE,KAAK;SACf,CAAC;IACJ,CAAC;IAED,wBAAwB;IACxB,MAAM,YAAY,GAChB,KAAK,CAAC,QAAQ;QACd,IAAA,WAAI,EAAC,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"giveFeedback.js","sourceRoot":"","sources":["../../../../src/domain.operations/behavior/feedback/giveFeedback.ts"],"names":[],"mappings":";;;AAAA,2BAAgC;AAChC,mDAAiD;AACjD,+BAAsC;AAEtC,+EAA4E;AAC5E,2EAAwE;AACxE,uEAAoE;AACpE,yEAAsE;AACtE,iEAA8D;AAE9D;;;;;GAKG;AACI,MAAM,YAAY,GAAG,CAC1B,KAOC,EACD,OAAwB,EAMxB,EAAE;IACF,yBAAyB;IACzB,MAAM,WAAW,GAAG,IAAA,qDAAyB,EAC3C;QACE,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,SAAS,EAAE,KAAK,CAAC,SAAS;KAC3B,EACD,OAAO,CACR,CAAC;IAEF,uBAAuB;IACvB,MAAM,QAAQ,GAAG,IAAA,iDAAuB,EACtC,EAAE,WAAW,EAAE,YAAY,EAAE,KAAK,CAAC,OAAO,EAAE,EAC5C,OAAO,CACR,CAAC;IACF,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,gCAAe,CACvB,0BAA0B,KAAK,CAAC,OAAO,QAAQ,WAAW,EAAE,CAC7D,CAAC;IACJ,CAAC;IAED,2BAA2B;IAC3B,MAAM,aAAa,GAAG,IAAA,mDAAwB,EAAC;QAC7C,WAAW;QACX,gBAAgB,EAAE,QAAQ,CAAC,QAAQ;KACpC,CAAC,CAAC;IACH,MAAM,eAAe,GAAG,CAAC,GAAG,EAAE;QAC5B,8BAA8B;QAC9B,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC,OAAO,CAAC;QAE5D,4CAA4C;QAC5C,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI;YAAE,OAAO,CAAC,aAAa,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAE5D,wCAAwC;QACxC,OAAO,aAAa,IAAI,CAAC,CAAC;IAC5B,CAAC,CAAC,EAAE,CAAC;IAEL,4BAA4B;IAC5B,MAAM,gBAAgB,GAAG,IAAA,yDAA2B,EAAC;QACnD,gBAAgB,EAAE,QAAQ,CAAC,QAAQ;QACnC,eAAe;KAChB,CAAC,CAAC;IACH,MAAM,YAAY,GAAG,IAAA,WAAI,EAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;IAEzD,+CAA+C;IAC/C,IAAI,IAAA,eAAU,EAAC,YAAY,CAAC,EAAE,CAAC;QAC7B,OAAO;YACL,YAAY,EAAE,YAAY;YAC1B,YAAY,EAAE,QAAQ,CAAC,IAAI;YAC3B,WAAW;YACX,OAAO,EAAE,KAAK;SACf,CAAC;IACJ,CAAC;IAED,wBAAwB;IACxB,MAAM,YAAY,GAChB,KAAK,CAAC,QAAQ;QACd,IAAA,WAAI,EAAC,WAAW,EAAE,iDAAiD,CAAC,CAAC;IACvE,IAAI,CAAC,IAAA,eAAU,EAAC,YAAY,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,gCAAe,CAAC,uBAAuB,YAAY,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,2CAA2C;IAC3C,MAAM,cAAc,GAAG,IAAA,eAAQ,EAAC,OAAO,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IAE1D,mCAAmC;IACnC,IAAA,2CAAoB,EAAC;QACnB,YAAY;QACZ,UAAU,EAAE,YAAY;QACxB,gBAAgB,EAAE,QAAQ,CAAC,QAAQ;QACnC,cAAc;QACd,eAAe;KAChB,CAAC,CAAC;IAEH,OAAO;QACL,YAAY,EAAE,YAAY;QAC1B,YAAY,EAAE,QAAQ,CAAC,IAAI;QAC3B,WAAW;QACX,OAAO,EAAE,IAAI;KACd,CAAC;AACJ,CAAC,CAAC;AAhGW,QAAA,YAAY,gBAgGvB"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* .what = configuration and utilities for behavior size levels
|
|
3
|
+
*
|
|
4
|
+
* .why = single source of truth for which templates belong to each size level.
|
|
5
|
+
* type derived from config keys ensures compiler-enforced completeness.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* .what = config for behavior size levels
|
|
9
|
+
*
|
|
10
|
+
* .why = single source of truth:
|
|
11
|
+
* - type derived from keys (can't have type without config entry)
|
|
12
|
+
* - order encoded in config (no separate array to maintain)
|
|
13
|
+
* - adds array defines which templates this size contributes
|
|
14
|
+
*
|
|
15
|
+
* .note = sizes are cumulative: mini includes nano + mini adds, etc.
|
|
16
|
+
* giga is reserved for future decomposition subroutes.
|
|
17
|
+
*/
|
|
18
|
+
declare const BEHAVIOR_SIZE_CONFIG: {
|
|
19
|
+
readonly nano: {
|
|
20
|
+
readonly order: 0;
|
|
21
|
+
readonly adds: readonly ["0.wish.md", "refs/template.[feedback].v1.[given].by_human.md", "1.vision.stone", "1.vision.guard", "3.3.1.blueprint.product.v1.stone", "3.3.1.blueprint.product.v1.guard", "4.1.roadmap.v1.stone", "5.1.execution.phase0_to_phaseN.v1.stone", "5.1.execution.phase0_to_phaseN.v1.guard"];
|
|
22
|
+
};
|
|
23
|
+
readonly mini: {
|
|
24
|
+
readonly order: 1;
|
|
25
|
+
readonly adds: readonly ["2.1.criteria.blackbox.stone", "2.1.criteria.blackbox.guard", "2.2.criteria.blackbox.matrix.stone", "3.1.3.research.internal.product.code.prod._.v1.stone", "3.1.3.research.internal.product.code.test._.v1.stone", "5.3.verification.v1.stone", "5.3.verification.v1.guard"];
|
|
26
|
+
};
|
|
27
|
+
readonly medi: {
|
|
28
|
+
readonly order: 2;
|
|
29
|
+
readonly adds: readonly ["2.3.criteria.blueprint.stone", "3.1.1.research.external.product.access._.v1.stone", "3.1.1.research.external.product.claims._.v1.stone", "3.1.5.research.reflection.product.premortem._.v1.stone", "3.1.5.research.reflection.product.rootcause._.v1.stone", "3.1.5.research.reflection.product.audience._.v1.stone", "3.2.distill.repros.experience._.v1.stone", "3.2.distill.repros.experience._.v1.guard", "5.2.evaluation.v1.stone", "5.2.evaluation.v1.guard", "5.5.playtest.v1.stone", "5.5.playtest.v1.guard"];
|
|
30
|
+
};
|
|
31
|
+
readonly mega: {
|
|
32
|
+
readonly order: 3;
|
|
33
|
+
readonly adds: readonly ["3.1.1.research.external.product.domain._.v1.stone", "3.1.1.research.external.product.domain.terms.v1.stone", "3.1.1.research.external.product.references._.v1.stone", "3.1.2.research.external.factory.testloops._.v1.stone", "3.1.2.research.external.factory.oss.levers._.v1.stone", "3.1.2.research.external.factory.templates._.v1.stone", "3.1.4.research.internal.factory.blockers._.v1.stone", "3.1.4.research.internal.factory.opports._.v1.stone", "3.2.distill.domain._.v1.stone", "3.2.distill.domain._.v1.guard", "3.2.distill.factory.upgrades._.v1.stone", "3.3.0.blueprint.factory.v1.stone"];
|
|
34
|
+
};
|
|
35
|
+
readonly giga: {
|
|
36
|
+
readonly order: 4;
|
|
37
|
+
readonly adds: readonly [];
|
|
38
|
+
};
|
|
39
|
+
};
|
|
40
|
+
export type BehaviorSizeLevel = keyof typeof BEHAVIOR_SIZE_CONFIG;
|
|
41
|
+
declare const BEHAVIOR_SIZE_ORDER: ("nano" | "mini" | "medi" | "mega" | "giga")[];
|
|
42
|
+
/**
|
|
43
|
+
* .what = get all templates for a given size level (cumulative)
|
|
44
|
+
*
|
|
45
|
+
* .why = sizes are additive: mini = nano + mini adds, medi = nano + mini + medi adds, etc.
|
|
46
|
+
*/
|
|
47
|
+
export declare const getAllTemplatesBySize: (input: {
|
|
48
|
+
size: BehaviorSizeLevel;
|
|
49
|
+
}) => string[];
|
|
50
|
+
/**
|
|
51
|
+
* .what = check if a template is included in a given size level
|
|
52
|
+
*
|
|
53
|
+
* .why = used to filter templates in behavior initialization
|
|
54
|
+
*
|
|
55
|
+
* .note = handles guard variants: '1.vision.guard' matches '1.vision.guard.light'
|
|
56
|
+
*/
|
|
57
|
+
export declare const isTemplateInSize: (input: {
|
|
58
|
+
templateName: string;
|
|
59
|
+
size: BehaviorSizeLevel;
|
|
60
|
+
}) => boolean;
|
|
61
|
+
export { BEHAVIOR_SIZE_CONFIG, BEHAVIOR_SIZE_ORDER };
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* .what = configuration and utilities for behavior size levels
|
|
4
|
+
*
|
|
5
|
+
* .why = single source of truth for which templates belong to each size level.
|
|
6
|
+
* type derived from config keys ensures compiler-enforced completeness.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.BEHAVIOR_SIZE_ORDER = exports.BEHAVIOR_SIZE_CONFIG = exports.isTemplateInSize = exports.getAllTemplatesBySize = void 0;
|
|
10
|
+
/**
|
|
11
|
+
* .what = config for behavior size levels
|
|
12
|
+
*
|
|
13
|
+
* .why = single source of truth:
|
|
14
|
+
* - type derived from keys (can't have type without config entry)
|
|
15
|
+
* - order encoded in config (no separate array to maintain)
|
|
16
|
+
* - adds array defines which templates this size contributes
|
|
17
|
+
*
|
|
18
|
+
* .note = sizes are cumulative: mini includes nano + mini adds, etc.
|
|
19
|
+
* giga is reserved for future decomposition subroutes.
|
|
20
|
+
*/
|
|
21
|
+
const BEHAVIOR_SIZE_CONFIG = {
|
|
22
|
+
nano: {
|
|
23
|
+
order: 0,
|
|
24
|
+
adds: [
|
|
25
|
+
'0.wish.md',
|
|
26
|
+
'refs/template.[feedback].v1.[given].by_human.md',
|
|
27
|
+
'1.vision.stone',
|
|
28
|
+
'1.vision.guard', // .light or .heavy variant
|
|
29
|
+
'3.3.1.blueprint.product.v1.stone',
|
|
30
|
+
'3.3.1.blueprint.product.v1.guard', // .light or .heavy variant
|
|
31
|
+
'4.1.roadmap.v1.stone',
|
|
32
|
+
'5.1.execution.phase0_to_phaseN.v1.stone',
|
|
33
|
+
'5.1.execution.phase0_to_phaseN.v1.guard',
|
|
34
|
+
],
|
|
35
|
+
},
|
|
36
|
+
mini: {
|
|
37
|
+
order: 1,
|
|
38
|
+
adds: [
|
|
39
|
+
'2.1.criteria.blackbox.stone',
|
|
40
|
+
'2.1.criteria.blackbox.guard', // .heavy only (light has no criteria guard)
|
|
41
|
+
'2.2.criteria.blackbox.matrix.stone',
|
|
42
|
+
'3.1.3.research.internal.product.code.prod._.v1.stone',
|
|
43
|
+
'3.1.3.research.internal.product.code.test._.v1.stone',
|
|
44
|
+
'5.3.verification.v1.stone',
|
|
45
|
+
'5.3.verification.v1.guard',
|
|
46
|
+
],
|
|
47
|
+
},
|
|
48
|
+
medi: {
|
|
49
|
+
order: 2,
|
|
50
|
+
adds: [
|
|
51
|
+
'2.3.criteria.blueprint.stone',
|
|
52
|
+
'3.1.1.research.external.product.access._.v1.stone',
|
|
53
|
+
'3.1.1.research.external.product.claims._.v1.stone',
|
|
54
|
+
'3.1.5.research.reflection.product.premortem._.v1.stone',
|
|
55
|
+
'3.1.5.research.reflection.product.rootcause._.v1.stone',
|
|
56
|
+
'3.1.5.research.reflection.product.audience._.v1.stone',
|
|
57
|
+
'3.2.distill.repros.experience._.v1.stone',
|
|
58
|
+
'3.2.distill.repros.experience._.v1.guard',
|
|
59
|
+
'5.2.evaluation.v1.stone',
|
|
60
|
+
'5.2.evaluation.v1.guard',
|
|
61
|
+
'5.5.playtest.v1.stone',
|
|
62
|
+
'5.5.playtest.v1.guard',
|
|
63
|
+
],
|
|
64
|
+
},
|
|
65
|
+
mega: {
|
|
66
|
+
order: 3,
|
|
67
|
+
adds: [
|
|
68
|
+
'3.1.1.research.external.product.domain._.v1.stone',
|
|
69
|
+
'3.1.1.research.external.product.domain.terms.v1.stone',
|
|
70
|
+
'3.1.1.research.external.product.references._.v1.stone',
|
|
71
|
+
'3.1.2.research.external.factory.testloops._.v1.stone',
|
|
72
|
+
'3.1.2.research.external.factory.oss.levers._.v1.stone',
|
|
73
|
+
'3.1.2.research.external.factory.templates._.v1.stone',
|
|
74
|
+
'3.1.4.research.internal.factory.blockers._.v1.stone',
|
|
75
|
+
'3.1.4.research.internal.factory.opports._.v1.stone',
|
|
76
|
+
'3.2.distill.domain._.v1.stone',
|
|
77
|
+
'3.2.distill.domain._.v1.guard',
|
|
78
|
+
'3.2.distill.factory.upgrades._.v1.stone',
|
|
79
|
+
'3.3.0.blueprint.factory.v1.stone',
|
|
80
|
+
],
|
|
81
|
+
},
|
|
82
|
+
giga: {
|
|
83
|
+
order: 4,
|
|
84
|
+
adds: [], // same as mega; reserved for future decomposition subroutes
|
|
85
|
+
},
|
|
86
|
+
};
|
|
87
|
+
exports.BEHAVIOR_SIZE_CONFIG = BEHAVIOR_SIZE_CONFIG;
|
|
88
|
+
// order derived from config - no separate array to maintain
|
|
89
|
+
const BEHAVIOR_SIZE_ORDER = Object.keys(BEHAVIOR_SIZE_CONFIG).sort((a, b) => BEHAVIOR_SIZE_CONFIG[a].order - BEHAVIOR_SIZE_CONFIG[b].order);
|
|
90
|
+
exports.BEHAVIOR_SIZE_ORDER = BEHAVIOR_SIZE_ORDER;
|
|
91
|
+
/**
|
|
92
|
+
* .what = get all templates for a given size level (cumulative)
|
|
93
|
+
*
|
|
94
|
+
* .why = sizes are additive: mini = nano + mini adds, medi = nano + mini + medi adds, etc.
|
|
95
|
+
*/
|
|
96
|
+
const getAllTemplatesBySize = (input) => {
|
|
97
|
+
const index = BEHAVIOR_SIZE_ORDER.indexOf(input.size);
|
|
98
|
+
return BEHAVIOR_SIZE_ORDER.slice(0, index + 1).flatMap((s) => BEHAVIOR_SIZE_CONFIG[s].adds);
|
|
99
|
+
};
|
|
100
|
+
exports.getAllTemplatesBySize = getAllTemplatesBySize;
|
|
101
|
+
/**
|
|
102
|
+
* .what = check if a template is included in a given size level
|
|
103
|
+
*
|
|
104
|
+
* .why = used to filter templates in behavior initialization
|
|
105
|
+
*
|
|
106
|
+
* .note = handles guard variants: '1.vision.guard' matches '1.vision.guard.light'
|
|
107
|
+
*/
|
|
108
|
+
const isTemplateInSize = (input) => {
|
|
109
|
+
const templates = (0, exports.getAllTemplatesBySize)({ size: input.size });
|
|
110
|
+
// direct match
|
|
111
|
+
if (templates.includes(input.templateName)) {
|
|
112
|
+
return true;
|
|
113
|
+
}
|
|
114
|
+
// check for guard variant match (e.g., '1.vision.guard.light' matches '1.vision.guard')
|
|
115
|
+
const baseName = input.templateName.replace(/\.(light|heavy)$/, '');
|
|
116
|
+
if (baseName !== input.templateName && templates.includes(baseName)) {
|
|
117
|
+
return true;
|
|
118
|
+
}
|
|
119
|
+
return false;
|
|
120
|
+
};
|
|
121
|
+
exports.isTemplateInSize = isTemplateInSize;
|
|
122
|
+
//# sourceMappingURL=getAllTemplatesBySize.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getAllTemplatesBySize.js","sourceRoot":"","sources":["../../../../src/domain.operations/behavior/init/getAllTemplatesBySize.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH;;;;;;;;;;GAUG;AACH,MAAM,oBAAoB,GAAG;IAC3B,IAAI,EAAE;QACJ,KAAK,EAAE,CAAC;QACR,IAAI,EAAE;YACJ,WAAW;YACX,iDAAiD;YACjD,gBAAgB;YAChB,gBAAgB,EAAE,2BAA2B;YAC7C,kCAAkC;YAClC,kCAAkC,EAAE,2BAA2B;YAC/D,sBAAsB;YACtB,yCAAyC;YACzC,yCAAyC;SAC1C;KACF;IACD,IAAI,EAAE;QACJ,KAAK,EAAE,CAAC;QACR,IAAI,EAAE;YACJ,6BAA6B;YAC7B,6BAA6B,EAAE,4CAA4C;YAC3E,oCAAoC;YACpC,sDAAsD;YACtD,sDAAsD;YACtD,2BAA2B;YAC3B,2BAA2B;SAC5B;KACF;IACD,IAAI,EAAE;QACJ,KAAK,EAAE,CAAC;QACR,IAAI,EAAE;YACJ,8BAA8B;YAC9B,mDAAmD;YACnD,mDAAmD;YACnD,wDAAwD;YACxD,wDAAwD;YACxD,uDAAuD;YACvD,0CAA0C;YAC1C,0CAA0C;YAC1C,yBAAyB;YACzB,yBAAyB;YACzB,uBAAuB;YACvB,uBAAuB;SACxB;KACF;IACD,IAAI,EAAE;QACJ,KAAK,EAAE,CAAC;QACR,IAAI,EAAE;YACJ,mDAAmD;YACnD,uDAAuD;YACvD,uDAAuD;YACvD,sDAAsD;YACtD,uDAAuD;YACvD,sDAAsD;YACtD,qDAAqD;YACrD,oDAAoD;YACpD,+BAA+B;YAC/B,+BAA+B;YAC/B,yCAAyC;YACzC,kCAAkC;SACnC;KACF;IACD,IAAI,EAAE;QACJ,KAAK,EAAE,CAAC;QACR,IAAI,EAAE,EAAE,EAAE,4DAA4D;KACvE;CAC4E,CAAC;AAoDvE,oDAAoB;AA/C7B,4DAA4D;AAC5D,MAAM,mBAAmB,GACvB,MAAM,CAAC,IAAI,CAAC,oBAAoB,CACjC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AA4CjD,kDAAmB;AA1ClD;;;;GAIG;AACI,MAAM,qBAAqB,GAAG,CAAC,KAErC,EAAY,EAAE;IACb,MAAM,KAAK,GAAG,mBAAmB,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACtD,OAAO,mBAAmB,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,OAAO,CACpD,CAAC,CAAC,EAAE,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,IAAI,CACpC,CAAC;AACJ,CAAC,CAAC;AAPW,QAAA,qBAAqB,yBAOhC;AAEF;;;;;;GAMG;AACI,MAAM,gBAAgB,GAAG,CAAC,KAGhC,EAAW,EAAE;IACZ,MAAM,SAAS,GAAG,IAAA,6BAAqB,EAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IAE9D,eAAe;IACf,IAAI,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC;QAC3C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,wFAAwF;IACxF,MAAM,QAAQ,GAAG,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;IACpE,IAAI,QAAQ,KAAK,KAAK,CAAC,YAAY,IAAI,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACpE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAlBW,QAAA,gBAAgB,oBAkB3B"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type BehaviorSizeLevel } from './getAllTemplatesBySize';
|
|
1
2
|
/**
|
|
2
3
|
* .what = initialize a behavior directory with template files
|
|
3
4
|
*
|
|
@@ -5,14 +6,16 @@
|
|
|
5
6
|
*
|
|
6
7
|
* guarantee:
|
|
7
8
|
* - creates behavior directory if not found
|
|
8
|
-
* - findserts all template files (creates if not found, skips if
|
|
9
|
+
* - findserts all template files (creates if not found, skips if extant)
|
|
9
10
|
* - replaces $BEHAVIOR_DIR_REL in template content
|
|
11
|
+
* - selects templates based on size level (nano → giga)
|
|
10
12
|
* - selects guard templates based on guard level (light or heavy)
|
|
11
13
|
* - idempotent: safe to rerun
|
|
12
14
|
*/
|
|
13
15
|
export declare const initBehaviorDir: (input: {
|
|
14
16
|
behaviorDir: string;
|
|
15
17
|
behaviorDirRel: string;
|
|
18
|
+
size?: BehaviorSizeLevel;
|
|
16
19
|
guard?: 'light' | 'heavy';
|
|
17
20
|
}) => {
|
|
18
21
|
created: string[];
|
|
@@ -3,7 +3,26 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.initBehaviorDir = void 0;
|
|
4
4
|
const fs_1 = require("fs");
|
|
5
5
|
const path_1 = require("path");
|
|
6
|
+
const getAllTemplatesBySize_1 = require("./getAllTemplatesBySize");
|
|
6
7
|
const TEMPLATES_DIR = (0, path_1.join)(__dirname, 'templates');
|
|
8
|
+
/**
|
|
9
|
+
* .what = recursively read all files in a directory
|
|
10
|
+
* .why = templates may be in subdirectories (e.g., refs/)
|
|
11
|
+
*/
|
|
12
|
+
const getAllFilesRecursive = (dir, prefix = '') => {
|
|
13
|
+
const entries = (0, fs_1.readdirSync)(dir, { withFileTypes: true });
|
|
14
|
+
const files = [];
|
|
15
|
+
for (const entry of entries) {
|
|
16
|
+
const relPath = prefix ? `${prefix}/${entry.name}` : entry.name;
|
|
17
|
+
if (entry.isDirectory()) {
|
|
18
|
+
files.push(...getAllFilesRecursive((0, path_1.join)(dir, entry.name), relPath));
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
files.push(relPath);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return files;
|
|
25
|
+
};
|
|
7
26
|
/**
|
|
8
27
|
* .what = initialize a behavior directory with template files
|
|
9
28
|
*
|
|
@@ -11,28 +30,36 @@ const TEMPLATES_DIR = (0, path_1.join)(__dirname, 'templates');
|
|
|
11
30
|
*
|
|
12
31
|
* guarantee:
|
|
13
32
|
* - creates behavior directory if not found
|
|
14
|
-
* - findserts all template files (creates if not found, skips if
|
|
33
|
+
* - findserts all template files (creates if not found, skips if extant)
|
|
15
34
|
* - replaces $BEHAVIOR_DIR_REL in template content
|
|
35
|
+
* - selects templates based on size level (nano → giga)
|
|
16
36
|
* - selects guard templates based on guard level (light or heavy)
|
|
17
37
|
* - idempotent: safe to rerun
|
|
18
38
|
*/
|
|
19
39
|
const initBehaviorDir = (input) => {
|
|
20
40
|
const created = [];
|
|
21
41
|
const kept = [];
|
|
42
|
+
const sizeLevel = input.size ?? 'medi';
|
|
22
43
|
const guardLevel = input.guard ?? 'light';
|
|
23
44
|
// create behavior directory (idempotent)
|
|
24
45
|
(0, fs_1.mkdirSync)(input.behaviorDir, { recursive: true });
|
|
25
|
-
// read all template files
|
|
26
|
-
const templateFiles = (
|
|
46
|
+
// read all template files (recursive to include subdirectories like refs/)
|
|
47
|
+
const templateFiles = getAllFilesRecursive(TEMPLATES_DIR);
|
|
27
48
|
// determine which templates to process
|
|
28
49
|
const templatesToProcess = computeTemplatesToProcess({
|
|
29
50
|
templateFiles,
|
|
51
|
+
sizeLevel,
|
|
30
52
|
guardLevel,
|
|
31
53
|
});
|
|
32
54
|
for (const { templateName, targetName } of templatesToProcess) {
|
|
33
55
|
const templatePath = (0, path_1.join)(TEMPLATES_DIR, templateName);
|
|
34
56
|
const targetPath = (0, path_1.join)(input.behaviorDir, targetName);
|
|
35
|
-
//
|
|
57
|
+
// create parent directory if needed (for refs/ subdirectory)
|
|
58
|
+
const targetDir = (0, path_1.dirname)(targetPath);
|
|
59
|
+
if (targetDir !== input.behaviorDir) {
|
|
60
|
+
(0, fs_1.mkdirSync)(targetDir, { recursive: true });
|
|
61
|
+
}
|
|
62
|
+
// findsert: skip if extant
|
|
36
63
|
if ((0, fs_1.existsSync)(targetPath)) {
|
|
37
64
|
kept.push(targetName);
|
|
38
65
|
continue;
|
|
@@ -48,10 +75,10 @@ const initBehaviorDir = (input) => {
|
|
|
48
75
|
};
|
|
49
76
|
exports.initBehaviorDir = initBehaviorDir;
|
|
50
77
|
/**
|
|
51
|
-
* .what = compute which templates to process based on guard level
|
|
78
|
+
* .what = compute which templates to process based on size and guard level
|
|
52
79
|
*
|
|
53
|
-
* .why =
|
|
54
|
-
*
|
|
80
|
+
* .why = templates are filtered by size level first (nano → giga),
|
|
81
|
+
* then guard files select the .light or .heavy variant
|
|
55
82
|
*/
|
|
56
83
|
const computeTemplatesToProcess = (input) => {
|
|
57
84
|
const result = [];
|
|
@@ -66,14 +93,15 @@ const computeTemplatesToProcess = (input) => {
|
|
|
66
93
|
!templateName.endsWith(guardLevelChosenSuffix)) {
|
|
67
94
|
continue;
|
|
68
95
|
}
|
|
69
|
-
//
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
96
|
+
// compute target name (strip guard level suffix if present)
|
|
97
|
+
const targetName = templateName.endsWith(guardLevelChosenSuffix)
|
|
98
|
+
? templateName.slice(0, -guardLevelChosenSuffix.length)
|
|
99
|
+
: templateName;
|
|
100
|
+
// skip templates not in size level
|
|
101
|
+
if (!(0, getAllTemplatesBySize_1.isTemplateInSize)({ templateName: targetName, size: input.sizeLevel })) {
|
|
73
102
|
continue;
|
|
74
103
|
}
|
|
75
|
-
|
|
76
|
-
result.push({ templateName, targetName: templateName });
|
|
104
|
+
result.push({ templateName, targetName });
|
|
77
105
|
}
|
|
78
106
|
return result;
|
|
79
107
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"initBehaviorDir.js","sourceRoot":"","sources":["../../../../src/domain.operations/behavior/init/initBehaviorDir.ts"],"names":[],"mappings":";;;AAAA,2BAMY;AACZ,+
|
|
1
|
+
{"version":3,"file":"initBehaviorDir.js","sourceRoot":"","sources":["../../../../src/domain.operations/behavior/init/initBehaviorDir.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
reviews:
|
|
2
|
+
self:
|
|
3
|
+
- slug: has-ubiquitous-language
|
|
4
|
+
say: |
|
|
5
|
+
double-check: did you define the ubiquitous language?
|
|
6
|
+
|
|
7
|
+
for each domain term:
|
|
8
|
+
- is it clearly defined? can a newcomer understand it?
|
|
9
|
+
- are there any synonyms that should be eliminated?
|
|
10
|
+
- are there any terms that mean different facts in different contexts?
|
|
11
|
+
|
|
12
|
+
ubiquitous language reduces cognitive load. each ambiguity
|
|
13
|
+
becomes a bug, a support ticket, or hours of confused discussion.
|
|
14
|
+
|
|
15
|
+
- slug: has-bounded-contexts
|
|
16
|
+
say: |
|
|
17
|
+
double-check: did you identify the bounded contexts?
|
|
18
|
+
|
|
19
|
+
- which concepts belong together?
|
|
20
|
+
- where are the natural boundaries between contexts?
|
|
21
|
+
- what are the relationships between contexts?
|
|
22
|
+
|
|
23
|
+
bounded contexts prevent the "big ball of mud" — where all pieces
|
|
24
|
+
depend on all other pieces. clear boundaries enable parallel work.
|
|
25
|
+
|
|
26
|
+
- slug: has-core-domain-identified
|
|
27
|
+
say: |
|
|
28
|
+
double-check: did you identify the core domain?
|
|
29
|
+
|
|
30
|
+
- what is the heart of the business problem?
|
|
31
|
+
- what differentiates this system from a generic solution?
|
|
32
|
+
- where should we invest the most care and attention?
|
|
33
|
+
|
|
34
|
+
the core domain is where competitive advantage lives.
|
|
35
|
+
generic code can be bought or borrowed. core domain code must be crafted.
|
package/dist/domain.operations/behavior/init/templates/3.3.1.blueprint.product.v1.guard.heavy
CHANGED
|
@@ -6,7 +6,59 @@ protect:
|
|
|
6
6
|
|
|
7
7
|
reviews:
|
|
8
8
|
self:
|
|
9
|
-
# 1.
|
|
9
|
+
# 1. research traceability
|
|
10
|
+
- slug: has-research-traceability
|
|
11
|
+
say: |
|
|
12
|
+
review that research recommendations were leveraged or explicitly omitted.
|
|
13
|
+
|
|
14
|
+
the research stone(s) produced recommendations. we must ensure the
|
|
15
|
+
blueprint either:
|
|
16
|
+
- leverages each recommendation, or
|
|
17
|
+
- provides clear rationale for why it was omitted
|
|
18
|
+
|
|
19
|
+
go through each research artifact in the route:
|
|
20
|
+
1. list every recommendation from the research
|
|
21
|
+
2. for each recommendation, check:
|
|
22
|
+
- is it reflected in the blueprint?
|
|
23
|
+
- if not, is there a clear rationale for the omission?
|
|
24
|
+
- did we silently ignore useful research?
|
|
25
|
+
|
|
26
|
+
for omissions, ensure the rationale is documented:
|
|
27
|
+
- "not applicable because..." (explain why)
|
|
28
|
+
- "deferred to future work because..." (explain scope)
|
|
29
|
+
- "contradicts requirement X because..." (cite conflict)
|
|
30
|
+
|
|
31
|
+
research done but not used is wasted effort. if we researched it,
|
|
32
|
+
we should either use it or explain why not.
|
|
33
|
+
|
|
34
|
+
# 2. zero deferrals
|
|
35
|
+
- slug: has-zero-deferrals
|
|
36
|
+
say: |
|
|
37
|
+
review that no item from the vision is deferred. zero leniance.
|
|
38
|
+
|
|
39
|
+
if the vision included it, it is not deferrable. the vision is the
|
|
40
|
+
contract — we deliver what was promised.
|
|
41
|
+
|
|
42
|
+
go through the blueprint and check:
|
|
43
|
+
1. are any items marked as "deferred", "future work", or "out of scope"?
|
|
44
|
+
2. for each deferral, check:
|
|
45
|
+
- was this item in the vision or criteria?
|
|
46
|
+
- if yes, it cannot be deferred — implement it or escalate to wisher
|
|
47
|
+
- if no, the deferral is acceptable (we can defer extras)
|
|
48
|
+
|
|
49
|
+
acceptable deferrals:
|
|
50
|
+
- nice-to-haves we identified ourselves
|
|
51
|
+
- optimizations beyond the stated requirements
|
|
52
|
+
|
|
53
|
+
unacceptable deferrals:
|
|
54
|
+
- any requirement from the vision
|
|
55
|
+
- any criterion from the criteria
|
|
56
|
+
- any explicit ask from the wisher
|
|
57
|
+
|
|
58
|
+
if vision items are deferred, either implement them or flag as blocker
|
|
59
|
+
for the wisher to re-scope.
|
|
60
|
+
|
|
61
|
+
# 3. delete before optimize
|
|
10
62
|
- slug: has-questioned-deletables
|
|
11
63
|
say: |
|
|
12
64
|
try hard to delete before you optimize:
|
|
@@ -32,7 +84,7 @@ reviews:
|
|
|
32
84
|
|
|
33
85
|
delete and simplify before we proceed.
|
|
34
86
|
|
|
35
|
-
#
|
|
87
|
+
# 4. question assumptions
|
|
36
88
|
- slug: has-questioned-assumptions
|
|
37
89
|
say: |
|
|
38
90
|
a junior recently modified files in this repo. we need to carefully
|
|
@@ -49,7 +101,7 @@ reviews:
|
|
|
49
101
|
|
|
50
102
|
surface all technical assumptions and question each one.
|
|
51
103
|
|
|
52
|
-
#
|
|
104
|
+
# 5. drill with 5 whys
|
|
53
105
|
- slug: has-questioned-5whys
|
|
54
106
|
say: |
|
|
55
107
|
for each technical decision, drill deep with 5 whys:
|
|
@@ -62,7 +114,7 @@ reviews:
|
|
|
62
114
|
|
|
63
115
|
ensure we understand the root reasons for these choices.
|
|
64
116
|
|
|
65
|
-
#
|
|
117
|
+
# 6. pre-mortem
|
|
66
118
|
- slug: has-questioned-premortem
|
|
67
119
|
say: |
|
|
68
120
|
imagine this blueprint was implemented and failed miserably.
|
|
@@ -75,7 +127,7 @@ reviews:
|
|
|
75
127
|
|
|
76
128
|
address all failure modes identified before we proceed.
|
|
77
129
|
|
|
78
|
-
#
|
|
130
|
+
# 7. inverse
|
|
79
131
|
- slug: has-questioned-inverse
|
|
80
132
|
say: |
|
|
81
133
|
did we consider the inverse?
|
|
@@ -88,7 +140,7 @@ reviews:
|
|
|
88
140
|
|
|
89
141
|
ensure we know what to avoid, not just what to build.
|
|
90
142
|
|
|
91
|
-
#
|
|
143
|
+
# 8. devils advocate
|
|
92
144
|
- slug: has-questioned-devils-advocate
|
|
93
145
|
say: |
|
|
94
146
|
argue against this blueprint — play devil's advocate:
|
|
@@ -101,7 +153,7 @@ reviews:
|
|
|
101
153
|
|
|
102
154
|
expose weak points before they undermine us.
|
|
103
155
|
|
|
104
|
-
#
|
|
156
|
+
# 9. yagni
|
|
105
157
|
- slug: has-pruned-yagni
|
|
106
158
|
say: |
|
|
107
159
|
review for extras that were not prescribed.
|
|
@@ -118,7 +170,7 @@ reviews:
|
|
|
118
170
|
if a component was not requested, delete it or flag it as an open question
|
|
119
171
|
for the wisher to decide.
|
|
120
172
|
|
|
121
|
-
#
|
|
173
|
+
# 10. backwards compat
|
|
122
174
|
- slug: has-pruned-backcompat
|
|
123
175
|
say: |
|
|
124
176
|
review for backwards compatibility that was not explicitly requested.
|
|
@@ -133,7 +185,7 @@ reviews:
|
|
|
133
185
|
2. eliminate it if not confirmed as required
|
|
134
186
|
3. make the open question very clearly reported
|
|
135
187
|
|
|
136
|
-
#
|
|
188
|
+
# 11. consistent mechanisms
|
|
137
189
|
- slug: has-consistent-mechanisms
|
|
138
190
|
say: |
|
|
139
191
|
review for new mechanisms that duplicate extant functionality.
|
|
@@ -152,7 +204,7 @@ reviews:
|
|
|
152
204
|
1. replace with the extant mechanism
|
|
153
205
|
2. or flag as an open question if unsure
|
|
154
206
|
|
|
155
|
-
#
|
|
207
|
+
# 12. consistent conventions
|
|
156
208
|
- slug: has-consistent-conventions
|
|
157
209
|
say: |
|
|
158
210
|
review for divergence from extant names and patterns.
|
|
@@ -172,7 +224,7 @@ reviews:
|
|
|
172
224
|
1. align with the extant convention
|
|
173
225
|
2. or flag as an open question if the extant convention seems wrong
|
|
174
226
|
|
|
175
|
-
#
|
|
227
|
+
# 13. behavior coverage
|
|
176
228
|
- slug: has-behavior-declaration-coverage
|
|
177
229
|
say: |
|
|
178
230
|
review for coverage of the behavior declaration.
|
|
@@ -189,7 +241,7 @@ reviews:
|
|
|
189
241
|
|
|
190
242
|
fix all gaps before you continue.
|
|
191
243
|
|
|
192
|
-
#
|
|
244
|
+
# 14. behavior adherance
|
|
193
245
|
- slug: has-behavior-declaration-adherance
|
|
194
246
|
say: |
|
|
195
247
|
review for adherance to the behavior declaration.
|
|
@@ -206,7 +258,7 @@ reviews:
|
|
|
206
258
|
|
|
207
259
|
fix all gaps before you continue.
|
|
208
260
|
|
|
209
|
-
#
|
|
261
|
+
# 15. standards adherance
|
|
210
262
|
- slug: has-role-standards-adherance
|
|
211
263
|
say: |
|
|
212
264
|
review for adherance to mechanic role standards.
|
|
@@ -226,7 +278,7 @@ reviews:
|
|
|
226
278
|
|
|
227
279
|
fix all gaps before you continue.
|
|
228
280
|
|
|
229
|
-
#
|
|
281
|
+
# 16. standards coverage
|
|
230
282
|
- slug: has-role-standards-coverage
|
|
231
283
|
say: |
|
|
232
284
|
review for coverage of mechanic role standards.
|
package/dist/domain.operations/behavior/init/templates/3.3.1.blueprint.product.v1.guard.light
CHANGED
|
@@ -6,7 +6,59 @@ protect:
|
|
|
6
6
|
|
|
7
7
|
reviews:
|
|
8
8
|
self:
|
|
9
|
-
# 1.
|
|
9
|
+
# 1. research traceability
|
|
10
|
+
- slug: has-research-traceability
|
|
11
|
+
say: |
|
|
12
|
+
review that research recommendations were leveraged or explicitly omitted.
|
|
13
|
+
|
|
14
|
+
the research stone(s) produced recommendations. we must ensure the
|
|
15
|
+
blueprint either:
|
|
16
|
+
- leverages each recommendation, or
|
|
17
|
+
- provides clear rationale for why it was omitted
|
|
18
|
+
|
|
19
|
+
go through each research artifact in the route:
|
|
20
|
+
1. list every recommendation from the research
|
|
21
|
+
2. for each recommendation, check:
|
|
22
|
+
- is it reflected in the blueprint?
|
|
23
|
+
- if not, is there a clear rationale for the omission?
|
|
24
|
+
- did we silently ignore useful research?
|
|
25
|
+
|
|
26
|
+
for omissions, ensure the rationale is documented:
|
|
27
|
+
- "not applicable because..." (explain why)
|
|
28
|
+
- "deferred to future work because..." (explain scope)
|
|
29
|
+
- "contradicts requirement X because..." (cite conflict)
|
|
30
|
+
|
|
31
|
+
research done but not used is wasted effort. if we researched it,
|
|
32
|
+
we should either use it or explain why not.
|
|
33
|
+
|
|
34
|
+
# 2. zero deferrals
|
|
35
|
+
- slug: has-zero-deferrals
|
|
36
|
+
say: |
|
|
37
|
+
review that no item from the vision is deferred. zero leniance.
|
|
38
|
+
|
|
39
|
+
if the vision included it, it is not deferrable. the vision is the
|
|
40
|
+
contract — we deliver what was promised.
|
|
41
|
+
|
|
42
|
+
go through the blueprint and check:
|
|
43
|
+
1. are any items marked as "deferred", "future work", or "out of scope"?
|
|
44
|
+
2. for each deferral, check:
|
|
45
|
+
- was this item in the vision or criteria?
|
|
46
|
+
- if yes, it cannot be deferred — implement it or escalate to wisher
|
|
47
|
+
- if no, the deferral is acceptable (we can defer extras)
|
|
48
|
+
|
|
49
|
+
acceptable deferrals:
|
|
50
|
+
- nice-to-haves we identified ourselves
|
|
51
|
+
- optimizations beyond the stated requirements
|
|
52
|
+
|
|
53
|
+
unacceptable deferrals:
|
|
54
|
+
- any requirement from the vision
|
|
55
|
+
- any criterion from the criteria
|
|
56
|
+
- any explicit ask from the wisher
|
|
57
|
+
|
|
58
|
+
if vision items are deferred, either implement them or flag as blocker
|
|
59
|
+
for the wisher to re-scope.
|
|
60
|
+
|
|
61
|
+
# 3. delete before optimize
|
|
10
62
|
- slug: has-questioned-deletables
|
|
11
63
|
say: |
|
|
12
64
|
try hard to delete before you optimize:
|
|
@@ -32,7 +84,7 @@ reviews:
|
|
|
32
84
|
|
|
33
85
|
delete and simplify before we proceed.
|
|
34
86
|
|
|
35
|
-
#
|
|
87
|
+
# 4. question assumptions
|
|
36
88
|
- slug: has-questioned-assumptions
|
|
37
89
|
say: |
|
|
38
90
|
a junior recently modified files in this repo. we need to carefully
|
|
@@ -49,7 +101,7 @@ reviews:
|
|
|
49
101
|
|
|
50
102
|
surface all technical assumptions and question each one.
|
|
51
103
|
|
|
52
|
-
#
|
|
104
|
+
# 5. yagni
|
|
53
105
|
- slug: has-pruned-yagni
|
|
54
106
|
say: |
|
|
55
107
|
review for extras that were not prescribed.
|
|
@@ -66,7 +118,7 @@ reviews:
|
|
|
66
118
|
if a component was not requested, delete it or flag it as an open question
|
|
67
119
|
for the wisher to decide.
|
|
68
120
|
|
|
69
|
-
#
|
|
121
|
+
# 6. backwards compat
|
|
70
122
|
- slug: has-pruned-backcompat
|
|
71
123
|
say: |
|
|
72
124
|
review for backwards compatibility that was not explicitly requested.
|
|
@@ -81,7 +133,7 @@ reviews:
|
|
|
81
133
|
2. eliminate it if not confirmed as required
|
|
82
134
|
3. make the open question very clearly reported
|
|
83
135
|
|
|
84
|
-
#
|
|
136
|
+
# 7. consistent mechanisms
|
|
85
137
|
- slug: has-consistent-mechanisms
|
|
86
138
|
say: |
|
|
87
139
|
review for new mechanisms that duplicate extant functionality.
|
|
@@ -100,7 +152,7 @@ reviews:
|
|
|
100
152
|
1. replace with the extant mechanism
|
|
101
153
|
2. or flag as an open question if unsure
|
|
102
154
|
|
|
103
|
-
#
|
|
155
|
+
# 8. consistent conventions
|
|
104
156
|
- slug: has-consistent-conventions
|
|
105
157
|
say: |
|
|
106
158
|
review for divergence from extant names and patterns.
|
|
@@ -120,7 +172,7 @@ reviews:
|
|
|
120
172
|
1. align with the extant convention
|
|
121
173
|
2. or flag as an open question if the extant convention seems wrong
|
|
122
174
|
|
|
123
|
-
#
|
|
175
|
+
# 9. behavior coverage
|
|
124
176
|
- slug: has-behavior-declaration-coverage
|
|
125
177
|
say: |
|
|
126
178
|
review for coverage of the behavior declaration.
|
|
@@ -137,7 +189,7 @@ reviews:
|
|
|
137
189
|
|
|
138
190
|
fix all gaps before you continue.
|
|
139
191
|
|
|
140
|
-
#
|
|
192
|
+
# 10. behavior adherance
|
|
141
193
|
- slug: has-behavior-declaration-adherance
|
|
142
194
|
say: |
|
|
143
195
|
review for adherance to the behavior declaration.
|
|
@@ -154,7 +206,7 @@ reviews:
|
|
|
154
206
|
|
|
155
207
|
fix all gaps before you continue.
|
|
156
208
|
|
|
157
|
-
#
|
|
209
|
+
# 11. standards adherance
|
|
158
210
|
- slug: has-role-standards-adherance
|
|
159
211
|
say: |
|
|
160
212
|
review for adherance to mechanic role standards.
|
|
@@ -174,7 +226,7 @@ reviews:
|
|
|
174
226
|
|
|
175
227
|
fix all gaps before you continue.
|
|
176
228
|
|
|
177
|
-
#
|
|
229
|
+
# 12. standards coverage
|
|
178
230
|
- slug: has-role-standards-coverage
|
|
179
231
|
say: |
|
|
180
232
|
review for coverage of mechanic role standards.
|
|
@@ -216,7 +216,7 @@ OUTPUT_FILE="$BEHAVIOR_DIR/7.1.review.behavior.per_${TARGETS_SLUG}.[feedback].[g
|
|
|
216
216
|
OUTPUT_FILE_REL=$(realpath --relative-to="$TARGET_DIR" "$OUTPUT_FILE")
|
|
217
217
|
|
|
218
218
|
# feedback template path (relative to TARGET_DIR where claude runs)
|
|
219
|
-
TEMPLATE_FILE="$BEHAVIOR_DIR
|
|
219
|
+
TEMPLATE_FILE="$BEHAVIOR_DIR/refs/template.[feedback].v1.[given].by_human.md"
|
|
220
220
|
TEMPLATE_FILE_REL=$(realpath --relative-to="$TARGET_DIR" "$TEMPLATE_FILE")
|
|
221
221
|
|
|
222
222
|
# build prompt (asks claude to output review to stdout, script writes to file)
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "rhachet-roles-bhuild",
|
|
3
3
|
"author": "ehmpathy",
|
|
4
4
|
"description": "roles for building resilient systems, via rhachet",
|
|
5
|
-
"version": "0.
|
|
5
|
+
"version": "0.15.1",
|
|
6
6
|
"repository": "ehmpathy/rhachet-roles-bhuild",
|
|
7
7
|
"homepage": "https://github.com/ehmpathy/rhachet-roles-bhuild",
|
|
8
8
|
"keywords": [
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
"fix": "npm run fix:format && npm run fix:lint",
|
|
36
36
|
"build:clean": "chmod -R u+w dist 2>/dev/null; rm -rf dist/",
|
|
37
37
|
"build:compile": "tsc -p ./tsconfig.build.json && tsc-alias -p ./tsconfig.build.json",
|
|
38
|
-
"build:complete:dist": "rsync -a --prune-empty-dirs --include='*/' --exclude='**/.route/**' --exclude='**/.scratch/**' --exclude='**/.behavior/**' --exclude='**/*.test.sh' --include='**/readme.md' --include='**/*.template.md' --include='**/briefs/**/*.md' --include='**/briefs/*.md' --include='**/skills/**/*.sh' --include='**/skills/*.sh' --include='**/skills/**/*.jsonc' --include='**/skills/*.jsonc' --include='**/inits/**/*.sh' --include='**/inits/*.sh' --include='**/inits/**/*.jsonc' --include='**/inits/*.jsonc' --include='**/templates/*.md' --include='**/templates/*.stone' --include='**/templates/*.guard' --include='**/templates/*.guard.*' --exclude='*' src/ dist/",
|
|
38
|
+
"build:complete:dist": "rsync -a --prune-empty-dirs --include='*/' --exclude='**/.route/**' --exclude='**/.scratch/**' --exclude='**/.behavior/**' --exclude='**/*.test.sh' --include='**/readme.md' --include='**/*.template.md' --include='**/briefs/**/*.md' --include='**/briefs/*.md' --include='**/skills/**/*.sh' --include='**/skills/*.sh' --include='**/skills/**/*.jsonc' --include='**/skills/*.jsonc' --include='**/inits/**/*.sh' --include='**/inits/*.sh' --include='**/inits/**/*.jsonc' --include='**/inits/*.jsonc' --include='**/templates/**/*.md' --include='**/templates/*.md' --include='**/templates/*.stone' --include='**/templates/*.guard' --include='**/templates/*.guard.*' --exclude='*' src/ dist/",
|
|
39
39
|
"build:complete:permissions": "find dist -name '*.sh' -type f -exec chmod +x {} \\;",
|
|
40
40
|
"build:complete:repo": "npx rhachet repo introspect",
|
|
41
41
|
"build:complete": "npm run build:complete:dist && npm run build:complete:permissions && npm run build:complete:repo",
|
|
@@ -59,7 +59,7 @@
|
|
|
59
59
|
"prepare:husky": "husky install && chmod ug+x .husky/*",
|
|
60
60
|
"prepare": "if [ -e .git ] && [ -z \"${CI:-}\" ]; then npm run prepare:husky && npm run prepare:rhachet; fi",
|
|
61
61
|
"test:format:biome": "biome format",
|
|
62
|
-
"prepare:rhachet": "npm run build && rhachet init --hooks --roles behaver driver
|
|
62
|
+
"prepare:rhachet": "npm run build && rhachet init --hooks --roles mechanic behaver driver reviewer librarian ergonomist architect reflector dreamer dispatcher"
|
|
63
63
|
},
|
|
64
64
|
"dependencies": {
|
|
65
65
|
"domain-objects": "0.31.9",
|
|
@@ -89,11 +89,11 @@
|
|
|
89
89
|
"esbuild-register": "3.6.0",
|
|
90
90
|
"husky": "8.0.3",
|
|
91
91
|
"jest": "30.2.0",
|
|
92
|
-
"rhachet": "1.
|
|
92
|
+
"rhachet": "1.39.7",
|
|
93
93
|
"rhachet-brains-anthropic": "0.4.0",
|
|
94
|
-
"rhachet-roles-bhrain": "0.23.
|
|
94
|
+
"rhachet-roles-bhrain": "0.23.10",
|
|
95
95
|
"rhachet-roles-bhuild": "link:.",
|
|
96
|
-
"rhachet-roles-ehmpathy": "1.34.
|
|
96
|
+
"rhachet-roles-ehmpathy": "1.34.19",
|
|
97
97
|
"tsc-alias": "1.8.10",
|
|
98
98
|
"tsx": "4.20.6",
|
|
99
99
|
"typescript": "5.4.5",
|