rhachet-roles-ehmpathy 1.13.11 → 1.13.13
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.
|
@@ -118,10 +118,37 @@ given()
|
|
|
118
118
|
...
|
|
119
119
|
EOF
|
|
120
120
|
|
|
121
|
+
# findsert 2.criteria.src
|
|
122
|
+
findsert "$BEHAVIOR_DIR/2.criteria.src" << 'EOF'
|
|
123
|
+
declare the behavioral criteria required in order to fulfill
|
|
124
|
+
- this wish $BEHAVIOR_DIR_REL/0.wish.md
|
|
125
|
+
- this vision $BEHAVIOR_DIR_REL/1.vision.md (if declared)
|
|
126
|
+
|
|
127
|
+
via bdd declarations, per your briefs
|
|
128
|
+
|
|
129
|
+
via the template in $BEHAVIOR_DIR/2.criteria.md
|
|
130
|
+
|
|
131
|
+
emit into $BEHAVIOR_DIR/2.criteria.md
|
|
132
|
+
|
|
133
|
+
---
|
|
134
|
+
|
|
135
|
+
focus on the behavioral requirements
|
|
136
|
+
- critical paths
|
|
137
|
+
- boundary paths
|
|
138
|
+
|
|
139
|
+
ignore infra or technical details
|
|
140
|
+
|
|
141
|
+
focus on behaviors
|
|
142
|
+
|
|
143
|
+
ensure to cover all of the criteria required to fulfill the full set of behaviors declared in the wish and vision
|
|
144
|
+
EOF
|
|
145
|
+
|
|
121
146
|
# findsert 3.1.research.domain._.v1.src
|
|
122
147
|
findsert "$BEHAVIOR_DIR/3.1.research.domain._.v1.src" << EOF
|
|
123
|
-
research the domain available in order to fulfill
|
|
124
|
-
|
|
148
|
+
research the domain available in order to fulfill
|
|
149
|
+
- this wish $BEHAVIOR_DIR_REL/0.wish.md
|
|
150
|
+
- this vision $BEHAVIOR_DIR_REL/1.vision.md (if declared)
|
|
151
|
+
- this criteria $BEHAVIOR_DIR_REL/2.criteria.md (if declared)
|
|
125
152
|
|
|
126
153
|
specifically
|
|
127
154
|
- what are the domain objects that are involved with this wish
|
|
@@ -134,7 +161,11 @@ specifically
|
|
|
134
161
|
- setCreate
|
|
135
162
|
- setUpdate
|
|
136
163
|
- setDelete
|
|
137
|
-
|
|
164
|
+
- what are the relationships between the domain objects?
|
|
165
|
+
- is there a treestruct of decoration?
|
|
166
|
+
- is there a treestruct of common subdomains?
|
|
167
|
+
- are there dependencies?
|
|
168
|
+
- how do the domain objects and operations compose to support wish?
|
|
138
169
|
|
|
139
170
|
---
|
|
140
171
|
|
|
@@ -154,8 +185,12 @@ EOF
|
|
|
154
185
|
# findsert 3.2.distill.domain._.v1.src
|
|
155
186
|
findsert "$BEHAVIOR_DIR/3.2.distill.domain._.v1.src" << EOF
|
|
156
187
|
distill the declastruct domain.objects and domain.operations that would
|
|
157
|
-
- enable fulfillment of
|
|
158
|
-
-
|
|
188
|
+
- enable fulfillment of
|
|
189
|
+
- this wish $BEHAVIOR_DIR_REL/0.wish.md
|
|
190
|
+
- this vision $BEHAVIOR_DIR_REL/1.vision.md (if declared)
|
|
191
|
+
- this criteria $BEHAVIOR_DIR_REL/2.criteria.md (if declared)
|
|
192
|
+
- given the research declared here
|
|
193
|
+
- $BEHAVIOR_DIR_REL/3.1.research.domain._.v1.i1.md (if declared)
|
|
159
194
|
|
|
160
195
|
procedure
|
|
161
196
|
1. declare the usecases and envision the contract that would be used to fulfill the usecases
|
|
@@ -171,7 +206,7 @@ propose a blueprint for how we can implement the wish described
|
|
|
171
206
|
- in $BEHAVIOR_DIR_REL/0.wish.md
|
|
172
207
|
|
|
173
208
|
with the domain distillation declared
|
|
174
|
-
- in $BEHAVIOR_DIR_REL/3.2.distill.domain._.v1.i1.md
|
|
209
|
+
- in $BEHAVIOR_DIR_REL/3.2.distill.domain._.v1.i1.md (if declared)
|
|
175
210
|
|
|
176
211
|
follow the patterns already present in this repo
|
|
177
212
|
|
|
@@ -179,9 +214,10 @@ follow the patterns already present in this repo
|
|
|
179
214
|
|
|
180
215
|
reference the below for full context
|
|
181
216
|
- $BEHAVIOR_DIR_REL/0.wish.md
|
|
182
|
-
- $BEHAVIOR_DIR_REL/
|
|
183
|
-
- $BEHAVIOR_DIR_REL/
|
|
184
|
-
|
|
217
|
+
- $BEHAVIOR_DIR_REL/1.vision.md (if declared)
|
|
218
|
+
- $BEHAVIOR_DIR_REL/2.criteria.md (if declared)
|
|
219
|
+
- $BEHAVIOR_DIR_REL/3.1.research.domain._.v1.i1.md (if declared)
|
|
220
|
+
- $BEHAVIOR_DIR_REL/3.2.distill.domain._.v1.i1.md (if declared)
|
|
185
221
|
|
|
186
222
|
---
|
|
187
223
|
|
|
@@ -199,6 +235,13 @@ declare a roadmap,
|
|
|
199
235
|
|
|
200
236
|
for how to execute the blueprint specified in $BEHAVIOR_DIR_REL/3.3.blueprint.v1.i1.md
|
|
201
237
|
|
|
238
|
+
ref:
|
|
239
|
+
- $BEHAVIOR_DIR_REL/0.wish.md
|
|
240
|
+
- $BEHAVIOR_DIR_REL/1.vision.md (if declared)
|
|
241
|
+
- $BEHAVIOR_DIR_REL/2.criteria.md (if declared)
|
|
242
|
+
- $BEHAVIOR_DIR_REL/3.2.distill.domain._.v1.i1.md (if declared)
|
|
243
|
+
- $BEHAVIOR_DIR_REL/3.3.blueprint.v1.i1.md
|
|
244
|
+
|
|
202
245
|
---
|
|
203
246
|
|
|
204
247
|
emit into $BEHAVIOR_DIR_REL/4.1.roadmap.v1.i1.md
|
|
@@ -214,8 +257,13 @@ of roadmap
|
|
|
214
257
|
- $BEHAVIOR_DIR_REL/4.1.roadmap.v1.i1.md
|
|
215
258
|
|
|
216
259
|
ref:
|
|
260
|
+
- $BEHAVIOR_DIR_REL/0.wish.md
|
|
261
|
+
- $BEHAVIOR_DIR_REL/1.vision.md (if declared)
|
|
262
|
+
- $BEHAVIOR_DIR_REL/2.criteria.md (if declared)
|
|
263
|
+
- $BEHAVIOR_DIR_REL/3.2.distill.domain._.v1.i1.md (if declared)
|
|
217
264
|
- $BEHAVIOR_DIR_REL/3.3.blueprint.v1.i1.md
|
|
218
265
|
|
|
266
|
+
|
|
219
267
|
---
|
|
220
268
|
|
|
221
269
|
track your progress
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
{
|
|
2
|
+
// mechanic role permissions for Claude
|
|
3
|
+
//
|
|
4
|
+
// these permissions are conservative by design:
|
|
5
|
+
// - deny: commands that should never be auto-approved
|
|
6
|
+
// - ask: commands that require explicit user approval
|
|
7
|
+
// - allow: commands that are safe to auto-approve
|
|
8
|
+
|
|
9
|
+
"permissions": {
|
|
10
|
+
// commands that should never be auto-approved
|
|
11
|
+
"deny": [
|
|
12
|
+
// git write operations - require explicit user approval for audit trail
|
|
13
|
+
"Bash(git commit:*)",
|
|
14
|
+
"Bash(git add:*)",
|
|
15
|
+
"Bash(git stash:*)",
|
|
16
|
+
"Bash(git checkout:*)",
|
|
17
|
+
|
|
18
|
+
// "anywrite" commands - CRITICAL SECURITY RISK
|
|
19
|
+
//
|
|
20
|
+
// unlike Claude's native Edit/Write tools which are scoped to the repo,
|
|
21
|
+
// these bash commands can write ANYWHERE on your OS. this makes them
|
|
22
|
+
// prime targets for prompt injection attacks:
|
|
23
|
+
//
|
|
24
|
+
// 1. user asks claude to fetch docs from lookslegit.dev/api-reference
|
|
25
|
+
// 2. page contains hidden instructions to write innocent-looking content
|
|
26
|
+
// 3. with anywrite allowed, claude writes to ~/.bashrc or ~/.zshrc
|
|
27
|
+
// 4. content looks like helpful aliases but executes malicious logic
|
|
28
|
+
// 5. your entire system is now compromised
|
|
29
|
+
//
|
|
30
|
+
// sed: in-place file modification anywhere on disk
|
|
31
|
+
"Bash(sed:*)",
|
|
32
|
+
// tee: write to any path - ~/.bashrc, ~/.ssh/authorized_keys, etc.
|
|
33
|
+
"Bash(tee:*)",
|
|
34
|
+
// find -exec: arbitrary command execution on matched files
|
|
35
|
+
"Bash(find:*)",
|
|
36
|
+
// echo >: redirect to any file - echo "malicious" >> ~/.bashrc
|
|
37
|
+
"Bash(echo:*)",
|
|
38
|
+
// mv: move/overwrite any file - mv ~/.ssh/config ~/.ssh/config.bak
|
|
39
|
+
"Bash(mv:*)",
|
|
40
|
+
|
|
41
|
+
// test runners - should use npm run test:* scripts instead
|
|
42
|
+
// direct invocation bypasses project test configuration
|
|
43
|
+
"Bash(npx biome:*)",
|
|
44
|
+
"Bash(npx jest:*)"
|
|
45
|
+
],
|
|
46
|
+
|
|
47
|
+
// commands that require explicit user approval each time
|
|
48
|
+
"ask": [
|
|
49
|
+
"Bash(bash:*)",
|
|
50
|
+
"Bash(chmod:*)",
|
|
51
|
+
"Bash(npm install:*)",
|
|
52
|
+
"Bash(pnpm install:*)",
|
|
53
|
+
"Bash(pnpm add:*)"
|
|
54
|
+
],
|
|
55
|
+
|
|
56
|
+
// commands that are safe to auto-approve
|
|
57
|
+
"allow": [
|
|
58
|
+
// ide integrations
|
|
59
|
+
"mcp__ide__getDiagnostics",
|
|
60
|
+
|
|
61
|
+
// web access
|
|
62
|
+
"WebSearch",
|
|
63
|
+
"WebFetch(domain:github.com)",
|
|
64
|
+
"WebFetch(domain:www.npmjs.com)",
|
|
65
|
+
"WebFetch(domain:hub.docker.com)",
|
|
66
|
+
"WebFetch(domain:raw.githubusercontent.com)",
|
|
67
|
+
"WebFetch(domain:biomejs.dev)",
|
|
68
|
+
|
|
69
|
+
// git read-only
|
|
70
|
+
"Bash(git log:*)",
|
|
71
|
+
|
|
72
|
+
// filesystem read operations
|
|
73
|
+
"Bash(ls:*)",
|
|
74
|
+
"Bash(tree:*)",
|
|
75
|
+
"Bash(cat:*)",
|
|
76
|
+
"Bash(head:*)",
|
|
77
|
+
"Bash(tail:*)",
|
|
78
|
+
"Bash(grep:*)",
|
|
79
|
+
"Bash(wc:*)",
|
|
80
|
+
"Bash(diff:*)",
|
|
81
|
+
"Bash(which:*)",
|
|
82
|
+
"Bash(file:*)",
|
|
83
|
+
"Bash(mkdir:*)",
|
|
84
|
+
"Bash(pwd)",
|
|
85
|
+
|
|
86
|
+
// safe custom tools
|
|
87
|
+
"Bash(bash src/logic/roles/mechanic/.skills/claude.tools/mvsafe.sh:*)",
|
|
88
|
+
|
|
89
|
+
// npm read operations
|
|
90
|
+
"Bash(npm view:*)",
|
|
91
|
+
"Bash(npm list:*)",
|
|
92
|
+
"Bash(npm remove:*)",
|
|
93
|
+
|
|
94
|
+
// rhachet operations
|
|
95
|
+
"Bash(npx rhachet roles boot --repo ehmpathy --role mechanic)",
|
|
96
|
+
|
|
97
|
+
// self execution of packages
|
|
98
|
+
"Bash(npx tsx ./bin/run:*)",
|
|
99
|
+
|
|
100
|
+
// build operations
|
|
101
|
+
"Bash(npm run build:*)",
|
|
102
|
+
"Bash(npm run build:compile)",
|
|
103
|
+
"Bash(npm run start:testdb:*)",
|
|
104
|
+
|
|
105
|
+
// test operations
|
|
106
|
+
"Bash(npm run test:*)",
|
|
107
|
+
"Bash(npm run test:types:*)",
|
|
108
|
+
"Bash(npm run test:format:*)",
|
|
109
|
+
"Bash(npm run test:lint:*)",
|
|
110
|
+
"Bash(npm run test:unit:*)",
|
|
111
|
+
"Bash(npm run test:integration:*)",
|
|
112
|
+
"Bash(npm run test:acceptance:*)",
|
|
113
|
+
|
|
114
|
+
// thorough test operations
|
|
115
|
+
"Bash(THOROUGH=true npm run test:*)",
|
|
116
|
+
"Bash(THOROUGH=true npm run test:types:*)",
|
|
117
|
+
"Bash(THOROUGH=true npm run test:format:*)",
|
|
118
|
+
"Bash(THOROUGH=true npm run test:lint:*)",
|
|
119
|
+
"Bash(THOROUGH=true npm run test:unit:*)",
|
|
120
|
+
"Bash(THOROUGH=true npm run test:integration:*)",
|
|
121
|
+
"Bash(THOROUGH=true npm run test:acceptance:*)",
|
|
122
|
+
|
|
123
|
+
// fix operations
|
|
124
|
+
"Bash(npm run fix:*)",
|
|
125
|
+
"Bash(npm run fix:format:*)",
|
|
126
|
+
"Bash(npm run fix:lint:*)",
|
|
127
|
+
|
|
128
|
+
// github cli read operations
|
|
129
|
+
"Bash(gh pr checks:*)",
|
|
130
|
+
"Bash(gh pr status:*)",
|
|
131
|
+
|
|
132
|
+
// skill sourcing
|
|
133
|
+
"Bash(source .agent/repo=.this/skills/*)"
|
|
134
|
+
]
|
|
135
|
+
}
|
|
136
|
+
}
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "rhachet-roles-ehmpathy",
|
|
3
3
|
"author": "ehmpathy",
|
|
4
4
|
"description": "empathetic software construction roles and skills, via rhachet",
|
|
5
|
-
"version": "1.13.
|
|
5
|
+
"version": "1.13.13",
|
|
6
6
|
"repository": "ehmpathy/rhachet-roles-ehmpathy",
|
|
7
7
|
"homepage": "https://github.com/ehmpathy/rhachet-roles-ehmpathy",
|
|
8
8
|
"keywords": [
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"fix": "npm run fix:format && npm run fix:lint",
|
|
28
28
|
"build:clean": "rm dist/ -rf",
|
|
29
29
|
"build:compile": "tsc -p ./tsconfig.build.json && tsc-alias -p ./tsconfig.build.json",
|
|
30
|
-
"build:complete": "rsync -a --prune-empty-dirs --include='*/' --exclude='**/.route/**' --exclude='**/.scratch/**' --exclude='**/.behavior/**' --exclude='**/*.test.sh' --include='**/*.template.md' --include='**/.briefs/**/*.md' --include='**/.briefs/*.md' --include='**/.skills/**/*.sh' --include='**/.skills/*.sh' --include='**/.skills/**/*.
|
|
30
|
+
"build:complete": "rsync -a --prune-empty-dirs --include='*/' --exclude='**/.route/**' --exclude='**/.scratch/**' --exclude='**/.behavior/**' --exclude='**/*.test.sh' --include='**/*.template.md' --include='**/.briefs/**/*.md' --include='**/.briefs/*.md' --include='**/.skills/**/*.sh' --include='**/.skills/*.sh' --include='**/.skills/**/*.jsonc' --include='**/.skills/*.jsonc' --exclude='*' src/ dist/",
|
|
31
31
|
"build": "npm run build:clean && npm run build:compile && npm run build:complete --if-present",
|
|
32
32
|
"test:commits": "LAST_TAG=$(git describe --tags --abbrev=0 @^ 2> /dev/null || git rev-list --max-parents=0 HEAD) && npx commitlint --from $LAST_TAG --to HEAD --verbose",
|
|
33
33
|
"test:types": "tsc -p ./tsconfig.json --noEmit",
|