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.
@@ -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, '.ref.[feedback].v1.[given].by_human.md');
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,wCAAwC,CAAC,CAAC;IAC9D,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"}
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 exists)
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 exists)
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 = (0, fs_1.readdirSync)(TEMPLATES_DIR);
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
- // findsert: skip if exists
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 = guard files come in .light and .heavy variants; this selects
54
- * the appropriate variant and maps it to the base filename
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
- // handle guard templates with level suffix - strip suffix for target name
70
- if (templateName.endsWith(guardLevelChosenSuffix)) {
71
- const targetName = templateName.slice(0, -guardLevelChosenSuffix.length);
72
- result.push({ templateName, targetName });
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
- // regular templates (no suffix) - use as-is
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,+BAA4B;AAE5B,MAAM,aAAa,GAAG,IAAA,WAAI,EAAC,SAAS,EAAE,WAAW,CAAC,CAAC;AAEnD;;;;;;;;;;;GAWG;AACI,MAAM,eAAe,GAAG,CAAC,KAI/B,EAAyC,EAAE;IAC1C,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,IAAI,OAAO,CAAC;IAE1C,yCAAyC;IACzC,IAAA,cAAS,EAAC,KAAK,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAElD,0BAA0B;IAC1B,MAAM,aAAa,GAAG,IAAA,gBAAW,EAAC,aAAa,CAAC,CAAC;IAEjD,uCAAuC;IACvC,MAAM,kBAAkB,GAAG,yBAAyB,CAAC;QACnD,aAAa;QACb,UAAU;KACX,CAAC,CAAC;IAEH,KAAK,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,IAAI,kBAAkB,EAAE,CAAC;QAC9D,MAAM,YAAY,GAAG,IAAA,WAAI,EAAC,aAAa,EAAE,YAAY,CAAC,CAAC;QACvD,MAAM,UAAU,GAAG,IAAA,WAAI,EAAC,KAAK,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QAEvD,2BAA2B;QAC3B,IAAI,IAAA,eAAU,EAAC,UAAU,CAAC,EAAE,CAAC;YAC3B,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACtB,SAAS;QACX,CAAC;QAED,qCAAqC;QACrC,IAAI,OAAO,GAAG,IAAA,iBAAY,EAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QAClD,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,qBAAqB,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;QAEvE,sBAAsB;QACtB,IAAA,kBAAa,EAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACnC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC3B,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC3B,CAAC,CAAC;AAzCW,QAAA,eAAe,mBAyC1B;AAEF;;;;;GAKG;AACH,MAAM,yBAAyB,GAAG,CAAC,KAGlC,EAAuD,EAAE;IACxD,MAAM,MAAM,GAAwD,EAAE,CAAC;IACvE,MAAM,sBAAsB,GAAG,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;IAEtD,KAAK,MAAM,YAAY,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;QAC/C,mDAAmD;QACnD,MAAM,cAAc,GAAG,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACvD,MAAM,cAAc,GAAG,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACvD,MAAM,oBAAoB,GAAG,cAAc,IAAI,cAAc,CAAC;QAE9D,2DAA2D;QAC3D,IACE,oBAAoB;YACpB,CAAC,YAAY,CAAC,QAAQ,CAAC,sBAAsB,CAAC,EAC9C,CAAC;YACD,SAAS;QACX,CAAC;QAED,0EAA0E;QAC1E,IAAI,YAAY,CAAC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,CAAC;YAClD,MAAM,UAAU,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;YACzE,MAAM,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC,CAAC;YAC1C,SAAS;QACX,CAAC;QAED,4CAA4C;QAC5C,MAAM,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC"}
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.
@@ -6,7 +6,59 @@ protect:
6
6
 
7
7
  reviews:
8
8
  self:
9
- # 1. delete before optimize
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
- # 2. question assumptions
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
- # 3. drill with 5 whys
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
- # 4. pre-mortem
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
- # 5. inverse
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
- # 7. devil's advocate
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
- # 8. minimalism - yagni
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
- # 9. minimalism - backwards compat
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
- # 10. consistency - mechanisms
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
- # 11. consistency - conventions
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
- # 12. behavior declaration - coverage
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
- # 13. behavior declaration - adherance
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
- # 14. role standards - adherance
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
- # 15. role standards - coverage
281
+ # 16. standards coverage
230
282
  - slug: has-role-standards-coverage
231
283
  say: |
232
284
  review for coverage of mechanic role standards.
@@ -6,7 +6,59 @@ protect:
6
6
 
7
7
  reviews:
8
8
  self:
9
- # 1. delete before optimize
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
- # 2. question assumptions
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
- # 3. minimalism - yagni
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
- # 4. minimalism - backwards compat
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
- # 5. consistency - mechanisms
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
- # 6. consistency - conventions
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
- # 7. behavior declaration - coverage
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
- # 8. behavior declaration - adherance
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
- # 9. role standards - adherance
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
- # 10. role standards - coverage
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/.ref.[feedback].v1.[given].by_human.md"
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.14.6",
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 mechanic reviewer librarian"
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.38.1",
92
+ "rhachet": "1.39.7",
93
93
  "rhachet-brains-anthropic": "0.4.0",
94
- "rhachet-roles-bhrain": "0.23.9",
94
+ "rhachet-roles-bhrain": "0.23.10",
95
95
  "rhachet-roles-bhuild": "link:.",
96
- "rhachet-roles-ehmpathy": "1.34.9",
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",