create-harness-vibe-coding 0.7.2 → 0.8.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.
Files changed (82) hide show
  1. package/README-CN.md +103 -155
  2. package/README.md +213 -175
  3. package/bin/create-harness-vibe-coding.js +2 -2
  4. package/package.json +45 -43
  5. package/src/generator.js +115 -77
  6. package/src/index.js +159 -49
  7. package/src/prompts.js +95 -27
  8. package/templates/common/.claude/agents/architect-manager.md +45 -45
  9. package/templates/common/.claude/agents/context-master.md +77 -77
  10. package/templates/common/.claude/agents/debugger.md +41 -41
  11. package/templates/common/.claude/agents/explore-manager.md +41 -41
  12. package/templates/common/.claude/agents/implement-manager.md +49 -49
  13. package/templates/common/.claude/agents/implementer.md +40 -40
  14. package/templates/common/.claude/agents/memory-master.md +66 -66
  15. package/templates/common/.claude/agents/planner.md +34 -34
  16. package/templates/common/.claude/agents/researcher.md +41 -41
  17. package/templates/common/.claude/agents/review-manager.md +56 -56
  18. package/templates/common/.claude/agents/test-writer.md +38 -38
  19. package/templates/common/.claude/agents/verifier.md +32 -32
  20. package/templates/common/.claude/rules/ecc/common.md +45 -45
  21. package/templates/common/.claude/settings.json +68 -68
  22. package/templates/common/.claude/skills/subagent-orchestrator/SKILL.md +36 -31
  23. package/templates/common/.claude/skills/wf/SKILL.md +36 -0
  24. package/templates/common/.claude/skills/wf-learn/SKILL.md +13 -28
  25. package/templates/common/.claude/skills/wf-max/SKILL.md +24 -88
  26. package/templates/common/.claude/skills/wf-readme/SKILL.md +49 -49
  27. package/templates/common/.claude/skills/wf-remove/SKILL.md +17 -38
  28. package/templates/common/.claude/skills/wf-review/SKILL.md +19 -69
  29. package/templates/common/.claude/skills/wf-update/SKILL.md +19 -61
  30. package/templates/common/.codex/config.toml +2 -2
  31. package/templates/common/.codex/hooks.json +37 -37
  32. package/templates/common/.harness-version +53 -51
  33. package/templates/common/AGENTS.md +30 -30
  34. package/templates/common/CLAUDE.md +94 -94
  35. package/templates/common/{docs/harness → Harness}/PROGRESS.md +17 -17
  36. package/templates/common/{docs → Harness}/README.md +18 -17
  37. package/templates/common/{docs/harness → Harness}/WF-MAX.md +223 -223
  38. package/templates/common/Harness/WF.md +217 -0
  39. package/templates/common/{docs/harness → Harness}/architecture.md +126 -126
  40. package/templates/common/{docs/harness → Harness}/dispatch.md +99 -99
  41. package/templates/common/{docs → Harness}/research/research-results.md +66 -66
  42. package/templates/common/{docs/harness → Harness}/subagents.md +194 -194
  43. package/templates/common/{docs → Harness}/tasks/_template/ARTIFACTS.md +3 -3
  44. package/templates/common/{docs → Harness}/tasks/_template/NOTES.md +3 -3
  45. package/templates/common/{docs → Harness}/tasks/_template/PLAN.md +40 -40
  46. package/templates/common/{docs → Harness}/tasks/_template/PROGRESS.md +29 -29
  47. package/templates/common/MEMORY.md +68 -66
  48. package/templates/common/README.md +44 -37
  49. package/templates/common/SETUP.md +67 -47
  50. package/templates/common/memory/agent-lessons-patterns.md +21 -21
  51. package/templates/common/memory/tool-usage-reflections.md +21 -21
  52. package/templates/common/memory/user-corrections-preferences.md +21 -21
  53. package/templates/common/scripts/scan-clean.mjs +450 -449
  54. package/templates/common/scripts/validate-harness.mjs +56 -34
  55. package/templates/common/scripts/wf-mode-hook.mjs +318 -318
  56. package/templates/common/scripts/wf-remove.mjs +400 -384
  57. package/templates/common/scripts/wf-statusline.ps1 +38 -38
  58. package/templates/common/scripts/wf-statusline.sh +48 -48
  59. package/templates/common/scripts/wf-update-check.mjs +389 -389
  60. package/templates/optional/catalog.json +63 -29
  61. package/templates/optional/skills/browser-e2e/.claude/skills/wf-browser/SKILL.md +194 -194
  62. package/templates/optional/skills/browser-e2e/{docs → Harness}/workflows/browser-e2e.md +75 -75
  63. package/templates/optional/skills/github-pr-review/{docs → Harness}/workflows/github-pr-review.md +28 -28
  64. package/templates/optional/skills/python-backend/{docs → Harness}/workflows/python-backend.md +34 -34
  65. package/templates/optional/skills/ts-react-frontend/{docs → Harness}/workflows/ts-react-frontend.md +35 -35
  66. package/templates/optional/skills/ui-ux-review/{docs → Harness}/workflows/ui-ux-review.md +26 -26
  67. package/templates/common/.claude/commands/wf-learn.md +0 -17
  68. package/templates/common/.claude/commands/wf-max.md +0 -49
  69. package/templates/common/.claude/commands/wf-remove.md +0 -23
  70. package/templates/common/.claude/commands/wf-review.md +0 -25
  71. package/templates/common/.claude/commands/wf-update.md +0 -17
  72. package/templates/common/.claude/commands/wf.md +0 -31
  73. package/templates/common/commands/wf-max.toml +0 -18
  74. package/templates/common/commands/wf-review.toml +0 -15
  75. package/templates/common/docs/harness/WF.md +0 -174
  76. package/templates/optional/skills/browser-e2e/.claude/commands/wf-browser.md +0 -25
  77. /package/templates/common/{docs/harness → Harness}/agent-workflow.md +0 -0
  78. /package/templates/common/{docs/harness → Harness}/context-loading.md +0 -0
  79. /package/templates/common/{docs/harness → Harness}/extension.md +0 -0
  80. /package/templates/common/{docs/harness → Harness}/lifecycle.md +0 -0
  81. /package/templates/common/{docs → Harness}/research/PRD.md +0 -0
  82. /package/templates/common/{docs → Harness}/research/README.md +0 -0
