conductor-harness 1.0.2 → 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/README.md CHANGED
@@ -57,10 +57,11 @@ RAILWAY_SERVICE_ID=your-service-id
57
57
 
58
58
  ### 4. Fill in WORKFLOW.md
59
59
 
60
- Either edit it manually or let Claude generate it:
60
+ Either edit `WORKFLOW.md` manually, or open the project in Claude Code and run:
61
61
  ```
62
62
  /setup
63
63
  ```
64
+ This is a Claude Code slash command — type it in the Claude Code chat, not in the terminal.
64
65
 
65
66
  ### 5. Start working
66
67
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "conductor-harness",
3
- "version": "1.0.2",
3
+ "version": "1.0.4",
4
4
  "description": "Claude Code harness for Conductor projects — hooks, memory, Linear, and workflow context",
5
5
  "bin": {
6
6
  "conductor-harness": "./bin/conductor-harness.js"
@@ -8,4 +8,4 @@ Show current harness status:
8
8
  2. Show `.harness/progress.md` contents if it exists.
9
9
  3. Show `git log --oneline -5`.
10
10
  4. Show `git status --short`.
11
- 5. Check if any Graphiti memory exists for this task (use memory skill to search by branch name).
11
+ 5. Check if any Hindsight memory exists for this task (use memory skill to recall by branch name).
@@ -2,15 +2,25 @@
2
2
  "hooks": {
3
3
  "SessionStart": [
4
4
  {
5
- "type": "command",
6
- "command": ".claude/hooks/session-start.sh"
5
+ "matcher": "",
6
+ "hooks": [
7
+ {
8
+ "type": "command",
9
+ "command": ".claude/hooks/session-start.sh"
10
+ }
11
+ ]
7
12
  }
8
13
  ],
9
14
  "Stop": [
10
15
  {
11
- "type": "command",
12
- "command": ".claude/hooks/stop.sh",
13
- "timeout": 30
16
+ "matcher": "",
17
+ "hooks": [
18
+ {
19
+ "type": "command",
20
+ "command": ".claude/hooks/stop.sh",
21
+ "timeout": 30
22
+ }
23
+ ]
14
24
  }
15
25
  ]
16
26
  },
@@ -81,8 +81,8 @@ with open(settings_path) as f:
81
81
  existing = json.load(f)
82
82
 
83
83
  harness_hooks = {
84
- "SessionStart": [{"type": "command", "command": ".claude/hooks/session-start.sh"}],
85
- "Stop": [{"type": "command", "command": ".claude/hooks/stop.sh", "timeout": 30}]
84
+ "SessionStart": {"matcher": "", "hooks": [{"type": "command", "command": ".claude/hooks/session-start.sh"}]},
85
+ "Stop": {"matcher": "", "hooks": [{"type": "command", "command": ".claude/hooks/stop.sh", "timeout": 30}]}
86
86
  }
87
87
 
88
88
  harness_allow = [
@@ -97,16 +97,20 @@ harness_deny = [
97
97
  "Bash(git push -f *)"
98
98
  ]
99
99
 
100
- # Merge hooks
100
+ # Merge hooks — each event is a list of {matcher, hooks} objects
101
101
  if "hooks" not in existing:
102
102
  existing["hooks"] = {}
103
- for event, entries in harness_hooks.items():
103
+ for event, entry in harness_hooks.items():
104
104
  if event not in existing["hooks"]:
105
105
  existing["hooks"][event] = []
106
- existing_cmds = [h.get("command") for h in existing["hooks"][event]]
107
- for entry in entries:
108
- if entry.get("command") not in existing_cmds:
109
- existing["hooks"][event].append(entry)
106
+ existing_cmds = [
107
+ cmd.get("command")
108
+ for h in existing["hooks"][event]
109
+ for cmd in h.get("hooks", [])
110
+ ]
111
+ cmd = entry["hooks"][0].get("command")
112
+ if cmd not in existing_cmds:
113
+ existing["hooks"][event].append(entry)
110
114
 
111
115
  # Merge permissions
112
116
  if "permissions" not in existing:
@@ -279,11 +283,15 @@ echo "4. Start a task: /start LIN-123"
279
283
  echo " End a task: /done"
280
284
  echo " Check status: /status"
281
285
  echo ""
282
- echo "5. Fill in WORKFLOW.md — this is injected into every Claude Code session as project context."
283
- echo " Or run /setup to auto-generate it from your project structure."
286
+ echo "5. Fill in WORKFLOW.md — injected into every Claude Code session as project context."
287
+ echo " Or type /setup inside Claude Code to auto-generate it from your project structure."
284
288
  echo ""
285
289
  if [ "$USE_RAILWAY" = "y" ] || [ "$USE_RAILWAY" = "yes" ]; then
286
- echo "6. Edit conductor.json and replace the RAILWAY_* placeholders."
290
+ echo "6. Add Railway IDs to .env (or .env.local):"
291
+ echo " RAILWAY_PROJECT_ID=your-project-id"
292
+ echo " RAILWAY_ENVIRONMENT_ID=your-environment-id"
293
+ echo " RAILWAY_SERVICE_ID=your-service-id"
294
+ echo " Find these in your Railway project settings."
287
295
  echo ""
288
296
  fi
289
297
  echo "Docs: https://github.com/blaesild/conductor-harness"