instar 1.3.304 → 1.3.306

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.
Files changed (56) hide show
  1. package/dist/commands/init.d.ts.map +1 -1
  2. package/dist/commands/init.js +32 -30
  3. package/dist/commands/init.js.map +1 -1
  4. package/dist/core/Config.d.ts.map +1 -1
  5. package/dist/core/Config.js +2 -0
  6. package/dist/core/Config.js.map +1 -1
  7. package/dist/core/MessageSentinel.d.ts +11 -0
  8. package/dist/core/MessageSentinel.d.ts.map +1 -1
  9. package/dist/core/MessageSentinel.js +43 -1
  10. package/dist/core/MessageSentinel.js.map +1 -1
  11. package/dist/core/PostUpdateMigrator.d.ts.map +1 -1
  12. package/dist/core/PostUpdateMigrator.js +6 -1
  13. package/dist/core/PostUpdateMigrator.js.map +1 -1
  14. package/dist/core/SessionManager.d.ts.map +1 -1
  15. package/dist/core/SessionManager.js +3 -0
  16. package/dist/core/SessionManager.js.map +1 -1
  17. package/dist/core/types.d.ts +4 -0
  18. package/dist/core/types.d.ts.map +1 -1
  19. package/dist/core/types.js.map +1 -1
  20. package/dist/scheduler/JobScheduler.d.ts.map +1 -1
  21. package/dist/scheduler/JobScheduler.js +10 -6
  22. package/dist/scheduler/JobScheduler.js.map +1 -1
  23. package/package.json +1 -1
  24. package/src/data/builtin-manifest.json +58 -58
  25. package/src/scaffold/templates/jobs/instar/commitment-detection.md +2 -1
  26. package/src/scaffold/templates/jobs/instar/correction-analyzer.md +5 -1
  27. package/src/scaffold/templates/jobs/instar/evolution-overdue-check.md +1 -1
  28. package/src/scaffold/templates/jobs/instar/evolution-proposal-evaluate.md +1 -1
  29. package/src/scaffold/templates/jobs/instar/evolution-proposal-implement.md +1 -1
  30. package/src/scaffold/templates/jobs/instar/failure-analyzer.md +5 -1
  31. package/src/scaffold/templates/jobs/instar/identity-review.md +5 -4
  32. package/src/scaffold/templates/jobs/instar/initiative-digest-review.md +3 -1
  33. package/src/scaffold/templates/jobs/instar/insight-harvest.md +1 -1
  34. package/src/scaffold/templates/jobs/instar/mentor-onboarding.md +7 -4
  35. package/src/scaffold/templates/jobs/instar/org-intent-drift-audit.md +6 -4
  36. package/src/scaffold/templates/jobs/instar/overseer-development.md +4 -1
  37. package/src/scaffold/templates/jobs/instar/overseer-guardian.md +4 -1
  38. package/src/scaffold/templates/jobs/instar/overseer-infrastructure.md +4 -1
  39. package/src/scaffold/templates/jobs/instar/overseer-learning.md +4 -1
  40. package/src/scaffold/templates/jobs/instar/overseer-maintenance.md +4 -1
  41. package/src/scaffold/templates/jobs/instar/release-readiness-check.md +2 -1
  42. package/src/templates/hooks/compaction-recovery.sh +11 -6
  43. package/src/templates/hooks/session-start.sh +11 -3
  44. package/src/templates/hooks/slack-channel-context.sh +5 -0
  45. package/src/templates/hooks/telegram-topic-context.sh +6 -0
  46. package/src/templates/scripts/emit-session-clock.sh +3 -3
  47. package/src/templates/scripts/imessage-reply.sh +10 -0
  48. package/src/templates/scripts/instar-watchdog.sh +12 -6
  49. package/src/templates/scripts/secret-drop-retrieve.mjs +10 -2
  50. package/src/templates/scripts/slack-reply.sh +5 -0
  51. package/src/templates/scripts/whatsapp-reply.sh +5 -0
  52. package/upgrades/1.3.305.md +20 -0
  53. package/upgrades/1.3.306.md +22 -0
  54. package/upgrades/sentinel-pause-length-guard.eli16.md +12 -0
  55. package/upgrades/side-effects/sentinel-pause-length-guard.md +43 -0
  56. package/upgrades/side-effects/template-agent-id-header.md +48 -0
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "$schema": "./builtin-manifest.schema.json",
3
3
  "schemaVersion": 1,
4
- "generatedAt": "2026-06-05T15:28:41.115Z",
5
- "instarVersion": "1.3.304",
4
+ "generatedAt": "2026-06-05T15:43:57.729Z",
5
+ "instarVersion": "1.3.306",
6
6
  "entryCount": 198,