@@ -1,38 +1,38 @@
1
- #!/usr/bin/env pwsh
2
- # wf-statusline.ps1 — Windows statusline badge for WF-MAX / WF-REVIEW
3
- # Reads Harness/.runtime/current-mode.json and outputs a colored badge.
4
- #
5
- # Usage in .claude/settings.json:
6
- # "statusLine": { "type": "command", "command": "pwsh -File Harness/scripts/wf-statusline.ps1" }
7
- #
8
- # Security: refuses symlinks, validates JSON, caps read size.
9
-
10
- param()
11
-
12
- $MODE_FILE = Join-Path $PSScriptRoot '..' '.runtime' 'current-mode.json'
13
-
14
- # Refuse symlinks / missing file
15
- if (-not (Test-Path $MODE_FILE -PathType Leaf)) { exit 0 }
16
- $item = Get-Item $MODE_FILE -Force
17
- if ($item.Attributes -band [System.IO.FileAttributes]::ReparsePoint) { exit 0 }
18
-
19
- # Size cap
20
- if ($item.Length -gt 4096) { exit 0 }
21
-
22
- try {
23
- $json = Get-Content $MODE_FILE -Raw -ErrorAction Stop | ConvertFrom-Json
24
- } catch {
25
- exit 0 # Silent-fail — never crash statusline
26
- }
27
-
28
- if (-not $json.active -or $json.role -ne 'ceo') { exit 0 }
29
-
30
- switch ($json.mode) {
31
- 'wf-max' {
32
- $phase = if ($json.phase) { ":$($json.phase -replace 'W\d_','W')" } else { '' }
33
- Write-Host -NoNewline "`e[38;5;75m[WF-MAX$phase]`e[0m"
34
- }
35
- 'wf-review' {
36
- Write-Host -NoNewline "`e[38;5;178m[WF-REVIEW]`e[0m"
37
- }
38
- }
1
+ #!/usr/bin/env pwsh
2
+ # wf-statusline.ps1 — Windows statusline badge for WF-MAX / WF-REVIEW
3
+ # Reads Harness/.runtime/current-mode.json and outputs a colored badge.
4
+ #
5
+ # Usage in .claude/settings.json:
6
+ # "statusLine": { "type": "command", "command": "pwsh -File Harness/scripts/wf-statusline.ps1" }
7
+ #
8
+ # Security: refuses symlinks, validates JSON, caps read size.
9
+
10
+ param()
11
+
12
+ $MODE_FILE = Join-Path $PSScriptRoot '..' '.runtime' 'current-mode.json'
13
+
14
+ # Refuse symlinks / missing file
15
+ if (-not (Test-Path $MODE_FILE -PathType Leaf)) { exit 0 }
16
+ $item = Get-Item $MODE_FILE -Force
17
+ if ($item.Attributes -band [System.IO.FileAttributes]::ReparsePoint) { exit 0 }
18
+
19
+ # Size cap
20
+ if ($item.Length -gt 4096) { exit 0 }
21
+
22
+ try {
23
+ $json = Get-Content $MODE_FILE -Raw -ErrorAction Stop | ConvertFrom-Json
24
+ } catch {
25
+ exit 0 # Silent-fail — never crash statusline
26
+ }
27
+
28
+ if (-not $json.active -or $json.role -ne 'ceo') { exit 0 }
29
+
30
+ switch ($json.mode) {
31
+ 'wf-max' {
32
+ $phase = if ($json.phase) { ":$($json.phase -replace 'W\d_','W')" } else { '' }
33
+ Write-Host -NoNewline "`e[38;5;75m[WF-MAX$phase]`e[0m"
34
+ }
35
+ 'wf-review' {
36
+ Write-Host -NoNewline "`e[38;5;178m[WF-REVIEW]`e[0m"
37
+ }
38
+ }
@@ -1,48 +1,48 @@
1
- #!/bin/bash
2
- # wf-statusline.sh — Unix statusline badge for WF-MAX / WF-REVIEW
3
- # Reads Harness/.runtime/current-mode.json and outputs a colored badge.
4
- #
5
- # Usage in .claude/settings.json:
6
- # "statusLine": { "type": "command", "command": "bash Harness/scripts/wf-statusline.sh" }
7
- #
8
- # Security: refuses symlinks, validates JSON, caps read size.
9
-
10
- MODE_FILE="$(dirname "$0")/../.runtime/current-mode.json"
11
-
12
- # Resolve relative path to absolute (from project root or script location)
13
- if [ ! -f "$MODE_FILE" ]; then
14
- # Try relative to CWD (project root)
15
- MODE_FILE="Harness/.runtime/current-mode.json"
16
- fi
17
-
18
- [ -L "$MODE_FILE" ] && exit 0 # Refuse symlinks
19
- [ ! -f "$MODE_FILE" ] && exit 0 # Missing file
20
-
21
- # Read with python for safe JSON parse (jq may not be installed).
22
- # Pass file path as argv to avoid shell injection via MODE_FILE content.
23
- MODE=$(python3 -c "
24
- import json, os, sys
25
- try:
26
- fpath = sys.argv[1]
27
- if os.path.getsize(fpath) > 4096: sys.exit(1)
28
- with open(fpath, 'r') as f:
29
- d = json.load(f)
30
- if d.get('active') and d.get('role') == 'ceo':
31
- print(d.get('mode','') + '|' + d.get('phase',''))
32
- except: pass
33
- " "$MODE_FILE" 2>/dev/null)
34
-
35
- [ -z "$MODE" ] && exit 0
36
-
37
- MODE_NAME="${MODE%%|*}"
38
- MODE_PHASE="${MODE##*|}"
39
-
40
- case "$MODE_NAME" in
41
- wf-max)
42
- PHASE_SHORT=$(echo "$MODE_PHASE" | sed 's/W._/W/')
43
- printf '\033[38;5;75m[WF-MAX:%s]\033[0m' "$PHASE_SHORT"
44
- ;;
45
- wf-review)
46
- printf '\033[38;5;178m[WF-REVIEW]\033[0m'
47
- ;;
48
- esac
1
+ #!/bin/bash
2
+ # wf-statusline.sh — Unix statusline badge for WF-MAX / WF-REVIEW
3
+ # Reads Harness/.runtime/current-mode.json and outputs a colored badge.
4
+ #
5
+ # Usage in .claude/settings.json:
6
+ # "statusLine": { "type": "command", "command": "bash Harness/scripts/wf-statusline.sh" }
7
+ #
8
+ # Security: refuses symlinks, validates JSON, caps read size.
9
+
10
+ MODE_FILE="$(dirname "$0")/../.runtime/current-mode.json"
11
+
12
+ # Resolve relative path to absolute (from project root or script location)
13
+ if [ ! -f "$MODE_FILE" ]; then
14
+ # Try relative to CWD (project root)
15
+ MODE_FILE="Harness/.runtime/current-mode.json"
16
+ fi
17
+
18
+ [ -L "$MODE_FILE" ] && exit 0 # Refuse symlinks
19
+ [ ! -f "$MODE_FILE" ] && exit 0 # Missing file
20
+
21
+ # Read with python for safe JSON parse (jq may not be installed).
22
+ # Pass file path as argv to avoid shell injection via MODE_FILE content.
23
+ MODE=$(python3 -c "
24
+ import json, os, sys
25
+ try:
26
+ fpath = sys.argv[1]
27
+ if os.path.getsize(fpath) > 4096: sys.exit(1)
28
+ with open(fpath, 'r') as f:
29
+ d = json.load(f)
30
+ if d.get('active') and d.get('role') == 'ceo':
31
+ print(d.get('mode','') + '|' + d.get('phase',''))
32
+ except: pass
33
+ " "$MODE_FILE" 2>/dev/null)
34
+
35
+ [ -z "$MODE" ] && exit 0
36
+
37
+ MODE_NAME="${MODE%%|*}"
38
+ MODE_PHASE="${MODE##*|}"
39
+
40
+ case "$MODE_NAME" in
41
+ wf-max)
42
+ PHASE_SHORT=$(echo "$MODE_PHASE" | sed 's/W._/W/')
43
+ printf '\033[38;5;75m[WF-MAX:%s]\033[0m' "$PHASE_SHORT"
44
+ ;;
45
+ wf-review)
46
+ printf '\033[38;5;178m[WF-REVIEW]\033[0m'
47
+ ;;
48
+ esac