rhachet-roles-bhuild 0.6.0 → 0.6.2
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/bind.behavior.d.ts +2 -11
- package/dist/contract/cli/bind.behavior.js +2 -11
- package/dist/contract/cli/bind.behavior.js.map +1 -1
- package/dist/contract/cli/boot.behavior.d.ts +2 -5
- package/dist/contract/cli/boot.behavior.js +2 -5
- package/dist/contract/cli/boot.behavior.js.map +1 -1
- package/dist/contract/cli/decompose.behavior.d.ts +2 -14
- package/dist/contract/cli/decompose.behavior.js +2 -14
- package/dist/contract/cli/decompose.behavior.js.map +1 -1
- package/dist/contract/cli/init.behavior.d.ts +2 -22
- package/dist/contract/cli/init.behavior.js +2 -22
- package/dist/contract/cli/init.behavior.js.map +1 -1
- package/dist/contract/cli/review.behavior.d.ts +2 -11
- package/dist/contract/cli/review.behavior.js +2 -11
- package/dist/contract/cli/review.behavior.js.map +1 -1
- package/dist/domain.operations/behavior/init/templates/3.1.research.access._.v1.src +20 -0
- package/dist/domain.operations/behavior/init/templates/3.1.research.patterns._.code.prod.v1.src +30 -0
- package/dist/domain.operations/behavior/init/templates/3.1.research.patterns._.code.test.v1.src +30 -0
- package/dist/domain.operations/behavior/init/templates/3.1.research.templates._.v1.src +2 -2
- package/dist/domain.operations/behavior/init/templates/3.2.distill.domain._.v1.src +3 -0
- package/dist/domain.operations/behavior/init/templates/3.3.blueprint.v1.src +3 -0
- package/dist/domain.roles/behaver/inits/.test/assets/repo-localgrain-behaver-hooks/readme.md +1 -0
- package/dist/domain.roles/behaver/inits/.test/assets/repo-localgrain-no-hooks/readme.md +1 -0
- package/dist/domain.roles/behaver/inits/.test/assets/repo-localgrain-other-hooks/readme.md +1 -0
- package/dist/domain.roles/behaver/inits/init.claude.hooks.cleanup.localgrain.sh +111 -0
- package/dist/domain.roles/behaver/inits/init.claude.hooks.cleanup.repograin.sh +171 -0
- package/dist/domain.roles/behaver/inits/init.claude.hooks.cleanup.sh +25 -0
- package/dist/domain.roles/behaver/inits/init.claude.hooks.findsert.sh +4 -4
- package/dist/domain.roles/behaver/inits/init.claude.hooks.sh +56 -7
- package/dist/domain.roles/behaver/skills/bind.behavior.sh +16 -2
- package/dist/domain.roles/behaver/skills/init.behavior.sh +24 -1
- package/dist/domain.roles/decomposer/skills/decompose.behavior.sh +15 -1
- package/dist/domain.roles/decomposer/skills/review.behavior.sh +12 -1
- package/package.json +2 -2
|
@@ -1,16 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* .what = bind, unbind, or query branch-to-behavior bound
|
|
3
|
+
* .how = TypeScript implementation for bind.behavior.sh skill
|
|
3
4
|
*
|
|
4
|
-
* .
|
|
5
|
-
*
|
|
6
|
-
* usage:
|
|
7
|
-
* bind.behavior.sh set --behavior <name> bind current branch
|
|
8
|
-
* bind.behavior.sh del unbind current branch
|
|
9
|
-
* bind.behavior.sh get query current bound
|
|
10
|
-
*
|
|
11
|
-
* guarantee:
|
|
12
|
-
* - fail-fast if behavior not found or ambiguous
|
|
13
|
-
* - fail-fast if set to different behavior (suggest del or worktree)
|
|
14
|
-
* - idempotent: set to same behavior succeeds, del when unbound succeeds
|
|
5
|
+
* see src/domain.roles/behaver/skills/bind.behavior.sh for full documentation
|
|
15
6
|
*/
|
|
16
7
|
export declare const bindBehavior: () => void;
|
|
@@ -1,18 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
3
|
* .what = bind, unbind, or query branch-to-behavior bound
|
|
4
|
+
* .how = TypeScript implementation for bind.behavior.sh skill
|
|
4
5
|
*
|
|
5
|
-
* .
|
|
6
|
-
*
|
|
7
|
-
* usage:
|
|
8
|
-
* bind.behavior.sh set --behavior <name> bind current branch
|
|
9
|
-
* bind.behavior.sh del unbind current branch
|
|
10
|
-
* bind.behavior.sh get query current bound
|
|
11
|
-
*
|
|
12
|
-
* guarantee:
|
|
13
|
-
* - fail-fast if behavior not found or ambiguous
|
|
14
|
-
* - fail-fast if set to different behavior (suggest del or worktree)
|
|
15
|
-
* - idempotent: set to same behavior succeeds, del when unbound succeeds
|
|
6
|
+
* see src/domain.roles/behaver/skills/bind.behavior.sh for full documentation
|
|
16
7
|
*/
|
|
17
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
9
|
exports.bindBehavior = void 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bind.behavior.js","sourceRoot":"","sources":["../../../src/contract/cli/bind.behavior.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"bind.behavior.js","sourceRoot":"","sources":["../../../src/contract/cli/bind.behavior.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* .what = output bound behavior context for session start
|
|
3
|
-
* .
|
|
3
|
+
* .how = TypeScript implementation for sessionstart.boot-behavior hook
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
* ✔ exits 0 silently if branch not bound (unbound = normal work)
|
|
7
|
-
* ✔ exits 0 with warning if multiple binds (don't block session)
|
|
8
|
-
* ✔ never blocks session start (exit 0 always)
|
|
5
|
+
* see src/domain.roles/behaver/inits/claude.hooks/sessionstart.boot-behavior.sh for full documentation
|
|
9
6
|
*/
|
|
10
7
|
export declare const bootBehavior: () => void;
|
|
@@ -1,12 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
3
|
* .what = output bound behavior context for session start
|
|
4
|
-
* .
|
|
4
|
+
* .how = TypeScript implementation for sessionstart.boot-behavior hook
|
|
5
5
|
*
|
|
6
|
-
*
|
|
7
|
-
* ✔ exits 0 silently if branch not bound (unbound = normal work)
|
|
8
|
-
* ✔ exits 0 with warning if multiple binds (don't block session)
|
|
9
|
-
* ✔ never blocks session start (exit 0 always)
|
|
6
|
+
* see src/domain.roles/behaver/inits/claude.hooks/sessionstart.boot-behavior.sh for full documentation
|
|
10
7
|
*/
|
|
11
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
9
|
exports.bootBehavior = void 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"boot.behavior.js","sourceRoot":"","sources":["../../../src/contract/cli/boot.behavior.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"boot.behavior.js","sourceRoot":"","sources":["../../../src/contract/cli/boot.behavior.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,19 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* .what = decompose a behavior into focused sub-behaviors
|
|
3
|
+
* .how = TypeScript implementation for decompose.behavior.sh skill
|
|
3
4
|
*
|
|
4
|
-
* .
|
|
5
|
-
* focused sub-behaviors that fit within context window limits
|
|
6
|
-
* and respect bounded context boundaries
|
|
7
|
-
*
|
|
8
|
-
* usage:
|
|
9
|
-
* npx tsx decompose.behavior.ts --of <behavior-name> --mode plan [--dir <path>]
|
|
10
|
-
* npx tsx decompose.behavior.ts --of <behavior-name> --mode apply --plan <plan-file> [--dir <path>]
|
|
11
|
-
*
|
|
12
|
-
* guarantee:
|
|
13
|
-
* - fail-fast if behavior not found or ambiguous
|
|
14
|
-
* - fail-fast if behavior has no criteria
|
|
15
|
-
* - fail-fast if --mode apply without --plan
|
|
16
|
-
* - fail-fast if behavior already decomposed (z.decomposed.md present)
|
|
17
|
-
* - idempotent: safe to rerun
|
|
5
|
+
* see src/domain.roles/decomposer/skills/decompose.behavior.sh for full documentation
|
|
18
6
|
*/
|
|
19
7
|
export declare const decomposeBehavior: () => Promise<void>;
|
|
@@ -1,21 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
3
|
* .what = decompose a behavior into focused sub-behaviors
|
|
4
|
+
* .how = TypeScript implementation for decompose.behavior.sh skill
|
|
4
5
|
*
|
|
5
|
-
* .
|
|
6
|
-
* focused sub-behaviors that fit within context window limits
|
|
7
|
-
* and respect bounded context boundaries
|
|
8
|
-
*
|
|
9
|
-
* usage:
|
|
10
|
-
* npx tsx decompose.behavior.ts --of <behavior-name> --mode plan [--dir <path>]
|
|
11
|
-
* npx tsx decompose.behavior.ts --of <behavior-name> --mode apply --plan <plan-file> [--dir <path>]
|
|
12
|
-
*
|
|
13
|
-
* guarantee:
|
|
14
|
-
* - fail-fast if behavior not found or ambiguous
|
|
15
|
-
* - fail-fast if behavior has no criteria
|
|
16
|
-
* - fail-fast if --mode apply without --plan
|
|
17
|
-
* - fail-fast if behavior already decomposed (z.decomposed.md present)
|
|
18
|
-
* - idempotent: safe to rerun
|
|
6
|
+
* see src/domain.roles/decomposer/skills/decompose.behavior.sh for full documentation
|
|
19
7
|
*/
|
|
20
8
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
21
9
|
if (k2 === undefined) k2 = k;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decompose.behavior.js","sourceRoot":"","sources":["../../../src/contract/cli/decompose.behavior.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"decompose.behavior.js","sourceRoot":"","sources":["../../../src/contract/cli/decompose.behavior.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,27 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* .what = initialize a .behavior directory for bhuild thoughtroute
|
|
3
|
+
* .how = TypeScript implementation for init.behavior.sh skill
|
|
3
4
|
*
|
|
4
|
-
* .
|
|
5
|
-
* by creating a structured directory with:
|
|
6
|
-
* - wish definition
|
|
7
|
-
* - vision statement
|
|
8
|
-
* - blackbox criteria (user-facing behavioral requirements)
|
|
9
|
-
* - blueprint criteria (implementation requirements)
|
|
10
|
-
* - research prompts
|
|
11
|
-
* - distillation prompts
|
|
12
|
-
* - blueprint prompts
|
|
13
|
-
* - roadmap prompts
|
|
14
|
-
* - execution prompts
|
|
15
|
-
* - feedback template
|
|
16
|
-
*
|
|
17
|
-
* usage:
|
|
18
|
-
* npx tsx src/contract/cli/init.behavior.ts --name <behaviorname> [--dir <directory>]
|
|
19
|
-
*
|
|
20
|
-
* guarantee:
|
|
21
|
-
* - creates .behavior/ if not found
|
|
22
|
-
* - creates versioned behavior directory
|
|
23
|
-
* - findserts all thoughtroute files (creates if not found, skips if exists)
|
|
24
|
-
* - idempotent: safe to rerun
|
|
25
|
-
* - fail-fast on errors
|
|
5
|
+
* see src/domain.roles/behaver/skills/init.behavior.sh for full documentation
|
|
26
6
|
*/
|
|
27
7
|
export declare const initBehavior: () => void;
|
|
@@ -1,29 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
3
|
* .what = initialize a .behavior directory for bhuild thoughtroute
|
|
4
|
+
* .how = TypeScript implementation for init.behavior.sh skill
|
|
4
5
|
*
|
|
5
|
-
* .
|
|
6
|
-
* by creating a structured directory with:
|
|
7
|
-
* - wish definition
|
|
8
|
-
* - vision statement
|
|
9
|
-
* - blackbox criteria (user-facing behavioral requirements)
|
|
10
|
-
* - blueprint criteria (implementation requirements)
|
|
11
|
-
* - research prompts
|
|
12
|
-
* - distillation prompts
|
|
13
|
-
* - blueprint prompts
|
|
14
|
-
* - roadmap prompts
|
|
15
|
-
* - execution prompts
|
|
16
|
-
* - feedback template
|
|
17
|
-
*
|
|
18
|
-
* usage:
|
|
19
|
-
* npx tsx src/contract/cli/init.behavior.ts --name <behaviorname> [--dir <directory>]
|
|
20
|
-
*
|
|
21
|
-
* guarantee:
|
|
22
|
-
* - creates .behavior/ if not found
|
|
23
|
-
* - creates versioned behavior directory
|
|
24
|
-
* - findserts all thoughtroute files (creates if not found, skips if exists)
|
|
25
|
-
* - idempotent: safe to rerun
|
|
26
|
-
* - fail-fast on errors
|
|
6
|
+
* see src/domain.roles/behaver/skills/init.behavior.sh for full documentation
|
|
27
7
|
*/
|
|
28
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
9
|
exports.initBehavior = void 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.behavior.js","sourceRoot":"","sources":["../../../src/contract/cli/init.behavior.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"init.behavior.js","sourceRoot":"","sources":["../../../src/contract/cli/init.behavior.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* .what = review behavior for decomposition need
|
|
3
|
+
* .how = TypeScript implementation for decomposer/review.behavior.sh skill
|
|
3
4
|
*
|
|
4
|
-
* .
|
|
5
|
-
* for reliable execution, by measurement of context pressure
|
|
6
|
-
* and domain breadth, with recommendation to decompose
|
|
7
|
-
*
|
|
8
|
-
* usage:
|
|
9
|
-
* npx tsx src/contract/cli/review.behavior.ts --of <behavior-name> [--dir <path>]
|
|
10
|
-
*
|
|
11
|
-
* guarantee:
|
|
12
|
-
* - fail-fast if behavior not found or ambiguous
|
|
13
|
-
* - fail-fast if behavior has no criteria (required for analysis)
|
|
14
|
-
* - idempotent: safe to rerun
|
|
5
|
+
* see src/domain.roles/decomposer/skills/review.behavior.sh for full documentation
|
|
15
6
|
*/
|
|
16
7
|
export declare const reviewBehavior: () => Promise<void>;
|
|
@@ -1,18 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
3
|
* .what = review behavior for decomposition need
|
|
4
|
+
* .how = TypeScript implementation for decomposer/review.behavior.sh skill
|
|
4
5
|
*
|
|
5
|
-
* .
|
|
6
|
-
* for reliable execution, by measurement of context pressure
|
|
7
|
-
* and domain breadth, with recommendation to decompose
|
|
8
|
-
*
|
|
9
|
-
* usage:
|
|
10
|
-
* npx tsx src/contract/cli/review.behavior.ts --of <behavior-name> [--dir <path>]
|
|
11
|
-
*
|
|
12
|
-
* guarantee:
|
|
13
|
-
* - fail-fast if behavior not found or ambiguous
|
|
14
|
-
* - fail-fast if behavior has no criteria (required for analysis)
|
|
15
|
-
* - idempotent: safe to rerun
|
|
6
|
+
* see src/domain.roles/decomposer/skills/review.behavior.sh for full documentation
|
|
16
7
|
*/
|
|
17
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
9
|
exports.reviewBehavior = void 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"review.behavior.js","sourceRoot":"","sources":["../../../src/contract/cli/review.behavior.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"review.behavior.js","sourceRoot":"","sources":["../../../src/contract/cli/review.behavior.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
research the remote access required in order to fulfill
|
|
2
|
+
- this wish $BEHAVIOR_DIR_REL/0.wish.md
|
|
3
|
+
- this vision $BEHAVIOR_DIR_REL/1.vision.md (if declared)
|
|
4
|
+
- this criteria $BEHAVIOR_DIR_REL/2.criteria.md (if declared)
|
|
5
|
+
|
|
6
|
+
specifically
|
|
7
|
+
- what are the remote repositories (databases, apis, filesystems, etc) that we need to access?
|
|
8
|
+
- what are their contracts? (and via what interfaces? sdks? apis? etc)
|
|
9
|
+
- what are the best practices for how to access them? (industry wide? within this repo?)
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
enumerate each lesson
|
|
14
|
+
- cite every claim
|
|
15
|
+
- number each citation
|
|
16
|
+
- clone exact quotes from each citation
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
emit into $BEHAVIOR_DIR_REL/3.1.research.access._.v1.i1.md
|
package/dist/domain.operations/behavior/init/templates/3.1.research.patterns._.code.prod.v1.src
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
research the prod codepath patterns available in order to fulfill
|
|
2
|
+
- this wish $BEHAVIOR_DIR_REL/0.wish.md
|
|
3
|
+
- this vision $BEHAVIOR_DIR_REL/1.vision.md (if declared)
|
|
4
|
+
- this criteria $BEHAVIOR_DIR_REL/2.criteria.md (if declared)
|
|
5
|
+
|
|
6
|
+
specifically
|
|
7
|
+
- what are the current key patterns in this repo, that are relevant?
|
|
8
|
+
- how do they relate to the wish?
|
|
9
|
+
- which ones will we reuse? which ones will we extend? which ones will we replace?
|
|
10
|
+
- mark with
|
|
11
|
+
- [RESUSE]
|
|
12
|
+
- [EXTEND]
|
|
13
|
+
- [REPLACE]
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
focus exclusively on the production codepaths. ignore test codepaths
|
|
18
|
+
|
|
19
|
+
note, this includes any infra that production codepaths depend on
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
enumerate each pattern
|
|
24
|
+
- cite every claim
|
|
25
|
+
- number each citation
|
|
26
|
+
- clone exact quotes from each citation
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
emit into $BEHAVIOR_DIR_REL/3.1.research.patterns._.code.prod.v1.i1.md
|
package/dist/domain.operations/behavior/init/templates/3.1.research.patterns._.code.test.v1.src
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
research the test codepath patterns available in order to fulfill
|
|
2
|
+
- this wish $BEHAVIOR_DIR_REL/0.wish.md
|
|
3
|
+
- this vision $BEHAVIOR_DIR_REL/1.vision.md (if declared)
|
|
4
|
+
- this criteria $BEHAVIOR_DIR_REL/2.criteria.md (if declared)
|
|
5
|
+
|
|
6
|
+
specifically
|
|
7
|
+
- what are the current key patterns in this repo, that are relevant?
|
|
8
|
+
- how do they relate to the wish?
|
|
9
|
+
- which ones will we reuse? which ones will we extend? which ones will we replace?
|
|
10
|
+
- mark with
|
|
11
|
+
- [RESUSE]
|
|
12
|
+
- [EXTEND]
|
|
13
|
+
- [REPLACE]
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
focus exclusively on the test codepath patterns. ignore production codepath patterns
|
|
18
|
+
|
|
19
|
+
note, this includes any infra that test codepaths depend on
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
enumerate each pattern
|
|
24
|
+
- cite every claim
|
|
25
|
+
- number each citation
|
|
26
|
+
- clone exact quotes from each citation
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
emit into $BEHAVIOR_DIR_REL/3.1.research.patterns._.code.test.v1.i1.md
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
research the
|
|
1
|
+
research the templates available in order to fulfill
|
|
2
2
|
- this wish $BEHAVIOR_DIR_REL/0.wish.md
|
|
3
3
|
- this vision $BEHAVIOR_DIR_REL/1.vision.md (if declared)
|
|
4
4
|
- this criteria $BEHAVIOR_DIR_REL/2.criteria.md (if declared)
|
|
@@ -9,7 +9,7 @@ specifically
|
|
|
9
9
|
|
|
10
10
|
---
|
|
11
11
|
|
|
12
|
-
use web search or the gh api to enumerate the contents of the
|
|
12
|
+
use web search or the gh api to enumerate the contents of the templates
|
|
13
13
|
- cite every claim
|
|
14
14
|
- number each citation
|
|
15
15
|
- clone exact quotes from each citation
|
|
@@ -4,8 +4,11 @@ distill the declastruct domain.objects and domain.operations that would
|
|
|
4
4
|
- this vision $BEHAVIOR_DIR_REL/1.vision.md (if declared)
|
|
5
5
|
- this criteria $BEHAVIOR_DIR_REL/2.criteria.blackbox.md (if declared)
|
|
6
6
|
- given the research declared here
|
|
7
|
+
- $BEHAVIOR_DIR_REL/3.1.research.access._.v1.i1.md (if declared)
|
|
7
8
|
- $BEHAVIOR_DIR_REL/3.1.research.claims._.v1.i1.md (if declared)
|
|
8
9
|
- $BEHAVIOR_DIR_REL/3.1.research.domain._.v1.i1.md (if declared)
|
|
10
|
+
- $BEHAVIOR_DIR_REL/3.1.research.patterns._.code.prod.v1.i1.md (if declared)
|
|
11
|
+
- $BEHAVIOR_DIR_REL/3.1.research.patterns._.code.test.v1.i1.md (if declared)
|
|
9
12
|
- $BEHAVIOR_DIR_REL/3.1.research.templates._.v1.i1.md (if declared)
|
|
10
13
|
|
|
11
14
|
procedure
|
|
@@ -21,8 +21,11 @@ reference the below for full context
|
|
|
21
21
|
- $BEHAVIOR_DIR_REL/1.vision.md (if declared)
|
|
22
22
|
- $BEHAVIOR_DIR_REL/2.criteria.blackbox.md (if declared)
|
|
23
23
|
- $BEHAVIOR_DIR_REL/2.criteria.blueprint.md (if declared)
|
|
24
|
+
- $BEHAVIOR_DIR_REL/3.1.research.access._.v1.i1.md (if declared)
|
|
24
25
|
- $BEHAVIOR_DIR_REL/3.1.research.claims._.v1.i1.md (if declared)
|
|
25
26
|
- $BEHAVIOR_DIR_REL/3.1.research.domain._.v1.i1.md (if declared)
|
|
27
|
+
- $BEHAVIOR_DIR_REL/3.1.research.patterns._.code.prod.v1.i1.md (if declared)
|
|
28
|
+
- $BEHAVIOR_DIR_REL/3.1.research.patterns._.code.test.v1.i1.md (if declared)
|
|
26
29
|
- $BEHAVIOR_DIR_REL/3.1.research.templates._.v1.i1.md (if declared)
|
|
27
30
|
- $BEHAVIOR_DIR_REL/3.2.distill.domain._.v1.i1.md (if declared)
|
|
28
31
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# test
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# test
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# test
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
######################################################################
|
|
3
|
+
# .what = cleanup role=behaver hooks from .claude/settings.local.json
|
|
4
|
+
#
|
|
5
|
+
# .why = hooks that were previously in settings.local.json need to be
|
|
6
|
+
# removed now that they've moved to settings.json.
|
|
7
|
+
#
|
|
8
|
+
# .how = finds hooks with role=behaver in command or author field
|
|
9
|
+
# and removes them from settings.local.json.
|
|
10
|
+
#
|
|
11
|
+
# usage:
|
|
12
|
+
# init.claude.hooks.cleanup.localgrain.sh
|
|
13
|
+
#
|
|
14
|
+
# guarantee:
|
|
15
|
+
# ✔ removes hooks with role=behaver in command
|
|
16
|
+
# ✔ removes hooks with author "repo=bhuild/role=behaver"
|
|
17
|
+
# ✔ preserves all other hooks and settings
|
|
18
|
+
# ✔ idempotent: safe to rerun
|
|
19
|
+
# ✔ no-op if no behaver hooks found
|
|
20
|
+
######################################################################
|
|
21
|
+
|
|
22
|
+
set -euo pipefail
|
|
23
|
+
|
|
24
|
+
# fail loud: print what failed
|
|
25
|
+
trap 'echo "❌ init.claude.hooks.cleanup.localgrain.sh failed at line $LINENO" >&2' ERR
|
|
26
|
+
|
|
27
|
+
PROJECT_ROOT="$PWD"
|
|
28
|
+
SETTINGS_LOCAL_FILE="$PROJECT_ROOT/.claude/settings.local.json"
|
|
29
|
+
|
|
30
|
+
# skip if no settings.local.json
|
|
31
|
+
if [[ ! -f "$SETTINGS_LOCAL_FILE" ]]; then
|
|
32
|
+
exit 0
|
|
33
|
+
fi
|
|
34
|
+
|
|
35
|
+
# check if settings.local.json has any hooks
|
|
36
|
+
if ! jq -e '.hooks // empty' "$SETTINGS_LOCAL_FILE" >/dev/null 2>&1; then
|
|
37
|
+
exit 0
|
|
38
|
+
fi
|
|
39
|
+
|
|
40
|
+
# find behaver hooks in settings.local.json (by command pattern or author field)
|
|
41
|
+
BEHAVER_HOOKS=$(jq -r '
|
|
42
|
+
.hooks // {} | to_entries[] |
|
|
43
|
+
.value[] | .hooks[] |
|
|
44
|
+
select(
|
|
45
|
+
((.command // "") | (contains("role=behaver") or contains("--role behaver")))
|
|
46
|
+
or
|
|
47
|
+
((.author // "") | contains("repo=bhuild/role=behaver"))
|
|
48
|
+
) |
|
|
49
|
+
.command // .author
|
|
50
|
+
' "$SETTINGS_LOCAL_FILE")
|
|
51
|
+
|
|
52
|
+
# skip if no behaver hooks found
|
|
53
|
+
if [[ -z "$BEHAVER_HOOKS" ]]; then
|
|
54
|
+
echo "👌 no behaver hooks in settings.local.json"
|
|
55
|
+
exit 0
|
|
56
|
+
fi
|
|
57
|
+
|
|
58
|
+
# build jq filter to remove behaver hooks
|
|
59
|
+
jq '
|
|
60
|
+
.hooks |= (
|
|
61
|
+
if . then
|
|
62
|
+
to_entries | map(
|
|
63
|
+
.value |= map(
|
|
64
|
+
.hooks |= map(select(
|
|
65
|
+
# keep hooks that do NOT match behaver patterns
|
|
66
|
+
((.command // "") | (contains("role=behaver") or contains("--role behaver")) | not)
|
|
67
|
+
and
|
|
68
|
+
((.author // "") | contains("repo=bhuild/role=behaver") | not)
|
|
69
|
+
))
|
|
70
|
+
)
|
|
71
|
+
# Remove matchers with empty hooks arrays
|
|
72
|
+
| .value |= map(select(.hooks | length > 0))
|
|
73
|
+
)
|
|
74
|
+
# Remove hook types with empty arrays
|
|
75
|
+
| map(select(.value | length > 0))
|
|
76
|
+
| from_entries
|
|
77
|
+
else
|
|
78
|
+
.
|
|
79
|
+
end
|
|
80
|
+
)
|
|
81
|
+
# Remove hooks key entirely if empty
|
|
82
|
+
| if .hooks == {} then del(.hooks) else . end
|
|
83
|
+
' "$SETTINGS_LOCAL_FILE" > "$SETTINGS_LOCAL_FILE.tmp"
|
|
84
|
+
|
|
85
|
+
# check if any changes were made
|
|
86
|
+
if diff -q "$SETTINGS_LOCAL_FILE" "$SETTINGS_LOCAL_FILE.tmp" >/dev/null 2>&1; then
|
|
87
|
+
rm "$SETTINGS_LOCAL_FILE.tmp"
|
|
88
|
+
echo "👌 no behaver hooks in settings.local.json"
|
|
89
|
+
exit 0
|
|
90
|
+
fi
|
|
91
|
+
|
|
92
|
+
# report what is removed
|
|
93
|
+
echo "🧹 remove role=behaver hooks from settings.local.json"
|
|
94
|
+
BEHAVER_ARRAY=()
|
|
95
|
+
while IFS= read -r item; do
|
|
96
|
+
[[ -n "$item" ]] && BEHAVER_ARRAY+=("$item")
|
|
97
|
+
done <<< "$BEHAVER_HOOKS"
|
|
98
|
+
|
|
99
|
+
TOTAL=${#BEHAVER_ARRAY[@]}
|
|
100
|
+
for i in "${!BEHAVER_ARRAY[@]}"; do
|
|
101
|
+
item="${BEHAVER_ARRAY[$i]}"
|
|
102
|
+
if [[ $((i + 1)) -eq $TOTAL ]]; then
|
|
103
|
+
echo " └── $item"
|
|
104
|
+
else
|
|
105
|
+
echo " ├── $item"
|
|
106
|
+
fi
|
|
107
|
+
done
|
|
108
|
+
echo ""
|
|
109
|
+
|
|
110
|
+
# atomic replace
|
|
111
|
+
mv "$SETTINGS_LOCAL_FILE.tmp" "$SETTINGS_LOCAL_FILE"
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
######################################################################
|
|
3
|
+
# .what = cleanup stale hooks from .claude/settings.json
|
|
4
|
+
#
|
|
5
|
+
# .why = when hook scripts are removed or paths change, the
|
|
6
|
+
# entries in .claude/settings.json that reference them
|
|
7
|
+
# become stale and should be cleaned up.
|
|
8
|
+
#
|
|
9
|
+
# .how = reads settings.json, finds hooks that reference files
|
|
10
|
+
# in claude.hooks/, checks if those files exist, and removes
|
|
11
|
+
# any hooks whose scripts no longer exist or that match
|
|
12
|
+
# deprecated command patterns.
|
|
13
|
+
#
|
|
14
|
+
# usage:
|
|
15
|
+
# init.claude.hooks.cleanup.repograin.sh
|
|
16
|
+
#
|
|
17
|
+
# guarantee:
|
|
18
|
+
# ✔ removes hooks that reference absent claude.hooks/ files
|
|
19
|
+
# ✔ removes hooks that match deprecated command patterns
|
|
20
|
+
# ✔ preserves all other hooks and settings
|
|
21
|
+
# ✔ idempotent: safe to rerun
|
|
22
|
+
# ✔ no-op if no stale hooks found
|
|
23
|
+
######################################################################
|
|
24
|
+
|
|
25
|
+
set -euo pipefail
|
|
26
|
+
|
|
27
|
+
# fail loud: print what failed
|
|
28
|
+
trap 'echo "❌ init.claude.hooks.cleanup.repograin.sh failed at line $LINENO" >&2' ERR
|
|
29
|
+
|
|
30
|
+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
31
|
+
HOOKS_DIR="$SCRIPT_DIR/claude.hooks"
|
|
32
|
+
|
|
33
|
+
PROJECT_ROOT="$PWD"
|
|
34
|
+
SETTINGS_FILE="$PROJECT_ROOT/.claude/settings.json"
|
|
35
|
+
|
|
36
|
+
# deprecated command patterns to remove (regex)
|
|
37
|
+
DEPRECATED_PATTERNS=(
|
|
38
|
+
# old hardcoded absolute paths - match absolute paths that start with /home/ or /Users/
|
|
39
|
+
# (not portable across machines, and different from relative .agent/ paths)
|
|
40
|
+
"^/(home|Users)/.*repo=bhuild/"
|
|
41
|
+
# npx with repo bhuild (use ./node_modules/.bin/rhachet instead)
|
|
42
|
+
"npx rhachet.*--repo bhuild"
|
|
43
|
+
# old rhachet roles init syntax (use rhachet run --init instead)
|
|
44
|
+
"rhachet roles init.*--command claude\.hooks/"
|
|
45
|
+
# direct .agent/ paths for hooks (was workaround for slow rhachet, now use run --init)
|
|
46
|
+
"\.agent/repo=bhuild/role=behaver/inits/claude\.hooks/"
|
|
47
|
+
)
|
|
48
|
+
|
|
49
|
+
# Exit if no settings file
|
|
50
|
+
if [[ ! -f "$SETTINGS_FILE" ]]; then
|
|
51
|
+
exit 0
|
|
52
|
+
fi
|
|
53
|
+
|
|
54
|
+
# collect stale commands
|
|
55
|
+
STALE_COMMANDS=""
|
|
56
|
+
|
|
57
|
+
# find hooks that reference absent claude.hooks/ files
|
|
58
|
+
ABSENT_FILES=$(jq -r '
|
|
59
|
+
.hooks // {} | to_entries[] |
|
|
60
|
+
.value[] | .hooks[] | .command // empty
|
|
61
|
+
' "$SETTINGS_FILE" | { grep -E "claude\.hooks/" || true; } | while read -r cmd; do
|
|
62
|
+
# extract hook path from rhachet run --init commands
|
|
63
|
+
if [[ "$cmd" == *"rhachet"*"--init"*"claude.hooks/"* ]]; then
|
|
64
|
+
hook_path=$(echo "$cmd" | sed -n 's/.*--init[= ]*\([^ ]*\).*/\1/p')
|
|
65
|
+
if [[ -n "$hook_path" && ! -f "$HOOKS_DIR/${hook_path#claude.hooks/}.sh" ]]; then
|
|
66
|
+
echo "$cmd"
|
|
67
|
+
fi
|
|
68
|
+
continue
|
|
69
|
+
fi
|
|
70
|
+
|
|
71
|
+
# direct file path (e.g., .agent/.../claude.hooks/foo.sh)
|
|
72
|
+
if [[ "$cmd" == *"claude.hooks/"* && "$cmd" != *"rhachet"* ]]; then
|
|
73
|
+
if [[ "$cmd" == /* ]]; then
|
|
74
|
+
# absolute path
|
|
75
|
+
if [[ ! -f "$cmd" ]]; then
|
|
76
|
+
echo "$cmd"
|
|
77
|
+
fi
|
|
78
|
+
else
|
|
79
|
+
# relative path
|
|
80
|
+
if [[ ! -f "$PROJECT_ROOT/$cmd" ]]; then
|
|
81
|
+
echo "$cmd"
|
|
82
|
+
fi
|
|
83
|
+
fi
|
|
84
|
+
fi
|
|
85
|
+
done)
|
|
86
|
+
|
|
87
|
+
if [[ -n "$ABSENT_FILES" ]]; then
|
|
88
|
+
STALE_COMMANDS="$ABSENT_FILES"
|
|
89
|
+
fi
|
|
90
|
+
|
|
91
|
+
# find hooks that match deprecated patterns
|
|
92
|
+
DEPRECATED_COMMANDS=$(jq -r '
|
|
93
|
+
.hooks // {} | to_entries[] |
|
|
94
|
+
.value[] | .hooks[] | .command // empty
|
|
95
|
+
' "$SETTINGS_FILE" | while read -r cmd; do
|
|
96
|
+
for pattern in "${DEPRECATED_PATTERNS[@]}"; do
|
|
97
|
+
if [[ "$cmd" =~ $pattern ]]; then
|
|
98
|
+
echo "$cmd"
|
|
99
|
+
break
|
|
100
|
+
fi
|
|
101
|
+
done
|
|
102
|
+
done)
|
|
103
|
+
|
|
104
|
+
if [[ -n "$DEPRECATED_COMMANDS" ]]; then
|
|
105
|
+
if [[ -n "$STALE_COMMANDS" ]]; then
|
|
106
|
+
STALE_COMMANDS="$STALE_COMMANDS"$'\n'"$DEPRECATED_COMMANDS"
|
|
107
|
+
else
|
|
108
|
+
STALE_COMMANDS="$DEPRECATED_COMMANDS"
|
|
109
|
+
fi
|
|
110
|
+
fi
|
|
111
|
+
|
|
112
|
+
# Exit if no stale commands found
|
|
113
|
+
if [[ -z "$STALE_COMMANDS" ]]; then
|
|
114
|
+
echo "👌 no stale hooks in settings.json"
|
|
115
|
+
exit 0
|
|
116
|
+
fi
|
|
117
|
+
|
|
118
|
+
# Build jq filter to remove stale hooks
|
|
119
|
+
# Convert stale commands to JSON array for jq
|
|
120
|
+
STALE_JSON=$(echo "$STALE_COMMANDS" | jq -R -s 'split("\n") | map(select(length > 0))')
|
|
121
|
+
|
|
122
|
+
jq --argjson stale "$STALE_JSON" '
|
|
123
|
+
# Remove hooks whose command is in the stale list
|
|
124
|
+
.hooks |= (
|
|
125
|
+
if . then
|
|
126
|
+
to_entries | map(
|
|
127
|
+
.value |= map(
|
|
128
|
+
.hooks |= map(select(.command as $cmd | ($stale | index($cmd)) == null))
|
|
129
|
+
)
|
|
130
|
+
# Remove matchers with empty hooks arrays
|
|
131
|
+
| .value |= map(select(.hooks | length > 0))
|
|
132
|
+
)
|
|
133
|
+
# Remove hook types with empty arrays
|
|
134
|
+
| map(select(.value | length > 0))
|
|
135
|
+
| from_entries
|
|
136
|
+
else
|
|
137
|
+
.
|
|
138
|
+
end
|
|
139
|
+
)
|
|
140
|
+
' "$SETTINGS_FILE" > "$SETTINGS_FILE.tmp"
|
|
141
|
+
|
|
142
|
+
# Check if any changes were made
|
|
143
|
+
if diff -q "$SETTINGS_FILE" "$SETTINGS_FILE.tmp" >/dev/null 2>&1; then
|
|
144
|
+
rm "$SETTINGS_FILE.tmp"
|
|
145
|
+
echo "👌 no stale hooks in settings.json"
|
|
146
|
+
exit 0
|
|
147
|
+
fi
|
|
148
|
+
|
|
149
|
+
# Report what is removed with tree structure
|
|
150
|
+
echo "🧹 remove stale hooks from settings.json"
|
|
151
|
+
STALE_ARRAY=()
|
|
152
|
+
while IFS= read -r cmd; do
|
|
153
|
+
[[ -n "$cmd" ]] && STALE_ARRAY+=("$cmd")
|
|
154
|
+
done <<< "$STALE_COMMANDS"
|
|
155
|
+
|
|
156
|
+
TOTAL=${#STALE_ARRAY[@]}
|
|
157
|
+
for i in "${!STALE_ARRAY[@]}"; do
|
|
158
|
+
cmd="${STALE_ARRAY[$i]}"
|
|
159
|
+
# convert to relative path
|
|
160
|
+
relative_cmd="${cmd#"$PROJECT_ROOT/"}"
|
|
161
|
+
# tree branch: └── for last item, ├── for others
|
|
162
|
+
if [[ $((i + 1)) -eq $TOTAL ]]; then
|
|
163
|
+
echo " └── $relative_cmd"
|
|
164
|
+
else
|
|
165
|
+
echo " ├── $relative_cmd"
|
|
166
|
+
fi
|
|
167
|
+
done
|
|
168
|
+
echo ""
|
|
169
|
+
|
|
170
|
+
# Atomic replace
|
|
171
|
+
mv "$SETTINGS_FILE.tmp" "$SETTINGS_FILE"
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
######################################################################
|
|
3
|
+
# .what = cleanup stale hooks from Claude settings
|
|
4
|
+
#
|
|
5
|
+
# .why = dispatches to grain-specific cleanup scripts:
|
|
6
|
+
# - repograin: cleans .claude/settings.json
|
|
7
|
+
# - localgrain: cleans .claude/settings.local.json
|
|
8
|
+
#
|
|
9
|
+
# usage:
|
|
10
|
+
# init.claude.hooks.cleanup.sh
|
|
11
|
+
#
|
|
12
|
+
# guarantee:
|
|
13
|
+
# ✔ runs both repograin and localgrain cleanup
|
|
14
|
+
# ✔ idempotent: safe to rerun
|
|
15
|
+
######################################################################
|
|
16
|
+
|
|
17
|
+
set -euo pipefail
|
|
18
|
+
|
|
19
|
+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
20
|
+
|
|
21
|
+
# cleanup repo-level settings.json
|
|
22
|
+
"$SCRIPT_DIR/init.claude.hooks.cleanup.repograin.sh"
|
|
23
|
+
|
|
24
|
+
# cleanup local-level settings.local.json
|
|
25
|
+
"$SCRIPT_DIR/init.claude.hooks.cleanup.localgrain.sh"
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
######################################################################
|
|
3
3
|
# .what = generic findsert utility for Claude hooks
|
|
4
4
|
#
|
|
5
|
-
# .why = centralizes the "find-or-insert" logic for
|
|
6
|
-
# to .claude/settings.
|
|
5
|
+
# .why = centralizes the "find-or-insert" logic for hook bind
|
|
6
|
+
# to .claude/settings.json (repo-level), to prevent duplication across
|
|
7
7
|
# individual hook initializers.
|
|
8
8
|
#
|
|
9
9
|
# .how = takes hook configuration as arguments and uses jq to merge
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
# [--position append|prepend]
|
|
20
20
|
#
|
|
21
21
|
# guarantee:
|
|
22
|
-
# ✔ creates .claude/settings.
|
|
22
|
+
# ✔ creates .claude/settings.json if absent
|
|
23
23
|
# ✔ preserves existing settings (permissions, other hooks)
|
|
24
24
|
# ✔ idempotent: no-op if hook already present (at correct position)
|
|
25
25
|
# ✔ fail-fast on errors
|
|
@@ -84,7 +84,7 @@ if [[ -z "$HOOK_TYPE" || -z "$MATCHER" || -z "$HOOK_COMMAND" || -z "$HOOK_NAME"
|
|
|
84
84
|
fi
|
|
85
85
|
|
|
86
86
|
PROJECT_ROOT="$PWD"
|
|
87
|
-
SETTINGS_FILE="$PROJECT_ROOT/.claude/settings.
|
|
87
|
+
SETTINGS_FILE="$PROJECT_ROOT/.claude/settings.json"
|
|
88
88
|
|
|
89
89
|
# Ensure .claude directory exists
|
|
90
90
|
mkdir -p "$(dirname "$SETTINGS_FILE")"
|
|
@@ -6,7 +6,8 @@
|
|
|
6
6
|
# bound behavior context into agent sessions on start
|
|
7
7
|
# and compaction events.
|
|
8
8
|
#
|
|
9
|
-
# .how =
|
|
9
|
+
# .how = 1. runs cleanup to remove stale hooks (deleted scripts)
|
|
10
|
+
# 2. calls findsert for each hook in desired order
|
|
10
11
|
#
|
|
11
12
|
# guarantee:
|
|
12
13
|
# ✔ idempotent: safe to rerun
|
|
@@ -18,17 +19,65 @@ set -euo pipefail
|
|
|
18
19
|
# fail loud: print what failed
|
|
19
20
|
trap 'echo "❌ init.claude.hooks.sh failed at line $LINENO" >&2' ERR
|
|
20
21
|
|
|
21
|
-
|
|
22
|
-
FINDSERT="$
|
|
22
|
+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
23
|
+
FINDSERT="$SCRIPT_DIR/init.claude.hooks.findsert.sh"
|
|
24
|
+
CLEANUP="$SCRIPT_DIR/init.claude.hooks.cleanup.sh"
|
|
25
|
+
RHACHET_CLI="./node_modules/.bin/rhachet"
|
|
23
26
|
|
|
24
|
-
#
|
|
25
|
-
|
|
27
|
+
# rhachet run --init provides fast hook execution via compiled binary
|
|
28
|
+
RHACHET_INIT="$RHACHET_CLI run --repo bhuild --role behaver --init"
|
|
29
|
+
|
|
30
|
+
# collect hook results for tree output
|
|
31
|
+
HOOKS_BOUND=()
|
|
32
|
+
HOOKS_PRESENT=()
|
|
33
|
+
|
|
34
|
+
# helper to run findsert and collect result
|
|
35
|
+
run_findsert() {
|
|
36
|
+
local name="$1"
|
|
37
|
+
shift
|
|
38
|
+
local output
|
|
39
|
+
output=$("$FINDSERT" "$@" 2>&1)
|
|
40
|
+
if [[ "$output" == *"bound successfully"* ]]; then
|
|
41
|
+
HOOKS_BOUND+=("$name")
|
|
42
|
+
elif [[ "$output" == *"already bound"* ]]; then
|
|
43
|
+
HOOKS_PRESENT+=("$name")
|
|
44
|
+
fi
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
# first, cleanup any stale hooks (reference removed scripts)
|
|
48
|
+
"$CLEANUP"
|
|
26
49
|
|
|
27
50
|
# SessionStart hook: boot behavior context
|
|
28
51
|
# note: SessionStart hooks run on both session start AND compaction
|
|
29
|
-
"
|
|
52
|
+
run_findsert "sessionstart.boot-behavior" \
|
|
30
53
|
--hook-type SessionStart \
|
|
31
54
|
--matcher "*" \
|
|
32
|
-
--command "$
|
|
55
|
+
--command "$RHACHET_INIT claude.hooks/sessionstart.boot-behavior" \
|
|
33
56
|
--name "sessionstart.boot-behavior" \
|
|
34
57
|
--timeout 10
|
|
58
|
+
|
|
59
|
+
# print tree for newly bound hooks
|
|
60
|
+
if [[ ${#HOOKS_BOUND[@]} -gt 0 ]]; then
|
|
61
|
+
echo "🔗 bind hooks"
|
|
62
|
+
for i in "${!HOOKS_BOUND[@]}"; do
|
|
63
|
+
if [[ $((i + 1)) -eq ${#HOOKS_BOUND[@]} ]]; then
|
|
64
|
+
echo " └── ${HOOKS_BOUND[$i]}"
|
|
65
|
+
else
|
|
66
|
+
echo " ├── ${HOOKS_BOUND[$i]}"
|
|
67
|
+
fi
|
|
68
|
+
done
|
|
69
|
+
echo ""
|
|
70
|
+
fi
|
|
71
|
+
|
|
72
|
+
# print tree for hooks already present
|
|
73
|
+
if [[ ${#HOOKS_PRESENT[@]} -gt 0 ]]; then
|
|
74
|
+
echo "👌 hooks already bound"
|
|
75
|
+
for i in "${!HOOKS_PRESENT[@]}"; do
|
|
76
|
+
if [[ $((i + 1)) -eq ${#HOOKS_PRESENT[@]} ]]; then
|
|
77
|
+
echo " └── ${HOOKS_PRESENT[$i]}"
|
|
78
|
+
else
|
|
79
|
+
echo " ├── ${HOOKS_PRESENT[$i]}"
|
|
80
|
+
fi
|
|
81
|
+
done
|
|
82
|
+
echo ""
|
|
83
|
+
fi
|
|
@@ -1,7 +1,21 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
2
|
######################################################################
|
|
3
|
-
# .what = bind, unbind, or query branch-to-behavior
|
|
4
|
-
#
|
|
3
|
+
# .what = bind, unbind, or query branch-to-behavior bound
|
|
4
|
+
#
|
|
5
|
+
# .why = explicit user control over which behavior applies to current branch
|
|
6
|
+
# - track which behavior is active for current work
|
|
7
|
+
# - prevent accidental work on wrong behavior
|
|
8
|
+
# - support worktree-per-behavior workflow
|
|
9
|
+
#
|
|
10
|
+
# usage:
|
|
11
|
+
# bind.behavior.sh set --behavior <name> # bind current branch
|
|
12
|
+
# bind.behavior.sh del # unbind current branch
|
|
13
|
+
# bind.behavior.sh get # query current bound
|
|
14
|
+
#
|
|
15
|
+
# guarantee:
|
|
16
|
+
# - fail-fast if behavior not found or ambiguous
|
|
17
|
+
# - fail-fast if set to different behavior (suggest del or worktree)
|
|
18
|
+
# - idempotent: set to same behavior succeeds, del when unbound succeeds
|
|
5
19
|
######################################################################
|
|
6
20
|
|
|
7
21
|
set -euo pipefail
|
|
@@ -1,7 +1,30 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
2
|
######################################################################
|
|
3
3
|
# .what = initialize a .behavior directory for bhuild thoughtroute
|
|
4
|
-
#
|
|
4
|
+
#
|
|
5
|
+
# .why = standardize the behavior-driven development thoughtroute
|
|
6
|
+
# by creation of a structured directory with:
|
|
7
|
+
# - wish definition
|
|
8
|
+
# - vision statement
|
|
9
|
+
# - blackbox criteria (user-faced behavioral requirements)
|
|
10
|
+
# - blueprint criteria (implementation requirements)
|
|
11
|
+
# - research prompts
|
|
12
|
+
# - distillation prompts
|
|
13
|
+
# - blueprint prompts
|
|
14
|
+
# - roadmap prompts
|
|
15
|
+
# - execution prompts
|
|
16
|
+
# - feedback template
|
|
17
|
+
#
|
|
18
|
+
# usage:
|
|
19
|
+
# init.behavior.sh --name <behaviorname> [--dir <directory>]
|
|
20
|
+
#
|
|
21
|
+
# guarantee:
|
|
22
|
+
# - creates .behavior/ if not found
|
|
23
|
+
# - creates versioned behavior directory
|
|
24
|
+
# - findserts all thoughtroute files (creates if not found, skips if present)
|
|
25
|
+
# - auto-binds current branch to newly created behavior
|
|
26
|
+
# - idempotent: safe to rerun
|
|
27
|
+
# - fail-fast on errors
|
|
5
28
|
######################################################################
|
|
6
29
|
|
|
7
30
|
set -euo pipefail
|
|
@@ -1,7 +1,21 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
2
|
######################################################################
|
|
3
3
|
# .what = decompose a behavior into focused sub-behaviors
|
|
4
|
-
#
|
|
4
|
+
#
|
|
5
|
+
# .why = enables large behaviors to be split into independent,
|
|
6
|
+
# focused sub-behaviors that fit within context window limits
|
|
7
|
+
# and respect bounded context boundaries
|
|
8
|
+
#
|
|
9
|
+
# usage:
|
|
10
|
+
# decompose.behavior.sh --of <behavior-name> --mode plan [--dir <path>]
|
|
11
|
+
# decompose.behavior.sh --of <behavior-name> --mode apply --plan <plan-file> [--dir <path>]
|
|
12
|
+
#
|
|
13
|
+
# guarantee:
|
|
14
|
+
# - fail-fast if behavior not found or ambiguous
|
|
15
|
+
# - fail-fast if behavior has no criteria
|
|
16
|
+
# - fail-fast if --mode apply without --plan
|
|
17
|
+
# - fail-fast if behavior already decomposed (z.decomposed.md present)
|
|
18
|
+
# - idempotent: safe to rerun
|
|
5
19
|
######################################################################
|
|
6
20
|
|
|
7
21
|
set -euo pipefail
|
|
@@ -1,7 +1,18 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
2
|
######################################################################
|
|
3
3
|
# .what = review behavior for decomposition need
|
|
4
|
-
#
|
|
4
|
+
#
|
|
5
|
+
# .why = enables detection of behaviors that have grown too large
|
|
6
|
+
# for reliable execution, by measurement of context pressure
|
|
7
|
+
# and domain breadth, with recommendation to decompose
|
|
8
|
+
#
|
|
9
|
+
# usage:
|
|
10
|
+
# review.behavior.sh --of <behavior-name> [--dir <path>]
|
|
11
|
+
#
|
|
12
|
+
# guarantee:
|
|
13
|
+
# - fail-fast if behavior not found or ambiguous
|
|
14
|
+
# - fail-fast if behavior has no criteria (required for analysis)
|
|
15
|
+
# - idempotent: safe to rerun
|
|
5
16
|
######################################################################
|
|
6
17
|
|
|
7
18
|
set -euo pipefail
|
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.6.
|
|
5
|
+
"version": "0.6.2",
|
|
6
6
|
"repository": "ehmpathy/rhachet-roles-bhuild",
|
|
7
7
|
"homepage": "https://github.com/ehmpathy/rhachet-roles-bhuild",
|
|
8
8
|
"keywords": [
|
|
@@ -80,7 +80,7 @@
|
|
|
80
80
|
"esbuild-register": "3.6.0",
|
|
81
81
|
"husky": "8.0.3",
|
|
82
82
|
"jest": "30.2.0",
|
|
83
|
-
"rhachet": "1.20.
|
|
83
|
+
"rhachet": "1.20.7",
|
|
84
84
|
"rhachet-roles-bhuild": "link:.",
|
|
85
85
|
"rhachet-roles-ehmpathy": "1.17.9",
|
|
86
86
|
"tsc-alias": "1.8.10",
|