easy-coding-harness 0.5.0 → 0.5.2-beta.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": "easy-coding-harness",
3
- "version": "0.5.0",
3
+ "version": "0.5.2-beta.0",
4
4
  "description": "CLI scaffold for installing Easy Coding harness files into agent-native directories.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -6,7 +6,7 @@
6
6
  "hooks": [
7
7
  {
8
8
  "type": "command",
9
- "command": "{{PYTHON_CMD}} .claude/hooks/session-start.py",
9
+ "command": "{{platform_hook_session_start_command}}",
10
10
  "timeout": 30000
11
11
  }
12
12
  ]
@@ -18,7 +18,7 @@
18
18
  "hooks": [
19
19
  {
20
20
  "type": "command",
21
- "command": "{{PYTHON_CMD}} .claude/hooks/session-start.py",
21
+ "command": "{{platform_hook_session_start_command}}",
22
22
  "timeout": 15000
23
23
  }
24
24
  ]
@@ -28,7 +28,7 @@
28
28
  "hooks": [
29
29
  {
30
30
  "type": "command",
31
- "command": "{{PYTHON_CMD}} .claude/hooks/inject-workflow-state.py",
31
+ "command": "{{platform_hook_inject_workflow_state_command}}",
32
32
  "timeout": 15000
33
33
  }
34
34
  ]
@@ -40,7 +40,7 @@
40
40
  "hooks": [
41
41
  {
42
42
  "type": "command",
43
- "command": "{{PYTHON_CMD}} .claude/hooks/inject-subagent-context.py",
43
+ "command": "{{platform_hook_inject_subagent_context_command}}",
44
44
  "timeout": 15000
45
45
  }
46
46
  ]
@@ -5,7 +5,7 @@
5
5
  "hooks": [
6
6
  {
7
7
  "type": "command",
8
- "command": "{{PYTHON_CMD}} .codex/hooks/session-start.py",
8
+ "command": "{{platform_hook_session_start_command}}",
9
9
  "timeout": 10
10
10
  }
11
11
  ]
@@ -14,7 +14,7 @@
14
14
  "hooks": [
15
15
  {
16
16
  "type": "command",
17
- "command": "{{PYTHON_CMD}} .codex/hooks/inject-workflow-state.py",
17
+ "command": "{{platform_hook_inject_workflow_state_command}}",
18
18
  "timeout": 5
19
19
  }
20
20
  ]
@@ -65,6 +65,15 @@ initialization standard. Check each item:
65
65
  and non-empty?
66
66
  - **Project profile**: `project.yaml` exists with `mode` and `test` fields (ec-init owns it;
67
67
  `config.yaml` is CLI-owned — not ec-init's concern)?
68
+ - **Platform hook config freshness**: for each installed platform in `.easy-coding/config.yaml`,
69
+ read the platform hook config and verify managed Easy Coding hook commands use the portable
70
+ relative hook launcher bound to this project root's `project.id`. If `project.id` is missing,
71
+ or any managed hook command is an old direct relative command (for example
72
+ `python3 .claude/hooks/session-start.py`), an absolute local path, missing from its expected
73
+ event, registered under the wrong event, or not bound to the current `project.id`, report the
74
+ exact config file and tell the user to run `easy-coding upgrade`; the upgrade command also
75
+ refreshes stale hook config when the project is already on the current harness version. Do not
76
+ edit the config yourself.
68
77
 
69
78
  **If all checks pass:** show "initialization is up to date" with a brief summary and exit.
70
79
 
@@ -170,6 +179,9 @@ agent must be able to see what was generated and on what evidence.
170
179
 
171
180
  - Never modify business source code, dependencies, or git state.
172
181
  - Never create workflow tasks or touch session files.
182
+ - Never modify platform hook configuration (`.claude/settings.json`, `.codex/hooks.json`,
183
+ `.qoder/settings.json`, `.qodercn/settings.json`). These files are CLI-managed; if they look
184
+ stale or broken, tell the user to run `easy-coding upgrade`.
173
185
  - For COMPLETE projects: the compliance scan may propose supplementary initialization, but
174
186
  never overwrite existing knowledge files without explicit user confirmation. Missing files
175
187
  can be created; existing files are only updated via migration procedures (e.g., memory
@@ -5,7 +5,7 @@
5
5
  "hooks": [
6
6
  {
7
7
  "type": "command",
8
- "command": "{{PYTHON_CMD}} {{platform_config_dir}}/hooks/session-start.py",
8
+ "command": "{{platform_hook_session_start_command}}",
9
9
  "timeout": 10
10
10
  }
11
11
  ]
@@ -14,7 +14,7 @@
14
14
  "hooks": [
15
15
  {
16
16
  "type": "command",
17
- "command": "{{PYTHON_CMD}} {{platform_config_dir}}/hooks/inject-workflow-state.py",
17
+ "command": "{{platform_hook_inject_workflow_state_command}}",
18
18
  "timeout": 5
19
19
  }
20
20
  ]
@@ -26,7 +26,7 @@
26
26
  "hooks": [
27
27
  {
28
28
  "type": "command",
29
- "command": "{{PYTHON_CMD}} {{platform_config_dir}}/hooks/inject-subagent-context.py",
29
+ "command": "{{platform_hook_inject_subagent_context_command}}",
30
30
  "timeout": 30
31
31
  }
32
32
  ]