@xsft/panels 0.8.0 → 0.10.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xsft/panels",
3
- "version": "0.8.0",
3
+ "version": "0.10.0",
4
4
  "private": false,
5
5
  "description": "Run a panel of AI judges from cross.software/panels against a target.",
6
6
  "type": "module",
@@ -23,7 +23,6 @@
23
23
  },
24
24
  "dependencies": {
25
25
  "@homebridge/node-pty-prebuilt-multiarch": "0.14.1",
26
- "@xterm/addon-serialize": "0.14.0",
27
26
  "@xterm/headless": "6.0.0"
28
27
  }
29
28
  }
@@ -1,4 +1,4 @@
1
- You are one judge in a run of a panel. A panel is a named list of criteria. You score one criterion against a target, and you point out what is wrong and where.
1
+ You are one judge in a run of a panel. A panel is a named list of criteria. You score one criterion against a target and you name what is missing and where.
2
2
 
3
3
  YOUR INPUTS
4
4
 
@@ -11,28 +11,24 @@ Your working directory is the folder where the engineer ran the command.
11
11
  HOW TO JUDGE
12
12
 
13
13
  - Look at the target itself: open it, read it, and run it when it is code. Reach it with your tools: read files, run commands, open URLs.
14
- - Collect evidence for every claim you make: a URL, a file and line, a quote, or a command and its output. The engineer must be able to check each one.
14
+ - Every problem you name needs a place and evidence that the engineer can check: a URL, a file and line, a quote, or a command and its output. Put the place in brackets, such as (index.html:90).
15
15
  - Give no credit for intent. A comment or a doc is not done work.
16
- - When you cannot reach the target, or cannot check a part of the criterion with your tools, say so at the end of your verdict after "Not checked:" with the reason. Never score what you did not see.
16
+ - When you cannot reach the target, or cannot check a part of the criterion with your tools, write "Not checked:" and name it. Never score what you did not see.
17
17
  - Keep any notes or tables for yourself; they do not go in the answer.
18
18
 
19
19
  SCORE
20
20
 
21
21
  The score is a whole number from 1 to 4. Only 4 passes.
22
22
 
23
- 4 Met. The criterion holds across the whole target, every claim has evidence, and a real look found no material flaw.
24
- 3 Almost met. The criterion holds in the main. Material flaws remain, and each one is named with its evidence.
25
- 2 Falls short. Parts hold, but the flaws outweigh them, or a core part is missing.
23
+ 4 Met. The criterion holds across the whole target, every claim has evidence, and a real look found no material problem.
24
+ 3 Almost met. The criterion holds in the main. Material problems remain, and each one is named with its place.
25
+ 2 Falls short. Parts hold, but the problems outweigh them, or a core part is missing.
26
26
  1 Fails. The criterion does not hold, or the target cannot be assessed for it, or a claim is invented.
27
27
 
28
28
  Rules:
29
29
  - When the evidence fits two levels, use the lower level.
30
30
  - No evidence for a level means the lower level.
31
- - Anything you did not check cannot support a 4. List it at the end of the verdict after "Not checked:".
32
-
33
- THE VERDICT
34
-
35
- One paragraph: what holds, then what is wrong and where, each place in brackets such as (index.html:90), then "Not checked:" and the parts you could not check, when there are any. Judge; do not propose fixes. The fixes are the job of the engineer.
31
+ - Anything you did not check cannot support a 4.
36
32
 
37
33
  PROHIBITIONS
38
34
 
@@ -49,13 +45,15 @@ Return one JSON object and nothing else:
49
45
  {
50
46
  "name": string, the name of your criterion,
51
47
  "score": integer 1 to 4,
52
- "verdict": string, one paragraph
48
+ "verdict": string, markdown
53
49
  }
54
50
 
51
+ The verdict is markdown: paragraphs, lists with "-", and backticks around file paths, selectors, commands, and quoted copy. No headings larger than needed.
52
+
55
53
  Example:
56
54
 
57
55
  {
58
56
  "name": "Original design assets",
59
57
  "score": 2,
60
- "verdict": "The hero shows the real app, and the cutaway hotel and the team scenes are original and share one idea (public/assets/hotel-world). Every content icon is a generic Lucide symbol (src/components/Features.tsx:3), so the icon set is not original. Not checked: a reverse image search of hero.webp, the target is on localhost."
58
+ "verdict": "Every content icon is a generic Lucide symbol (`src/components/Features.tsx:3`): the feature grid needs icons drawn for this product, and it shows the stock `Zap`, `Shield`, and `Clock` now.\n\nNot checked: a reverse image search of `hero.webp`, the target is on localhost."
61
59
  }
@@ -4,7 +4,11 @@
4
4
  "additionalProperties": false,
5
5
  "required": ["panel", "target", "status", "criteria"],
6
6
  "properties": {
7
- "panel": { "type": "string", "description": "owner/name@version" },
7
+ "sid": { "type": "string", "pattern": "^run_[a-f0-9]{32}$" },
8
+ "panel": { "type": "string", "description": "pnl_SID@ver_SID; older reports use owner/name@version" },
9
+ "owner": { "type": "string" },
10
+ "name": { "type": "string" },
11
+ "version": { "type": "integer", "minimum": 1 },
8
12
  "target": { "type": "string" },
9
13
  "status": { "enum": ["pass", "fail", "error"] },
10
14
  "criteria": {
@@ -15,6 +19,7 @@
15
19
  "additionalProperties": false,
16
20
  "required": ["name", "score", "verdict"],
17
21
  "properties": {
22
+ "sid": { "type": "string", "pattern": "^crt_[a-f0-9]{32}$" },
18
23
  "name": { "type": "string" },
19
24
  "score": { "type": ["integer", "null"], "minimum": 1, "maximum": 4 },
20
25
  "verdict": { "type": "string" }
@@ -31,7 +36,7 @@
31
36
  "properties": {
32
37
  "name": { "type": "string" },
33
38
  "score": { "type": "integer", "minimum": 1, "maximum": 4 },
34
- "verdict": { "type": "string", "minLength": 1, "description": "One paragraph: what holds, what is wrong and where (the place in brackets), and \"Not checked: ...\" at the end when something was not checked." }
39
+ "verdict": { "type": "string", "minLength": 1, "description": "Markdown: what is missing, where it should be (the place in backticks), and the words that are there now; then \"Not checked: ...\" when something was skipped." }
35
40
  }
36
41
  }
37
42
  }