nimai-mcp 0.3.6 → 0.3.8
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/data/FORGE-quickref.md
CHANGED
|
@@ -212,17 +212,23 @@ You are a Specification Quality Reviewer operating under the FORGE framework.
|
|
|
212
212
|
Your job is to evaluate the draft spec below for spec quality only — not implementation correctness.
|
|
213
213
|
Do NOT assess any code, code diffs, or implementation output.
|
|
214
214
|
|
|
215
|
-
Evaluate each dimension
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
215
|
+
Evaluate each dimension. Cite evidence for every verdict — a verdict without citation is treated as NO_GO.
|
|
216
|
+
Classify each issue as HARD_FAIL, SOFT_FAIL, or NOTE. passed: true requires zero HARD_FAILs.
|
|
217
|
+
|
|
218
|
+
1. Binary acceptance criteria — are all sub-task ACs measurable and unambiguous? Pre-checked [x] ACs are always invalid.
|
|
219
|
+
2. Scope coherence — are in-scope/out-of-scope boundaries clear and non-contradictory? Terminology mismatches between conceptual and persisted representations are a HARD_FAIL.
|
|
220
|
+
3. Constraint sufficiency — do Must/Must-Not/Prefer/Escalate constraints cover the key risks?
|
|
221
|
+
4. Decomposition realism — can each sub-task be done within 2 hours? Sub-task dependencies must be explicit.
|
|
222
|
+
5. Start-without-clarification viability — can an agent begin immediately with the context provided?
|
|
223
|
+
6. Internal consistency — are terms, names, and concepts used consistently throughout?
|
|
224
|
+
7. Mechanism lock — does every core flow commit to exactly ONE implementation path? Any "e.g./or/could/might/such as" in Deliverable, Scope, Constraints, or Tasks is a HARD_FAIL.
|
|
225
|
+
8. Convergence declaration — does the spec include a Spec Convergence section with open_questions: 0 and ambiguities_remaining: 0? Absent, non-zero, or ready_for_build: no is a HARD_FAIL.
|
|
226
|
+
9. Adversarial gap scan — does the spec include a substantively filled Edge Cases and Failure Modes section? Steelman as a builder following it exactly: what failure modes are unaddressed? Absent or placeholder-only is a HARD_FAIL for medium/high risk specs.
|
|
227
|
+
|
|
228
|
+
Always end your response with:
|
|
223
229
|
## Verdict
|
|
224
230
|
```json
|
|
225
|
-
{"passed": <true|false>, "issues": ["<
|
|
231
|
+
{"passed": <true|false>, "schema_version": "2", "issues": [{"dimension": "<name>", "severity": "<HARD_FAIL|SOFT_FAIL|NOTE>", "detail": "<cited evidence>"}]}
|
|
226
232
|
```
|
|
227
233
|
|
|
228
234
|
Draft spec: [PASTE DRAFT SPEC HERE]
|
|
@@ -306,6 +312,7 @@ PASS → done | FAIL → revise or escalate
|
|
|
306
312
|
- [ ] Spec red-teamed against Failure Mode Taxonomy
|
|
307
313
|
- [ ] Planner execution plan will be saved as artifact
|
|
308
314
|
- [ ] Living Specification log set up (multi-session)
|
|
315
|
+
- [ ] Spec Convergence section filled — `open_questions: 0`, `ambiguities_remaining: 0`, `ready_for_build: yes`
|
|
309
316
|
|
|
310
317
|
---
|
|
311
318
|
|
|
@@ -91,6 +91,26 @@ The project is complete when ALL of the following are true:
|
|
|
91
91
|
|
|
92
92
|
---
|
|
93
93
|
|
|
94
|
+
## 1.5 Mechanism Decision
|
|
95
|
+
*One block per core architectural or algorithmic choice. If no core mechanism applies, write "N/A" and justify.*
|
|
96
|
+
*A builder must be able to start coding without choosing missing architecture. If any mechanism is undecided, resolve it here first.*
|
|
97
|
+
|
|
98
|
+
---
|
|
99
|
+
|
|
100
|
+
**Decision: [short name, e.g., "Primary parsing method"]**
|
|
101
|
+
|
|
102
|
+
```
|
|
103
|
+
Chosen approach: _______________________________________________
|
|
104
|
+
|
|
105
|
+
Rejected alternatives: _________________________________________
|
|
106
|
+
|
|
107
|
+
Why rejected: __________________________________________________
|
|
108
|
+
|
|
109
|
+
Impact on ACs: _________________________________________________
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
94
114
|
## 2. Intent Layer — The Compass
|
|
95
115
|
|
|
96
116
|
### 2.1 Agent Deployment Purpose
|
|
@@ -372,6 +392,37 @@ Acceptance criteria: _____________________________________
|
|
|
372
392
|
|
|
373
393
|
---
|
|
374
394
|
|
|
395
|
+
## 8.5 Edge Cases and Failure Modes
|
|
396
|
+
> Required for medium/high risk specs. Red-team the spec before builder handoff.
|
|
397
|
+
> For each scenario, document what the spec says the builder must do. A blank list is a hard stop.
|
|
398
|
+
|
|
399
|
+
**FORGE failure mode coverage:**
|
|
400
|
+
- Scope Creep — which Must-Not explicitly prevents it: `_______________`
|
|
401
|
+
- Hallucinated Completion — which AC is hardest to fake: `_______________`
|
|
402
|
+
- Intent Drift — which decision will the builder most likely get wrong: `_______________`
|
|
403
|
+
- Context Collapse — what context is load-bearing and must not be dropped: `_______________`
|
|
404
|
+
- Runaway Cost — what resource cap prevents unbounded execution: `_______________`
|
|
405
|
+
- Overconfident Output — what requires uncertainty reporting: `_______________`
|
|
406
|
+
|
|
407
|
+
**Domain-specific edge cases:**
|
|
408
|
+
- `_______________`
|
|
409
|
+
- `_______________`
|
|
410
|
+
|
|
411
|
+
---
|
|
412
|
+
|
|
413
|
+
## 9. Spec Convergence
|
|
414
|
+
> Fill before handing to a builder. A non-zero count or "no" is a hard stop.
|
|
415
|
+
> Every [NEEDS HUMAN INPUT] flag from spec drafting must be resolved before this section is filled.
|
|
416
|
+
|
|
417
|
+
```
|
|
418
|
+
open_questions: 0
|
|
419
|
+
ambiguities_remaining: 0
|
|
420
|
+
ready_for_build: yes
|
|
421
|
+
convergence_notes: _______________________________________________
|
|
422
|
+
```
|
|
423
|
+
|
|
424
|
+
---
|
|
425
|
+
|
|
375
426
|
*FORGE Spec Template v1.0 — companion to the FORGE system. A blank field is an unresolved decision.*
|
|
376
427
|
*System docs: Quick Reference · Canonical Framework · Spec Template (this doc)*
|
|
377
428
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spec-review.d.ts","sourceRoot":"","sources":["../../src/tools/spec-review.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAC1E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,wBAAsB,cAAc,CAClC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,GAC1C,OAAO,CAAC,qBAAqB,CAAC,
|
|
1
|
+
{"version":3,"file":"spec-review.d.ts","sourceRoot":"","sources":["../../src/tools/spec-review.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAC1E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,wBAAsB,cAAc,CAClC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,GAC1C,OAAO,CAAC,qBAAqB,CAAC,CAqDhC"}
|
|
@@ -53,16 +53,37 @@ async function toolSpecReview(input) {
|
|
|
53
53
|
'The spec-quality review must be done by an independent reviewer —',
|
|
54
54
|
'NOT the agent that created or edited the spec.',
|
|
55
55
|
'',
|
|
56
|
-
'
|
|
56
|
+
'── STEP 1: Send to independent reviewer ──────────────────────────',
|
|
57
57
|
'1. Copy the specReviewerPrompt string from this response.',
|
|
58
|
-
'2. Open a FRESH SESSION with a different model or agent
|
|
59
|
-
'
|
|
58
|
+
'2. Open a FRESH SESSION with a different model or agent',
|
|
59
|
+
' (e.g. paste into Claude, a new Codex thread, or any LLM).',
|
|
60
|
+
'3. Paste the prompt and let the reviewer evaluate the spec.',
|
|
60
61
|
'4. The reviewer will end their response with a JSON verdict block:',
|
|
61
62
|
' {"passed": true/false, "schema_version": "2", "issues": [...]}',
|
|
62
63
|
'',
|
|
63
|
-
'Return the verdict
|
|
64
|
-
'
|
|
65
|
-
'
|
|
64
|
+
'── STEP 2: Return the verdict ────────────────────────────────────',
|
|
65
|
+
'Bring the full verdict back to THIS session.',
|
|
66
|
+
'',
|
|
67
|
+
' If passed: true',
|
|
68
|
+
' → The spec is approved. Proceed to implementation.',
|
|
69
|
+
'',
|
|
70
|
+
' If passed: false',
|
|
71
|
+
' → Do NOT re-run nimai_spec (that would discard all spec work).',
|
|
72
|
+
` → Give the builder this message (fill in the verdict):`,
|
|
73
|
+
'',
|
|
74
|
+
` ┌─ BUILDER FIX BRIEF ──────────────────────────────────────────`,
|
|
75
|
+
` │ The independent spec review found issues in: ${specPath}`,
|
|
76
|
+
` │`,
|
|
77
|
+
` │ Fix each HARD_FAIL and SOFT_FAIL in the verdict below by`,
|
|
78
|
+
` │ editing the spec directly. Do not regenerate from scratch.`,
|
|
79
|
+
` │`,
|
|
80
|
+
` │ [PASTE VERDICT HERE]`,
|
|
81
|
+
` │`,
|
|
82
|
+
` │ After fixing:`,
|
|
83
|
+
` │ 1. Run nimai_validate — must return passed: true`,
|
|
84
|
+
` │ 2. Run nimai_spec_review — get new reviewer_instructions`,
|
|
85
|
+
` │ 3. Send to an independent reviewer again (do not self-review)`,
|
|
86
|
+
` └──────────────────────────────────────────────────────────────`,
|
|
66
87
|
].join('\n');
|
|
67
88
|
return { specReviewerPrompt, reviewer_instructions };
|
|
68
89
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spec-review.js","sourceRoot":"","sources":["../../src/tools/spec-review.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,
|
|
1
|
+
{"version":3,"file":"spec-review.js","sourceRoot":"","sources":["../../src/tools/spec-review.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,wCAuDC;AA7DD,uCAAyB;AACzB,2CAA6B;AAC7B,2CAA2C;AAIpC,KAAK,UAAU,cAAc,CAClC,KAA2C;IAE3C,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC9C,IAAI,WAAmB,CAAC;IACxB,IAAI,CAAC;QACH,WAAW,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACnD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACb,wBAAwB,QAAQ,MAAO,GAA6B,CAAC,OAAO,EAAE,CAC/E,CAAC;IACJ,CAAC;IAED,MAAM,kBAAkB,GAAG,IAAA,0BAAa,EAAC,WAAW,CAAC,CAAC;IAEtD,MAAM,qBAAqB,GAAG;QAC5B,iCAAiC;QACjC,EAAE;QACF,mEAAmE;QACnE,gDAAgD;QAChD,EAAE;QACF,oEAAoE;QACpE,2DAA2D;QAC3D,yDAAyD;QACzD,8DAA8D;QAC9D,6DAA6D;QAC7D,oEAAoE;QACpE,mEAAmE;QACnE,EAAE;QACF,oEAAoE;QACpE,8CAA8C;QAC9C,EAAE;QACF,mBAAmB;QACnB,sDAAsD;QACtD,EAAE;QACF,oBAAoB;QACpB,kEAAkE;QAClE,0DAA0D;QAC1D,EAAE;QACF,mEAAmE;QACnE,oDAAoD,QAAQ,EAAE;QAC9D,KAAK;QACL,8DAA8D;QAC9D,gEAAgE;QAChE,KAAK;QACL,0BAA0B;QAC1B,KAAK;QACL,mBAAmB;QACnB,sDAAsD;QACtD,8DAA8D;QAC9D,mEAAmE;QACnE,mEAAmE;KACpE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEb,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,CAAC;AACvD,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nimai-mcp",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.8",
|
|
4
4
|
"description": "Nimai MCP server — exposes nimai_spec, nimai_review, nimai_validate, nimai_new as tools. No internal LLM calls.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"nimai",
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
"dependencies": {
|
|
37
37
|
"@modelcontextprotocol/sdk": "^1.0.0",
|
|
38
38
|
"zod": "^3.23.8",
|
|
39
|
-
"nimai-core": "0.3.
|
|
39
|
+
"nimai-core": "0.3.8"
|
|
40
40
|
},
|
|
41
41
|
"scripts": {
|
|
42
42
|
"build": "tsc",
|