codeharness 0.35.0 → 0.35.1

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.
@@ -2895,7 +2895,7 @@ function generateDockerfileTemplate(projectDir, stackOrDetections) {
2895
2895
  }
2896
2896
 
2897
2897
  // src/modules/infra/init-project.ts
2898
- var HARNESS_VERSION = true ? "0.35.0" : "0.0.0-dev";
2898
+ var HARNESS_VERSION = true ? "0.35.1" : "0.0.0-dev";
2899
2899
  function failResult(opts, error) {
2900
2900
  return {
2901
2901
  status: "fail",
@@ -16,7 +16,7 @@ import {
16
16
  stopCollectorOnly,
17
17
  stopSharedStack,
18
18
  stopStack
19
- } from "./chunk-PUZ5PWYL.js";
19
+ } from "./chunk-AIXEFZIV.js";
20
20
  export {
21
21
  checkRemoteEndpoint,
22
22
  cleanupOrphanedContainers,
package/dist/index.js CHANGED
@@ -40,7 +40,7 @@ import {
40
40
  validateDockerfile,
41
41
  warn,
42
42
  writeState
43
- } from "./chunk-PUZ5PWYL.js";
43
+ } from "./chunk-AIXEFZIV.js";
44
44
 
45
45
  // src/index.ts
46
46
  import { Command } from "commander";
@@ -3386,8 +3386,7 @@ async function dispatchTaskWithResult(task, taskName, storyKey, definition, stat
3386
3386
  }
3387
3387
  const isEpicSentinel = storyKey.startsWith("__epic_") || storyKey === PER_RUN_SENTINEL;
3388
3388
  const TASK_PROMPTS = {
3389
- "create-story": (key) => `Create or revise the story spec for ${key}. Read the epic definitions and architecture docs. If previous feedback is provided (from AC negotiation or review), revise the story to address that feedback. Write a complete story file with acceptance criteria, tasks, and dev notes. Wrap output in <story-spec>...</story-spec> tags.`,
3390
- "negotiate-acs": (key) => `Review the ACs in story ${key} for testability. Can each AC be verified by a blind QA agent with only Docker access and user documentation? Include <verdict>pass</verdict> or <verdict>fail</verdict> in your response. If fail, include <issues>...</issues> with specific feedback per AC.`,
3389
+ "create-story": (key) => `Create the story spec for ${key}. Read the epic definitions and architecture docs. Write a complete story file with acceptance criteria, tasks, and dev notes. CRITICAL: Every AC must be testable by a blind QA agent using ONLY a user guide + browser/API/CLI access. No AC should reference source code, internal data structures, or implementation details like O(1) complexity. Each AC must describe observable behavior that can be verified through UI interaction (agent-browser), API calls (curl), CLI commands (docker exec), or log inspection (docker logs). Wrap output in <story-spec>...</story-spec> tags.`,
3391
3390
  "implement": (key) => `Implement story ${key}`,
3392
3391
  "check": (key) => `Run automated checks for story ${key}. Execute the project's test suite, linter, and coverage tool. Include <verdict>pass</verdict> or <verdict>fail</verdict> in your response.`,
3393
3392
  "review": (key) => `Review the implementation of story ${key}. Check for correctness, security issues, architecture violations, and AC coverage. Include <verdict>pass</verdict> or <verdict>fail</verdict> in your response. If fail, include <issues>...</issues>.`,
@@ -11189,7 +11188,7 @@ function registerTeardownCommand(program) {
11189
11188
  } else if (otlpMode === "remote-routed") {
11190
11189
  if (!options.keepDocker) {
11191
11190
  try {
11192
- const { stopCollectorOnly: stopCollectorOnly2 } = await import("./docker-CTLGRLXP.js");
11191
+ const { stopCollectorOnly: stopCollectorOnly2 } = await import("./docker-GYFYNCLQ.js");
11193
11192
  stopCollectorOnly2();
11194
11193
  result.docker.stopped = true;
11195
11194
  if (!isJson) {
@@ -11221,7 +11220,7 @@ function registerTeardownCommand(program) {
11221
11220
  info("Shared stack: kept running (other projects may use it)");
11222
11221
  }
11223
11222
  } else if (isLegacyStack) {
11224
- const { isStackRunning: isStackRunning2, stopStack } = await import("./docker-CTLGRLXP.js");
11223
+ const { isStackRunning: isStackRunning2, stopStack } = await import("./docker-GYFYNCLQ.js");
11225
11224
  let stackRunning = false;
11226
11225
  try {
11227
11226
  stackRunning = isStackRunning2(composeFile);
@@ -14208,7 +14207,7 @@ function registerDriversCommand(program) {
14208
14207
  }
14209
14208
 
14210
14209
  // src/index.ts
14211
- var VERSION = true ? "0.35.0" : "0.0.0-dev";
14210
+ var VERSION = true ? "0.35.1" : "0.0.0-dev";
14212
14211
  function createProgram() {
14213
14212
  const program = new Command();
14214
14213
  program.name("codeharness").description("Makes autonomous coding agents produce software that actually works").version(VERSION).option("--json", "Output in machine-readable JSON format");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codeharness",
3
- "version": "0.35.0",
3
+ "version": "0.35.1",
4
4
  "type": "module",
5
5
  "description": "CLI for codeharness — makes autonomous coding agents produce software that actually works",
6
6
  "bin": {
@@ -4,11 +4,6 @@ tasks:
4
4
  session: fresh
5
5
  source_access: true
6
6
  model: claude-opus-4-6
7
- negotiate-acs:
8
- agent: negotiator
9
- session: fresh
10
- source_access: true
11
- model: claude-sonnet-4-6
12
7
  implement:
13
8
  agent: dev
14
9
  session: fresh
@@ -52,10 +47,6 @@ tasks:
52
47
 
53
48
  story_flow:
54
49
  - create-story
55
- - negotiate-acs
56
- - loop:
57
- - create-story
58
- - negotiate-acs
59
50
  - implement
60
51
  - check
61
52
  - review