7
7
  "entries": {
8
8
  "hook:session-start": {
@@ -11,7 +11,7 @@
11
11
  "domain": "identity",
12
12
  "sourcePath": "src/core/PostUpdateMigrator.ts",
13
13
  "installedPath": ".instar/hooks/instar/session-start.sh",
14
- "contentHash": "b52da3c14379f20c8200730995dcb3303b5a55b9a5e50cb84b9307b8b5250a36",
14
+ "contentHash": "6bdb2be6534b4bc6a7160f21be2d00eeb7033428fdb55213fa4bba3c92d6f036",
15
15
  "since": "2025-01-01"
16
16
  },
17
17
  "hook:dangerous-command-guard": {
@@ -20,7 +20,7 @@
20
20
  "domain": "safety",
21
21
  "sourcePath": "src/core/PostUpdateMigrator.ts",
22
22
  "installedPath": ".instar/hooks/instar/dangerous-command-guard.sh",
23
- "contentHash": "b52da3c14379f20c8200730995dcb3303b5a55b9a5e50cb84b9307b8b5250a36",
23
+ "contentHash": "6bdb2be6534b4bc6a7160f21be2d00eeb7033428fdb55213fa4bba3c92d6f036",
24
24
  "since": "2025-01-01"
25
25
  },
26
26
  "hook:grounding-before-messaging": {
@@ -29,7 +29,7 @@
29
29
  "domain": "safety",
30
30
  "sourcePath": "src/core/PostUpdateMigrator.ts",
31
31
  "installedPath": ".instar/hooks/instar/grounding-before-messaging.sh",
32
- "contentHash": "b52da3c14379f20c8200730995dcb3303b5a55b9a5e50cb84b9307b8b5250a36",
32
+ "contentHash": "6bdb2be6534b4bc6a7160f21be2d00eeb7033428fdb55213fa4bba3c92d6f036",
33
33
  "since": "2025-01-01"
34
34
  },
35
35
  "hook:compaction-recovery": {
@@ -38,7 +38,7 @@
38
38
  "domain": "identity",
39
39
  "sourcePath": "src/core/PostUpdateMigrator.ts",
40
40
  "installedPath": ".instar/hooks/instar/compaction-recovery.sh",
41
- "contentHash": "b52da3c14379f20c8200730995dcb3303b5a55b9a5e50cb84b9307b8b5250a36",
41
+ "contentHash": "6bdb2be6534b4bc6a7160f21be2d00eeb7033428fdb55213fa4bba3c92d6f036",
42
42
  "since": "2025-01-01"
43
43
  },
44
44
  "hook:external-operation-gate": {
@@ -47,7 +47,7 @@
47
47
  "domain": "safety",
48
48
  "sourcePath": "src/core/PostUpdateMigrator.ts",
49
49
  "installedPath": ".instar/hooks/instar/external-operation-gate.js",
50
- "contentHash": "b52da3c14379f20c8200730995dcb3303b5a55b9a5e50cb84b9307b8b5250a36",
50
+ "contentHash": "6bdb2be6534b4bc6a7160f21be2d00eeb7033428fdb55213fa4bba3c92d6f036",
51
51
  "since": "2025-01-01"
52
52
  },
53
53
  "hook:deferral-detector": {
@@ -56,7 +56,7 @@
56
56
  "domain": "safety",
57
57
  "sourcePath": "src/core/PostUpdateMigrator.ts",
58
58
  "installedPath": ".instar/hooks/instar/deferral-detector.js",
59
- "contentHash": "b52da3c14379f20c8200730995dcb3303b5a55b9a5e50cb84b9307b8b5250a36",
59
+ "contentHash": "6bdb2be6534b4bc6a7160f21be2d00eeb7033428fdb55213fa4bba3c92d6f036",
60
60
  "since": "2025-01-01"
61
61
  },
62
62
  "hook:self-stop-guard": {
@@ -65,7 +65,7 @@
65
65
  "domain": "coherence",
66
66
  "sourcePath": "src/core/PostUpdateMigrator.ts",
67
67
  "installedPath": ".instar/hooks/instar/self-stop-guard.js",
68
- "contentHash": "b52da3c14379f20c8200730995dcb3303b5a55b9a5e50cb84b9307b8b5250a36",
68
+ "contentHash": "6bdb2be6534b4bc6a7160f21be2d00eeb7033428fdb55213fa4bba3c92d6f036",
69
69
  "since": "2025-01-01"
70
70
  },
71
71
  "hook:post-action-reflection": {
@@ -74,7 +74,7 @@
74
74
  "domain": "evolution",
75
75
  "sourcePath": "src/core/PostUpdateMigrator.ts",
76
76
  "installedPath": ".instar/hooks/instar/post-action-reflection.js",
77
- "contentHash": "b52da3c14379f20c8200730995dcb3303b5a55b9a5e50cb84b9307b8b5250a36",
77
+ "contentHash": "6bdb2be6534b4bc6a7160f21be2d00eeb7033428fdb55213fa4bba3c92d6f036",
78
78
  "since": "2025-01-01"
79
79
  },
80
80
  "hook:external-communication-guard": {
@@ -83,7 +83,7 @@
83
83
  "domain": "safety",
84
84
  "sourcePath": "src/core/PostUpdateMigrator.ts",
85
85
  "installedPath": ".instar/hooks/instar/external-communication-guard.js",
86
- "contentHash": "b52da3c14379f20c8200730995dcb3303b5a55b9a5e50cb84b9307b8b5250a36",
86
+ "contentHash": "6bdb2be6534b4bc6a7160f21be2d00eeb7033428fdb55213fa4bba3c92d6f036",
87
87
  "since": "2025-01-01"
88
88
  },
89
89
  "hook:scope-coherence-collector": {
@@ -92,7 +92,7 @@
92
92
  "domain": "coherence",
93
93
  "sourcePath": "src/core/PostUpdateMigrator.ts",
94
94
  "installedPath": ".instar/hooks/instar/scope-coherence-collector.js",
95
- "contentHash": "b52da3c14379f20c8200730995dcb3303b5a55b9a5e50cb84b9307b8b5250a36",
95
+ "contentHash": "6bdb2be6534b4bc6a7160f21be2d00eeb7033428fdb55213fa4bba3c92d6f036",
96
96
  "since": "2025-01-01"
97
97
  },
98
98
  "hook:scope-coherence-checkpoint": {
@@ -101,7 +101,7 @@
101
101
  "domain": "coherence",
102
102
  "sourcePath": "src/core/PostUpdateMigrator.ts",
103
103
  "installedPath": ".instar/hooks/instar/scope-coherence-checkpoint.js",
104
- "contentHash": "b52da3c14379f20c8200730995dcb3303b5a55b9a5e50cb84b9307b8b5250a36",
104
+ "contentHash": "6bdb2be6534b4bc6a7160f21be2d00eeb7033428fdb55213fa4bba3c92d6f036",
105
105
  "since": "2025-01-01"
106
106
  },
107
107
  "hook:free-text-guard": {
@@ -110,7 +110,7 @@
110
110
  "domain": "safety",
111
111
  "sourcePath": "src/core/PostUpdateMigrator.ts",
112
112
  "installedPath": ".instar/hooks/instar/free-text-guard.sh",
113
- "contentHash": "b52da3c14379f20c8200730995dcb3303b5a55b9a5e50cb84b9307b8b5250a36",
113
+ "contentHash": "6bdb2be6534b4bc6a7160f21be2d00eeb7033428fdb55213fa4bba3c92d6f036",
114
114
  "since": "2025-01-01"
115
115
  },
116
116
  "hook:claim-intercept": {
@@ -119,7 +119,7 @@
119
119
  "domain": "coherence",
120
120
  "sourcePath": "src/core/PostUpdateMigrator.ts",
121
121
  "installedPath": ".instar/hooks/instar/claim-intercept.js",
122
- "contentHash": "b52da3c14379f20c8200730995dcb3303b5a55b9a5e50cb84b9307b8b5250a36",
122
+ "contentHash": "6bdb2be6534b4bc6a7160f21be2d00eeb7033428fdb55213fa4bba3c92d6f036",
123
123
  "since": "2025-01-01"
124
124
  },
125
125
  "hook:claim-intercept-response": {
@@ -128,7 +128,7 @@
128
128
  "domain": "coherence",
129
129
  "sourcePath": "src/core/PostUpdateMigrator.ts",
130
130
  "installedPath": ".instar/hooks/instar/claim-intercept-response.js",
131
- "contentHash": "b52da3c14379f20c8200730995dcb3303b5a55b9a5e50cb84b9307b8b5250a36",
131
+ "contentHash": "6bdb2be6534b4bc6a7160f21be2d00eeb7033428fdb55213fa4bba3c92d6f036",
132
132
  "since": "2025-01-01"
133
133
  },
134
134
  "hook:stop-gate-router": {
@@ -137,7 +137,7 @@
137
137
  "domain": "safety",
138
138
  "sourcePath": "src/core/PostUpdateMigrator.ts",
139
139
  "installedPath": ".instar/hooks/instar/stop-gate-router.js",
140
- "contentHash": "b52da3c14379f20c8200730995dcb3303b5a55b9a5e50cb84b9307b8b5250a36",
140
+ "contentHash": "6bdb2be6534b4bc6a7160f21be2d00eeb7033428fdb55213fa4bba3c92d6f036",
141
141
  "since": "2025-01-01"
142
142
  },
143
143
  "hook:auto-approve-permissions": {
@@ -146,7 +146,7 @@
146
146
  "domain": "safety",
147
147
  "sourcePath": "src/core/PostUpdateMigrator.ts",
148
148
  "installedPath": ".instar/hooks/instar/auto-approve-permissions.js",
149
- "contentHash": "b52da3c14379f20c8200730995dcb3303b5a55b9a5e50cb84b9307b8b5250a36",
149
+ "contentHash": "6bdb2be6534b4bc6a7160f21be2d00eeb7033428fdb55213fa4bba3c92d6f036",
150
150
  "since": "2025-01-01"
151
151
  },
152
152
  "job:health-check": {
@@ -154,7 +154,7 @@
154
154
  "type": "job",
155
155
  "domain": "monitoring",
156
156
  "sourcePath": "src/commands/init.ts",
157
- "contentHash": "4c7f2b41ef20bf845bae0addd8044247f42377ca88ce363a5611bd186591b814",
157
+ "contentHash": "7d9f15a3af92fd19211fc184aeb433369a89be42367e1ee1688bb4a1dabda245",
158
158
  "since": "2025-01-01"
159
159
  },
160
160
  "job:reflection-trigger": {
@@ -162,7 +162,7 @@
162
162
  "type": "job",
163
163
  "domain": "evolution",
164
164
  "sourcePath": "src/commands/init.ts",
165
- "contentHash": "4c7f2b41ef20bf845bae0addd8044247f42377ca88ce363a5611bd186591b814",
165
+ "contentHash": "7d9f15a3af92fd19211fc184aeb433369a89be42367e1ee1688bb4a1dabda245",
166
166
  "since": "2025-01-01"
167
167
  },
168
168
  "job:relationship-maintenance": {
@@ -170,7 +170,7 @@
170
170
  "type": "job",
171
171
  "domain": "relationships",
172
172
  "sourcePath": "src/commands/init.ts",
173
- "contentHash": "4c7f2b41ef20bf845bae0addd8044247f42377ca88ce363a5611bd186591b814",
173
+ "contentHash": "7d9f15a3af92fd19211fc184aeb433369a89be42367e1ee1688bb4a1dabda245",
174
174
  "since": "2025-01-01"
175
175
  },
176
176
  "job:feedback-retry": {
@@ -178,7 +178,7 @@
178
178
  "type": "job",
179
179
  "domain": "feedback",
180
180
  "sourcePath": "src/commands/init.ts",
181
- "contentHash": "4c7f2b41ef20bf845bae0addd8044247f42377ca88ce363a5611bd186591b814",
181
+ "contentHash": "7d9f15a3af92fd19211fc184aeb433369a89be42367e1ee1688bb4a1dabda245",
182
182
  "since": "2025-01-01"
183
183
  },
184
184
  "job:insight-harvest": {
@@ -186,7 +186,7 @@
186
186
  "type": "job",
187
187
  "domain": "evolution",
188
188
  "sourcePath": "src/commands/init.ts",
189
- "contentHash": "4c7f2b41ef20bf845bae0addd8044247f42377ca88ce363a5611bd186591b814",
189
+ "contentHash": "7d9f15a3af92fd19211fc184aeb433369a89be42367e1ee1688bb4a1dabda245",
190
190
  "since": "2025-01-01"
191
191
  },
192
192
  "job:evolution-overdue-check": {
@@ -194,7 +194,7 @@
194
194
  "type": "job",
195
195
  "domain": "general",
196
196
  "sourcePath": "src/commands/init.ts",
197
- "contentHash": "4c7f2b41ef20bf845bae0addd8044247f42377ca88ce363a5611bd186591b814",
197
+ "contentHash": "7d9f15a3af92fd19211fc184aeb433369a89be42367e1ee1688bb4a1dabda245",
198
198
  "since": "2025-01-01"
199
199
  },
200
200
  "job:project-map-refresh": {
@@ -202,7 +202,7 @@
202
202
  "type": "job",
203
203
  "domain": "mapping",
204
204
  "sourcePath": "src/commands/init.ts",
205
- "contentHash": "4c7f2b41ef20bf845bae0addd8044247f42377ca88ce363a5611bd186591b814",
205
+ "contentHash": "7d9f15a3af92fd19211fc184aeb433369a89be42367e1ee1688bb4a1dabda245",
206
206
  "since": "2025-01-01"
207
207
  },
208
208
  "job:coherence-audit": {
@@ -210,7 +210,7 @@
210
210
  "type": "job",
211
211
  "domain": "coherence",
212
212
  "sourcePath": "src/commands/init.ts",
213
- "contentHash": "4c7f2b41ef20bf845bae0addd8044247f42377ca88ce363a5611bd186591b814",
213
+ "contentHash": "7d9f15a3af92fd19211fc184aeb433369a89be42367e1ee1688bb4a1dabda245",
214
214
  "since": "2025-01-01"
215
215
  },
216
216
  "job:templates-drift-verifier": {
@@ -218,7 +218,7 @@
218
218
  "type": "job",
219
219
  "domain": "general",
220
220
  "sourcePath": "src/commands/init.ts",
221
- "contentHash": "4c7f2b41ef20bf845bae0addd8044247f42377ca88ce363a5611bd186591b814",
221
+ "contentHash": "7d9f15a3af92fd19211fc184aeb433369a89be42367e1ee1688bb4a1dabda245",
222
222
  "since": "2025-01-01"
223
223
  },
224
224
  "job:degradation-digest": {
@@ -226,7 +226,7 @@
226
226
  "type": "job",
227
227
  "domain": "monitoring",
228
228
  "sourcePath": "src/commands/init.ts",
229
- "contentHash": "4c7f2b41ef20bf845bae0addd8044247f42377ca88ce363a5611bd186591b814",
229
+ "contentHash": "7d9f15a3af92fd19211fc184aeb433369a89be42367e1ee1688bb4a1dabda245",
230
230
  "since": "2025-01-01"
231
231
  },
232
232
  "job:state-integrity-check": {
@@ -234,7 +234,7 @@
234
234
  "type": "job",
235
235
  "domain": "monitoring",
236
236
  "sourcePath": "src/commands/init.ts",
237
- "contentHash": "4c7f2b41ef20bf845bae0addd8044247f42377ca88ce363a5611bd186591b814",
237
+ "contentHash": "7d9f15a3af92fd19211fc184aeb433369a89be42367e1ee1688bb4a1dabda245",
238
238
  "since": "2025-01-01"
239
239
  },
240
240
  "job:memory-hygiene": {
@@ -242,7 +242,7 @@
242
242
  "type": "job",
243
243
  "domain": "memory",
244
244
  "sourcePath": "src/commands/init.ts",
245
- "contentHash": "4c7f2b41ef20bf845bae0addd8044247f42377ca88ce363a5611bd186591b814",
245
+ "contentHash": "7d9f15a3af92fd19211fc184aeb433369a89be42367e1ee1688bb4a1dabda245",
246
246
  "since": "2025-01-01"
247
247
  },
248
248
  "job:guardian-pulse": {
@@ -250,7 +250,7 @@
250
250
  "type": "job",
251
251
  "domain": "monitoring",
252
252
  "sourcePath": "src/commands/init.ts",
253
- "contentHash": "4c7f2b41ef20bf845bae0addd8044247f42377ca88ce363a5611bd186591b814",
253
+ "contentHash": "7d9f15a3af92fd19211fc184aeb433369a89be42367e1ee1688bb4a1dabda245",
254
254
  "since": "2025-01-01"
255
255
  },
256
256
  "job:session-continuity-check": {
@@ -258,7 +258,7 @@
258
258
  "type": "job",
259
259
  "domain": "sessions",
260
260
  "sourcePath": "src/commands/init.ts",
261
- "contentHash": "4c7f2b41ef20bf845bae0addd8044247f42377ca88ce363a5611bd186591b814",
261
+ "contentHash": "7d9f15a3af92fd19211fc184aeb433369a89be42367e1ee1688bb4a1dabda245",
262
262
  "since": "2025-01-01"
263
263
  },
264
264
  "job:memory-export": {
@@ -266,7 +266,7 @@
266
266
  "type": "job",
267
267
  "domain": "memory",
268
268
  "sourcePath": "src/commands/init.ts",
269
- "contentHash": "4c7f2b41ef20bf845bae0addd8044247f42377ca88ce363a5611bd186591b814",
269
+ "contentHash": "7d9f15a3af92fd19211fc184aeb433369a89be42367e1ee1688bb4a1dabda245",
270
270
  "since": "2025-01-01"
271
271
  },
272
272
  "job:git-sync": {
@@ -274,7 +274,7 @@
274
274
  "type": "job",
275
275
  "domain": "coordination",
276
276
  "sourcePath": "src/commands/init.ts",
277
- "contentHash": "4c7f2b41ef20bf845bae0addd8044247f42377ca88ce363a5611bd186591b814",
277
+ "contentHash": "7d9f15a3af92fd19211fc184aeb433369a89be42367e1ee1688bb4a1dabda245",
278
278
  "since": "2025-01-01"
279
279
  },
280
280
  "job:capability-audit": {
@@ -282,7 +282,7 @@
282
282
  "type": "job",
283
283
  "domain": "general",
284
284
  "sourcePath": "src/commands/init.ts",
285
- "contentHash": "4c7f2b41ef20bf845bae0addd8044247f42377ca88ce363a5611bd186591b814",
285
+ "contentHash": "7d9f15a3af92fd19211fc184aeb433369a89be42367e1ee1688bb4a1dabda245",
286
286
  "since": "2025-01-01"
287
287
  },
288
288
  "job:identity-review": {
@@ -290,7 +290,7 @@
290
290
  "type": "job",
291
291
  "domain": "general",
292
292
  "sourcePath": "src/commands/init.ts",
293
- "contentHash": "4c7f2b41ef20bf845bae0addd8044247f42377ca88ce363a5611bd186591b814",
293
+ "contentHash": "7d9f15a3af92fd19211fc184aeb433369a89be42367e1ee1688bb4a1dabda245",
294
294
  "since": "2025-01-01"
295
295
  },
296
296
  "job:evolution-proposal-evaluate": {
@@ -298,7 +298,7 @@
298
298
  "type": "job",
299
299
  "domain": "general",
300
300
  "sourcePath": "src/commands/init.ts",
301
- "contentHash": "4c7f2b41ef20bf845bae0addd8044247f42377ca88ce363a5611bd186591b814",
301
+ "contentHash": "7d9f15a3af92fd19211fc184aeb433369a89be42367e1ee1688bb4a1dabda245",
302
302
  "since": "2025-01-01"
303
303
  },
304
304
  "job:evolution-proposal-implement": {
@@ -306,7 +306,7 @@
306
306
  "type": "job",
307
307
  "domain": "general",
308
308
  "sourcePath": "src/commands/init.ts",
309
- "contentHash": "4c7f2b41ef20bf845bae0addd8044247f42377ca88ce363a5611bd186591b814",
309
+ "contentHash": "7d9f15a3af92fd19211fc184aeb433369a89be42367e1ee1688bb4a1dabda245",
310
310
  "since": "2025-01-01"
311
311
  },
312
312
  "job:commitment-detection": {
@@ -314,7 +314,7 @@
314
314
  "type": "job",
315
315
  "domain": "general",
316
316
  "sourcePath": "src/commands/init.ts",
317
- "contentHash": "4c7f2b41ef20bf845bae0addd8044247f42377ca88ce363a5611bd186591b814",
317
+ "contentHash": "7d9f15a3af92fd19211fc184aeb433369a89be42367e1ee1688bb4a1dabda245",
318
318
  "since": "2025-01-01"
319
319
  },
320
320
  "job:dashboard-link-refresh": {
@@ -322,7 +322,7 @@
322
322
  "type": "job",
323
323
  "domain": "general",
324
324
  "sourcePath": "src/commands/init.ts",
325
- "contentHash": "4c7f2b41ef20bf845bae0addd8044247f42377ca88ce363a5611bd186591b814",
325
+ "contentHash": "7d9f15a3af92fd19211fc184aeb433369a89be42367e1ee1688bb4a1dabda245",
326
326
  "since": "2025-01-01"
327
327
  },
328
328
  "job:overseer-guardian": {
@@ -330,7 +330,7 @@
330
330
  "type": "job",
331
331
  "domain": "general",
332
332
  "sourcePath": "src/commands/init.ts",
333
- "contentHash": "4c7f2b41ef20bf845bae0addd8044247f42377ca88ce363a5611bd186591b814",
333
+ "contentHash": "7d9f15a3af92fd19211fc184aeb433369a89be42367e1ee1688bb4a1dabda245",
334
334
  "since": "2025-01-01"
335
335
  },
336
336
  "job:overseer-learning": {
@@ -338,7 +338,7 @@
338
338
  "type": "job",
339
339
  "domain": "general",
340
340
  "sourcePath": "src/commands/init.ts",
341
- "contentHash": "4c7f2b41ef20bf845bae0addd8044247f42377ca88ce363a5611bd186591b814",
341
+ "contentHash": "7d9f15a3af92fd19211fc184aeb433369a89be42367e1ee1688bb4a1dabda245",
342
342
  "since": "2025-01-01"
343
343
  },
344
344
  "job:overseer-maintenance": {
@@ -346,7 +346,7 @@
346
346
  "type": "job",
347
347
  "domain": "general",
348
348
  "sourcePath": "src/commands/init.ts",
349
- "contentHash": "4c7f2b41ef20bf845bae0addd8044247f42377ca88ce363a5611bd186591b814",
349
+ "contentHash": "7d9f15a3af92fd19211fc184aeb433369a89be42367e1ee1688bb4a1dabda245",
350
350
  "since": "2025-01-01"
351
351
  },
352
352
  "job:overseer-infrastructure": {
@@ -354,7 +354,7 @@
354
354
  "type": "job",
355
355
  "domain": "general",
356
356
  "sourcePath": "src/commands/init.ts",
357
- "contentHash": "4c7f2b41ef20bf845bae0addd8044247f42377ca88ce363a5611bd186591b814",
357
+ "contentHash": "7d9f15a3af92fd19211fc184aeb433369a89be42367e1ee1688bb4a1dabda245",
358
358
  "since": "2025-01-01"
359
359
  },
360
360
  "job:overseer-development": {
@@ -362,7 +362,7 @@
362
362
  "type": "job",
363
363
  "domain": "general",
364
364
  "sourcePath": "src/commands/init.ts",
365
- "contentHash": "4c7f2b41ef20bf845bae0addd8044247f42377ca88ce363a5611bd186591b814",
365
+ "contentHash": "7d9f15a3af92fd19211fc184aeb433369a89be42367e1ee1688bb4a1dabda245",
366
366
  "since": "2025-01-01"
367
367
  },
368
368
  "skill:autonomous": {
@@ -1042,7 +1042,7 @@
1042
1042
  "type": "template",
1043
1043
  "domain": "safety",
1044
1044
  "sourcePath": "src/templates/hooks/compaction-recovery.sh",
1045
- "contentHash": "f65f4731a5142981cf021e948afa5b064dcc35ceadf6efd5354d749f2d85569f",
1045
+ "contentHash": "7309cf08137608e20e120f0dc568f74bc7725d103edcaedca4195be0b4ef2358",
1046
1046
  "since": "2025-01-01"
1047
1047
  },
1048
1048
  "template:dangerous-command-guard.sh": {
@@ -1082,7 +1082,7 @@
1082
1082
  "type": "template",
1083
1083
  "domain": "safety",
1084
1084
  "sourcePath": "src/templates/hooks/session-start.sh",
1085
- "contentHash": "d8b20ab9e46aecc400171bde09a5a64f5a1eeb53e09017564cebc65e67fca062",
1085
+ "contentHash": "985941e22ff1b68fdaab400c96e55320d8ed345a1ed154cac178d032076031bc",
1086
1086
  "since": "2025-01-01"
1087
1087
  },
1088
1088
  "template:settings-template.json": {
@@ -1106,7 +1106,7 @@
1106
1106
  "type": "template",
1107
1107
  "domain": "safety",
1108
1108
  "sourcePath": "src/templates/hooks/slack-channel-context.sh",
1109
- "contentHash": "ebb2a74ce3819a148b1cfaace3d3467d317ed8cccd98db5cd7ffe0df3a2e9784",
1109
+ "contentHash": "b64934728cfb53eaa0f6835e93f0e689a2c6d1078a332fe6c22cba4ba121c910",
1110
1110
  "since": "2025-01-01"
1111
1111
  },
1112
1112
  "template:telegram-topic-context.sh": {
@@ -1114,7 +1114,7 @@
1114
1114
  "type": "template",
1115
1115
  "domain": "safety",
1116
1116
  "sourcePath": "src/templates/hooks/telegram-topic-context.sh",
1117
- "contentHash": "317b11084547271dab3f333be8bdf5e536a5af7239f50d51030c62990b4b7e59",
1117
+ "contentHash": "9f879bab80548f0bcd6d02f6b727e74e163123086728d9b3367c004e57c1b560",
1118
1118
  "since": "2025-01-01"
1119
1119
  },
1120
1120
  "template:convergence-check.sh": {
@@ -1130,7 +1130,7 @@
1130
1130
  "type": "template",
1131
1131
  "domain": "operations",
1132
1132
  "sourcePath": "src/templates/scripts/emit-session-clock.sh",
1133
- "contentHash": "c83cff5728bef544c20ca4a8bce432981175161a4ac2272e112edc612949806d",
1133
+ "contentHash": "6111425eed298b093b95677bd8dc8f0c751344e103b3b4fed7042b327852663b",
1134
1134
  "since": "2025-01-01"
1135
1135
  },
1136
1136
  "template:git-sync-gate.sh": {
@@ -1154,7 +1154,7 @@
1154
1154
  "type": "template",
1155
1155
  "domain": "operations",
1156
1156
  "sourcePath": "src/templates/scripts/imessage-reply.sh",
1157
- "contentHash": "e4ecc66feaaea92c5f65f008e5b82b1022c7fd61ee9e4f1ed1346106b4a63d6c",
1157
+ "contentHash": "a59b511930bacb382b147e4ccc0ecff4de75afe0c47624b416292051f8c00265",
1158
1158
  "since": "2025-01-01"
1159
1159
  },
1160
1160
  "template:instar-watchdog.sh": {
@@ -1162,7 +1162,7 @@
1162
1162
  "type": "template",
1163
1163
  "domain": "operations",
1164
1164
  "sourcePath": "src/templates/scripts/instar-watchdog.sh",
1165
- "contentHash": "1f462b267e6724bea21692e617bd61a6b7cd4def7187321871cdc1fc178d1d1b",
1165
+ "contentHash": "5bd48e727691adcb9e1aaee2d61af192f54ed6d1244ca1931422a5926c7d9d10",
1166
1166
  "since": "2025-01-01"
1167
1167
  },
1168
1168
  "template:instar-worktree-create.sh": {
@@ -1178,7 +1178,7 @@
1178
1178
  "type": "template",
1179
1179
  "domain": "operations",
1180
1180
  "sourcePath": "src/templates/scripts/secret-drop-retrieve.mjs",
1181
- "contentHash": "61bccdfd78def176f1843361c8f7c5c128db723ec650997c74d6ca7c1fc2ba36",
1181
+ "contentHash": "fb5b4e3d31f7b7398ced63fd9578477dce4fc13e4890a77ac1edbc1221d8eb54",
1182
1182
  "since": "2025-01-01"
1183
1183
  },
1184
1184
  "template:serendipity-capture.sh": {
@@ -1194,7 +1194,7 @@
1194
1194
  "type": "template",
1195
1195
  "domain": "operations",
1196
1196
  "sourcePath": "src/templates/scripts/slack-reply.sh",
1197
- "contentHash": "ea698ef54e0e48233d82225c6cfcf886f58c7939101d966cfafc5e85edcac6a4",
1197
+ "contentHash": "818feffbcfecdc55ae18b3d80923246eed0cb1b7f2de6c7360174ae74b588088",
1198
1198
  "since": "2025-01-01"
1199
1199
  },
1200
1200
  "template:smart-fetch.py": {
@@ -1218,7 +1218,7 @@
1218
1218
  "type": "template",
1219
1219
  "domain": "operations",
1220
1220
  "sourcePath": "src/templates/scripts/whatsapp-reply.sh",
1221
- "contentHash": "942712aa272235bca9f14ab6baa23bbe5ae0a8bf20f76edf87c963b181a7764c",
1221
+ "contentHash": "be718f0bf29101f29ca26872711d1f24b00eedaacc8cdbc6ca601d9197874144",
1222
1222
  "since": "2025-01-01"
1223
1223
  },
1224
1224
  "playbook-script:atomic_write.py": {
@@ -1506,7 +1506,7 @@
1506
1506
  "type": "subsystem",
1507
1507
  "domain": "sessions",
1508
1508
  "sourcePath": "src/core/SessionManager.ts",
1509
- "contentHash": "4798aa00b08d4697ccaa2fbdba6224289b7bd21290dad9c4a911c0bfd9bc657f",
1509
+ "contentHash": "a6cf21efd904fb1c7d274d03c92ef7c368f14de8471242905f9a78ad43da47d5",
1510
1510
  "since": "2025-01-01"
1511
1511
  },
1512
1512
  "subsystem:auto-updater": {
@@ -1530,7 +1530,7 @@
1530
1530
  "type": "subsystem",
1531
1531
  "domain": "updates",
1532
1532
  "sourcePath": "src/core/PostUpdateMigrator.ts",
1533
- "contentHash": "b52da3c14379f20c8200730995dcb3303b5a55b9a5e50cb84b9307b8b5250a36",
1533
+ "contentHash": "6bdb2be6534b4bc6a7160f21be2d00eeb7033428fdb55213fa4bba3c92d6f036",
1534
1534
  "since": "2025-01-01"
1535
1535
  },
1536
1536
  "subsystem:scheduler": {
@@ -1538,7 +1538,7 @@
1538
1538
  "type": "subsystem",
1539
1539
  "domain": "scheduling",
1540
1540
  "sourcePath": "src/scheduler/JobScheduler.ts",
1541
- "contentHash": "259ec563f94e590e7bab6122523adf7806931bee1c3ce69d68f98a784e6bc269",
1541
+ "contentHash": "ac3c79284e9f81e58072f994584efdde26a4d473a41cfaeb23d3cfd2282f1d82",
1542
1542
  "since": "2025-01-01"
1543
1543
  },
1544
1544
  "subsystem:project-mapper": {
@@ -19,11 +19,12 @@ mcpAccess: none
19
19
  Scan recent messages for commitments and promises.
20
20
 
21
21
  AUTH=$(python3 -c "import json; print(json.load(open('.instar/config.json')).get('authToken',''))" 2>/dev/null)
22
+ AGENT_ID="${INSTAR_AGENT_ID:-$(python3 -c "import json; print(json.load(open('.instar/config.json')).get('projectName',''))" 2>/dev/null)}"
22
23
 
23
24
  1. Read your bookmark: cat .instar/state/commitment-detection-bookmark.json 2>/dev/null || echo '{"lastProcessedId": 0}'
24
25
  2. Fetch new messages since bookmark from Telegram message log: tail -100 .instar/telegram-messages.jsonl
25
26
  3. For each new message, check: does it contain a commitment, promise, or action item? Look for patterns like 'I will', 'let me', 'I\'ll build', 'we should', 'TODO', 'action item', deadlines, etc.
26
- 4. For each detected commitment, register it: curl -s -X POST http://localhost:${INSTAR_PORT:-4042}/evolution/actions -H "Authorization: Bearer $AUTH" -H 'Content-Type: application/json' -d '{"title":"...","source":"commitment-detection","description":"...","dueDate":"..."}'
27
+ 4. For each detected commitment, register it: curl -s -X POST http://localhost:${INSTAR_PORT:-4042}/evolution/actions -H "Authorization: Bearer $AUTH" -H "X-Instar-AgentId: $AGENT_ID" -H 'Content-Type: application/json' -d '{"title":"...","source":"commitment-detection","description":"...","dueDate":"..."}'
27
28
  5. Update bookmark with the last processed message ID.
28
29
 
29
30
  Only process NEW messages since last bookmark. Exit silently if no new commitments found.
@@ -16,12 +16,16 @@ mcpAccess: none
16
16
  ---
17
17
  Run the weekly Correction & Preference Learning analysis. This job exists because a correction the user makes in three different sessions over a week looks like three unrelated one-offs — the recurring ones, the ones that matter most, are exactly the ones no single session can see. This turns the accumulated, distilled record into a routed lesson, and closes the loop on the preference path.
18
18
 
19
+ AUTH="${INSTAR_AUTH_TOKEN:-$(python3 -c "import json; v=json.load(open('.instar/config.json')).get('authToken',''); print(v if isinstance(v, str) else '')" 2>/dev/null)}"
20
+ AGENT_ID="${INSTAR_AGENT_ID:-$(python3 -c "import json; print(json.load(open('.instar/config.json')).get('projectName',''))" 2>/dev/null)}"
21
+ PORT="${INSTAR_PORT:-4042}"
22
+
19
23
  The job:
20
24
 
21
25
  1. Confirm the feature is on. If `monitoring.correctionLearning.enabled` is not true, exit silently — there is nothing to do.
22
26
 
23
27
  2. Call the analyzer + closed-loop tick:
24
- `curl -s -X POST -H "Authorization: Bearer $AUTH" http://localhost:$PORT/corrections/analyze`
28
+ `curl -s -X POST -H "Authorization: Bearer $AUTH" -H "X-Instar-AgentId: $AGENT_ID" http://localhost:$PORT/corrections/analyze`
25
29
  The response is `{ analysis: { considered, crossed, belowThreshold }, routed: { total, toFeedback, toPreferences, toAttention }, verified }`. The endpoint does the deterministic work: it only routes a learning that crosses the THREE-PRONGED recurrence gate (minSupport AND distinct calendar days AND a second orthogonal prong), keying on a code-determined provenance weight so an injected prompt cannot steer it. An explicit preference is written to the preferences file the session-start hook injects on every boot; an infra-gap becomes a human-approved tracked draft (or, only if autoFeedback is on, a /feedback proposal through the real route guards); a policy-relaxation learning is routed to the Attention queue for your one-tap approval — never silently applied. It can NEVER mint a proposal or edit a memory file (by-construction authority guard).
26
30
 
27
31
  3. **Tier-1 supervision (your job).** For each routed learning, sanity-check it against its own evidence before you surface it: does the summary actually match a recurring correction, and does the support count justify acting on it? If a routed learning looks malformed or unsupported, do NOT surface it — note it and move on. You are the validation wrapper around the deterministic core.
@@ -11,7 +11,7 @@ tags:
11
11
  - role:worker
12
12
  - exec:prompt
13
13
  - pair:commitment-detection
14
- gate: "curl -sf -H \"Authorization: Bearer $INSTAR_AUTH_TOKEN\" http://localhost:${INSTAR_PORT:-4042}/evolution/actions/overdue 2>/dev/null | python3 -c \"import sys,json; d=json.load(sys.stdin); exit(0 if len(d.get('overdue',[])) > 0 else 1)\""
14
+ gate: "curl -sf -H \"Authorization: Bearer $INSTAR_AUTH_TOKEN\" -H \"X-Instar-AgentId: $INSTAR_AGENT_ID\" http://localhost:${INSTAR_PORT:-4042}/evolution/actions/overdue 2>/dev/null | python3 -c \"import sys,json; d=json.load(sys.stdin); exit(0 if len(d.get('overdue',[])) > 0 else 1)\""
15
15
  toolAllowlist: "*"
16
16
  unrestrictedTools: true
17
17
  mcpAccess: none
@@ -11,7 +11,7 @@ tags:
11
11
  - role:worker
12
12
  - exec:prompt
13
13
  - pair:evolution-proposal-implement
14
- gate: "curl -sf -H \"Authorization: Bearer $INSTAR_AUTH_TOKEN\" http://localhost:${INSTAR_PORT:-4042}/evolution/proposals?status=proposed 2>/dev/null | python3 -c \"import sys,json; d=json.load(sys.stdin); exit(0 if len(d.get('proposals',[])) > 0 else 1)\""
14
+ gate: "curl -sf -H \"Authorization: Bearer $INSTAR_AUTH_TOKEN\" -H \"X-Instar-AgentId: $INSTAR_AGENT_ID\" http://localhost:${INSTAR_PORT:-4042}/evolution/proposals?status=proposed 2>/dev/null | python3 -c \"import sys,json; d=json.load(sys.stdin); exit(0 if len(d.get('proposals',[])) > 0 else 1)\""
15
15
  toolAllowlist: "*"
16
16
  unrestrictedTools: true
17
17
  mcpAccess: none
@@ -11,7 +11,7 @@ tags:
11
11
  - role:worker
12
12
  - exec:prompt
13
13
  - pair:evolution-proposal-evaluate
14
- gate: "curl -sf -H \"Authorization: Bearer $INSTAR_AUTH_TOKEN\" http://localhost:${INSTAR_PORT:-4042}/evolution/proposals?status=approved 2>/dev/null | python3 -c \"import sys,json; d=json.load(sys.stdin); exit(0 if len(d.get('proposals',[])) > 0 else 1)\""
14
+ gate: "curl -sf -H \"Authorization: Bearer $INSTAR_AUTH_TOKEN\" -H \"X-Instar-AgentId: $INSTAR_AGENT_ID\" http://localhost:${INSTAR_PORT:-4042}/evolution/proposals?status=approved 2>/dev/null | python3 -c \"import sys,json; d=json.load(sys.stdin); exit(0 if len(d.get('proposals',[])) > 0 else 1)\""
15
15
  toolAllowlist: "*"
16
16
  unrestrictedTools: true
17
17
  ---
@@ -16,12 +16,16 @@ mcpAccess: none
16
16
  ---
17
17
  Run the weekly Failure-Learning analysis. This job exists because individual failures get fixed and forgotten — this turns the accumulated, attributed record into process-level insight, and closes the loop all the way to a human-approved fix and a verification that the fix worked.
18
18
 
19
+ AUTH="${INSTAR_AUTH_TOKEN:-$(python3 -c "import json; v=json.load(open('.instar/config.json')).get('authToken',''); print(v if isinstance(v, str) else '')" 2>/dev/null)}"
20
+ AGENT_ID="${INSTAR_AGENT_ID:-$(python3 -c "import json; print(json.load(open('.instar/config.json')).get('projectName',''))" 2>/dev/null)}"
21
+ PORT="${INSTAR_PORT:-4042}"
22
+
19
23
  The job:
20
24
 
21
25
  1. Confirm the feature is on. If `monitoring.failureLearning.enabled` is not true, exit silently — there is nothing to do.
22
26
 
23
27
  2. Call the analyzer + closed-loop tick:
24
- `curl -s -X POST -H "Authorization: Bearer $AUTH" http://localhost:$PORT/failures/analyze`
28
+ `curl -s -X POST -H "Authorization: Bearer $AUTH" -H "X-Instar-AgentId: $AGENT_ID" http://localhost:$PORT/failures/analyze`
25
29
  The response is `{ analysis: { insightsDiscovered, clustersConsidered, clustersBelowThreshold }, actedOn, verified }`. The endpoint does the deterministic work: it only surfaces a pattern that crosses the support + source-diversity gate (so a single noisy session or a flaky test can never manufacture one), opens a tracked Evolution Action + a draft Initiative for each genuinely-new insight (it can NEVER change the process itself — a human approves), and runs the verify step on past fixes whose window has elapsed.
26
30
 
27
31
  3. **Tier-1 supervision (your job).** For each insight in `analysis.insightsDiscovered`, sanity-check it against its own evidence before you surface it: does the recommendation actually match the category and the supporting-failure count? If an insight looks malformed or unsupported, do NOT surface it — note it and move on. You are the validation wrapper around the deterministic core.
@@ -18,16 +18,17 @@ mcpAccess: none
18
18
  Identity review — check your identity coherence and growth.
19
19
 
20
20
  AUTH=$(python3 -c "import json; print(json.load(open('.instar/config.json')).get('authToken',''))" 2>/dev/null)
21
+ AGENT_ID="${INSTAR_AGENT_ID:-$(python3 -c "import json; print(json.load(open('.instar/config.json')).get('projectName',''))" 2>/dev/null)}"
21
22
 
22
- 1. **Check soul.md drift**: curl -s -H "Authorization: Bearer $AUTH" http://localhost:${INSTAR_PORT:-4042}/identity/soul/drift
23
+ 1. **Check soul.md drift**: curl -s -H "Authorization: Bearer $AUTH" -H "X-Instar-AgentId: $AGENT_ID" http://localhost:${INSTAR_PORT:-4042}/identity/soul/drift
23
24
  - If anyAboveThreshold is true, review the divergence. Is this healthy growth or unexpected drift?
24
25
  - If drift looks healthy, mark it reviewed: the growth is intentional.
25
26
  - If drift looks concerning, flag with [ATTENTION] so the user is notified.
26
27
 
27
- 2. **Check pending changes**: curl -s -H "Authorization: Bearer $AUTH" http://localhost:${INSTAR_PORT:-4042}/identity/soul/pending
28
+ 2. **Check pending changes**: curl -s -H "Authorization: Bearer $AUTH" -H "X-Instar-AgentId: $AGENT_ID" http://localhost:${INSTAR_PORT:-4042}/identity/soul/pending
28
29
  - If pending changes exist, surface them to the user via Telegram (the user should approve/reject these).
29
30
 
30
- 3. **Check for identity-relevant learnings**: curl -s -H "Authorization: Bearer $AUTH" http://localhost:${INSTAR_PORT:-4042}/evolution/learnings?applied=false
31
+ 3. **Check for identity-relevant learnings**: curl -s -H "Authorization: Bearer $AUTH" -H "X-Instar-AgentId: $AGENT_ID" http://localhost:${INSTAR_PORT:-4042}/evolution/learnings?applied=false
31
32
  - For each unapplied learning, assess: is this about operational knowledge (how to do something) or about your values, beliefs, or self-understanding?
32
33
  - If you find 3+ identity-relevant learnings since your last soul.md update, consider running /reflect.
33
34
  - Don't force it — if none of the learnings touch on identity, that's fine. Exit silently.
@@ -37,7 +38,7 @@ AUTH=$(python3 -c "import json; print(json.load(open('.instar/config.json')).get
37
38
  - Is the Self-Observations section populated? If you've noticed behavioral patterns, document them.
38
39
  - Update Identity History if you make changes.
39
40
 
40
- 5. **Integrity check**: curl -s -H "Authorization: Bearer $AUTH" http://localhost:${INSTAR_PORT:-4042}/identity/soul/integrity
41
+ 5. **Integrity check**: curl -s -H "Authorization: Bearer $AUTH" -H "X-Instar-AgentId: $AGENT_ID" http://localhost:${INSTAR_PORT:-4042}/identity/soul/integrity
41
42
  - If integrity fails, flag with [ATTENTION] — soul.md may have been modified outside normal channels.
42
43
 
43
44
  If everything is coherent and no reflection is needed, exit silently. Only report via [ATTENTION] if drift is concerning, integrity fails, or pending changes need user action.
@@ -20,7 +20,9 @@ Context: the FeatureRolloutReconciler auto-populates the board from approved spe
20
20
 
21
21
  Steps:
22
22
 
23
- 1. **Pull the digest:** `curl -s -H "Authorization: Bearer $AUTH" http://localhost:$PORT/initiatives/digest`. It returns items flagged `needs-user`, `ready-to-advance`, `stale`, or `next-check-due`.
23
+ 0. **Set auth context:** `AUTH="${INSTAR_AUTH_TOKEN:-$(python3 -c "import json; v=json.load(open('.instar/config.json')).get('authToken',''); print(v if isinstance(v, str) else '')" 2>/dev/null)}"; AGENT_ID="${INSTAR_AGENT_ID:-$(python3 -c "import json; print(json.load(open('.instar/config.json')).get('projectName',''))" 2>/dev/null)}"; PORT="${INSTAR_PORT:-4042}"`
24
+
25
+ 1. **Pull the digest:** `curl -s -H "Authorization: Bearer $AUTH" -H "X-Instar-AgentId: $AGENT_ID" http://localhost:$PORT/initiatives/digest`. It returns items flagged `needs-user`, `ready-to-advance`, `stale`, or `next-check-due`.
24
26
 
25
27
  2. **Near-silent edge filter.** For each `needs-user` item, only surface it if it is NEWLY needs-user since the last surface (compare against the initiative's `rollout.lastDigestNotifiedAt`, or its `updatedAt`). Do NOT re-surface a decision you already raised and the user hasn't acted on — that is the noise the near-silent standard forbids. `stale` / counts stay on the pull surface (the digest endpoint + dashboard); do not push them.
26
28
 
@@ -9,7 +9,7 @@ enabled: true
9
9
  tags:
10
10
  - cat:learning
11
11
  - evolution
12
- gate: "curl -sf -H \"Authorization: Bearer $INSTAR_AUTH_TOKEN\" http://localhost:${INSTAR_PORT:-4042}/evolution/learnings?applied=false 2>/dev/null | python3 -c \"import sys,json; d=json.load(sys.stdin); exit(0 if len(d.get('learnings',[])) > 0 else 1)\""
12
+ gate: "curl -sf -H \"Authorization: Bearer $INSTAR_AUTH_TOKEN\" -H \"X-Instar-AgentId: $INSTAR_AGENT_ID\" http://localhost:${INSTAR_PORT:-4042}/evolution/learnings?applied=false 2>/dev/null | python3 -c \"import sys,json; d=json.load(sys.stdin); exit(0 if len(d.get('learnings',[])) > 0 else 1)\""
13
13
  toolAllowlist: "*"
14
14
  unrestrictedTools: true
15
15
  mcpAccess: none