@grainulation/silo 1.0.3 → 1.0.4
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/CONTRIBUTING.md +1 -1
- package/README.md +1 -1
- package/lib/serve-mcp.js +1 -1
- package/package.json +1 -1
- package/packs/qa-simulation.json +175 -0
- package/public/index.html +1 -1
package/CONTRIBUTING.md
CHANGED
|
@@ -70,7 +70,7 @@ The key architectural principle: **silo is a content-addressable claim store.**
|
|
|
70
70
|
|
|
71
71
|
- Zero dependencies. If you need something, write it or use Node built-ins.
|
|
72
72
|
- No transpilation. Ship what you write.
|
|
73
|
-
- ESM imports (`import`/`export`). Node
|
|
73
|
+
- ESM imports (`import`/`export`). Node 20+ required.
|
|
74
74
|
- Keep functions small. If a function needs a scroll, split it.
|
|
75
75
|
- No emojis in code, CLI output, or pack data.
|
|
76
76
|
|
package/README.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
</p>
|
|
4
4
|
|
|
5
5
|
<p align="center">
|
|
6
|
-
<a href="https://www.npmjs.com/package/@grainulation/silo"><img src="https://img.shields.io/npm/v/@grainulation/silo" alt="npm version"></a> <a href="https://www.npmjs.com/package/@grainulation/silo"><img src="https://img.shields.io/npm/dm/@grainulation/silo" alt="npm downloads"></a> <a href="https://github.com/grainulation/silo/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-MIT-green" alt="license"></a> <a href="https://nodejs.org"><img src="https://img.shields.io/node/v/@grainulation/silo" alt="node"></a> <a href="https://github.com/grainulation/silo/actions"><img src="https://github.com/grainulation/silo/actions/workflows/ci.yml/badge.svg" alt="CI"></a>
|
|
6
|
+
<a href="https://www.npmjs.com/package/@grainulation/silo"><img src="https://img.shields.io/npm/v/@grainulation/silo?label=%40grainulation%2Fsilo" alt="npm version"></a> <a href="https://www.npmjs.com/package/@grainulation/silo"><img src="https://img.shields.io/npm/dm/@grainulation/silo" alt="npm downloads"></a> <a href="https://github.com/grainulation/silo/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-MIT-green" alt="license"></a> <a href="https://nodejs.org"><img src="https://img.shields.io/node/v/@grainulation/silo" alt="node"></a> <a href="https://github.com/grainulation/silo/actions"><img src="https://github.com/grainulation/silo/actions/workflows/ci.yml/badge.svg" alt="CI"></a>
|
|
7
7
|
<a href="https://deepwiki.com/grainulation/silo"><img src="https://deepwiki.com/badge.svg" alt="Explore on DeepWiki"></a>
|
|
8
8
|
</p>
|
|
9
9
|
|
package/lib/serve-mcp.js
CHANGED
|
@@ -32,7 +32,7 @@ const { Confluence } = require("./confluence.js");
|
|
|
32
32
|
// ─── Constants ──────────────────────────────────────────────────────────────
|
|
33
33
|
|
|
34
34
|
const SERVER_NAME = "silo";
|
|
35
|
-
const SERVER_VERSION = "1.0.
|
|
35
|
+
const SERVER_VERSION = "1.0.3";
|
|
36
36
|
const PROTOCOL_VERSION = "2024-11-05";
|
|
37
37
|
|
|
38
38
|
// ─── JSON-RPC helpers ───────────────────────────────────────────────────────
|
package/package.json
CHANGED
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "PR QA Simulation",
|
|
3
|
+
"description": "Repo-agnostic playbook for simulating a QA pass on a pull request. Binary PASS/FAIL verdict based on CI, acceptance criteria, diff audit, build, tests, and preview verification.",
|
|
4
|
+
"version": "2.0.0",
|
|
5
|
+
"claims": [
|
|
6
|
+
{
|
|
7
|
+
"id": "qa001",
|
|
8
|
+
"type": "constraint",
|
|
9
|
+
"topic": "ci-status",
|
|
10
|
+
"content": "All CI checks must be passing. FAIL if any required check is failed or pending.",
|
|
11
|
+
"source": { "origin": "architecture", "artifact": null, "connector": null },
|
|
12
|
+
"evidence": "documented",
|
|
13
|
+
"status": "active",
|
|
14
|
+
"phase_added": "define",
|
|
15
|
+
"timestamp": "2026-03-28T00:00:00.000Z",
|
|
16
|
+
"conflicts_with": [],
|
|
17
|
+
"resolved_by": null,
|
|
18
|
+
"tags": ["ci", "gate"]
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"id": "qa002",
|
|
22
|
+
"type": "constraint",
|
|
23
|
+
"topic": "acceptance-criteria",
|
|
24
|
+
"content": "Every acceptance criterion in the linked Jira ticket must be verified against the PR diff and repo state. FAIL if any AC item cannot be verified.",
|
|
25
|
+
"source": { "origin": "architecture", "artifact": null, "connector": null },
|
|
26
|
+
"evidence": "documented",
|
|
27
|
+
"status": "active",
|
|
28
|
+
"phase_added": "define",
|
|
29
|
+
"timestamp": "2026-03-28T00:00:00.000Z",
|
|
30
|
+
"conflicts_with": [],
|
|
31
|
+
"resolved_by": null,
|
|
32
|
+
"tags": ["jira", "verification"]
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"id": "qa003",
|
|
36
|
+
"type": "constraint",
|
|
37
|
+
"topic": "diff-audit",
|
|
38
|
+
"content": "Every changed file must be classified as test, config, docs, or production. All changes must be accounted for. FAIL if unexpected production changes exist in a test-only PR.",
|
|
39
|
+
"source": { "origin": "architecture", "artifact": null, "connector": null },
|
|
40
|
+
"evidence": "documented",
|
|
41
|
+
"status": "active",
|
|
42
|
+
"phase_added": "define",
|
|
43
|
+
"timestamp": "2026-03-28T00:00:00.000Z",
|
|
44
|
+
"conflicts_with": [],
|
|
45
|
+
"resolved_by": null,
|
|
46
|
+
"tags": ["diff", "audit"]
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"id": "qa004",
|
|
50
|
+
"type": "constraint",
|
|
51
|
+
"topic": "build-verification",
|
|
52
|
+
"content": "The project must build successfully. Build command auto-detected from package.json: prefer 'build', fall back to 'dist', 'compile', 'tsc'. FAIL if build fails.",
|
|
53
|
+
"source": { "origin": "architecture", "artifact": null, "connector": null },
|
|
54
|
+
"evidence": "documented",
|
|
55
|
+
"status": "active",
|
|
56
|
+
"phase_added": "define",
|
|
57
|
+
"timestamp": "2026-03-28T00:00:00.000Z",
|
|
58
|
+
"conflicts_with": [],
|
|
59
|
+
"resolved_by": null,
|
|
60
|
+
"tags": ["build", "gate"]
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
"id": "qa005",
|
|
64
|
+
"type": "constraint",
|
|
65
|
+
"topic": "test-suite",
|
|
66
|
+
"content": "Full test suite must pass. Test command auto-detected from package.json: prefer 'test:cov:full', 'test:coverage', 'test:ci', fall back to 'test'. FAIL if any test fails.",
|
|
67
|
+
"source": { "origin": "architecture", "artifact": null, "connector": null },
|
|
68
|
+
"evidence": "documented",
|
|
69
|
+
"status": "active",
|
|
70
|
+
"phase_added": "define",
|
|
71
|
+
"timestamp": "2026-03-28T00:00:00.000Z",
|
|
72
|
+
"conflicts_with": [],
|
|
73
|
+
"resolved_by": null,
|
|
74
|
+
"tags": ["test", "gate"]
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
"id": "qa006",
|
|
78
|
+
"type": "recommendation",
|
|
79
|
+
"topic": "risk-tier",
|
|
80
|
+
"content": "Auto-detect risk tier from diff. Tier 1 (test-only): >90% test/config/docs files. Tier 2 (runtime): significant production changes, requires human spot-check of affected areas.",
|
|
81
|
+
"source": { "origin": "experience", "artifact": null, "connector": null },
|
|
82
|
+
"evidence": "documented",
|
|
83
|
+
"status": "active",
|
|
84
|
+
"phase_added": "define",
|
|
85
|
+
"timestamp": "2026-03-28T00:00:00.000Z",
|
|
86
|
+
"conflicts_with": [],
|
|
87
|
+
"resolved_by": null,
|
|
88
|
+
"tags": ["risk", "tier"]
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
"id": "qa007",
|
|
92
|
+
"type": "recommendation",
|
|
93
|
+
"topic": "human-checkpoint",
|
|
94
|
+
"content": "Tier 2 PRs require a human spot-check: (1) affected UI renders correctly, (2) affected endpoints respond, (3) no console errors. Tier 1 PRs skip this.",
|
|
95
|
+
"source": { "origin": "experience", "artifact": null, "connector": null },
|
|
96
|
+
"evidence": "documented",
|
|
97
|
+
"status": "active",
|
|
98
|
+
"phase_added": "define",
|
|
99
|
+
"timestamp": "2026-03-28T00:00:00.000Z",
|
|
100
|
+
"conflicts_with": [],
|
|
101
|
+
"resolved_by": null,
|
|
102
|
+
"tags": ["human-in-the-loop", "tier-2"]
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
"id": "qa008",
|
|
106
|
+
"type": "constraint",
|
|
107
|
+
"topic": "verdict",
|
|
108
|
+
"content": "Verdict is binary: PASS or FAIL. PASS = all checks green, ready to merge. FAIL = one or more checks failed, fix and re-run. No intermediate states.",
|
|
109
|
+
"source": { "origin": "experience", "artifact": null, "connector": null },
|
|
110
|
+
"evidence": "documented",
|
|
111
|
+
"status": "active",
|
|
112
|
+
"phase_added": "define",
|
|
113
|
+
"timestamp": "2026-03-28T00:00:00.000Z",
|
|
114
|
+
"conflicts_with": [],
|
|
115
|
+
"resolved_by": null,
|
|
116
|
+
"tags": ["verdict", "binary"]
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
"id": "qa009",
|
|
120
|
+
"type": "recommendation",
|
|
121
|
+
"topic": "presentation",
|
|
122
|
+
"content": "Output a 5-slide HTML presentation: (1) title + verdict + metadata, (2) what changed, (3) coverage impact, (4) verification results table, (5) post-merge checklist. Dark scroll-snap theme, self-contained, no external deps.",
|
|
123
|
+
"source": { "origin": "experience", "artifact": null, "connector": null },
|
|
124
|
+
"evidence": "documented",
|
|
125
|
+
"status": "active",
|
|
126
|
+
"phase_added": "define",
|
|
127
|
+
"timestamp": "2026-03-28T00:00:00.000Z",
|
|
128
|
+
"conflicts_with": [],
|
|
129
|
+
"resolved_by": null,
|
|
130
|
+
"tags": ["output", "presentation"]
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
"id": "qa010",
|
|
134
|
+
"type": "recommendation",
|
|
135
|
+
"topic": "dependencies",
|
|
136
|
+
"content": "Check for new or changed dependencies in package.json and lockfiles. PASS if no changes or changes are expected.",
|
|
137
|
+
"source": { "origin": "architecture", "artifact": null, "connector": null },
|
|
138
|
+
"evidence": "documented",
|
|
139
|
+
"status": "active",
|
|
140
|
+
"phase_added": "define",
|
|
141
|
+
"timestamp": "2026-03-28T00:00:00.000Z",
|
|
142
|
+
"conflicts_with": [],
|
|
143
|
+
"resolved_by": null,
|
|
144
|
+
"tags": ["dependencies", "audit"]
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
"id": "qa011",
|
|
148
|
+
"type": "recommendation",
|
|
149
|
+
"topic": "preview-build",
|
|
150
|
+
"content": "If the project has PR preview builds, verify HTTP 200 and app renders. If no preview exists for this repo type, PASS.",
|
|
151
|
+
"source": { "origin": "experience", "artifact": null, "connector": null },
|
|
152
|
+
"evidence": "documented",
|
|
153
|
+
"status": "active",
|
|
154
|
+
"phase_added": "define",
|
|
155
|
+
"timestamp": "2026-03-28T00:00:00.000Z",
|
|
156
|
+
"conflicts_with": [],
|
|
157
|
+
"resolved_by": null,
|
|
158
|
+
"tags": ["preview", "deployment"]
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
"id": "qa012",
|
|
162
|
+
"type": "recommendation",
|
|
163
|
+
"topic": "post-merge",
|
|
164
|
+
"content": "Post-merge checklist: (1) verify CI on main stays green, (2) confirm production build/deploy succeeds, (3) monitor error reporting for 1h.",
|
|
165
|
+
"source": { "origin": "experience", "artifact": null, "connector": null },
|
|
166
|
+
"evidence": "documented",
|
|
167
|
+
"status": "active",
|
|
168
|
+
"phase_added": "define",
|
|
169
|
+
"timestamp": "2026-03-28T00:00:00.000Z",
|
|
170
|
+
"conflicts_with": [],
|
|
171
|
+
"resolved_by": null,
|
|
172
|
+
"tags": ["post-merge", "monitoring"]
|
|
173
|
+
}
|
|
174
|
+
]
|
|
175
|
+
}
|
package/public/index.html
CHANGED
|
@@ -226,7 +226,7 @@ body {
|
|
|
226
226
|
<div class="welcome"><h2>Silo</h2><div class="subtitle">Loading packs...</div></div>
|
|
227
227
|
</main>
|
|
228
228
|
<footer class="footer">
|
|
229
|
-
<span>silo v1.0.
|
|
229
|
+
<span>silo v1.0.3 -- @grainulation/silo</span>
|
|
230
230
|
<div class="footer-links">
|
|
231
231
|
<a href="http://localhost:9091">wheat</a>
|
|
232
232
|
<a href="http://localhost:9093">barn</a>
|