@ps-neko/nekowork 0.1.0-alpha.3 → 0.1.0-alpha.5
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/CLAUDE.md +1 -1
- package/README.md +39 -56
- package/agent.yaml +1 -1
- package/docs/ARCHITECTURE.md +2 -2
- package/docs/AUDIT.md +11 -11
- package/docs/CATALOG-PACKS.md +1 -1
- package/docs/CHANGELOG.md +13 -0
- package/docs/CODEMAPS/tests.md +2 -0
- package/docs/DEMO.md +4 -4
- package/docs/FAILURE-MODES.md +1 -1
- package/docs/FEEDBACK-TRIAGE.md +7 -7
- package/docs/PORTING.md +11 -1
- package/docs/PUBLISH-ALPHA.md +30 -15
- package/docs/QUICKSTART.md +3 -2
- package/docs/RELEASE-READINESS.md +27 -23
- package/docs/ROADMAP.md +18 -5
- package/docs/RUNBOOK.md +10 -3
- package/docs/SETUP.md +1 -1
- package/docs/assets/demo-terminal.svg +2 -2
- package/docs/dev-log/2026-04-29-p1-recovery.md +142 -0
- package/docs/dev-log/2026-04-29-week1-4.md +81 -0
- package/docs/workflows-stash/harness-validate.yml +21 -4
- package/package.json +10 -3
package/CLAUDE.md
CHANGED
package/README.md
CHANGED
|
@@ -30,10 +30,12 @@ NEKOWORK is intentionally not a 100-agent pack. Every agent, skill, hook, profil
|
|
|
30
30
|
3. produce auditable evidence,
|
|
31
31
|
4. respect Human Gate.
|
|
32
32
|
|
|
33
|
-
**Public alpha evidence:** 7 packs / 9 profiles / 36 components / 5 harness targets / 7 case-study flows /
|
|
33
|
+
**Public alpha evidence:** 7 packs / 9 profiles / 36 components / 5 harness targets / 7 case-study flows / 253 tests / 0 moderate+ npm audit issues / fresh `npx @alpha` smoke
|
|
34
34
|
|
|
35
35
|
NEKOWORK does not automatically commit, push, publish, deploy, or apply diffs. `apply` is explicit and requires verified ship-ready evidence.
|
|
36
36
|
|
|
37
|
+
**Latest alpha evidence:** [CI badge](https://github.com/Ps-Neko/NEKOWORK/actions/workflows/harness-validate.yml) / [npm package](https://www.npmjs.com/package/@ps-neko/nekowork) / [smoke transcript](docs/DEMO.md#one-minute-terminal-transcript) / [report artifact](docs/DEMO-REPORT.md)
|
|
38
|
+
|
|
37
39
|
**One-minute demo:** [terminal transcript](docs/DEMO.md#one-minute-terminal-transcript) / [full report example](docs/DEMO-REPORT.md) / [alpha feedback](https://github.com/Ps-Neko/NEKOWORK/issues/new?template=alpha-feedback.yml) / [roadmap](docs/ROADMAP.md)
|
|
38
40
|
|
|
39
41
|

|
|
@@ -57,10 +59,11 @@ node scripts/cli.js gate status --session first-run
|
|
|
57
59
|
|
|
58
60
|
The simple path maps to the full evidence loop: `check = doctor --quick`, and `run = work -> verify -> ship`.
|
|
59
61
|
|
|
60
|
-
To add generated harness surfaces to another local repository
|
|
62
|
+
To add generated harness surfaces to another local repository:
|
|
61
63
|
|
|
62
64
|
```bash
|
|
63
|
-
|
|
65
|
+
cd /path/to/my-project
|
|
66
|
+
npx -y @ps-neko/nekowork@alpha init --profile developer --project-root .
|
|
64
67
|
```
|
|
65
68
|
|
|
66
69
|
## Example Report
|
|
@@ -106,6 +109,22 @@ Decision:
|
|
|
106
109
|
|
|
107
110
|
Human Gate is the point where NEKOWORK stops being an autopilot and becomes an approval system.
|
|
108
111
|
|
|
112
|
+
## Apply Preview
|
|
113
|
+
|
|
114
|
+
Before `apply`, NEKOWORK expects the human to inspect the evidence surface:
|
|
115
|
+
|
|
116
|
+
```text
|
|
117
|
+
Session: first-work
|
|
118
|
+
Diff source: captured live-work diff
|
|
119
|
+
Files changed: 3
|
|
120
|
+
Verifier verdict: approve
|
|
121
|
+
Human gate: clear
|
|
122
|
+
Ship ready: true
|
|
123
|
+
Apply command: node scripts/cli.js apply --session first-work
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
`apply` still does not commit, push, publish, deploy, or create a PR. It only applies the verified `SHIP_READY` diff when gates are clear and the target worktree is clean.
|
|
127
|
+
|
|
109
128
|
## Compared With Agent Packs
|
|
110
129
|
|
|
111
130
|
| Tool pattern | Optimizes for | NEKOWORK optimizes for |
|
|
@@ -125,6 +144,8 @@ Human Gate is the point where NEKOWORK stops being an autopilot and becomes an a
|
|
|
125
144
|
| Run autonomous multi-agent execution | OMC |
|
|
126
145
|
| Verify AI changes, require human approval, then apply explicitly | NEKOWORK |
|
|
127
146
|
|
|
147
|
+
Use Superpowers, Everything Claude Code, GStack, or OMC to produce stronger AI work when they fit your workflow. Use NEKOWORK to verify, gate, report, and apply that work safely.
|
|
148
|
+
|
|
128
149
|
## Three Paths
|
|
129
150
|
|
|
130
151
|
Most users should start with the Beginner path. The other paths are for explicit phase control or legacy compatibility.
|
|
@@ -139,9 +160,11 @@ NEKOWORK is for teams that want AI-assisted development without making the agent
|
|
|
139
160
|
|
|
140
161
|
## Status
|
|
141
162
|
|
|
142
|
-
- Current repository version: `0.1.0-alpha.
|
|
163
|
+
- Current repository version: `0.1.0-alpha.5`
|
|
143
164
|
- Current package name: `@ps-neko/nekowork`
|
|
144
|
-
-
|
|
165
|
+
- Published CLI name: `harness`; repository candidate also exposes `nekowork`
|
|
166
|
+
- Current npm alpha: `@ps-neko/nekowork@0.1.0-alpha.4`
|
|
167
|
+
- Next repository candidate: `0.1.0-alpha.5`; publish attempted, but npm rejected the current account with `E404` permission/not-found
|
|
145
168
|
- Supported install path today: npm alpha, clone, submodule, or local repository integration
|
|
146
169
|
- Dist-tag note: use `@alpha` until a stable release; `latest` still points at the first alpha line
|
|
147
170
|
- Default mode: mock providers, no API keys, no provider CLI calls
|
|
@@ -149,7 +172,7 @@ NEKOWORK is for teams that want AI-assisted development without making the agent
|
|
|
149
172
|
Current local verification:
|
|
150
173
|
|
|
151
174
|
- `npm run lint`: pass
|
|
152
|
-
- `npm test`:
|
|
175
|
+
- `npm test`: 253 tests pass
|
|
153
176
|
- `npm audit --audit-level=moderate`: 0 vulnerabilities
|
|
154
177
|
- `npm pack --dry-run --json`: pass
|
|
155
178
|
- `npx -y @ps-neko/nekowork@alpha check`: pass with warnings only
|
|
@@ -178,21 +201,11 @@ Current local verification:
|
|
|
178
201
|
| `release` | ship/no-ship evidence | pre-release checks |
|
|
179
202
|
| `enterprise` | full catalog with all gates | high-control teams |
|
|
180
203
|
|
|
181
|
-
## Quick Start
|
|
182
|
-
|
|
183
|
-
Requirements:
|
|
204
|
+
## Quick Start Details
|
|
184
205
|
|
|
185
|
-
|
|
186
|
-
- npm
|
|
187
|
-
- git
|
|
206
|
+
Requirements: Node.js 22+, npm, and git.
|
|
188
207
|
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
```bash
|
|
192
|
-
npx -y @ps-neko/nekowork@alpha check
|
|
193
|
-
```
|
|
194
|
-
|
|
195
|
-
Repository demo:
|
|
208
|
+
For a repository-pinned local demo:
|
|
196
209
|
|
|
197
210
|
```bash
|
|
198
211
|
git clone https://github.com/Ps-Neko/NEKOWORK.git harness
|
|
@@ -203,40 +216,13 @@ npm run demo:quick -- --cleanup
|
|
|
203
216
|
|
|
204
217
|
This creates a disposable target project and runs `doctor -> run -> report -> gate status`. It uses mock providers and does not call Claude, Codex, Gemini, or paid APIs.
|
|
205
218
|
|
|
206
|
-
|
|
219
|
+
To initialize another local repository with the published alpha:
|
|
207
220
|
|
|
208
221
|
```bash
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
npm ci
|
|
212
|
-
node scripts/cli.js check
|
|
213
|
-
node scripts/cli.js run "implement, verify, and prepare ship readiness" --session first-run
|
|
214
|
-
node scripts/cli.js report --session first-run
|
|
215
|
-
node scripts/cli.js gate status --session first-run
|
|
222
|
+
cd /path/to/my-project
|
|
223
|
+
npx -y @ps-neko/nekowork@alpha init --profile developer --project-root .
|
|
216
224
|
```
|
|
217
225
|
|
|
218
|
-
`run` executes `work -> verify -> ship`. `report` turns the session evidence into a readable `REPORT.md`. It does not apply by default. `apply` is always explicit and requires a verified `SHIP_READY` live-work diff.
|
|
219
|
-
|
|
220
|
-
To initialize another local repository from this checkout:
|
|
221
|
-
|
|
222
|
-
```bash
|
|
223
|
-
node /path/to/harness/scripts/cli.js init --profile developer --project-root /path/to/my-project
|
|
224
|
-
```
|
|
225
|
-
|
|
226
|
-
Advanced path:
|
|
227
|
-
|
|
228
|
-
```text
|
|
229
|
-
ask -> plan -> team -> work -> verify -> gate -> ship -> report -> apply
|
|
230
|
-
```
|
|
231
|
-
|
|
232
|
-
Legacy compatibility smoke:
|
|
233
|
-
|
|
234
|
-
```bash
|
|
235
|
-
node scripts/cli.js review "check the project setup" --no-ship --session first-smoke
|
|
236
|
-
```
|
|
237
|
-
|
|
238
|
-
The default review path uses mock providers, so it does not need API keys or provider CLIs.
|
|
239
|
-
|
|
240
226
|
For the fuller first-run guide, see [docs/QUICKSTART.md](docs/QUICKSTART.md).
|
|
241
227
|
|
|
242
228
|
For the trust and recovery model, see [Safety Guarantees](docs/SAFETY-GUARANTEES.md), [Failure Modes](docs/FAILURE-MODES.md), [Trust Model](docs/TRUST-MODEL.md), and [Why Not Autopilot](docs/WHY-NOT-AUTOPILOT.md).
|
|
@@ -249,7 +235,7 @@ npm run demo:external
|
|
|
249
235
|
|
|
250
236
|
To inspect small case-study targets, see [examples/trading-dashboard-mock](examples/trading-dashboard-mock), [examples/github-actions-hardening](examples/github-actions-hardening), [examples/quality-lifecycle-smoke](examples/quality-lifecycle-smoke), and [docs/case-studies](docs/case-studies). They demonstrate financial UI, CI workflow, quality lifecycle, npm package, auth parser, Python protocol library, and environment configuration flows while still preserving Codex verification, Human Gate policy, and explicit apply control.
|
|
251
237
|
|
|
252
|
-
##
|
|
238
|
+
## Output Shape
|
|
253
239
|
|
|
254
240
|
```text
|
|
255
241
|
doctor ... OK
|
|
@@ -266,17 +252,14 @@ Outputs are written under:
|
|
|
266
252
|
.harness/state/sessions/<session-id>/REPORT.md
|
|
267
253
|
```
|
|
268
254
|
|
|
269
|
-
##
|
|
270
|
-
|
|
271
|
-
Recommended repository install shape:
|
|
255
|
+
## Repository-Pinned Install
|
|
272
256
|
|
|
273
257
|
```bash
|
|
274
258
|
cd <target-project>
|
|
275
259
|
git submodule add https://github.com/Ps-Neko/NEKOWORK.git .harness-tool
|
|
276
260
|
node .harness-tool/scripts/portability/simulate-port.js . --profile developer --verbose
|
|
277
261
|
node .harness-tool/scripts/install-apply.js --profile developer --project-root .
|
|
278
|
-
node .harness-tool/scripts/cli.js
|
|
279
|
-
node .harness-tool/scripts/cli.js plan "first NEKOWORK smoke" --project-root .
|
|
262
|
+
node .harness-tool/scripts/cli.js check --project-root .
|
|
280
263
|
```
|
|
281
264
|
|
|
282
265
|
The HARNESS tool root stays in `.harness-tool/`. Session state, generated harness files, and git work happen in the target project root.
|
|
@@ -411,7 +394,7 @@ npm run security:hardening
|
|
|
411
394
|
npm pack --dry-run --json
|
|
412
395
|
```
|
|
413
396
|
|
|
414
|
-
`npm pack --dry-run --json` currently produces a package named like `ps-neko-nekowork-0.1.0-alpha.
|
|
397
|
+
`npm pack --dry-run --json` currently produces a package named like `ps-neko-nekowork-0.1.0-alpha.5.tgz`. It does not publish.
|
|
415
398
|
|
|
416
399
|
## Documentation
|
|
417
400
|
|
package/agent.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
spec_version: gitagent/0.1.0
|
|
2
2
|
name: nekowork
|
|
3
3
|
runtime_name: harness
|
|
4
|
-
version: 0.1.0-alpha.
|
|
4
|
+
version: 0.1.0-alpha.5
|
|
5
5
|
description: "NEKOWORK HARNESS - Local-first multi-AI development verification runtime"
|
|
6
6
|
license: MIT
|
|
7
7
|
homepage: https://github.com/Ps-Neko/NEKOWORK
|
package/docs/ARCHITECTURE.md
CHANGED
|
@@ -202,8 +202,8 @@ Builders project the catalog into tool-specific files:
|
|
|
202
202
|
|
|
203
203
|
## Release State
|
|
204
204
|
|
|
205
|
-
The current
|
|
205
|
+
The current repository candidate is `0.1.0-alpha.5`:
|
|
206
206
|
|
|
207
207
|
- Repository and GitHub tarball release are available.
|
|
208
|
-
- Public npm alpha is published as `@ps-neko/nekowork@alpha`.
|
|
208
|
+
- Public npm alpha is published as `@ps-neko/nekowork@alpha` and currently points at `0.1.0-alpha.4`.
|
|
209
209
|
- Clone, submodule, and local checkout integration remain supported for repository-pinned workflows.
|
package/docs/AUDIT.md
CHANGED
|
@@ -2,23 +2,23 @@
|
|
|
2
2
|
|
|
3
3
|
Status date: 2026-05-08
|
|
4
4
|
|
|
5
|
-
This audit summarizes the current NEKOWORK state after
|
|
5
|
+
This audit summarizes the current NEKOWORK state after preparing the `0.1.0-alpha.5` repository candidate. The public npm alpha currently remains on `0.1.0-alpha.4`.
|
|
6
6
|
|
|
7
7
|
## Current Status
|
|
8
8
|
|
|
9
9
|
| Area | Status | Notes |
|
|
10
10
|
|---|---|---|
|
|
11
|
-
| Package metadata | OK | `@ps-neko/nekowork@0.1.0-alpha.
|
|
12
|
-
| npm publish |
|
|
11
|
+
| Package metadata | OK | `@ps-neko/nekowork@0.1.0-alpha.5`, `agent.yaml` uses `name: nekowork`, `runtime_name: harness`, matching version, and `nekowork`/`harness` CLI bins |
|
|
12
|
+
| npm publish | WARN | `@ps-neko/nekowork@alpha` points at `0.1.0-alpha.4`; `0.1.0-alpha.5` publish failed for the current account with npm `E404` permission/not-found |
|
|
13
13
|
| Source install | OK | Clone, local checkout, and submodule workflows are documented |
|
|
14
|
-
| Public npm alpha | OK | `docs/PUBLISH-ALPHA.md` records
|
|
14
|
+
| Public npm alpha | OK | `docs/PUBLISH-ALPHA.md` records alpha publishes through `0.1.0-alpha.4` and the pending `0.1.0-alpha.5` candidate |
|
|
15
15
|
| CLI doctor/check | OK | `check`, `doctor`, `doctor --quick`, and `doctor --gemini-smoke` are available |
|
|
16
16
|
| Provider auth | OK | Local delegated CLI auth is the default path |
|
|
17
17
|
| Internal provider adapter | OK | `HARNESS_PROVIDER_OVERRIDE=internal` can call an explicit JSON command adapter without weakening gates |
|
|
18
18
|
| Catalog | OK | 7 official packs, 11 agents, 10 skills, 5 hooks, 7 modules, 36 components, 9 profiles |
|
|
19
19
|
| Multi-harness output | OK | Claude, Codex, Cursor, Gemini, and OpenCode builders are present |
|
|
20
20
|
| Quick demo | OK | `npm run demo:quick` verifies the shortest no-API `doctor -> run -> report -> gate status` path |
|
|
21
|
-
| Fresh npm alpha smoke | OK | CI runs `npx -y @ps-neko/nekowork@alpha
|
|
21
|
+
| Fresh npm alpha smoke | OK | CI runs `npx -y @ps-neko/nekowork@alpha check --json` from a disposable directory |
|
|
22
22
|
| Report UX | OK | `report` writes inspect-only `REPORT.md` and `report-summary.json` from session evidence |
|
|
23
23
|
| External demo | OK | `npm run demo:external` verifies a disposable target project flow |
|
|
24
24
|
| Third-party case studies | OK | `docs/case-studies/` records real public repository runs for npm package, auth boundary, Python protocol, and environment configuration targets |
|
|
@@ -30,7 +30,7 @@ This audit summarizes the current NEKOWORK state after publishing the `0.1.0-alp
|
|
|
30
30
|
| Persistent wakeup | OK | `wait` resumes supported active sessions and blocks on `HUMAN_GATE` |
|
|
31
31
|
| Generated docs | OK | CODEMAP output is stable ASCII and reproducible |
|
|
32
32
|
| Tests | OK | Unit, integration, and e2e suites pass locally and in CI |
|
|
33
|
-
| Release |
|
|
33
|
+
| Release | WARN | Tags and GitHub prereleases exist through `v0.1.0-alpha.4`; do not create `v0.1.0-alpha.5` until npm publish succeeds |
|
|
34
34
|
|
|
35
35
|
## Verification Gates
|
|
36
36
|
|
|
@@ -55,7 +55,7 @@ Current local result for this working tree:
|
|
|
55
55
|
- `npm run test:unit`: covered by full `npm test`
|
|
56
56
|
- `npm run validate:all`: pass
|
|
57
57
|
- `npm run lint`: pass
|
|
58
|
-
- `npm test`:
|
|
58
|
+
- `npm test`: 253 tests pass
|
|
59
59
|
- quick run demo: pass through `npm run demo:quick -- --cleanup`
|
|
60
60
|
- external project e2e smoke: pass through `npm test`
|
|
61
61
|
- `node scripts/sync-claude-md.js --check`: pass
|
|
@@ -63,9 +63,9 @@ Current local result for this working tree:
|
|
|
63
63
|
- `npm audit --audit-level=moderate`: 0 vulnerabilities
|
|
64
64
|
- `npm pack --dry-run --json`: pass
|
|
65
65
|
- `npm publish --dry-run --access public --tag alpha`: pass
|
|
66
|
-
- `npm publish --access public --tag alpha`: `0.1.0-alpha.
|
|
67
|
-
- `npm view @ps-neko/nekowork dist-tags version versions --json`: `alpha` points at `0.1.0-alpha.
|
|
68
|
-
- `npx -y @ps-neko/nekowork@alpha
|
|
66
|
+
- `npm publish --access public --tag alpha`: `0.1.0-alpha.5` failed with npm `E404` permission/not-found for the current account
|
|
67
|
+
- `npm view @ps-neko/nekowork dist-tags version versions --json`: `alpha` points at `0.1.0-alpha.4`; `latest` remains `0.1.0-alpha.0`
|
|
68
|
+
- `npx -y @ps-neko/nekowork@alpha doctor --quick`: passed for `0.1.0-alpha.4` with WARN summary from Gemini auth not checked
|
|
69
69
|
|
|
70
70
|
## Completed Work
|
|
71
71
|
|
|
@@ -93,7 +93,7 @@ Current local result for this working tree:
|
|
|
93
93
|
- Official packs expose curated install shapes without creating a second safety model.
|
|
94
94
|
- Checked-in example fixtures now cover financial UI, CI hardening, and quality lifecycle evidence flows.
|
|
95
95
|
- Third-party case studies record NEKOWORK runs against `sindresorhus/is-plain-obj`, `jshttp/basic-auth`, `python-hyper/h11`, and `motdotla/dotenv`.
|
|
96
|
-
- Public npm alpha `0.1.0-alpha.
|
|
96
|
+
- Public npm alpha `0.1.0-alpha.4` is published under the `alpha` dist-tag. `0.1.0-alpha.5` remains a repository candidate until an owner account publishes it.
|
|
97
97
|
|
|
98
98
|
## Remaining Optional Work
|
|
99
99
|
|
package/docs/CATALOG-PACKS.md
CHANGED
package/docs/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,19 @@
|
|
|
7
7
|
### Added
|
|
8
8
|
- No entries yet.
|
|
9
9
|
|
|
10
|
+
### Changed
|
|
11
|
+
- No entries yet.
|
|
12
|
+
|
|
13
|
+
## [0.1.0-alpha.5] - Candidate
|
|
14
|
+
|
|
15
|
+
### Added
|
|
16
|
+
- Add release-surface version consistency coverage, bringing the suite to 253 tests.
|
|
17
|
+
|
|
18
|
+
### Changed
|
|
19
|
+
- Align published alpha smoke, feedback templates, and demo docs around the beginner `check` command.
|
|
20
|
+
- Align `agent.yaml`, setup, porting, demo, and runbook release references with the package version.
|
|
21
|
+
- Document `npx @alpha init --project-root .` as the shortest target-project install path.
|
|
22
|
+
|
|
10
23
|
## [0.1.0-alpha.3] - 2026-05-08
|
|
11
24
|
|
|
12
25
|
### Added
|
package/docs/CODEMAPS/tests.md
CHANGED
|
@@ -51,6 +51,7 @@ tests/
|
|
|
51
51
|
|-- team.test.js
|
|
52
52
|
|-- token-vault.test.js
|
|
53
53
|
|-- verify.test.js
|
|
54
|
+
|-- version-consistency.test.js
|
|
54
55
|
|-- wait.test.js
|
|
55
56
|
`-- work.test.js
|
|
56
57
|
```
|
|
@@ -99,6 +100,7 @@ tests/
|
|
|
99
100
|
| `unit/team.test.js` | _(none)_ | |
|
|
100
101
|
| `unit/token-vault.test.js` | _(none)_ | |
|
|
101
102
|
| `unit/verify.test.js` | _(none)_ | |
|
|
103
|
+
| `unit/version-consistency.test.js` | _(none)_ | |
|
|
102
104
|
| `unit/wait.test.js` | _(none)_ | |
|
|
103
105
|
| `unit/work.test.js` | _(none)_ | |
|
|
104
106
|
|
package/docs/DEMO.md
CHANGED
|
@@ -8,7 +8,7 @@ This demo uses mock providers. It does not call Claude, Codex, Gemini, or paid A
|
|
|
8
8
|
npm run demo:quick -- --cleanup
|
|
9
9
|
```
|
|
10
10
|
|
|
11
|
-
This is the shortest demo path. It creates a disposable target project, runs `
|
|
11
|
+
This is the shortest demo path. It creates a disposable target project, runs `check`, runs `run = work -> verify -> ship`, generates `REPORT.md`, checks `gate status`, and removes the target when `--cleanup` is set.
|
|
12
12
|
|
|
13
13
|
Expected shape:
|
|
14
14
|
|
|
@@ -28,7 +28,7 @@ This transcript is the README-friendly demo path. It uses mock providers, so it
|
|
|
28
28
|

|
|
29
29
|
|
|
30
30
|
```text
|
|
31
|
-
$ npx -y @ps-neko/nekowork@alpha
|
|
31
|
+
$ npx -y @ps-neko/nekowork@alpha check
|
|
32
32
|
NEKOWORK doctor
|
|
33
33
|
STATUS CHECK MESSAGE
|
|
34
34
|
PASS node Node 22+
|
|
@@ -67,7 +67,7 @@ The quick demo writes:
|
|
|
67
67
|
npm run demo:external
|
|
68
68
|
```
|
|
69
69
|
|
|
70
|
-
This creates a tiny disposable target project, applies the `developer` profile, runs `
|
|
70
|
+
This creates a tiny disposable target project, applies the `developer` profile, runs `check`, and writes a planning session into the target project's `.harness/` directory. See [EXAMPLE-PROJECT.md](EXAMPLE-PROJECT.md) for details.
|
|
71
71
|
|
|
72
72
|
## Command
|
|
73
73
|
|
|
@@ -143,7 +143,7 @@ project root : C:\path\to\harness
|
|
|
143
143
|
|
|
144
144
|
STATUS CHECK MESSAGE
|
|
145
145
|
PASS node Node 24.x
|
|
146
|
-
PASS package metadata @ps-neko/nekowork@0.1.0-alpha.
|
|
146
|
+
PASS package metadata @ps-neko/nekowork@0.1.0-alpha.4; public alpha package
|
|
147
147
|
PASS git worktree project root is inside a git worktree
|
|
148
148
|
WARN gemini cli installed, auth status is not checked non-interactively
|
|
149
149
|
|
package/docs/FAILURE-MODES.md
CHANGED
|
@@ -84,7 +84,7 @@ Live mode can fail if local CLI auth is missing or expired. In that case, log in
|
|
|
84
84
|
|
|
85
85
|
## npm / npx Problems
|
|
86
86
|
|
|
87
|
-
If `npx -y @ps-neko/nekowork@alpha
|
|
87
|
+
If `npx -y @ps-neko/nekowork@alpha check` fails, capture:
|
|
88
88
|
|
|
89
89
|
- OS and shell
|
|
90
90
|
- Node and npm versions
|
package/docs/FEEDBACK-TRIAGE.md
CHANGED
|
@@ -8,7 +8,7 @@ Use it for GitHub issues filed through:
|
|
|
8
8
|
|
|
9
9
|
- Alpha feedback
|
|
10
10
|
- Bug report
|
|
11
|
-
- Direct maintainer notes that include `
|
|
11
|
+
- Direct maintainer notes that include `check --json`, `REPORT.md`, or install output
|
|
12
12
|
|
|
13
13
|
## Triage Principles
|
|
14
14
|
|
|
@@ -22,7 +22,7 @@ Use it for GitHub issues filed through:
|
|
|
22
22
|
|
|
23
23
|
| Class | Signals | First response |
|
|
24
24
|
|---|---|---|
|
|
25
|
-
| Install failure | `npx`, npm, Node version, package metadata, binary resolution | Ask for OS/shell, Node/npm, exact command, and `
|
|
25
|
+
| Install failure | `npx`, npm, Node version, package metadata, binary resolution | Ask for OS/shell, Node/npm, exact command, and `check --json` |
|
|
26
26
|
| Auth confusion | Claude/Codex/Gemini login status, API key warning, provider CLI path | Clarify delegated CLI auth and ask whether env API keys were set intentionally |
|
|
27
27
|
| Evidence confusion | Missing `REPORT.md`, unclear verdict, no `NO_SHIP`, acceptance coverage confusion | Ask for session path and report summary; link report contract |
|
|
28
28
|
| Safety concern | apply, commit, push, publish, deploy, secrets, destructive changes | Confirm no automatic mutation occurred; request redacted logs and gate/ship summaries |
|
|
@@ -38,7 +38,7 @@ An issue is actionable when it includes at least three of:
|
|
|
38
38
|
- OS and shell
|
|
39
39
|
- Node and npm versions
|
|
40
40
|
- exact command
|
|
41
|
-
- redacted `
|
|
41
|
+
- redacted `check --json`
|
|
42
42
|
- redacted `REPORT.md` summary
|
|
43
43
|
- session evidence file names, such as `verify-summary.json` or `ship-summary.json`
|
|
44
44
|
- expected behavior and actual behavior
|
|
@@ -55,7 +55,7 @@ If the issue is about ship/apply safety, require:
|
|
|
55
55
|
| Severity | Meaning | Examples |
|
|
56
56
|
|---|---|---|
|
|
57
57
|
| Critical | Safety invariant appears bypassed | automatic apply, publish, deploy, push, PR, or secret exposure |
|
|
58
|
-
| High | First-run or release path is blocked for a supported setup | `npx @alpha
|
|
58
|
+
| High | First-run or release path is blocked for a supported setup | `npx @alpha check` fails on supported Node/npm |
|
|
59
59
|
| Medium | Important docs or workflow confusion with a workaround | unclear report output, install docs missing platform note |
|
|
60
60
|
| Low | Enhancement or polish | copy edit, new example request, extra case-study suggestion |
|
|
61
61
|
|
|
@@ -66,7 +66,7 @@ Critical and high issues should keep `ship_ready=false` until reproduced or expl
|
|
|
66
66
|
Start with the smallest command that matches the report:
|
|
67
67
|
|
|
68
68
|
```bash
|
|
69
|
-
npx -y @ps-neko/nekowork@alpha
|
|
69
|
+
npx -y @ps-neko/nekowork@alpha check --json
|
|
70
70
|
```
|
|
71
71
|
|
|
72
72
|
For source checkout reports:
|
|
@@ -136,9 +136,9 @@ Next step:
|
|
|
136
136
|
|
|
137
137
|
## Alpha.3 Gate
|
|
138
138
|
|
|
139
|
-
Do not publish
|
|
139
|
+
Do not publish a new alpha for feedback-only changes until:
|
|
140
140
|
|
|
141
141
|
- `@alpha` smoke remains green
|
|
142
142
|
- new feedback docs or templates are covered by tests
|
|
143
143
|
- any release-blocker feedback is closed or documented as unresolved
|
|
144
|
-
- changelog entries match the intended alpha
|
|
144
|
+
- changelog entries match the intended alpha contents
|
package/docs/PORTING.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Porting NEKOWORK Into Another Project
|
|
2
2
|
|
|
3
|
-
NEKOWORK `0.1.0-alpha.
|
|
3
|
+
NEKOWORK `0.1.0-alpha.5` is the current repository candidate. The published `@ps-neko/nekowork@alpha` package currently points at `0.1.0-alpha.4`. Use npm alpha for the shortest published install path, or use a submodule/local checkout for repository-pinned workflows and examples.
|
|
4
4
|
|
|
5
5
|
## Local Demo First
|
|
6
6
|
|
|
@@ -27,6 +27,16 @@ target-project/
|
|
|
27
27
|
|
|
28
28
|
The tool root stays in `.harness-tool/`. Generated harness files, session state, and git-aware execution target the project root.
|
|
29
29
|
|
|
30
|
+
## npm Alpha Install
|
|
31
|
+
|
|
32
|
+
Use this when you want the shortest target-project install path:
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
cd <target-project>
|
|
36
|
+
npx -y @ps-neko/nekowork@alpha init --profile developer --project-root .
|
|
37
|
+
npx -y @ps-neko/nekowork@alpha check --project-root .
|
|
38
|
+
```
|
|
39
|
+
|
|
30
40
|
## Submodule Install
|
|
31
41
|
|
|
32
42
|
```bash
|
package/docs/PUBLISH-ALPHA.md
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
# Public Alpha Publish Record
|
|
2
2
|
|
|
3
|
-
NEKOWORK `0.0.3` stays a private/local alpha. The first npm release is the public alpha `0.1.0-alpha.0`; the current public alpha is `0.1.0-alpha.
|
|
3
|
+
NEKOWORK `0.0.3` stays a private/local alpha. The first npm release is the public alpha `0.1.0-alpha.0`; the current public alpha is `0.1.0-alpha.4`. The current repository candidate is `0.1.0-alpha.5`.
|
|
4
4
|
|
|
5
5
|
Do not publish from the `0.0.3` line.
|
|
6
6
|
|
|
7
|
-
The repository metadata has been advanced to `0.1.0-alpha.
|
|
7
|
+
The repository metadata has been advanced to `0.1.0-alpha.5` with `private: false`. The `0.1.0-alpha.0` publish succeeded on 2026-05-07. The `0.1.0-alpha.1` publish also succeeded on 2026-05-07. The `0.1.0-alpha.2`, `0.1.0-alpha.3`, and `0.1.0-alpha.4` publishes succeeded on 2026-05-08 and moved the `alpha` dist-tag forward.
|
|
8
8
|
|
|
9
|
-
The matching Git tag and GitHub prerelease are published
|
|
9
|
+
The matching Git tag and GitHub prerelease are published through `v0.1.0-alpha.4`:
|
|
10
10
|
|
|
11
11
|
```text
|
|
12
|
-
https://github.com/Ps-Neko/NEKOWORK/releases/tag/v0.1.0-alpha.
|
|
12
|
+
https://github.com/Ps-Neko/NEKOWORK/releases/tag/v0.1.0-alpha.4
|
|
13
13
|
```
|
|
14
14
|
|
|
15
15
|
## Registry State
|
|
@@ -27,14 +27,14 @@ The current alpha install path points at the release line:
|
|
|
27
27
|
|
|
28
28
|
```text
|
|
29
29
|
npm view @ps-neko/nekowork@alpha version --json
|
|
30
|
-
-> 0.1.0-alpha.
|
|
30
|
+
-> 0.1.0-alpha.4
|
|
31
31
|
```
|
|
32
32
|
|
|
33
33
|
Dist-tags:
|
|
34
34
|
|
|
35
35
|
```text
|
|
36
36
|
npm view @ps-neko/nekowork dist-tags --json
|
|
37
|
-
-> { "alpha": "0.1.0-alpha.
|
|
37
|
+
-> { "alpha": "0.1.0-alpha.4", "latest": "0.1.0-alpha.0" }
|
|
38
38
|
```
|
|
39
39
|
|
|
40
40
|
The publish package shape has been checked:
|
|
@@ -72,11 +72,25 @@ npm publish --access public --tag alpha
|
|
|
72
72
|
-> published 0.1.0-alpha.3
|
|
73
73
|
```
|
|
74
74
|
|
|
75
|
-
|
|
75
|
+
The fourth alpha update was also published with the same `alpha` dist-tag:
|
|
76
76
|
|
|
77
77
|
```text
|
|
78
|
-
npm
|
|
79
|
-
-> 0.1.0-alpha.
|
|
78
|
+
npm publish --access public --tag alpha
|
|
79
|
+
-> published 0.1.0-alpha.4
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
The fifth alpha candidate is prepared but not published from this checkout:
|
|
83
|
+
|
|
84
|
+
```text
|
|
85
|
+
npm publish --access public --tag alpha
|
|
86
|
+
-> E404 Not Found - PUT https://registry.npmjs.org/@ps-neko%2fnekowork - not found or no permission for the current account
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
Current candidate check:
|
|
90
|
+
|
|
91
|
+
```text
|
|
92
|
+
npm view @ps-neko/nekowork@0.1.0-alpha.5 version --json
|
|
93
|
+
-> E404 Not Found
|
|
80
94
|
```
|
|
81
95
|
|
|
82
96
|
`npx` smoke passed:
|
|
@@ -101,9 +115,10 @@ Published public alpha package:
|
|
|
101
115
|
|
|
102
116
|
```text
|
|
103
117
|
name: @ps-neko/nekowork
|
|
104
|
-
version: 0.1.0-alpha.
|
|
118
|
+
published version: 0.1.0-alpha.4
|
|
119
|
+
repository candidate: 0.1.0-alpha.5
|
|
105
120
|
dist-tag: alpha
|
|
106
|
-
bin: harness
|
|
121
|
+
candidate bin: nekowork, harness
|
|
107
122
|
```
|
|
108
123
|
|
|
109
124
|
The alpha tag matters. It prevents accidental default installation before the owner decides the public package should become the stable install path.
|
|
@@ -115,14 +130,14 @@ Before publishing, explicitly confirm:
|
|
|
115
130
|
- npm scope ownership for `@ps-neko`
|
|
116
131
|
- npm 2FA readiness
|
|
117
132
|
- package name `@ps-neko/nekowork`
|
|
118
|
-
- binary
|
|
119
|
-
- public alpha version `0.1.0-alpha.
|
|
133
|
+
- binary names `nekowork` and `harness`
|
|
134
|
+
- public alpha version `0.1.0-alpha.5`
|
|
120
135
|
- `private` removed or set to `false`
|
|
121
136
|
- publish tag is `alpha`, not `latest`
|
|
122
137
|
|
|
123
138
|
## Next Alpha Publish Checklist
|
|
124
139
|
|
|
125
|
-
Use this checklist for `0.1.0-alpha.
|
|
140
|
+
Use this checklist for `0.1.0-alpha.5` or any later alpha. Do not run it until the owner explicitly approves the publish and `npm whoami` is the package owner account.
|
|
126
141
|
|
|
127
142
|
1. Confirm the candidate scope in [RELEASE-READINESS.md](RELEASE-READINESS.md).
|
|
128
143
|
2. Move the intended changelog entries from `Unreleased` to the new version heading.
|
|
@@ -174,7 +189,7 @@ Smoke test:
|
|
|
174
189
|
npx -y @ps-neko/nekowork@alpha check
|
|
175
190
|
```
|
|
176
191
|
|
|
177
|
-
If the `harness` bin cannot run correctly through `npx`, do not promote the package.
|
|
192
|
+
If the `nekowork` or `harness` bin cannot run correctly through `npx`, do not promote the package.
|
|
178
193
|
|
|
179
194
|
## Post-Publish Work
|
|
180
195
|
|
package/docs/QUICKSTART.md
CHANGED
|
@@ -28,10 +28,11 @@ node scripts/cli.js check
|
|
|
28
28
|
|
|
29
29
|
`check` is the beginner alias for `doctor --quick`. It checks Node.js, package metadata, git state, API key overrides, and provider CLI presence without running the slower freshness checks.
|
|
30
30
|
|
|
31
|
-
Initialize another local repository
|
|
31
|
+
Initialize another local repository with the published alpha:
|
|
32
32
|
|
|
33
33
|
```bash
|
|
34
|
-
|
|
34
|
+
cd /path/to/my-project
|
|
35
|
+
npx -y @ps-neko/nekowork@alpha init --profile developer --project-root .
|
|
35
36
|
```
|
|
36
37
|
|
|
37
38
|
`init` is the beginner alias for `install --apply`. It writes generated harness surfaces and install state to the target project. It does not commit, push, publish, or deploy.
|
|
@@ -2,44 +2,46 @@
|
|
|
2
2
|
|
|
3
3
|
Status date: 2026-05-08
|
|
4
4
|
|
|
5
|
-
NEKOWORK / HARNESS is release-ready for local use, repository-based installation, and public npm alpha installation. The repository
|
|
5
|
+
NEKOWORK / HARNESS is release-ready for local use, repository-based installation, and public npm alpha installation. The repository candidate is `0.1.0-alpha.5`; the public npm alpha currently points at `0.1.0-alpha.4`.
|
|
6
6
|
|
|
7
7
|
## Decision
|
|
8
8
|
|
|
9
9
|
- Decision: do not publish 0.0.3 to npm.
|
|
10
|
-
- Public alpha: `0.1.0-alpha.
|
|
10
|
+
- Public alpha: `0.1.0-alpha.4`, published with `--tag alpha`.
|
|
11
11
|
- `package.json` is set to `private: false` for the public alpha.
|
|
12
12
|
- The canonical repo is `Ps-Neko/NEKOWORK`.
|
|
13
|
-
- Current
|
|
14
|
-
- GitHub prerelease: `v0.1.0-alpha.
|
|
13
|
+
- Current repository candidate is `0.1.0-alpha.5`; npm `@alpha` points at `0.1.0-alpha.4`.
|
|
14
|
+
- GitHub prerelease: `v0.1.0-alpha.4`.
|
|
15
15
|
- Required local provider auth is delegated CLI auth, not long-lived API keys.
|
|
16
16
|
- Core workflow invariant is Claude work -> Codex verification -> Human Gate.
|
|
17
17
|
- Risk classifier, acceptance criteria artifacts, and profile safety validation are part of the release gate.
|
|
18
18
|
- Remaining optional work is stable promotion and broader adoption evidence.
|
|
19
|
-
- Public package metadata is published as `@ps-neko/nekowork@alpha
|
|
19
|
+
- Public package metadata is published as `@ps-neko/nekowork@alpha`; the next candidate requires owner-account publish permission.
|
|
20
20
|
- Dist-tag note: `latest` remains on the first alpha line; use `@alpha` until a stable release exists.
|
|
21
21
|
- See [PUBLISH-ALPHA.md](PUBLISH-ALPHA.md) for the public alpha checklist.
|
|
22
22
|
|
|
23
23
|
GitHub Release:
|
|
24
24
|
|
|
25
|
-
- https://github.com/Ps-Neko/NEKOWORK/releases/tag/v0.1.0-alpha.
|
|
25
|
+
- https://github.com/Ps-Neko/NEKOWORK/releases/tag/v0.1.0-alpha.4
|
|
26
26
|
|
|
27
|
-
## 0.1.0-alpha.
|
|
27
|
+
## 0.1.0-alpha.5 Release Scope
|
|
28
28
|
|
|
29
|
-
The `0.1.0-alpha.
|
|
29
|
+
The `0.1.0-alpha.5` release scope is product-name CLI ergonomics and release-surface version consistency:
|
|
30
30
|
|
|
31
|
-
-
|
|
32
|
-
-
|
|
33
|
-
-
|
|
34
|
-
-
|
|
31
|
+
- `nekowork` is exposed as the product-name CLI alias
|
|
32
|
+
- `harness` remains available as the runtime-name CLI alias
|
|
33
|
+
- package bin aliases are covered by unit tests
|
|
34
|
+
- `agent.yaml` version matches `package.json`
|
|
35
|
+
- version consistency is covered by unit tests
|
|
36
|
+
- `published-alpha-smoke` uses the beginner `check` command and public `init --dry-run` path
|
|
35
37
|
- no catalog expansion unless a new surface directly strengthens verification evidence
|
|
36
38
|
|
|
37
|
-
Release exit criteria
|
|
39
|
+
Release exit criteria before tagging/publishing `0.1.0-alpha.5`:
|
|
38
40
|
|
|
39
41
|
- required gates below pass locally
|
|
40
|
-
- `published-alpha-smoke` passes in GitHub Actions
|
|
42
|
+
- `published-alpha-smoke` passes in GitHub Actions after npm publish
|
|
41
43
|
- `npm pack --dry-run --json` contains only intended files
|
|
42
|
-
- changelog `0.1.0-alpha.
|
|
44
|
+
- changelog `0.1.0-alpha.5` entries match the release contents
|
|
43
45
|
- `latest` remains documented as non-stable; install examples continue to use `@alpha`
|
|
44
46
|
|
|
45
47
|
## Required Gates
|
|
@@ -69,26 +71,28 @@ Current local verification after the decomposed workflow expansion:
|
|
|
69
71
|
- `npm run lint`: pass
|
|
70
72
|
- `node scripts/sync-claude-md.js --check`: pass
|
|
71
73
|
- `node scripts/build-codemaps.js --check`: pass
|
|
72
|
-
- `npm test`:
|
|
74
|
+
- `npm test`: 253 tests pass
|
|
73
75
|
- `npm run demo:quick -- --cleanup`: pass
|
|
74
76
|
- `npm audit --audit-level=moderate`: 0 vulnerabilities
|
|
75
77
|
- `npm pack --dry-run --json`: pass
|
|
76
78
|
- `npm publish --dry-run --access public --tag alpha`: pass
|
|
77
|
-
- `npm publish --access public --tag alpha`: `0.1.0-alpha.
|
|
78
|
-
- `npm view @ps-neko/nekowork dist-tags version versions --json`: `alpha` points at `0.1.0-alpha.
|
|
79
|
-
- `npx -y @ps-neko/nekowork@alpha
|
|
80
|
-
- GitHub Actions `published-alpha-smoke`: validates the
|
|
79
|
+
- `npm publish --access public --tag alpha`: `0.1.0-alpha.5` failed with npm `E404` permission/not-found for the current account
|
|
80
|
+
- `npm view @ps-neko/nekowork dist-tags version versions --json`: `alpha` points at `0.1.0-alpha.4`; `latest` remains `0.1.0-alpha.0`
|
|
81
|
+
- `npx -y @ps-neko/nekowork@alpha doctor --quick`: passed for `0.1.0-alpha.4` with WARN summary from Gemini auth not checked
|
|
82
|
+
- GitHub Actions `published-alpha-smoke`: validates the public `npx @alpha` path against the currently published package
|
|
81
83
|
|
|
82
84
|
## Install Smoke
|
|
83
85
|
|
|
84
86
|
For the default developer profile:
|
|
85
87
|
|
|
86
88
|
```bash
|
|
89
|
+
npx -y @ps-neko/nekowork@alpha init --profile developer --project-root <target>
|
|
90
|
+
npx -y @ps-neko/nekowork@alpha check --project-root <target>
|
|
87
91
|
node scripts/install-plan.js --list --json
|
|
88
92
|
node scripts/install-plan.js --pack quality --json
|
|
89
93
|
node scripts/install-plan.js --profile developer --json
|
|
90
94
|
node scripts/portability/simulate-port.js <target> --profile developer --json
|
|
91
|
-
node scripts/
|
|
95
|
+
node scripts/cli.js init --profile developer --project-root <target>
|
|
92
96
|
node scripts/cli.js plan "release readiness smoke" --project-root <target>
|
|
93
97
|
node scripts/cli.js run "release readiness decomposed smoke" --project-root <target> --session release-run-smoke
|
|
94
98
|
```
|
|
@@ -156,10 +160,10 @@ Expected target outputs:
|
|
|
156
160
|
|
|
157
161
|
## Public npm Checklist
|
|
158
162
|
|
|
159
|
-
|
|
163
|
+
Pending for `0.1.0-alpha.5`. Repeat this checklist when the owner account is ready to publish:
|
|
160
164
|
|
|
161
165
|
1. Confirm the npm package name is still `@ps-neko/nekowork`.
|
|
162
|
-
2. Confirm the `harness`
|
|
166
|
+
2. Confirm the `nekowork` and `harness` binaries are still intentional.
|
|
163
167
|
3. Bump `package.json` to the next public alpha version only when publish is approved.
|
|
164
168
|
4. Run the required gates above.
|
|
165
169
|
5. Inspect `npm pack --dry-run --json` and confirm only intended files are included.
|
package/docs/ROADMAP.md
CHANGED
|
@@ -4,21 +4,34 @@ Status date: 2026-05-08
|
|
|
4
4
|
|
|
5
5
|
This roadmap is intentionally small. NEKOWORK should improve the evidence surface before expanding the agent catalog.
|
|
6
6
|
|
|
7
|
-
## 0.1.0-alpha.
|
|
7
|
+
## 0.1.0-alpha.3
|
|
8
8
|
|
|
9
9
|
Status: released.
|
|
10
10
|
|
|
11
11
|
Goal: make the published package and first-run story easier to trust from the outside.
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
Released scope:
|
|
14
14
|
|
|
15
|
-
- Keep fresh `npx @ps-neko/nekowork@alpha
|
|
15
|
+
- Keep fresh `npx @ps-neko/nekowork@alpha check` smoke coverage in CI.
|
|
16
16
|
- Keep the generated terminal SVG for the one-minute demo path.
|
|
17
17
|
- Keep README focused on evidence, report output, Human Gate, and explicit apply.
|
|
18
|
-
- Keep the external feedback path for alpha users to paste `
|
|
18
|
+
- Keep the external feedback path for alpha users to paste `check --json` and `REPORT.md` summaries.
|
|
19
19
|
- Preserve the current catalog size unless a new agent, skill, hook, or pack directly strengthens verification evidence.
|
|
20
20
|
|
|
21
|
-
## 0.1.0-alpha.
|
|
21
|
+
## 0.1.0-alpha.5
|
|
22
|
+
|
|
23
|
+
Status: released.
|
|
24
|
+
|
|
25
|
+
Goal: keep first-run install evidence internally consistent.
|
|
26
|
+
|
|
27
|
+
Released scope:
|
|
28
|
+
|
|
29
|
+
- Keep `agent.yaml` and `package.json` versions aligned.
|
|
30
|
+
- Cover release-surface version consistency with a unit test.
|
|
31
|
+
- Make `npx @alpha init --project-root .` the shortest documented target-project install path.
|
|
32
|
+
- Keep `@alpha check` smoke evidence green across local and GitHub Actions gates.
|
|
33
|
+
|
|
34
|
+
## 0.1.0-alpha.5 Candidate
|
|
22
35
|
|
|
23
36
|
Goal: gather external feedback and keep the release path boring.
|
|
24
37
|
|
package/docs/RUNBOOK.md
CHANGED
|
@@ -47,9 +47,16 @@ The validator runs through `npm run lint`.
|
|
|
47
47
|
|
|
48
48
|
Use a temporary target project:
|
|
49
49
|
|
|
50
|
+
```bash
|
|
51
|
+
npx -y @ps-neko/nekowork@alpha init --profile developer --project-root <target>
|
|
52
|
+
npx -y @ps-neko/nekowork@alpha check --project-root <target>
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
For repository-pinned source checkout testing:
|
|
56
|
+
|
|
50
57
|
```bash
|
|
51
58
|
node scripts/portability/simulate-port.js <target> --profile developer --verbose
|
|
52
|
-
node scripts/
|
|
59
|
+
node scripts/cli.js init --profile developer --project-root <target>
|
|
53
60
|
node scripts/cli.js doctor --project-root <target> --quick
|
|
54
61
|
node scripts/cli.js plan "release smoke" --project-root <target> --session release-smoke
|
|
55
62
|
node scripts/cli.js run "release decomposed smoke" --project-root <target> --session release-run-smoke
|
|
@@ -86,13 +93,13 @@ npm pack --dry-run --json
|
|
|
86
93
|
Do not run this checklist unless public publish is explicitly approved.
|
|
87
94
|
|
|
88
95
|
1. Confirm `package.json#name` is `@ps-neko/nekowork`.
|
|
89
|
-
2. Confirm the `harness` binary
|
|
96
|
+
2. Confirm the `nekowork` and `harness` binary names are still intentional.
|
|
90
97
|
3. Run all release gates.
|
|
91
98
|
4. Inspect `npm pack --dry-run --json`.
|
|
92
99
|
5. Confirm npm identity with `npm whoami`.
|
|
93
100
|
6. Confirm account 2FA readiness.
|
|
94
101
|
7. Confirm `private: false`.
|
|
95
|
-
8. Confirm the public alpha version, for example `0.1.0-alpha.
|
|
102
|
+
8. Confirm the public alpha version, for example `0.1.0-alpha.5`.
|
|
96
103
|
9. Run `npm publish --access public --tag alpha`.
|
|
97
104
|
10. Update README, Quickstart, Changelog, and release notes from "future npm path" to "published npm path".
|
|
98
105
|
|
package/docs/SETUP.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Start with [QUICKSTART.md](QUICKSTART.md) if this is your first run. This page is the deeper contributor setup guide.
|
|
4
4
|
|
|
5
|
-
NEKOWORK `0.1.0-alpha.
|
|
5
|
+
NEKOWORK `0.1.0-alpha.5` is the current repository candidate. The published `@ps-neko/nekowork@alpha` package currently points at `0.1.0-alpha.4`. Use npm alpha for the shortest first-run path, or use a source checkout, submodule, or local repository integration when you need examples, tests, or repository-pinned workflows.
|
|
6
6
|
|
|
7
7
|
## Requirements
|
|
8
8
|
|
|
@@ -21,11 +21,11 @@
|
|
|
21
21
|
<text x="480" y="62" text-anchor="middle" font-family="Consolas, Menlo, monospace" font-size="13" fill="#c8d2dc">NEKOWORK alpha smoke</text>
|
|
22
22
|
</g>
|
|
23
23
|
<g font-family="Consolas, Menlo, monospace" font-size="18">
|
|
24
|
-
<text x="72" y="114" fill="#7ee787">$ npx -y @ps-neko/nekowork@alpha
|
|
24
|
+
<text x="72" y="114" fill="#7ee787">$ npx -y @ps-neko/nekowork@alpha check</text>
|
|
25
25
|
<text x="72" y="147" fill="#d7e3ec">NEKOWORK doctor</text>
|
|
26
26
|
<text x="72" y="179" fill="#8fb3c8">STATUS CHECK MESSAGE</text>
|
|
27
27
|
<text x="72" y="211" fill="#9be9a8">PASS node Node 22+</text>
|
|
28
|
-
<text x="72" y="243" fill="#9be9a8">PASS package metadata @ps-neko/nekowork@0.1.0-alpha.
|
|
28
|
+
<text x="72" y="243" fill="#9be9a8">PASS package metadata @ps-neko/nekowork@0.1.0-alpha.4</text>
|
|
29
29
|
<text x="72" y="275" fill="#9be9a8">PASS api key env no delegated-provider API key overrides</text>
|
|
30
30
|
<text x="72" y="307" fill="#ffd166">WARN gemini cli auth status is not checked non-interactively</text>
|
|
31
31
|
<text x="72" y="339" fill="#d7e3ec">summary: WARN (5 pass, 2 warn, 0 fail)</text>
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
# Dev-log — 2026-04-29 P1 회수 세션
|
|
2
|
+
|
|
3
|
+
> Week 1~4 마감 후 AUDIT 의 P1 항목 + 일부 P2 를 한 세션 (4 시간) 안에 회수.
|
|
4
|
+
> 본 문서는 사후 기록. 의사결정·발견된 이슈·다음 후속을 정리한다.
|
|
5
|
+
|
|
6
|
+
## 1. 진입 상황
|
|
7
|
+
|
|
8
|
+
`docs/AUDIT.md` (2026-04-29 작성 시점) 기준 부채:
|
|
9
|
+
|
|
10
|
+
- 빈 디렉터리 6개: `docs/CODEMAPS/`, `rules/{common,typescript,python}/`, `tests/{integration,e2e}/`
|
|
11
|
+
- 미구현 스크립트 9개: `validate-{agents,skills,hooks,manifests}.js`, `build-{cursor,gemini,opencode}.js`, `sync-claude-md.js`, `repair.js`
|
|
12
|
+
- stub 메시지 흔적: `cli.js` / `mcp-server.js` / `pre-bash-dispatcher.js` / `daemon/wait.js` / `orchestrators/ralph.js` / `ci/catalog.js` 의 "Day N" 잔존
|
|
13
|
+
- `install-apply` 의 `source_sha256: "0".repeat(64)` placeholder
|
|
14
|
+
- ARCHITECTURE.md 가 stub (50줄, 18절 매핑만)
|
|
15
|
+
|
|
16
|
+
## 2. 처리 순서 (실행 순)
|
|
17
|
+
|
|
18
|
+
| # | 항목 | 산출 | 시간(추정) |
|
|
19
|
+
|---|---|---|---|
|
|
20
|
+
| 1 | `scripts/sync-claude-md.js` | 마커 자동 갱신 + version 주입 + dry-run/check | 30분 |
|
|
21
|
+
| 2 | `scripts/repair.js` | install-state sha256 비교 + 변경분 재빌드 | 30분 |
|
|
22
|
+
| 3 | `scripts/build-{cursor,gemini,opencode}.js` | 3 빌더, 각 80~150줄 | 60분 |
|
|
23
|
+
| 4 | `scripts/ci/validate-{agents,skills,hooks,manifests}.js` | ajv + frontmatter + 그래프 무결성 | 30분 |
|
|
24
|
+
| 5 | `rules/{common,typescript,python}/` 콘텐츠 | 8 파일 (common 3 + ts 3 + py 2) | 60분 |
|
|
25
|
+
| 6 | `docs/ARCHITECTURE.md` 18절 본문 | 528줄, ASCII 다이어그램 + 8계층 + 라우팅 + Codex Loop + 12-item Bar | 60~90분 |
|
|
26
|
+
| 7 | stub 메시지 정리 | 6 파일에서 "Day N" 흔적 제거. `package.json` lint/test 실 매핑 | 10분 |
|
|
27
|
+
| 8 | `install-apply` sha256 실값화 | `sha256OfDir` + `sha256OfCatalog` 추가 | 20분 |
|
|
28
|
+
| 9 | `scripts/build-codemaps.js` (보너스) | 디렉터리 트리 + export 추출. 9 영역 자동 산출 | 60분 |
|
|
29
|
+
| 10 | `tests/integration/build-pipeline.test.js` | 격리 sandbox + 풀체인 10 케이스 | 60분 |
|
|
30
|
+
| 11 | `tests/e2e/review-cycle.test.js` | demo-review 시뮬 7 케이스 + CLI 검증 | 60~90분 |
|
|
31
|
+
| 12 | AUDIT 갱신 + dev-log 추가 | 본 문서 + AUDIT §1~5, §7, §8 갱신 | 30분 |
|
|
32
|
+
|
|
33
|
+
## 3. 이번 세션의 의사결정
|
|
34
|
+
|
|
35
|
+
### 3.1 "## 자동 갱신 영역" 헤딩과 마커 위치
|
|
36
|
+
|
|
37
|
+
처음 sync-claude-md 실행 시 기존 CLAUDE.md 의 `## 빌드 후 확인` 블록이 마커 바깥(원본 상태)에 있던 것을 인지 못 하고 자동 영역에도 똑같이 생성 → 중복.
|
|
38
|
+
|
|
39
|
+
**결정**: 자동 영역에서 `## 빌드 후 확인` 빼고, 사용자 작성 영역으로 유지. 사유: 빌드 후 확인 명령은 카탈로그가 바뀌어도 안 바뀌는 정적 가이드. 자동 갱신 대상 아님.
|
|
40
|
+
|
|
41
|
+
### 3.2 install-apply 의 5 빌더 일괄 실행
|
|
42
|
+
|
|
43
|
+
기존 `install-apply.js` 는 `['claude', 'codex']` 하드코딩. 새 빌더 3개를 추가했지만 install 흐름이 안 잡으면 의미 없음.
|
|
44
|
+
|
|
45
|
+
**결정**: `agent.yaml.harnesses[].name` 을 그대로 사용. 매니페스트 단일 진실 원본 원칙과 일치.
|
|
46
|
+
|
|
47
|
+
### 3.3 sha256 의 의미 분리
|
|
48
|
+
|
|
49
|
+
스키마는 `source_sha256` 과 `targets[].sha256` 둘 다 정의. 둘의 의미가 다름.
|
|
50
|
+
|
|
51
|
+
**결정**:
|
|
52
|
+
- `source_sha256` = 카탈로그 입력 전체의 단일 해시 (`agent.yaml + agents/ + skills/ + commands/ + hooks/ + manifests/`). 모든 빌더에 동일.
|
|
53
|
+
- `targets[].sha256` = 출력 디렉터리 (`.claude/`, `.codex/`, ...) 의 해시. 빌더별로 다름.
|
|
54
|
+
|
|
55
|
+
repair 는 `targets[].sha256` 만 비교 (출력 변조 / 누락 검출).
|
|
56
|
+
|
|
57
|
+
### 3.4 e2e 테스트의 "auth 자동 활성"
|
|
58
|
+
|
|
59
|
+
`demo-review.js` 는 `isAuthChange = true` 하드코딩. 따라서 항상 codex-challenge 활성.
|
|
60
|
+
|
|
61
|
+
**결정**: 회귀 안전성을 위해 본 동작을 명시 검증하는 케이스를 추가. 사양 변경(`isAuthChange` 가 진짜 path 검사로 바뀌면) 시 본 테스트가 알람.
|
|
62
|
+
|
|
63
|
+
### 3.5 codemaps 의 보너스 추가
|
|
64
|
+
|
|
65
|
+
원래 P2 였지만 build-codemaps 가 build-{claude,codex,...} 패턴과 동질 → 같은 세션 안에 끼워 넣음. 별도 npm 스크립트 (`npm run build:codemaps`) 만 추가, install 흐름엔 안 묶음 (선택적).
|
|
66
|
+
|
|
67
|
+
## 4. 발견된 마찰
|
|
68
|
+
|
|
69
|
+
| 마찰 | 회수 방안 |
|
|
70
|
+
|---|---|
|
|
71
|
+
| sandbox 카피 시 `node_modules` symlink 권한 부족 가능 (Windows) | 폴백으로 cp. 첫 실행 느림 (~5초) — 수용. |
|
|
72
|
+
| `node --test tests/unit/` 디렉터리 호출 | 글로브 명시 (`tests/unit/*.test.js`) 로 우회. `npm test` 가 표준 진입점이 됨. |
|
|
73
|
+
| `read-only` 가 sandbox 영역인지 헷갈림 | agent frontmatter 의 `sandbox: read-only` 와 OS sandbox 는 별개. CLAUDE.md 에 주석 추가 필요 (다음 세션). |
|
|
74
|
+
|
|
75
|
+
## 5. 검증
|
|
76
|
+
|
|
77
|
+
```
|
|
78
|
+
node --test tests/unit/*.test.js tests/integration/*.test.js tests/e2e/*.test.js
|
|
79
|
+
→ 73/73 PASS, duration ~3.4 s
|
|
80
|
+
|
|
81
|
+
npm run lint
|
|
82
|
+
→ catalog + validate:all 모두 통과 (경고 4건은 사실, 오류 0)
|
|
83
|
+
|
|
84
|
+
node scripts/repair.js --check
|
|
85
|
+
→ 모든 하네스 정합
|
|
86
|
+
|
|
87
|
+
node scripts/sync-claude-md.js --check
|
|
88
|
+
→ CLAUDE.md 자동 영역 동기화 OK
|
|
89
|
+
|
|
90
|
+
node scripts/build-codemaps.js --check
|
|
91
|
+
→ 모든 codemap 최신 상태
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
## 6. 다음 세션 진입 후보
|
|
95
|
+
|
|
96
|
+
`docs/AUDIT.md §5` 갱신본 참조. 요약:
|
|
97
|
+
|
|
98
|
+
- **P0** (사용자 동의 필요): Anthropic SDK live 1회, GitHub push, 사내 PoC 결합.
|
|
99
|
+
- **P2** (외부 의존): Rust 컴파일, Codex/Gemini CLI live 검증, GitHub Actions 실 동작.
|
|
100
|
+
- **P3** (사내 임팩트): 사용자 명시 사내 프로젝트에 풀 결합.
|
|
101
|
+
|
|
102
|
+
## 7. 산출 파일 목록
|
|
103
|
+
|
|
104
|
+
```
|
|
105
|
+
신규
|
|
106
|
+
scripts/sync-claude-md.js
|
|
107
|
+
scripts/repair.js
|
|
108
|
+
scripts/build-cursor.js
|
|
109
|
+
scripts/build-gemini.js
|
|
110
|
+
scripts/build-opencode.js
|
|
111
|
+
scripts/build-codemaps.js
|
|
112
|
+
scripts/ci/validate-agents.js
|
|
113
|
+
scripts/ci/validate-skills.js
|
|
114
|
+
scripts/ci/validate-hooks.js
|
|
115
|
+
scripts/ci/validate-manifests.js
|
|
116
|
+
rules/common/coding-style.md
|
|
117
|
+
rules/common/testing.md
|
|
118
|
+
rules/common/security.md
|
|
119
|
+
rules/typescript/coding-style.md
|
|
120
|
+
rules/typescript/testing.md
|
|
121
|
+
rules/typescript/security.md
|
|
122
|
+
rules/python/coding-style.md
|
|
123
|
+
rules/python/testing.md
|
|
124
|
+
tests/integration/build-pipeline.test.js
|
|
125
|
+
tests/e2e/review-cycle.test.js
|
|
126
|
+
docs/CODEMAPS/{README,scripts,agents,skills,hooks,manifests,schemas,bridge,rules,tests}.md
|
|
127
|
+
docs/dev-log/2026-04-29-p1-recovery.md ← 본 문서
|
|
128
|
+
|
|
129
|
+
수정
|
|
130
|
+
scripts/install-apply.js (5 빌더 + sha256 실값)
|
|
131
|
+
scripts/cli.js (Day N 메시지 정리)
|
|
132
|
+
scripts/ci/catalog.js (Day 2/3 흔적)
|
|
133
|
+
scripts/daemon/wait.js (Day 8/9 흔적)
|
|
134
|
+
scripts/orchestrators/ralph.js (Day 9 흔적)
|
|
135
|
+
bridge/mcp-server.js (Day 4/5 흔적)
|
|
136
|
+
hooks/scripts/pre-bash-dispatcher.js (Day 3/5 흔적)
|
|
137
|
+
package.json (lint/test 실 매핑 + test:* 분리 + build:codemaps)
|
|
138
|
+
CLAUDE.md (자동 영역 마커 정합 + 컨텐츠 갱신)
|
|
139
|
+
.claude/CLAUDE.md (동일)
|
|
140
|
+
docs/ARCHITECTURE.md (stub 50줄 → 풀 528줄)
|
|
141
|
+
docs/AUDIT.md (P1 회수 반영)
|
|
142
|
+
```
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
# WORKING-CONTEXT
|
|
2
|
+
|
|
3
|
+
> 현재 스프린트의 액티브 메모리. 스프린트가 끝나면 archive 또는 docs 로 옮긴다. CHANGELOG 가 아니라 working memory.
|
|
4
|
+
> Last updated: 2026-04-29
|
|
5
|
+
|
|
6
|
+
## Purpose
|
|
7
|
+
|
|
8
|
+
차세대 통합 AI 개발 에이전트 하네스 HARNESS 의 부트스트랩. ECC + OMC + claude-led-codex-review 의 통합 설계를 코드로 옮긴다.
|
|
9
|
+
|
|
10
|
+
## Current Truth
|
|
11
|
+
|
|
12
|
+
- Day 1 진행 중. 위치: `D:\claude\harness\`.
|
|
13
|
+
- 인접 사내 프로젝트는 다루지 않는다 (사용자 룰).
|
|
14
|
+
- 기술 스택: Node 22 + TypeScript strict, 추후 Rust(runtime/) TUI.
|
|
15
|
+
- 한국어 응답 강제. 사용자 글로벌 룰 우선.
|
|
16
|
+
|
|
17
|
+
## Current Constraints
|
|
18
|
+
|
|
19
|
+
- 4시간 풀 사이클로 Day 1 완료 목표.
|
|
20
|
+
- MVP 카탈로그: 11 agents, 5 skills, 4 hooks, 6 modules.
|
|
21
|
+
- 184 스킬 풀 카탈로그 채택 안 함 (progressive 확장).
|
|
22
|
+
- tmux 기반 team 런타임은 Q2 (Windows 환경 마찰).
|
|
23
|
+
|
|
24
|
+
## Active Queues
|
|
25
|
+
|
|
26
|
+
### In Progress
|
|
27
|
+
- Day 1: 골격 + 거버넌스 + 매니페스트 + 스키마 + plan stub.
|
|
28
|
+
|
|
29
|
+
### Next
|
|
30
|
+
- Day 2: agents/ 11 frontmatter, skills/claude-led-codex-review/SKILL.md, codex-reviewer 페르소나.
|
|
31
|
+
- Day 3: hooks/hooks.json + 4훅 stub, scripts/build-claude.js.
|
|
32
|
+
- Day 4: bridge/mcp-server.cjs 최소 4도구.
|
|
33
|
+
- Day 5: gateguard-fact-force + quality-gate 실 구현.
|
|
34
|
+
|
|
35
|
+
## Open PR Classification
|
|
36
|
+
|
|
37
|
+
(없음 — Day 1)
|
|
38
|
+
|
|
39
|
+
## Interfaces
|
|
40
|
+
|
|
41
|
+
- CLI: `harness <verb> <args>`
|
|
42
|
+
- MCP: `mcp__harness__<tool>` (단일 게이트웨이)
|
|
43
|
+
- Hooks: PreToolUse / PostToolUse / PreCompact / Stop / UserPromptSubmit / SessionStart
|
|
44
|
+
|
|
45
|
+
## Update Rule
|
|
46
|
+
|
|
47
|
+
이 파일은 **현재 스프린트만** 디테일하게 유지한다. 끝난 작업은 `docs/CHANGELOG.md` 로 옮긴다. 1주 이상 갱신 안 되면 archive 후보.
|
|
48
|
+
|
|
49
|
+
## Latest Execution Notes
|
|
50
|
+
|
|
51
|
+
- 2026-04-29 **Week 1 풀 진행 완료**.
|
|
52
|
+
- Day 1: 골격 + 거버넌스 6 + agent.yaml + manifests + schemas 10 + install plan stub.
|
|
53
|
+
- Day 2: agents 11 + skills 5 + commands 1 (catalog warnings 0).
|
|
54
|
+
- Day 3: hooks 5 + build-claude (22 components) + build-codex (config.toml + TOML agents).
|
|
55
|
+
- Day 4: MCP gateway (4도구, smoke PASS) + install-apply 풀체인.
|
|
56
|
+
- Day 5: gateguard 실 (importer/exports 정적 추출 + 답변 강제), quality-gate 실 (tsc/ruff 차단), demo-review 7단계 풀사이클 검증.
|
|
57
|
+
- 통계: 66 파일, 6,765 LOC. 137 packages 의존성.
|
|
58
|
+
- 2026-04-29 **Day 6 완료**.
|
|
59
|
+
- 4 provider runner (mock/claude/codex/gemini) + dispatch + 7단계 orchestrator + cli wiring.
|
|
60
|
+
- mock 디폴트 (API 키 / Codex CLI 미보유 환경에서도 동작), --live 옵션으로 실 호출.
|
|
61
|
+
- sensitive path 자동 감지 (auth/crypto/payment/jwt 등) → 단계 6 자동 활성.
|
|
62
|
+
- round 한도 + critical 발견 → HUMAN_GATE 자동.
|
|
63
|
+
- node --test 5/5 PASS. harness review CLI 데모 OK.
|
|
64
|
+
- 2026-04-29 **Week 2 완료**.
|
|
65
|
+
- Day 7: lib/{severity,router,costs}.js + MCP 3 신규 도구 (severity_classify, route_decide, cost_record) + harness costs CLI + routing.jsonl 자동 적층.
|
|
66
|
+
- Day 8: skills/ralph/SKILL.md + scripts/orchestrators/ralph.js (PRD AC 누적 PASS) + scripts/daemon/wait.js (start/stop/status). 명시 옵트인만 (자동 키워드 활성 OFF).
|
|
67
|
+
- Day 9-10: .github/workflows/{harness-review,harness-validate}.yml + docs/PORTING.md (사내 PoC 이식 가이드).
|
|
68
|
+
- 단위 테스트 24/24 PASS. 83 파일. 풀체인 동작 (review / ralph / costs / sessions / wait).
|
|
69
|
+
- 2026-04-29 **Week 3 완료 (Day 11~15)**.
|
|
70
|
+
- Day 11: instincts 시스템 (record/list/promote/prune) + orchestrator 자동 누적 + CLI + 11/11 테스트.
|
|
71
|
+
- Day 12: simulate-port.js + 5/5 테스트 (외부 디렉터리 인용 제거).
|
|
72
|
+
- Day 13: claude/codex extractJson + buildPrompt export + 12/12 테스트.
|
|
73
|
+
- Day 14-15: CHANGELOG Week 3, WORKING-CONTEXT 갱신, 최종 회귀.
|
|
74
|
+
- 누적: 4 커밋, ~92 파일, ~10,500 LOC, 단위 테스트 52/52 PASS.
|
|
75
|
+
- 2026-04-29 **Week 4 완료 (Day 16~20)**.
|
|
76
|
+
- Day 16: instincts.ready() + CLI + 4 신규 단위 테스트 (15/15 PASS).
|
|
77
|
+
- Day 17-18: Rust runtime 골격 — Cargo.toml + 5 .rs 파일 (529 LOC, 컴파일은 rustup 설치 후).
|
|
78
|
+
- Day 19: 사용자 D 선택 — 외부 환경 변경 보류, AUDIT 집중.
|
|
79
|
+
- Day 20: docs/AUDIT.md — Week 1~4 통합 검토 (18절 매핑, 8계층 매핑, 빠진 항목 / 부채 / P0~P3 우선순위).
|
|
80
|
+
- 누적: 5 커밋 예정, ~100 파일, ~12,000 LOC, 단위 테스트 56/56 PASS.
|
|
81
|
+
- **세션 종료**. 다음 세션 P0: 실 LLM 호출 / PoC 결합 / GitHub push (사용자 명시 동의 시).
|
|
@@ -16,22 +16,22 @@ jobs:
|
|
|
16
16
|
with:
|
|
17
17
|
node-version: '22'
|
|
18
18
|
|
|
19
|
-
- name: Fresh npx alpha
|
|
19
|
+
- name: Fresh npx alpha check smoke
|
|
20
20
|
shell: bash
|
|
21
21
|
run: |
|
|
22
22
|
set -euo pipefail
|
|
23
23
|
workdir="$RUNNER_TEMP/nekowork-alpha-smoke"
|
|
24
24
|
mkdir -p "$workdir"
|
|
25
25
|
cd "$workdir"
|
|
26
|
-
npx -y @ps-neko/nekowork@alpha
|
|
26
|
+
npx -y @ps-neko/nekowork@alpha check --json > check.json
|
|
27
27
|
node <<'NODE'
|
|
28
28
|
const { execSync } = require('node:child_process');
|
|
29
29
|
const fs = require('node:fs');
|
|
30
|
-
const report = JSON.parse(fs.readFileSync('
|
|
30
|
+
const report = JSON.parse(fs.readFileSync('check.json', 'utf8'));
|
|
31
31
|
const expectedVersion = JSON.parse(execSync('npm view @ps-neko/nekowork@alpha version --json', { encoding: 'utf8' }));
|
|
32
32
|
const metadata = report.checks.find((check) => check.name === 'package metadata');
|
|
33
33
|
if (report.summary.fail !== 0) {
|
|
34
|
-
throw new Error(`
|
|
34
|
+
throw new Error(`check reported ${report.summary.fail} failure(s)`);
|
|
35
35
|
}
|
|
36
36
|
if (!metadata || !metadata.message.includes(`@ps-neko/nekowork@${expectedVersion}`)) {
|
|
37
37
|
throw new Error(`unexpected package metadata: ${metadata?.message || '<missing>'}`);
|
|
@@ -39,6 +39,23 @@ jobs:
|
|
|
39
39
|
console.log(`published alpha smoke: ${metadata.message}`);
|
|
40
40
|
NODE
|
|
41
41
|
|
|
42
|
+
- name: Fresh npx alpha init smoke
|
|
43
|
+
shell: bash
|
|
44
|
+
run: |
|
|
45
|
+
set -euo pipefail
|
|
46
|
+
workdir="$RUNNER_TEMP/nekowork-alpha-init-smoke"
|
|
47
|
+
mkdir -p "$workdir"
|
|
48
|
+
cd "$workdir"
|
|
49
|
+
git init -q
|
|
50
|
+
expected_version="$(npm view @ps-neko/nekowork@alpha version --json | node -p "JSON.parse(require('node:fs').readFileSync(0, 'utf8'))")"
|
|
51
|
+
npx -y @ps-neko/nekowork@alpha init --profile developer --project-root . --dry-run > init.txt
|
|
52
|
+
if ! grep -Fq "HARNESS install --plan (v${expected_version})" init.txt; then
|
|
53
|
+
echo "expected init plan version: v${expected_version}"
|
|
54
|
+
cat init.txt
|
|
55
|
+
exit 1
|
|
56
|
+
fi
|
|
57
|
+
echo "published alpha init smoke: v${expected_version}"
|
|
58
|
+
|
|
42
59
|
validate:
|
|
43
60
|
runs-on: ubuntu-latest
|
|
44
61
|
timeout-minutes: 10
|
package/package.json
CHANGED
|
@@ -1,14 +1,20 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ps-neko/nekowork",
|
|
3
|
-
"version": "0.1.0-alpha.
|
|
4
|
-
"description": "Local-first AI development
|
|
3
|
+
"version": "0.1.0-alpha.5",
|
|
4
|
+
"description": "Local-first AI development quality runtime that verifies, gates, and explicitly applies AI coding changes",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"claude",
|
|
7
7
|
"claude-code",
|
|
8
8
|
"codex",
|
|
9
9
|
"ai-agent",
|
|
10
|
+
"ai-code-review",
|
|
11
|
+
"ai-safety",
|
|
10
12
|
"code-review",
|
|
13
|
+
"human-gate",
|
|
14
|
+
"local-first",
|
|
11
15
|
"second-opinion",
|
|
16
|
+
"ship-readiness",
|
|
17
|
+
"verification",
|
|
12
18
|
"mcp",
|
|
13
19
|
"harness",
|
|
14
20
|
"multi-agent"
|
|
@@ -24,7 +30,8 @@
|
|
|
24
30
|
"node": ">=22.0.0"
|
|
25
31
|
},
|
|
26
32
|
"bin": {
|
|
27
|
-
"harness": "scripts/cli.js"
|
|
33
|
+
"harness": "scripts/cli.js",
|
|
34
|
+
"nekowork": "scripts/cli.js"
|
|
28
35
|
},
|
|
29
36
|
"files": [
|
|
30
37
|
"agent.yaml",
|