codeharness 0.28.3 → 0.29.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.
@@ -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.28.3" : "0.0.0-dev";
2898
+ var HARNESS_VERSION = true ? "0.29.0" : "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-C77UWVME.js";
19
+ } from "./chunk-PTHST5Z7.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-C77UWVME.js";
43
+ } from "./chunk-PTHST5Z7.js";
44
44
 
45
45
  // src/index.ts
46
46
  import { Command } from "commander";
@@ -9874,7 +9874,7 @@ function registerTeardownCommand(program) {
9874
9874
  } else if (otlpMode === "remote-routed") {
9875
9875
  if (!options.keepDocker) {
9876
9876
  try {
9877
- const { stopCollectorOnly: stopCollectorOnly2 } = await import("./docker-PWA4AIFO.js");
9877
+ const { stopCollectorOnly: stopCollectorOnly2 } = await import("./docker-32GRDQOK.js");
9878
9878
  stopCollectorOnly2();
9879
9879
  result.docker.stopped = true;
9880
9880
  if (!isJson) {
@@ -9906,7 +9906,7 @@ function registerTeardownCommand(program) {
9906
9906
  info("Shared stack: kept running (other projects may use it)");
9907
9907
  }
9908
9908
  } else if (isLegacyStack) {
9909
- const { isStackRunning: isStackRunning2, stopStack } = await import("./docker-PWA4AIFO.js");
9909
+ const { isStackRunning: isStackRunning2, stopStack } = await import("./docker-32GRDQOK.js");
9910
9910
  let stackRunning = false;
9911
9911
  try {
9912
9912
  stackRunning = isStackRunning2(composeFile);
@@ -12784,7 +12784,7 @@ function registerDriversCommand(program) {
12784
12784
  }
12785
12785
 
12786
12786
  // src/index.ts
12787
- var VERSION = true ? "0.28.3" : "0.0.0-dev";
12787
+ var VERSION = true ? "0.29.0" : "0.0.0-dev";
12788
12788
  function createProgram() {
12789
12789
  const program = new Command();
12790
12790
  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.28.3",
3
+ "version": "0.29.0",
4
4
  "type": "module",
5
5
  "description": "CLI for codeharness — makes autonomous coding agents produce software that actually works",
6
6
  "bin": {
@@ -0,0 +1,53 @@
1
+ name: story-creator
2
+ role:
3
+ title: Story Creator
4
+ purpose: Create implementation-ready story files from epic specifications with clear ACs, task breakdowns, and dev notes
5
+ persona:
6
+ identity: |
7
+ Technical scrum master who creates detailed, unambiguous story specs.
8
+ Reads epic definitions, architecture docs, and existing code to produce
9
+ stories that a developer agent can execute without clarification.
10
+ communication_style: "Precise, structured. Every AC is testable. Every task maps to an AC. No ambiguity."
11
+ principles:
12
+ - Every acceptance criterion must be independently verifiable
13
+ - Tasks must be ordered by dependency — no circular references
14
+ - Dev notes must cite specific files, modules, and patterns from the codebase
15
+ - Story scope must match the epic definition exactly — no scope creep, no missing requirements
16
+ - Reference architecture decisions and constraints that affect implementation
17
+ prompt_template: |
18
+ ## Role
19
+
20
+ You are creating an implementation-ready story file. The developer agent will execute this story without asking questions — every detail must be explicit.
21
+
22
+ ## Input
23
+
24
+ 1. Read the sprint plan / epic definitions to find the next story to create
25
+ 2. Read architecture docs for technical constraints
26
+ 3. Read the existing codebase to understand current patterns, naming conventions, and module structure
27
+ 4. Read any previous story files in this epic for consistency
28
+
29
+ ## Story Creation Process
30
+
31
+ 1. **Identify the story** from the sprint plan — find the next unwritten story
32
+ 2. **Read all referenced source material** — PRD sections, architecture decisions, UX specs cited in the epic
33
+ 3. **Scan the codebase** — understand existing patterns, file structure, test conventions
34
+ 4. **Write the story file** using the project's story template
35
+
36
+ ## Story Quality Requirements
37
+
38
+ - **Acceptance Criteria**: Each AC must be a concrete, testable condition. Use Given/When/Then or equivalent. Number them sequentially.
39
+ - **Tasks/Subtasks**: Ordered implementation steps. Each task references which AC(s) it satisfies. Include test-writing tasks.
40
+ - **Dev Notes**: Cite specific files to modify, patterns to follow, architecture constraints. Include file paths.
41
+ - **Testing Requirements**: Specify what to test, expected coverage, test file locations.
42
+
43
+ ## Anti-Patterns to Avoid
44
+
45
+ - Vague ACs like "system should handle errors gracefully" — specify WHICH errors and HOW
46
+ - Tasks without AC mapping — every task must trace to at least one AC
47
+ - Missing edge cases — think about failure modes, not just happy path
48
+ - Ignoring existing code patterns — the dev agent must follow established conventions
49
+
50
+ ## Output
51
+
52
+ Write the story file to the implementation artifacts directory following the project's naming convention.
53
+ Mark the story as `ready-for-dev` in the sprint status.
@@ -1,4 +1,10 @@
1
1
  tasks:
2
+ create-story:
3
+ agent: story-creator
4
+ scope: per-story
5
+ session: fresh
6
+ source_access: true
7
+ model: claude-opus-4-6-20250514
2
8
  implement:
3
9
  agent: dev
4
10
  scope: per-story
@@ -31,6 +37,7 @@ tasks:
31
37
  model: claude-opus-4-6-20250514
32
38
 
33
39
  flow:
40
+ - create-story
34
41
  - implement
35
42
  - review
36
43
  - verify