@walwal-harness/cli 7.1.37 → 7.1.39
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/CHANGELOG.md +6 -0
- package/HR-Resource/ceo/SKILL.md +14 -1
- package/HR-Resource/cto/SKILL.md +8 -0
- package/HR-Resource/ops/SKILL.md +22 -0
- package/README.md +1 -0
- package/apps/harness-dashboard/package-lock.json +43 -42
- package/assets/templates/AGENTS-ko.md.template +17 -2
- package/assets/templates/AGENTS.md.template +19 -2
- package/commands/goal.md +1 -1
- package/commands/hot-fix.md +1 -1
- package/commands/submission.md +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -31,6 +31,12 @@ docmeta:
|
|
|
31
31
|
|
|
32
32
|
## Unreleased
|
|
33
33
|
|
|
34
|
+
## 7.1.38 — CEO approval authority for routine operations (2026-05-31)
|
|
35
|
+
|
|
36
|
+
- CEO now has explicit authority to approve reversible routine operations without Owner confirmation, including mission consolidation/supersede cleanup, monitoring cadence, briefing templates, local cron/launchd/wake automation, dashboard refresh, and Telegram/dashboard notifications that use already configured credentials.
|
|
37
|
+
- OPS guidance now treats hourly monitoring activation and Telegram briefing format as CEO-routed implementation work, not Owner approval questions, unless a missing secret, new payment, legal/business acceptance, unavailable production access, destructive data action, or direct Owner-direction conflict is involved.
|
|
38
|
+
- Owner-facing `/goal`, `/submission`, and `/hot-fix` commands now repeat the same boundary so CXX reports should not end with routine "Owner approval pending" handoffs.
|
|
39
|
+
|
|
34
40
|
## 7.1.37 — Project-local dashboard runtime + wake reliability (2026-05-31)
|
|
35
41
|
|
|
36
42
|
- Dashboard runtime now lives under each project’s `.harness/dashboard/` instead of the shared `~/.walwal-harness/dashboard/` cache, with generated dependencies/build output ignored via `.gitignore`.
|
package/HR-Resource/ceo/SKILL.md
CHANGED
|
@@ -20,6 +20,18 @@ The Owner gives direction and final acceptance, not routine operating answers.
|
|
|
20
20
|
- Only stop for Owner input when the next action requires external authority the harness cannot infer or obtain: credentials/secrets, payment approval, legal/business acceptance, production access not already granted, destructive data action, or a goal conflict that would knowingly violate the Owner's stated direction.
|
|
21
21
|
- When stopped for external authority, mark the mission `blocked` with the exact missing authority and the internally recommended default. Do not ask an open-ended question.
|
|
22
22
|
|
|
23
|
+
## CEO Approval Authority
|
|
24
|
+
|
|
25
|
+
CEO is authorized to approve routine company operations without Owner confirmation. Do not end a response with "Owner approval pending" for these decisions:
|
|
26
|
+
|
|
27
|
+
- Consolidating, superseding, archiving, or cross-linking mission documents when the source records are preserved.
|
|
28
|
+
- Choosing a default monitoring cadence, issue threshold, report format, or briefing template.
|
|
29
|
+
- Starting or updating local harness automation such as cron, launchd, scheduler scripts, dashboard refresh, hourly review, or wake checks.
|
|
30
|
+
- Enabling Telegram, dashboard, or log briefing flows when the required token/chat/config already exists and a non-destructive test has passed.
|
|
31
|
+
- Asking OPS/CTO/CQO to implement, observe, or verify the next planned step under the active goal.
|
|
32
|
+
|
|
33
|
+
If an operational choice is reversible and uses existing project-local credentials or configuration, CEO decides, records the rationale in `ceo.md`, and continues. Escalate only for new secrets, new spending, legal/business acceptance, unavailable external production access, destructive data action, or a direct conflict with the Owner's stated direction.
|
|
34
|
+
|
|
23
35
|
## Lazy Rule Loading
|
|
24
36
|
|
|
25
37
|
Before routing or accepting CXX work, enforce lazy loading:
|
|
@@ -55,6 +67,7 @@ Before routing or accepting CXX work, enforce lazy loading:
|
|
|
55
67
|
- Before CTO/CDO/OPS allocate runnable services, choose a `{xx}000` base port from available local evidence unless the Owner already specified one, then write it to project `.env` as `HARNESS_BASE_PORT={xx}000`. Mentioning the value in `ceo.md` is not sufficient.
|
|
56
68
|
- After writing `.env`, verify with `grep '^HARNESS_BASE_PORT=' .env` before routing service work.
|
|
57
69
|
- For service monitoring, derive the server mapping from repository config, running processes, Docker, scripts, logs, and CXX reports first: local PC, Docker, VM, AWS/cloud, host, port, health path, log path, and contact/source. If a production target or credential is unavailable, record a BLOCKED external-authority item instead of asking a broad Owner question.
|
|
70
|
+
- If OPS proposes a monitoring or Telegram briefing format, CEO must approve the smallest reversible default and route implementation immediately when credentials/config are already present. Do not ask the Owner to approve report wording, cadence, cron/launchd setup, or local automation activation.
|
|
58
71
|
- For runnable verification, collect or require CTO to record the test runtime mapping before CQO starts evaluator work: command/service name, cwd, host, port, health path if any, log path if any, and owner. OPS must watch that runtime during CQO Playwright/E2E/API/visual/performance/regression checks.
|
|
59
72
|
- CEO must not accept CQO PASS for a runnable product unless OPS has supplied clean verification-watch evidence or an explicit not-applicable reason. Open OPS incidents, missing runtime mapping, missing required logs, service down, or health mismatch block Owner acceptance.
|
|
60
73
|
- After launch, CEO treats OPS production incidents as company events. CEO convenes CTO/CQO/OPS when user-impacting production signals appear; CTO owns recovery, CQO owns regression confirmation, and OPS owns evidence and close criteria.
|
|
@@ -82,7 +95,7 @@ Every `ceo.md` and CXX document (`coo.md`, `cdo.md`, `cto.md`, `cqo.md`, `ops.md
|
|
|
82
95
|
- ...
|
|
83
96
|
```
|
|
84
97
|
|
|
85
|
-
Use `None` when a subsection has no entries. These notes are mandatory even for small or emergency work. They must summarize how the role interpreted the Owner request, where the role intentionally diverged from the request, what alternatives were considered, and
|
|
98
|
+
Use `None` when a subsection has no entries. These notes are mandatory even for small or emergency work. They must summarize how the role interpreted the Owner request, where the role intentionally diverged from the request, what alternatives were considered, and any true external-authority blocker. Do not list routine CEO-approved operations as "needs Owner confirmation."
|
|
86
99
|
|
|
87
100
|
When briefing a CXX, CEO must explicitly require the CXX to append this section to its own `{cxx}.md` and to require every worker it manages to append the same section to the bottom of that worker's report.
|
|
88
101
|
|
package/HR-Resource/cto/SKILL.md
CHANGED
|
@@ -30,6 +30,14 @@ Before engineering work, read `.harness/conventions/shared.md`, `.harness/conven
|
|
|
30
30
|
|
|
31
31
|
Before launching any fresh worker session, update `.harness/progress.json` with `scripts/harness-progress-set.sh` so dashboards can show the worker as active. Record the worker name, owning CXX, report path, and `status:"running"` under `company_state.workers`, increment `company_state.active_workers`, and set `conductor.current_action` to `spawn:{worker-name}`. After the worker report is accepted, update that worker to `status:"complete"` and decrement `active_workers`. Do not leave `active_workers:0` while a worker session is running.
|
|
32
32
|
|
|
33
|
+
## Browser Automation Briefing
|
|
34
|
+
|
|
35
|
+
Every CTO worker brief that may use Playwright, browser automation, browser-based inspection, E2E, or visual verification must explicitly include this requirement:
|
|
36
|
+
|
|
37
|
+
> Run Playwright/browser automation with a visible browser. Set `headless: false` in launch/config code, use headed test mode (`--headed`, `PWDEBUG=1`, or equivalent), prefer `channel: 'chrome'` when available, and do not use headless mode unless the Owner has explicitly approved an exception in this mission.
|
|
38
|
+
|
|
39
|
+
CTO must not accept worker plans or reports that omit this requirement when browser automation is in scope.
|
|
40
|
+
|
|
33
41
|
## Hard Rules
|
|
34
42
|
|
|
35
43
|
CTO must not directly write code, create build scripts, choose detailed implementation content, run technical QA as the evaluator, or produce final implementation artifacts. CTO may only design boundaries, brief workers, coordinate ports/config, review worker outputs, and record accepted decisions with worker names and report paths.
|
package/HR-Resource/ops/SKILL.md
CHANGED
|
@@ -22,6 +22,20 @@ OPS owns three environment classes:
|
|
|
22
22
|
OPS is not the implementation owner. CTO/DevOps workers start or change systems; OPS observes whether the declared build/service environments are healthy and raises evidence-backed events.
|
|
23
23
|
OPS must not directly perform DevOps implementation, service fixes, config rewrites, deployment changes, or recovery work. OPS may only monitor, classify, brief hired Ops/DevOps workers, review their reports, and escalate evidence-backed events.
|
|
24
24
|
|
|
25
|
+
## CEO-Approved Operations
|
|
26
|
+
|
|
27
|
+
OPS must not ask the Owner to approve routine monitoring operations. OPS proposes a default to CEO, and CEO decides.
|
|
28
|
+
|
|
29
|
+
Routine CEO-approved operations include:
|
|
30
|
+
|
|
31
|
+
- Hourly/daily monitoring cadence and issue detection thresholds.
|
|
32
|
+
- Telegram briefing formats, message templates, and non-destructive test messages when bot/chat config already exists.
|
|
33
|
+
- Local cron, launchd, wake, dashboard refresh, and harness scheduler activation.
|
|
34
|
+
- Log paths, health check paths, report filenames, and dashboard-readable status files.
|
|
35
|
+
- Continuing observation after CQO PASS or after a consolidation/supersede cleanup.
|
|
36
|
+
|
|
37
|
+
Escalate outside CEO only when the next step needs a missing secret, new payment, unavailable external production access, legal/business acceptance, destructive data action, or a direct conflict with the Owner's stated direction. If Telegram credentials are already verified, "activate hourly briefing" is not an Owner question; it is an OPS implementation task routed through CEO.
|
|
38
|
+
|
|
25
39
|
## Owner Handoff Gate
|
|
26
40
|
|
|
27
41
|
Owner is the final acceptance reviewer, not the runtime monitor. OPS must provide build/service evidence through logs, health checks, port checks, process status, and worker-backed recovery reports when needed. Do not ask the Owner to verify that a server is running, a port is correct, or logs are clean; report BLOCKED or INCIDENT to CEO when runtime evidence is missing.
|
|
@@ -70,6 +84,14 @@ After service launch, OPS continues the same monitoring duty against `runtime.pr
|
|
|
70
84
|
|
|
71
85
|
Before launching any fresh worker session, update `.harness/progress.json` with `scripts/harness-progress-set.sh` so dashboards can show the worker as active. Record the worker name, owning CXX, report path, and `status:"running"` under `company_state.workers`, increment `company_state.active_workers`, and set `conductor.current_action` to `spawn:{worker-name}`. After the worker report is accepted, update that worker to `status:"complete"` and decrement `active_workers`. Do not leave `active_workers:0` while a worker session is running.
|
|
72
86
|
|
|
87
|
+
## Browser Automation Briefing
|
|
88
|
+
|
|
89
|
+
Every OPS worker brief that may use Playwright, browser automation, browser-based monitoring, E2E, or visual/runtime verification must explicitly include this requirement:
|
|
90
|
+
|
|
91
|
+
> Run Playwright/browser automation with a visible browser. Set `headless: false` in launch/config code, use headed test mode (`--headed`, `PWDEBUG=1`, or equivalent), prefer `channel: 'chrome'` when available, and do not use headless mode unless the Owner has explicitly approved an exception in this mission.
|
|
92
|
+
|
|
93
|
+
OPS must not accept worker plans or reports that omit this requirement when browser automation is in scope.
|
|
94
|
+
|
|
73
95
|
## Required Output Sections
|
|
74
96
|
|
|
75
97
|
1. Worker Task Briefs — monitoring/recovery task, capability needed, selected worker or hiring request, acceptance criteria.
|
package/README.md
CHANGED
|
@@ -285,6 +285,7 @@ harness-hiring → register and onboard worker
|
|
|
285
285
|
|
|
286
286
|
| Version | Summary |
|
|
287
287
|
|---|---|
|
|
288
|
+
| 7.1.38 | CEO can approve reversible routine operations without Owner confirmation, including monitoring cadence, local scheduler activation, Telegram briefing formats with existing credentials, dashboard refresh, and consolidation/supersede cleanup |
|
|
288
289
|
| 7.1.37 | Project-local dashboard runtime under `.harness/dashboard/`, unfiltered all-mission heatmap, worker telemetry parsing, and more reliable hourly wake registration/status |
|
|
289
290
|
| 7.1.36 | Stop hook only validates worker evidence while chaining the active loop, scopes validation to the newest active mission, and makes the 24h heatmap visible at 10-minute resolution |
|
|
290
291
|
| 7.1.35 | Fix dashboard heatmap mission scoping, choose the newest active mission for activity recording, and normalize duplicate active child mission states during init/migrate |
|
|
@@ -985,15 +985,15 @@
|
|
|
985
985
|
}
|
|
986
986
|
},
|
|
987
987
|
"node_modules/@next/env": {
|
|
988
|
-
"version": "15.5.
|
|
989
|
-
"resolved": "https://registry.npmjs.org/@next/env/-/env-15.5.
|
|
990
|
-
"integrity": "sha512-
|
|
988
|
+
"version": "15.5.16",
|
|
989
|
+
"resolved": "https://registry.npmjs.org/@next/env/-/env-15.5.16.tgz",
|
|
990
|
+
"integrity": "sha512-9QMKolCl+JnJtaRAQSXy4RQrhgfe8W7/G1+Hl3QSB/HZY7zQMzTwPDdTRwwio8BS96ps1MHpHhbS8qxoNV3JIQ==",
|
|
991
991
|
"license": "MIT"
|
|
992
992
|
},
|
|
993
993
|
"node_modules/@next/swc-darwin-arm64": {
|
|
994
|
-
"version": "15.5.
|
|
995
|
-
"resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.5.
|
|
996
|
-
"integrity": "sha512-
|
|
994
|
+
"version": "15.5.16",
|
|
995
|
+
"resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.5.16.tgz",
|
|
996
|
+
"integrity": "sha512-wzdER4JZj+31vNkhaZ1Ght3IsNI8DMwj7VqadfIOqJB5sh8FiOqNSopYADQn6mgEPomzDd/DHqBcfo2fmVMYtg==",
|
|
997
997
|
"cpu": [
|
|
998
998
|
"arm64"
|
|
999
999
|
],
|
|
@@ -1007,9 +1007,9 @@
|
|
|
1007
1007
|
}
|
|
1008
1008
|
},
|
|
1009
1009
|
"node_modules/@next/swc-darwin-x64": {
|
|
1010
|
-
"version": "15.5.
|
|
1011
|
-
"resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.5.
|
|
1012
|
-
"integrity": "sha512-
|
|
1010
|
+
"version": "15.5.16",
|
|
1011
|
+
"resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.5.16.tgz",
|
|
1012
|
+
"integrity": "sha512-PPTo+cvcanxkuDEuDyZGk28ntmu0WjfkxqlG7hw9Mhsiribs4x1C6h2Culn0cJKqsne1gFjjZRK3ax7WYlSxgg==",
|
|
1013
1013
|
"cpu": [
|
|
1014
1014
|
"x64"
|
|
1015
1015
|
],
|
|
@@ -1023,9 +1023,9 @@
|
|
|
1023
1023
|
}
|
|
1024
1024
|
},
|
|
1025
1025
|
"node_modules/@next/swc-linux-arm64-gnu": {
|
|
1026
|
-
"version": "15.5.
|
|
1027
|
-
"resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.5.
|
|
1028
|
-
"integrity": "sha512-
|
|
1026
|
+
"version": "15.5.16",
|
|
1027
|
+
"resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.5.16.tgz",
|
|
1028
|
+
"integrity": "sha512-Jl0IL9P7S8uNl5oI1TqrQmfmLp7OqjWM58000pVnUVIsHrvPP6m9QDW/uNWYUbmd+8IYvc6MTeZKICstBMBpew==",
|
|
1029
1029
|
"cpu": [
|
|
1030
1030
|
"arm64"
|
|
1031
1031
|
],
|
|
@@ -1039,9 +1039,9 @@
|
|
|
1039
1039
|
}
|
|
1040
1040
|
},
|
|
1041
1041
|
"node_modules/@next/swc-linux-arm64-musl": {
|
|
1042
|
-
"version": "15.5.
|
|
1043
|
-
"resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.5.
|
|
1044
|
-
"integrity": "sha512-
|
|
1042
|
+
"version": "15.5.16",
|
|
1043
|
+
"resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.5.16.tgz",
|
|
1044
|
+
"integrity": "sha512-Zf0BIqv/o5uOWfyRkzgGhyV2Tky7HLt0bG+w7XWdaU1JpyX0tltM3TrSfa/Y9c597SJG4CzN47+u2InhgZZ4vg==",
|
|
1045
1045
|
"cpu": [
|
|
1046
1046
|
"arm64"
|
|
1047
1047
|
],
|
|
@@ -1055,9 +1055,9 @@
|
|
|
1055
1055
|
}
|
|
1056
1056
|
},
|
|
1057
1057
|
"node_modules/@next/swc-linux-x64-gnu": {
|
|
1058
|
-
"version": "15.5.
|
|
1059
|
-
"resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.5.
|
|
1060
|
-
"integrity": "sha512-
|
|
1058
|
+
"version": "15.5.16",
|
|
1059
|
+
"resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.5.16.tgz",
|
|
1060
|
+
"integrity": "sha512-HCDDU1TRLeUDV180QQTWrs5Oa4lIcI7XH9nF0UVUVmYLN/boZ6LqyFtm3814gc1fv+lOVyKaw5B6bVC9BpXTSQ==",
|
|
1061
1061
|
"cpu": [
|
|
1062
1062
|
"x64"
|
|
1063
1063
|
],
|
|
@@ -1071,9 +1071,9 @@
|
|
|
1071
1071
|
}
|
|
1072
1072
|
},
|
|
1073
1073
|
"node_modules/@next/swc-linux-x64-musl": {
|
|
1074
|
-
"version": "15.5.
|
|
1075
|
-
"resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.5.
|
|
1076
|
-
"integrity": "sha512-
|
|
1074
|
+
"version": "15.5.16",
|
|
1075
|
+
"resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.5.16.tgz",
|
|
1076
|
+
"integrity": "sha512-kvXUY1dn5wxKuMkXxQRUbPjEnKxW1PR9uKOm0zpIpj3574+cFfaePhYFmBVtrOuwt+w34OdDzNaJr5Iixf+HBQ==",
|
|
1077
1077
|
"cpu": [
|
|
1078
1078
|
"x64"
|
|
1079
1079
|
],
|
|
@@ -1087,9 +1087,9 @@
|
|
|
1087
1087
|
}
|
|
1088
1088
|
},
|
|
1089
1089
|
"node_modules/@next/swc-win32-arm64-msvc": {
|
|
1090
|
-
"version": "15.5.
|
|
1091
|
-
"resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.5.
|
|
1092
|
-
"integrity": "sha512-
|
|
1090
|
+
"version": "15.5.16",
|
|
1091
|
+
"resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.5.16.tgz",
|
|
1092
|
+
"integrity": "sha512-zpOQuF+eyENMXRjglp2hZCIrUjTdO37suEBnDn1mX4PXSuetXZDMLpjKOh4dYSw3SiDTnOoOUwBl5i5Elr6nnQ==",
|
|
1093
1093
|
"cpu": [
|
|
1094
1094
|
"arm64"
|
|
1095
1095
|
],
|
|
@@ -1103,9 +1103,9 @@
|
|
|
1103
1103
|
}
|
|
1104
1104
|
},
|
|
1105
1105
|
"node_modules/@next/swc-win32-x64-msvc": {
|
|
1106
|
-
"version": "15.5.
|
|
1107
|
-
"resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.5.
|
|
1108
|
-
"integrity": "sha512-
|
|
1106
|
+
"version": "15.5.16",
|
|
1107
|
+
"resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.5.16.tgz",
|
|
1108
|
+
"integrity": "sha512-LnwKYpiSmIzXlTq76hMeeIzZoDcFwu848p6H+QBkGFJIbZphgzNUPdHruJcHM/bFnaFeco0l1Frie5I27VKglA==",
|
|
1109
1109
|
"cpu": [
|
|
1110
1110
|
"x64"
|
|
1111
1111
|
],
|
|
@@ -1687,9 +1687,9 @@
|
|
|
1687
1687
|
"license": "MIT"
|
|
1688
1688
|
},
|
|
1689
1689
|
"node_modules/@types/node": {
|
|
1690
|
-
"version": "22.19.
|
|
1691
|
-
"resolved": "https://registry.npmjs.org/@types/node/-/node-22.19.
|
|
1692
|
-
"integrity": "sha512-
|
|
1690
|
+
"version": "22.19.17",
|
|
1691
|
+
"resolved": "https://registry.npmjs.org/@types/node/-/node-22.19.17.tgz",
|
|
1692
|
+
"integrity": "sha512-wGdMcf+vPYM6jikpS/qhg6WiqSV/OhG+jeeHT/KlVqxYfD40iYJf9/AE1uQxVWFvU7MipKRkRv8NSHiCGgPr8Q==",
|
|
1693
1693
|
"dev": true,
|
|
1694
1694
|
"license": "MIT",
|
|
1695
1695
|
"dependencies": {
|
|
@@ -2660,6 +2660,7 @@
|
|
|
2660
2660
|
"version": "2.3.2",
|
|
2661
2661
|
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
|
|
2662
2662
|
"integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
|
|
2663
|
+
"dev": true,
|
|
2663
2664
|
"hasInstallScript": true,
|
|
2664
2665
|
"license": "MIT",
|
|
2665
2666
|
"optional": true,
|
|
@@ -3947,12 +3948,12 @@
|
|
|
3947
3948
|
}
|
|
3948
3949
|
},
|
|
3949
3950
|
"node_modules/next": {
|
|
3950
|
-
"version": "15.5.
|
|
3951
|
-
"resolved": "https://registry.npmjs.org/next/-/next-15.5.
|
|
3952
|
-
"integrity": "sha512-
|
|
3951
|
+
"version": "15.5.16",
|
|
3952
|
+
"resolved": "https://registry.npmjs.org/next/-/next-15.5.16.tgz",
|
|
3953
|
+
"integrity": "sha512-aZExBk/V6JCu3NCFc90twdj9L/M3y0+ukeQwUAZbOiqRhAX+h2oMEa0NZFhcpj6HYRYjVS3V2/3xvyOpNnmw7A==",
|
|
3953
3954
|
"license": "MIT",
|
|
3954
3955
|
"dependencies": {
|
|
3955
|
-
"@next/env": "15.5.
|
|
3956
|
+
"@next/env": "15.5.16",
|
|
3956
3957
|
"@swc/helpers": "0.5.15",
|
|
3957
3958
|
"caniuse-lite": "^1.0.30001579",
|
|
3958
3959
|
"postcss": "8.4.31",
|
|
@@ -3965,14 +3966,14 @@
|
|
|
3965
3966
|
"node": "^18.18.0 || ^19.8.0 || >= 20.0.0"
|
|
3966
3967
|
},
|
|
3967
3968
|
"optionalDependencies": {
|
|
3968
|
-
"@next/swc-darwin-arm64": "15.5.
|
|
3969
|
-
"@next/swc-darwin-x64": "15.5.
|
|
3970
|
-
"@next/swc-linux-arm64-gnu": "15.5.
|
|
3971
|
-
"@next/swc-linux-arm64-musl": "15.5.
|
|
3972
|
-
"@next/swc-linux-x64-gnu": "15.5.
|
|
3973
|
-
"@next/swc-linux-x64-musl": "15.5.
|
|
3974
|
-
"@next/swc-win32-arm64-msvc": "15.5.
|
|
3975
|
-
"@next/swc-win32-x64-msvc": "15.5.
|
|
3969
|
+
"@next/swc-darwin-arm64": "15.5.16",
|
|
3970
|
+
"@next/swc-darwin-x64": "15.5.16",
|
|
3971
|
+
"@next/swc-linux-arm64-gnu": "15.5.16",
|
|
3972
|
+
"@next/swc-linux-arm64-musl": "15.5.16",
|
|
3973
|
+
"@next/swc-linux-x64-gnu": "15.5.16",
|
|
3974
|
+
"@next/swc-linux-x64-musl": "15.5.16",
|
|
3975
|
+
"@next/swc-win32-arm64-msvc": "15.5.16",
|
|
3976
|
+
"@next/swc-win32-x64-msvc": "15.5.16",
|
|
3976
3977
|
"sharp": "^0.34.3"
|
|
3977
3978
|
},
|
|
3978
3979
|
"peerDependencies": {
|
|
@@ -113,6 +113,8 @@ Owner는 최종 검수자다. Tester, QA worker, debugger, 배포 확인 담당
|
|
|
113
113
|
- Owner는 방향 제시, 추가 요구, hot-fix, 최종 acceptance feedback을 제공한다. 회사 루프를 계속 돌리기 위한 진행 신호가 아니다.
|
|
114
114
|
- CEO는 Owner에게 계속 진행 여부, worker 고용 여부, 내부 옵션 선택, 다음 단계 시작 여부를 묻지 않는다.
|
|
115
115
|
- CEO가 혼자 판단하기 어려우면 관련 CXX 회의를 열고 written recommendation을 받아 결정한 뒤 계속 진행한다.
|
|
116
|
+
- CEO는 routine operation을 Owner 확인 없이 승인할 수 있다: mission consolidation/supersede 정리, monitoring cadence, briefing template, dashboard/log status file, local cron/launchd/wake automation, 이미 설정된 credentials를 사용하는 Telegram/dashboard notification.
|
|
117
|
+
- 되돌릴 수 있는 project-local automation은 CEO 결정 사항이다. credentials/config가 이미 있으면 hourly review, scheduler check, dashboard refresh, monitoring briefing 시작을 Owner 승인 대기로 멈추지 않는다.
|
|
116
118
|
- Owner 입력 대기는 harness가 추론하거나 확보할 수 없는 외부 권한이 필요할 때만 허용한다: credentials/secrets, payment approval, legal/business acceptance, unavailable production access, destructive data action, 또는 명시된 Owner 방향과의 직접 충돌.
|
|
117
119
|
- 동작하지 않거나 검증되지 않았거나 부분적으로만 실행되는 소프트웨어를 Owner에게 전달하며 "확인해 주세요"를 다음 액션으로 삼지 않는다.
|
|
118
120
|
- Owner에게 개발자 테스트, 회귀 확인, 계정 생성/로그인 확인, Playwright 확인, E2E 순회, 로그 점검, 기본 기능 검증을 요구하지 않는다.
|
|
@@ -170,7 +172,19 @@ Owner는 최종 검수자다. Tester, QA worker, debugger, 배포 확인 담당
|
|
|
170
172
|
|
|
171
173
|
`.harness/`는 미션 상태 저장소다. 빌드 산출물이 아니다. 삭제하지 않는다.
|
|
172
174
|
|
|
173
|
-
## 10.
|
|
175
|
+
## 10. 브라우저 자동화
|
|
176
|
+
|
|
177
|
+
CEO, CXX, hired worker의 모든 Playwright 사용은 실제로 보이는 브라우저 창으로 실행한다.
|
|
178
|
+
|
|
179
|
+
- Playwright launch/config 코드에는 `headless: false`를 사용한다.
|
|
180
|
+
- Playwright test 실행은 headed mode(`--headed`, `PWDEBUG=1`, 또는 동등한 설정)로 수행한다.
|
|
181
|
+
- 설치된 Chrome을 사용할 수 있으면 `channel: 'chrome'`을 우선한다.
|
|
182
|
+
- Owner가 명시적으로 예외를 승인하지 않는 한 headless Playwright 실행을 추가, 권장, 의존하지 않는다.
|
|
183
|
+
- CTO와 OPS는 Playwright, browser automation, E2E, visual check, browser-based monitoring이 포함될 수 있는 모든 worker brief에 `headless: false` 요구사항을 명시적으로 주입한다.
|
|
184
|
+
- 브라우저 동작을 사람이 관찰해야 할 때는 적절한 `slowMo` 또는 동등한 단계 지연을 둔다.
|
|
185
|
+
- CQO evaluator evidence에는 Playwright/browser 실행이 headed 또는 visible이었다는 사실을 기록한다.
|
|
186
|
+
|
|
187
|
+
## 11. 금지 규칙
|
|
174
188
|
|
|
175
189
|
1. **`{mission}/cto.md` 없이 소스 코드 편집 금지** — CTO의 범위 승인이 있어야 소스 파일을 수정할 수 있다.
|
|
176
190
|
2. **CXX 사칭 금지** — 현재 모델이 CEO/CTO/CQO를 인라인으로 대행하지 않는다. 설치된 harness skill을 fresh session에서 사용한다.
|
|
@@ -182,10 +196,11 @@ Owner는 최종 검수자다. Tester, QA worker, debugger, 배포 확인 담당
|
|
|
182
196
|
8. **OPS는 CQO 검수 중 관제한다** — 실행 가능한 제품에서 CQO PASS는 OPS가 검수 runtime을 관제했거나 OPS watch가 불필요한 이유를 기록했을 때만 유효하다. 열린 OPS incident, runtime mapping 누락, 필수 로그 누락, service down, health mismatch, 검수 대상 service 미관제는 Owner acceptance를 막는다.
|
|
183
197
|
9. **Production incident는 회사 이벤트다** — 오픈 후 사용자 영향 OPS signal은 CEO를 통해 CTO/CQO/OPS로 라우팅된다. CTO는 복구, CQO는 회귀 검증, OPS는 증거와 close criteria를 책임진다.
|
|
184
198
|
10. **Implementation Notes는 같은 보고서 하단에 작성** — `ceo.md`, 모든 `{cxx}.md`, 모든 worker report는 하나의 English `## Implementation Notes` 섹션으로 끝나야 한다. 별도 sidecar notes 파일을 만들지 않는다. 결정/증거를 만든 동일한 role 또는 worker report 하단에 `Design Decisions`, `Deviations`, `Tradeoffs`, `Open Questions`를 작성하고 빈 항목은 `None`을 사용한다.
|
|
199
|
+
11. **Playwright는 visible이 기본값이다** — 모든 Playwright/browser automation은 headed/visible mode(`headless: false` 또는 동등한 설정)를 사용한다. Headless Playwright는 mission에 기록된 Owner의 명시적 승인이 필요하다.
|
|
185
200
|
|
|
186
201
|
---
|
|
187
202
|
|
|
188
|
-
##
|
|
203
|
+
## 12. 프로젝트 컨텍스트
|
|
189
204
|
|
|
190
205
|
- **기술 스택**: {{TECH_STACK}}
|
|
191
206
|
- **프로젝트 구조**: {{PROJECT_STRUCTURE}}
|
|
@@ -74,6 +74,8 @@ The Owner is the final acceptance reviewer, not a tester, QA worker, debugger, o
|
|
|
74
74
|
- The Owner sets direction, adds requirements, issues hot-fixes, and gives final acceptance feedback. The Owner is not the progress pump for the company loop.
|
|
75
75
|
- CEO must not ask the Owner whether to continue, which worker to hire, which internal option to choose, or whether to start the next planned step.
|
|
76
76
|
- If CEO cannot answer an operating question alone, CEO convenes the relevant CXX agents, records their recommendations, chooses a path, and continues.
|
|
77
|
+
- CEO may approve routine operations without Owner confirmation: mission consolidation/supersede cleanup, monitoring cadence, briefing templates, dashboard/log status files, local cron/launchd/wake automation, and Telegram/dashboard notifications that use already configured credentials.
|
|
78
|
+
- Reversible project-local automation is a CEO decision. Do not wait for Owner approval to start hourly review, scheduler checks, dashboard refresh, or monitoring briefs when credentials/config are already present.
|
|
77
79
|
- Do not hand the Owner broken, unverified, or partially runnable software with "please check this" as the next action.
|
|
78
80
|
- Do not ask the Owner to perform developer testing, regression checks, account setup checks, Playwright review, E2E traversal, log inspection, or basic functionality verification.
|
|
79
81
|
- CEO and CXX must plan and execute self-verification through workers: unit tests, E2E tests, Playwright/browser checks, test accounts, seeded data, build/run checks, logs, and documented evidence.
|
|
@@ -139,7 +141,21 @@ Note: A docmeta skip decision on harness documents (ceo.md, cto.md, cqo.md, work
|
|
|
139
141
|
|
|
140
142
|
---
|
|
141
143
|
|
|
142
|
-
## 7.
|
|
144
|
+
## 7. Browser Automation
|
|
145
|
+
|
|
146
|
+
All Playwright usage by CEO, CXX, and hired workers must run with a visible real browser window.
|
|
147
|
+
|
|
148
|
+
- Use `headless: false` in Playwright launch/config code.
|
|
149
|
+
- Use headed mode for Playwright test runs (`--headed`, `PWDEBUG=1`, or equivalent config).
|
|
150
|
+
- Prefer `channel: 'chrome'` when the installed Chrome browser is available.
|
|
151
|
+
- Do not add, recommend, or rely on headless Playwright execution unless the Owner explicitly approves an exception.
|
|
152
|
+
- CTO and OPS must explicitly inject the `headless: false` requirement into every worker brief that may involve Playwright, browser automation, E2E, visual checks, or browser-based monitoring.
|
|
153
|
+
- When browser actions should be observable, add a reasonable `slowMo` value or equivalent step pacing.
|
|
154
|
+
- CQO evaluator evidence must note that the Playwright/browser run was headed or visible.
|
|
155
|
+
|
|
156
|
+
---
|
|
157
|
+
|
|
158
|
+
## 8. Hard Rules
|
|
143
159
|
|
|
144
160
|
1. **No source edit without `{mission}/cto.md`** — CTO scope sign-off is required before any source file is modified.
|
|
145
161
|
2. **No CXX impersonation** — The active model must not act as CEO/CTO/CQO inline. Use installed harness skills in fresh sessions.
|
|
@@ -158,10 +174,11 @@ Note: A docmeta skip decision on harness documents (ceo.md, cto.md, cqo.md, work
|
|
|
158
174
|
15. **Owner is final acceptance only** — Owner is not a tester or QA substitute. CEO/CXX must not report "done, please check" until worker-backed verification proves the goal can be completed. Use unit tests, E2E, Playwright, test accounts, seeded data, build/run checks, logs, and CQO evidence before requesting Owner acceptance.
|
|
159
175
|
16. **OPS watches CQO verification** — For runnable products, CQO PASS is invalid unless OPS has monitored the verification runtime or documented why OPS watch is not applicable. Open OPS incidents, missing runtime mapping, required log gaps, service down, health mismatch, or an unmonitored tested service block Owner acceptance.
|
|
160
176
|
17. **Production incidents are company events** — After launch, user-impacting OPS signals route through CEO to CTO/CQO/OPS. CTO owns recovery, CQO owns regression confirmation, and OPS owns evidence plus close criteria.
|
|
177
|
+
18. **Playwright is visible by default** — All Playwright/browser automation must use headed/visible mode (`headless: false` or equivalent). Headless Playwright requires explicit Owner approval recorded in the mission.
|
|
161
178
|
|
|
162
179
|
---
|
|
163
180
|
|
|
164
|
-
##
|
|
181
|
+
## 9. Project Context
|
|
165
182
|
|
|
166
183
|
- **Tech Stack**: {{TECH_STACK}}
|
|
167
184
|
- **Structure**: {{PROJECT_STRUCTURE}}
|
package/commands/goal.md
CHANGED
|
@@ -24,7 +24,7 @@ Required flow:
|
|
|
24
24
|
9. CEO must require a Worker Evidence Manifest and worker report paths under `.harness/documents/goal-{goal_index}-{goal_name}/{owning-cxx}/workers/` before accepting CXX completion.
|
|
25
25
|
10. When the goal is accepted, cancelled, superseded, blocked, or closed, update `mission-state.json` to `complete`, `cancelled`, `superseded`, `blocked`, or `closed` and set `active:false`.
|
|
26
26
|
11. Do not invoke internal roles through slash commands; commands are Owner entrypoints only.
|
|
27
|
-
12. Do not ask the Owner whether to continue, hire workers, choose internal options, or start the next step. If CEO cannot decide alone, convene the relevant CXX agents and decide from their written recommendations. Stop only for external authority such as credentials/secrets, payment approval, legal/business acceptance, unavailable production access, destructive data action, or direct conflict with stated Owner direction.
|
|
27
|
+
12. Do not ask the Owner whether to continue, hire workers, choose internal options, or start the next step. If CEO cannot decide alone, convene the relevant CXX agents and decide from their written recommendations. CEO may approve reversible routine operations such as local cron/launchd/wake automation, dashboard refresh, monitoring cadence, Telegram briefing format using existing credentials, and mission consolidation/supersede cleanup. Stop only for external authority such as new credentials/secrets, payment approval, legal/business acceptance, unavailable production access, destructive data action, or direct conflict with stated Owner direction.
|
|
28
28
|
|
|
29
29
|
Note: A goal is the company's objective. Submissions and hot-fixes that happen while pursuing it should be recorded under that goal directory.
|
|
30
30
|
|
package/commands/hot-fix.md
CHANGED
|
@@ -26,7 +26,7 @@ Required flow:
|
|
|
26
26
|
11. CQO must register durable lessons in `.harness/gotchas/`, `.harness/conventions/`, or `.harness/memories/`. This step is mandatory, not optional, even for small fixes.
|
|
27
27
|
12. Archive only after CQO has accepted the fix, then update `mission-state.json` to `complete` with `active:false`.
|
|
28
28
|
13. Do not invoke internal roles through slash commands; commands are Owner entrypoints only.
|
|
29
|
-
14. Do not ask the Owner whether to continue, hire workers, choose internal options, or start the next step. If CEO cannot decide alone, convene the relevant CXX agents and decide from their written recommendations. Stop only for external authority such as credentials/secrets, payment approval, legal/business acceptance, unavailable production access, destructive data action, or direct conflict with stated Owner direction.
|
|
29
|
+
14. Do not ask the Owner whether to continue, hire workers, choose internal options, or start the next step. If CEO cannot decide alone, convene the relevant CXX agents and decide from their written recommendations. CEO may approve reversible routine operations such as local cron/launchd/wake automation, dashboard refresh, monitoring cadence, Telegram briefing format using existing credentials, and mission consolidation/supersede cleanup. Stop only for external authority such as new credentials/secrets, payment approval, legal/business acceptance, unavailable production access, destructive data action, or direct conflict with stated Owner direction.
|
|
30
30
|
|
|
31
31
|
Note: `/hot-fix` is a problem-fix flow while pursuing the active goal. It belongs under that goal in history.
|
|
32
32
|
|
package/commands/submission.md
CHANGED
|
@@ -26,7 +26,7 @@ Required flow:
|
|
|
26
26
|
11. CEO must require a Worker Evidence Manifest and worker report paths under `.harness/documents/{goal_name}/submission-{submission_index}-{submission_name}/{owning-cxx}/workers/` before accepting CXX completion.
|
|
27
27
|
12. When the submission is accepted, cancelled, superseded, blocked, or closed, update `mission-state.json` to `complete`, `cancelled`, `superseded`, `blocked`, or `closed` and set `active:false`.
|
|
28
28
|
13. Do not invoke internal roles through slash commands; commands are Owner entrypoints only.
|
|
29
|
-
14. Do not ask the Owner whether to continue, hire workers, choose internal options, or start the next step. If CEO cannot decide alone, convene the relevant CXX agents and decide from their written recommendations. Stop only for external authority such as credentials/secrets, payment approval, legal/business acceptance, unavailable production access, destructive data action, or direct conflict with stated Owner direction.
|
|
29
|
+
14. Do not ask the Owner whether to continue, hire workers, choose internal options, or start the next step. If CEO cannot decide alone, convene the relevant CXX agents and decide from their written recommendations. CEO may approve reversible routine operations such as local cron/launchd/wake automation, dashboard refresh, monitoring cadence, Telegram briefing format using existing credentials, and mission consolidation/supersede cleanup. Stop only for external authority such as new credentials/secrets, payment approval, legal/business acceptance, unavailable production access, destructive data action, or direct conflict with stated Owner direction.
|
|
30
30
|
|
|
31
31
|
Note: `/submission` is not a new company goal and not an emergency fix. It is an additional requirement while pursuing the active goal. It belongs under that goal in history.
|
|
32
32
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@walwal-harness/cli",
|
|
3
|
-
"version": "7.1.
|
|
3
|
+
"version": "7.1.39",
|
|
4
4
|
"description": "Company-style AI agent harness for Claude and Codex. Installs commands, CXX agents, skills, HR-Resource hiring pool, and project-local .harness runtime state.",
|
|
5
5
|
"bin": {
|
|
6
6
|
"walwal-harness": "bin/init.js"
|