@event4u/agent-config 1.27.0 → 1.29.0
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/.agent-src/commands/research.md +142 -0
- package/.agent-src/contexts/contracts/frugality-charter.md +4 -3
- package/.agent-src/contexts/contracts/research-schema.md +117 -0
- package/.agent-src/rules/domain-adoption-policy.md +1 -1
- package/.agent-src/rules/no-roadmap-references.md +1 -1
- package/.agent-src/rules/no-unsolicited-rebase.md +1 -1
- package/.agent-src/rules/scope-control.md +6 -8
- package/.agent-src/skills/async-python-patterns/SKILL.md +147 -0
- package/.agent-src/skills/deep-reading-analyst/SKILL.md +192 -0
- package/.agent-src/skills/defense-in-depth/SKILL.md +152 -0
- package/.agent-src/skills/error-handling-patterns/SKILL.md +134 -0
- package/.agent-src/skills/mcp-builder/SKILL.md +108 -0
- package/.agent-src/skills/prompt-engineering-patterns/SKILL.md +145 -0
- package/.agent-src/skills/repomix/SKILL.md +135 -0
- package/.agent-src/skills/roadmap-writing/SKILL.md +3 -3
- package/.agent-src/skills/secrets-management/SKILL.md +142 -0
- package/.agent-src/skills/testing-anti-patterns/SKILL.md +145 -0
- package/.agent-src/templates/agent-settings.md +1 -1
- package/.claude-plugin/marketplace.json +11 -1
- package/CHANGELOG.md +57 -0
- package/README.md +3 -3
- package/docs/architecture.md +3 -3
- package/docs/catalog.md +20 -7
- package/docs/contracts/command-clusters.md +1 -0
- package/docs/contracts/file-ownership-matrix.json +1644 -165
- package/docs/contracts/package-self-orientation.md +1 -1
- package/docs/decisions/ADR-004-rule-governance-pruning.md +3 -3
- package/docs/getting-started.md +1 -1
- package/docs/guidelines/agent-infra/inversion-thinking.md +388 -0
- package/docs/guidelines/agent-infra/mcp-request-signing.md +11 -14
- package/docs/guidelines/agent-infra/mental-models.md +314 -0
- package/docs/guidelines/agent-infra/scqa-framework.md +526 -0
- package/package.json +1 -1
- package/scripts/schemas/skill.schema.json +15 -0
|
@@ -228,10 +228,10 @@ documentation rewrite for marginal additional savings.
|
|
|
228
228
|
council walk, host verdicts)
|
|
229
229
|
- `agents/reports/auto-rules-overlap.json` (Phase 5.2 data)
|
|
230
230
|
- `agents/reports/auto-rules-likelihood.json` (Phase 5.3 data)
|
|
231
|
-
- `agents/council-questions/augment-limit-fit-rule-governance.md`
|
|
231
|
+
- `agents/council-questions/augment-limit-fit-rule-governance.md` <!-- council-ref-allowed: ADR decision trace -->
|
|
232
232
|
(Phase 5.4 prompt)
|
|
233
|
-
- `agents/council-responses/augment-limit-fit-rule-governance.json`
|
|
234
|
-
(Phase 5.4 R3 raw debate)
|
|
233
|
+
- `agents/council-responses/augment-limit-fit-rule-governance.json` <!-- council-ref-allowed: ADR decision trace -->
|
|
234
|
+
(Phase 5.4 R3 raw debate)
|
|
235
235
|
- `docs/decisions/ADR-rule-kernel-and-router.md` (kernel-membership
|
|
236
236
|
contract — Phase 5 changes leave kernel untouched per Lever C lock)
|
|
237
237
|
- `.agent-src.uncompressed/rules/guidelines.md` (deprecated subject)
|
package/docs/getting-started.md
CHANGED
|
@@ -153,7 +153,7 @@ Your agent now understands slash commands:
|
|
|
153
153
|
| `/quality-fix` | Run and fix all quality checks |
|
|
154
154
|
| `/chat-history` | Inspect the persistent chat-history log (read-only `show`) |
|
|
155
155
|
|
|
156
|
-
→ [Browse all
|
|
156
|
+
→ [Browse all 104 active commands](../.agent-src/commands/)
|
|
157
157
|
|
|
158
158
|
---
|
|
159
159
|
|
|
@@ -0,0 +1,388 @@
|
|
|
1
|
+
# Inversion Thinking
|
|
2
|
+
|
|
3
|
+
Reference guideline for Wing-1 deep-thinking work — Carl Jacobi's
|
|
4
|
+
"invert, always invert" applied to **decisions and arguments**, not
|
|
5
|
+
diffs. The pre-mortem on a strategy, an argument, or a written plan;
|
|
6
|
+
distinct from
|
|
7
|
+
[`adversarial-review`](../../../.agent-src.uncompressed/skills/adversarial-review/SKILL.md)
|
|
8
|
+
which stress-tests **diffs**. Adopted under the **Reference-Guideline
|
|
9
|
+
Sunset Policy** (see frontmatter `upstream` / `refresh_trigger` keys)
|
|
10
|
+
and cross-referenced from:
|
|
11
|
+
|
|
12
|
+
- [`refine-prompt`](../../../.agent-src.uncompressed/skills/refine-prompt/SKILL.md)
|
|
13
|
+
— pre-mortem on a free-form prompt before planning.
|
|
14
|
+
- [`refine-ticket`](../../../.agent-src.uncompressed/skills/refine-ticket/SKILL.md)
|
|
15
|
+
— pre-mortem on a Jira / Linear ticket before estimation.
|
|
16
|
+
- [`threat-modeling`](../../../.agent-src.uncompressed/skills/threat-modeling/SKILL.md)
|
|
17
|
+
— abuse-case generation pairs with goal inversion.
|
|
18
|
+
- [`improve-before-implement`](../../../.agent-src.uncompressed/rules/improve-before-implement.md)
|
|
19
|
+
— challenge weak requirements before writing code.
|
|
20
|
+
|
|
21
|
+
> **Core principle:** "Invert, always invert." — Carl Jacobi
|
|
22
|
+
|
|
23
|
+
**Scope split with `adversarial-review`:** this guideline targets
|
|
24
|
+
**decisions** (will the plan work? what guarantees failure?
|
|
25
|
+
which assumptions are load-bearing?). `adversarial-review` targets
|
|
26
|
+
**diffs** (what edge cases break this code? where do null / race /
|
|
27
|
+
auth bugs live?). Cross-link, do not merge.
|
|
28
|
+
|
|
29
|
+
## When to Use
|
|
30
|
+
|
|
31
|
+
Ideal for:
|
|
32
|
+
- 🎯 Mitigating risks and avoiding failure
|
|
33
|
+
- 🔍 Discovering hidden problems and obstacles
|
|
34
|
+
- 💡 Breaking through mental blocks
|
|
35
|
+
- ⚠️ Stress-testing plans for fragility
|
|
36
|
+
- 🛡️ Building defensive strategies
|
|
37
|
+
|
|
38
|
+
## Three Inversion Modes
|
|
39
|
+
|
|
40
|
+
### 1. Goal Inversion
|
|
41
|
+
|
|
42
|
+
**Forward**: How to achieve goal X?
|
|
43
|
+
**Inverted**: How to guarantee failure to achieve X?
|
|
44
|
+
|
|
45
|
+
```markdown
|
|
46
|
+
## Goal Inversion Analysis
|
|
47
|
+
|
|
48
|
+
Forward Goal: [Article's main recommendation]
|
|
49
|
+
|
|
50
|
+
Inverted Questions:
|
|
51
|
+
1. What behaviors guarantee failure?
|
|
52
|
+
2. Which factors completely sabotage the plan?
|
|
53
|
+
3. What's the worst possible outcome?
|
|
54
|
+
|
|
55
|
+
Insights:
|
|
56
|
+
- Must-avoid behaviors: [List]
|
|
57
|
+
- Critical risk points: [Identify]
|
|
58
|
+
- Defensive strategy: [Formulate]
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### 2. Assumption Inversion
|
|
62
|
+
|
|
63
|
+
**Forward**: If assumption A holds, then conclusion B is valid
|
|
64
|
+
**Inverted**: What happens if assumption A doesn't hold?
|
|
65
|
+
|
|
66
|
+
```markdown
|
|
67
|
+
## Assumption Inversion Test
|
|
68
|
+
|
|
69
|
+
Article's core assumptions:
|
|
70
|
+
1. [Assumption 1]
|
|
71
|
+
2. [Assumption 2]
|
|
72
|
+
3. [Assumption 3]
|
|
73
|
+
|
|
74
|
+
Inversion Test:
|
|
75
|
+
- If assumption 1 is reversed, how does the conclusion change?
|
|
76
|
+
- Under what conditions does this assumption fail?
|
|
77
|
+
- Are there counterexamples?
|
|
78
|
+
|
|
79
|
+
Discovered vulnerabilities: [List]
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
### 3. Causality Inversion
|
|
83
|
+
|
|
84
|
+
**Forward**: A causes B (cause to effect)
|
|
85
|
+
**Inverted**: To get B, what must be true? (effect to cause)
|
|
86
|
+
|
|
87
|
+
```markdown
|
|
88
|
+
## Causality Inversion
|
|
89
|
+
|
|
90
|
+
Desired Outcome: [Article's promised result]
|
|
91
|
+
|
|
92
|
+
Backward Derivation:
|
|
93
|
+
- To achieve this, what conditions must be met?
|
|
94
|
+
- Are all these conditions mentioned in the article?
|
|
95
|
+
- What critical factors are missing?
|
|
96
|
+
|
|
97
|
+
Necessary Conditions:
|
|
98
|
+
✓ [Met conditions]
|
|
99
|
+
✗ [Unmentioned necessary conditions] ← Important discovery
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
## Application Method
|
|
103
|
+
|
|
104
|
+
### Step 1: Identify Forward Claims
|
|
105
|
+
|
|
106
|
+
```markdown
|
|
107
|
+
## Article's Forward Claims
|
|
108
|
+
|
|
109
|
+
Core thesis: [Extract]
|
|
110
|
+
Recommended actions: [List]
|
|
111
|
+
Expected results: [Describe]
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
### Step 2: Apply Four Inversion Questions
|
|
115
|
+
|
|
116
|
+
#### ❌ Q1: How to guarantee failure?
|
|
117
|
+
|
|
118
|
+
```markdown
|
|
119
|
+
Most effective failure methods:
|
|
120
|
+
1. [Opposite of recommendations]
|
|
121
|
+
2. [Ignored critical factors]
|
|
122
|
+
3. [Problems from over-execution]
|
|
123
|
+
|
|
124
|
+
Insight: Avoid these traps
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
#### ⚠️ Q2: When would the advice backfire?
|
|
128
|
+
|
|
129
|
+
```markdown
|
|
130
|
+
Backfire scenarios:
|
|
131
|
+
- Wrong timing: [Explain]
|
|
132
|
+
- Wrong context: [Explain]
|
|
133
|
+
- Insufficient resources: [Explain]
|
|
134
|
+
|
|
135
|
+
Prerequisites: [Unstated but necessary conditions]
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
#### 🔍 Q3: What risks are missing?
|
|
139
|
+
|
|
140
|
+
```markdown
|
|
141
|
+
Risks article doesn't mention:
|
|
142
|
+
1. [Hidden risk 1]
|
|
143
|
+
2. [Hidden risk 2]
|
|
144
|
+
3. [Hidden risk 3]
|
|
145
|
+
|
|
146
|
+
Risk mitigation: [Supplement]
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
#### 🎯 Q4: What's reasonable about the opposite view?
|
|
150
|
+
|
|
151
|
+
```markdown
|
|
152
|
+
Contrary perspectives:
|
|
153
|
+
- [Counter-argument 1]
|
|
154
|
+
- [Counter-argument 2]
|
|
155
|
+
|
|
156
|
+
Merit in opposition:
|
|
157
|
+
- [Analysis]
|
|
158
|
+
- [When might the opposite be better]
|
|
159
|
+
|
|
160
|
+
Balanced view: [Synthesized judgment]
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
### Step 3: Build Failure-Mode Checklist
|
|
164
|
+
|
|
165
|
+
```markdown
|
|
166
|
+
## Failure Prevention Checklist
|
|
167
|
+
|
|
168
|
+
Based on inversion, avoid:
|
|
169
|
+
- [ ] [Failure mode 1] → Prevention: [Specific action]
|
|
170
|
+
- [ ] [Failure mode 2] → Prevention: [Specific action]
|
|
171
|
+
- [ ] [Failure mode 3] → Prevention: [Specific action]
|
|
172
|
+
|
|
173
|
+
Early warning signs:
|
|
174
|
+
- 🚨 [Signal 1] → Indicates moving toward failure
|
|
175
|
+
- 🚨 [Signal 2] → Requires immediate adjustment
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
### Step 4: Restructure Action Plan
|
|
179
|
+
|
|
180
|
+
```markdown
|
|
181
|
+
## Defensive Action Plan
|
|
182
|
+
|
|
183
|
+
Original plan: [Article's recommendation]
|
|
184
|
+
|
|
185
|
+
Optimized plan (with inversion insights):
|
|
186
|
+
1. [Original action] + [Risk mitigation]
|
|
187
|
+
2. [Added preventive step]
|
|
188
|
+
3. [Established safety margin]
|
|
189
|
+
|
|
190
|
+
Stop-Doing List:
|
|
191
|
+
- ❌ [Explicitly what NOT to do]
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
## Practical Examples
|
|
195
|
+
|
|
196
|
+
### Example 1: Productivity Article
|
|
197
|
+
|
|
198
|
+
**Article Claim**: "Waking up at 5am is key to success"
|
|
199
|
+
|
|
200
|
+
#### Inversion Analysis:
|
|
201
|
+
|
|
202
|
+
**Forward**: How to become an early riser?
|
|
203
|
+
**Inverted**: How to guarantee the 5am plan fails?
|
|
204
|
+
|
|
205
|
+
**Failure Checklist**:
|
|
206
|
+
1. Stay up until 3am → Insight: Total sleep matters more than wake time
|
|
207
|
+
2. No compelling morning reason → Insight: Need clear morning purpose
|
|
208
|
+
3. Inconsistent weekend schedule → Insight: Consistency is key
|
|
209
|
+
4. Alarm within arm's reach → Insight: Environmental design matters
|
|
210
|
+
|
|
211
|
+
**Inversion Discoveries**:
|
|
212
|
+
- ⚠️ Article ignores: Individual chronotype differences ("night owls")
|
|
213
|
+
- ⚠️ Fails when: Work requires night shifts
|
|
214
|
+
- ⚠️ Backfires: Sleep deprivation reduces productivity
|
|
215
|
+
|
|
216
|
+
**Optimized Recommendation**:
|
|
217
|
+
- Don't chase wake time, chase:
|
|
218
|
+
1. Sufficient sleep (7-9 hours)
|
|
219
|
+
2. Consistent schedule
|
|
220
|
+
3. High-value morning activities
|
|
221
|
+
|
|
222
|
+
### Example 2: Business Strategy
|
|
223
|
+
|
|
224
|
+
**Article Claim**: "Rapid expansion to capture market"
|
|
225
|
+
|
|
226
|
+
#### Inverted Q: How to ensure expansion fails?
|
|
227
|
+
|
|
228
|
+
**Failure List**:
|
|
229
|
+
1. Expand before product-market fit → Insight: Need PMF first
|
|
230
|
+
2. Poor cash flow management → Insight: Growth speed ≠ healthy growth
|
|
231
|
+
3. Team quality can't keep up → Insight: Organizational capacity is bottleneck
|
|
232
|
+
4. Neglect existing customers → Insight: Retention vs. acquisition balance
|
|
233
|
+
|
|
234
|
+
**Necessary Conditions Check**:
|
|
235
|
+
```markdown
|
|
236
|
+
Prerequisites for rapid expansion:
|
|
237
|
+
✓ Proven business model (article mentions)
|
|
238
|
+
✗ Adequate funding reserves (article omits)
|
|
239
|
+
✗ Replicable operational processes (article omits)
|
|
240
|
+
✗ Strong team culture (article omits)
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
**Inversion Insight**:
|
|
244
|
+
Article only discusses "gas pedal", not "brakes". Need to add:
|
|
245
|
+
- Expansion stop conditions
|
|
246
|
+
- Stage-gate validation
|
|
247
|
+
- Retreat plan
|
|
248
|
+
|
|
249
|
+
## Integration with Other Frameworks
|
|
250
|
+
|
|
251
|
+
### + Critical Thinking
|
|
252
|
+
```markdown
|
|
253
|
+
Critical Thinking: Find argument holes
|
|
254
|
+
Inversion: What happens if the holes lead to failure?
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
### + First Principles
|
|
258
|
+
```markdown
|
|
259
|
+
First Principles: Strip to essentials
|
|
260
|
+
Inversion: Test fragility of essential assumptions
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
### + Systems Thinking
|
|
264
|
+
```markdown
|
|
265
|
+
Systems Thinking: See reinforcing loops
|
|
266
|
+
Inversion: Identify negative loops and collapse points
|
|
267
|
+
```
|
|
268
|
+
|
|
269
|
+
### + Mental Models
|
|
270
|
+
```markdown
|
|
271
|
+
Mental Models: Multi-angle analysis
|
|
272
|
+
Inversion: Consider the opposite for each angle
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
## Inversion Toolbox
|
|
276
|
+
|
|
277
|
+
### Tool 1: Pre-Mortem
|
|
278
|
+
|
|
279
|
+
```markdown
|
|
280
|
+
## Pre-Mortem Analysis
|
|
281
|
+
|
|
282
|
+
Imagine it's 1 year later, the plan completely failed.
|
|
283
|
+
|
|
284
|
+
Failure causes:
|
|
285
|
+
1. [Most likely failure reason 1]
|
|
286
|
+
2. [Most likely failure reason 2]
|
|
287
|
+
3. [Most likely failure reason 3]
|
|
288
|
+
|
|
289
|
+
Based on this, current actions should be:
|
|
290
|
+
- [Prevention measure 1]
|
|
291
|
+
- [Prevention measure 2]
|
|
292
|
+
```
|
|
293
|
+
|
|
294
|
+
### Tool 2: Reverse Engineering
|
|
295
|
+
|
|
296
|
+
```markdown
|
|
297
|
+
## Working Backwards from Results
|
|
298
|
+
|
|
299
|
+
Ideal outcome: [Describe]
|
|
300
|
+
|
|
301
|
+
Reverse steps:
|
|
302
|
+
← Step N: [Final step]
|
|
303
|
+
← Step N-1: [Previous step]
|
|
304
|
+
← ...
|
|
305
|
+
← Step 1: [First step]
|
|
306
|
+
|
|
307
|
+
Article's missing steps: [Identify]
|
|
308
|
+
```
|
|
309
|
+
|
|
310
|
+
### Tool 3: Not-To-Do List
|
|
311
|
+
|
|
312
|
+
```markdown
|
|
313
|
+
## Not-To-Do List (More Important Than To-Do)
|
|
314
|
+
|
|
315
|
+
Based on inversion, explicitly avoid:
|
|
316
|
+
1. ❌ [Failure-causing behavior 1]
|
|
317
|
+
2. ❌ [Failure-causing behavior 2]
|
|
318
|
+
3. ❌ [Failure-causing behavior 3]
|
|
319
|
+
|
|
320
|
+
Stop signals:
|
|
321
|
+
When [X signal] appears, immediately stop
|
|
322
|
+
```
|
|
323
|
+
|
|
324
|
+
### Tool 4: Devil's Advocate
|
|
325
|
+
|
|
326
|
+
```markdown
|
|
327
|
+
## Playing Devil's Advocate
|
|
328
|
+
|
|
329
|
+
Defending the opposite view:
|
|
330
|
+
- Claim: [Contrary position]
|
|
331
|
+
- Evidence: [Supporting counter-evidence]
|
|
332
|
+
- Context: [When opposite is better]
|
|
333
|
+
|
|
334
|
+
Balanced conclusion:
|
|
335
|
+
Not A or B, but [middle path]
|
|
336
|
+
```
|
|
337
|
+
|
|
338
|
+
## Common Pitfalls
|
|
339
|
+
|
|
340
|
+
### ❌ Excessive Negativity
|
|
341
|
+
- Wrong: Use inversion to reject everything
|
|
342
|
+
- Right: Use inversion to optimize plans, not abandon them
|
|
343
|
+
|
|
344
|
+
### ❌ Analysis Paralysis
|
|
345
|
+
- Wrong: See too many risks, can't act
|
|
346
|
+
- Right: Identify risks → Design mitigations → Act
|
|
347
|
+
|
|
348
|
+
### ❌ Ignoring Probability
|
|
349
|
+
- Wrong: Treat low-probability risks same as high-probability
|
|
350
|
+
- Right: Risk assessment = Probability × Impact
|
|
351
|
+
|
|
352
|
+
## Practice Exercises
|
|
353
|
+
|
|
354
|
+
### Exercise 1: Daily Decisions
|
|
355
|
+
For any daily decision, ask:
|
|
356
|
+
- "How to ensure this decision is wrong?"
|
|
357
|
+
- What blind spots did I discover?
|
|
358
|
+
|
|
359
|
+
### Exercise 2: Inverted Reading
|
|
360
|
+
For any advice article, automatically ask:
|
|
361
|
+
- "When would this advice be harmful?"
|
|
362
|
+
- "What prerequisites are missing?"
|
|
363
|
+
|
|
364
|
+
### Exercise 3: Pre-Mortem Planning
|
|
365
|
+
Before any plan, do 15-minute pre-mortem:
|
|
366
|
+
- Assume failure, list causes
|
|
367
|
+
- Modify plan to avoid these causes
|
|
368
|
+
|
|
369
|
+
## Key Quotes
|
|
370
|
+
|
|
371
|
+
> "It is remarkable how much long-term advantage people like us have gotten by trying to be consistently not stupid, instead of trying to be very intelligent."
|
|
372
|
+
> — Charlie Munger
|
|
373
|
+
|
|
374
|
+
> "Tell me where I'm going to die, so I'll never go there."
|
|
375
|
+
> — Carl Jacobi
|
|
376
|
+
|
|
377
|
+
> "If you want to improve, be content to be thought foolish and stupid."
|
|
378
|
+
> — Epictetus (On how inversion may contradict conventional wisdom)
|
|
379
|
+
|
|
380
|
+
---
|
|
381
|
+
|
|
382
|
+
**Remember**: Inversion's goal isn't pessimism, but robustness. By seeing failure paths, we design better success paths.
|
|
383
|
+
|
|
384
|
+
---
|
|
385
|
+
|
|
386
|
+
## ADOPT citation
|
|
387
|
+
|
|
388
|
+
Adopted from [`ginobefun/deep-reading-analyst-skill`](https://github.com/ginobefun/deep-reading-analyst-skill) @ commit `26cd7dc9` · `src/deep-reading-analyst/references/inversion_thinking.md` · MIT License.
|
|
@@ -6,9 +6,8 @@ trusted parent-child pipe is **outside** the scope of this guideline; only
|
|
|
6
6
|
network-exposed transports require signing.
|
|
7
7
|
|
|
8
8
|
Lands ahead of any HTTP-MCP transport so the security floor is in place
|
|
9
|
-
when one becomes a real consumer use case (
|
|
10
|
-
|
|
11
|
-
Phase 4 D4 — allowlist).
|
|
9
|
+
when one becomes a real consumer use case (paired with the allowlist
|
|
10
|
+
gate tracked in the active mcp-server plate under `agents/roadmaps/`).
|
|
12
11
|
|
|
13
12
|
Adapted from
|
|
14
13
|
[`ruvnet/ruflo`](https://github.com/ruvnet/ruflo) — commit
|
|
@@ -105,20 +104,18 @@ plain `setInterval` sweep every minute is enough.
|
|
|
105
104
|
| **Clock skew abuse** — long-lived request | `MAX_SKEW_MS = 5 min` rejects out-of-window timestamps |
|
|
106
105
|
| **Timing oracle on signature compare** | `timingSafeEqual`, never `===` |
|
|
107
106
|
| **Secret exfil via repo / log** | `KERNEL_SECRET` from env or secrets store; never log raw headers; redact `X-MCP-Signature` in any audit trail |
|
|
108
|
-
| **Allowlist bypass** | Signing **does not** authorize what's called — pair with the allowlist enforced at server boot (
|
|
107
|
+
| **Allowlist bypass** | Signing **does not** authorize what's called — pair with the allowlist enforced at server boot (mcp-server plate under `agents/roadmaps/`, Phase 4 **D4**); a valid signature on a non-allowlisted tool name still rejects |
|
|
109
108
|
|
|
110
109
|
## Citation hooks
|
|
111
110
|
|
|
112
|
-
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
[`road-to-ruflo-adoption.md`](../../../agents/roadmaps/road-to-ruflo-adoption.md)
|
|
121
|
-
Phase 2 P2.1.
|
|
111
|
+
- mcp-server plate under `agents/roadmaps/` — **Phase 4 D4** allowlist
|
|
112
|
+
enforced at server boot. Signing layers *under* the allowlist: verify
|
|
113
|
+
signature → look up tool in allowlist → execute. Both gates must pass.
|
|
114
|
+
- mcp-server plate under `agents/roadmaps/` — **Phase 6 F2 / F3** SSE
|
|
115
|
+
transport, cloud bundle. These are the triggers that make this
|
|
116
|
+
guideline load-bearing; until then it is reference material for the
|
|
117
|
+
deferred-with-trigger HTTP-bridge slot of the ruflo-adoption plate
|
|
118
|
+
(Phase 2 P2.1) under `agents/roadmaps/`.
|
|
122
119
|
|
|
123
120
|
## Operational notes
|
|
124
121
|
|