@mjasnikovs/pi-task 0.16.2 → 0.16.3

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.
@@ -17,6 +17,18 @@
17
17
  * PASS / FAIL verdict. If the spec's VERIFY is legitimately a no-op (config-only
18
18
  * change, re-read of a file), the model says so and that is a PASS.
19
19
  *
20
+ * It must verify the REAL deliverable, not a stand-in. The spec's VERIFY block is
21
+ * authored by the same weak model that did the work, so it frequently grades a
22
+ * SIMULATION it controls: it reconstructs the build in a scratch dir, compiles with
23
+ * options the project does not ship, or only greps the SOURCE for a string — all of
24
+ * which pass while the project's own build ships broken output. The prompt therefore
25
+ * anchors the child to the project's OWN build/run command and the artifact it SHIPS,
26
+ * treats source-text presence as insufficient (a build artifact that still contains an
27
+ * un-processed source directive means the build never ran), and treats "I had to add a
28
+ * dependency/flag/config the project lacks to make it pass" as the defect itself.
29
+ * A/B-proven on the live local model: the old prompt false-passed 3/3 on a
30
+ * broken-pipeline fixture; the anchored prompt caught it 3/3, naming the real defect.
31
+ *
20
32
  * It runs as a GATE right after the implementation turn, BEFORE the task is
21
33
  * checked off or committed. A FAIL stops the /task-auto run exactly like an
22
34
  * implementation failure: the task is left unchecked and uncommitted so
@@ -94,24 +106,37 @@ export function buildVerifyPrompt(spec) {
94
106
  'THE TASK SPEC (its ACCEPTANCE criteria and VERIFY block are the contract):',
95
107
  spec.trim(),
96
108
  '',
97
- 'How to verify:',
98
- "1. Run the commands in the spec's VERIFY block, in order, with your `bash`",
99
- ' tool, from the repository root. Observe the REAL exit codes and output ',
100
- ' do not assume success.',
101
- '2. Treat the ACCEPTANCE criteria as the bar. If a VERIFY command fails, or',
102
- ' its output contradicts an ACCEPTANCE criterion, the work has NOT verified.',
103
- '3. If a VERIFY command depends on something this environment genuinely lacks',
104
- ' (a service, a network resource) and that is clearly an environment gap',
105
- ' rather than a defect in the code, note it and judge the rest. Do not fail',
106
- ' the task for a missing external service it cannot control.',
107
- '4. If the spec legitimately has no runnable verification (a config-only or',
108
- ' docs-only change whose VERIFY just re-reads or validates a file), running',
109
- ' that re-read/validation cleanly is a PASS.',
110
- '5. Do NOT edit anything to make a check pass. Report what you actually saw.',
109
+ 'How to verify — verify the REAL deliverable, not a stand-in:',
110
+ "1. Run the project's OWN build/run/serve command the one it actually ships",
111
+ ' (the scripts in package.json, the command the spec names). Run it exactly as',
112
+ ' the project defines it, then inspect the artifact it PRODUCES. Also run the',
113
+ " spec's VERIFY block but the project's real build/output is the bar.",
114
+ '2. NEVER substitute your own build, compile step, plugin, flag, scratch transform,',
115
+ ' or config to make a check pass. If the VERIFY block reconstructs the output in',
116
+ ' a temp/scratch dir, builds with options the project does not use, or only greps',
117
+ ' the SOURCE for a string, that is INSUFFICIENT it proves the code *could* work,',
118
+ " not that the shipping pipeline *does*. You must still run the project's real",
119
+ ' build and judge its real output.',
120
+ '3. If, to make any check pass, you find you must add an import, plugin, flag, or',
121
+ ' config the project itself does not have, STOP: that missing piece IS the defect.',
122
+ ' Report FAIL and name exactly what the project is missing.',
123
+ '4. Presence of a token/directive/string in a SOURCE file is NOT verification. Judge',
124
+ ' the produced/shipped artifact and the actual runtime behavior. (A build directive',
125
+ ' belongs in the source; if that same raw directive SURVIVES into the built output,',
126
+ ' the build did not run — that is a FAIL, not a PASS.)',
127
+ '5. Treat the ACCEPTANCE criteria as the bar. If a VERIFY command fails, or its',
128
+ ' output (or the real build output) contradicts an ACCEPTANCE criterion, the work',
129
+ ' has NOT verified.',
130
+ '6. If a check depends on something this environment genuinely lacks (a service, a',
131
+ ' network resource) and that is clearly an environment gap rather than a defect in',
132
+ ' the code, note it and judge the rest. Do not fail for a missing external service.',
133
+ '7. If the spec legitimately has no runnable verification (a pure docs/config change',
134
+ ' with nothing to build or run), validating it cleanly is a PASS.',
135
+ '8. Do NOT edit anything to make a check pass. Report what you actually saw.',
111
136
  '',
112
137
  'When you are done, output EXACTLY ONE of these as the final line:',
113
- ' WORK-VERIFIED: PASS (every check ran and the work meets its spec)',
114
- ' WORK-VERIFIED: FAIL <text> (a check failed or the work does not meet its spec; say what failed)',
138
+ ' WORK-VERIFIED: PASS (the real build/run produced an artifact that meets the spec)',
139
+ ' WORK-VERIFIED: FAIL <text> (the real build/output failed or does not meet the spec; say what failed)',
115
140
  'Output the verdict line verbatim — it is parsed mechanically.'
116
141
  ].join('\n');
117
142
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mjasnikovs/pi-task",
3
- "version": "0.16.2",
3
+ "version": "0.16.3",
4
4
  "description": "Deterministic spec-orchestration for local models, with a bundled real-time remote web view and web/docs/fetch/worker subagent tools.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",