@ps-neko/nekowork 0.1.0-alpha.1 → 0.1.0-alpha.2

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 CHANGED
@@ -8,7 +8,7 @@
8
8
 
9
9
  ## 자동 갱신 영역
10
10
 
11
- <!-- HARNESS:START version=0.1.0-alpha.1 -->
11
+ <!-- HARNESS:START version=0.1.0-alpha.2 -->
12
12
  <!-- 이 영역은 scripts/sync-claude-md.js 가 자동 갱신한다. 직접 편집 금지. -->
13
13
 
14
14
  ## 카탈로그 요약
package/README.md CHANGED
@@ -20,10 +20,14 @@ NEKOWORK is not meant to become a large agent pack. Skills, hooks, profiles, and
20
20
 
21
21
  NEKOWORK intentionally keeps the catalog selective. Every agent, skill, hook, profile, module, and pack must preserve the verification loop.
22
22
 
23
- **Public alpha evidence:** 7 packs · 9 profiles · 36 components · 5 harness targets · 6 case-study flows · 245 tests · 0 moderate+ npm audit issues
23
+ **Public alpha evidence:** 7 packs / 9 profiles / 36 components / 5 harness targets / 6 case-study flows / 245 tests / 0 moderate+ npm audit issues / fresh `npx @alpha` smoke
24
24
 
25
25
  NEKOWORK does not automatically commit, push, publish, deploy, or apply diffs. `apply` is explicit and requires verified ship-ready evidence.
26
26
 
27
+ **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)
28
+
29
+ ![NEKOWORK one-minute terminal demo](docs/assets/demo-terminal.svg)
30
+
27
31
  ## Example Report
28
32
 
29
33
  `report` is the main trust surface. It turns session evidence into a readable `REPORT.md`:
@@ -70,11 +74,11 @@ NEKOWORK is for teams that want AI-assisted development without making the agent
70
74
 
71
75
  ## Status
72
76
 
73
- - Current repository version: `0.1.0-alpha.1` alpha candidate
77
+ - Current repository version: `0.1.0-alpha.2`
74
78
  - Current package name: `@ps-neko/nekowork`
75
- - npm publishing: `@ps-neko/nekowork@alpha` is currently `0.1.0-alpha.0`; `0.1.0-alpha.1` publish is prepared and awaiting owner OTP/web auth
79
+ - Current npm alpha: `@ps-neko/nekowork@0.1.0-alpha.2`
76
80
  - Supported install path today: npm alpha, clone, submodule, or local repository integration
77
- - Dist-tag note: `alpha` is published; `latest` also points at the first alpha because it is the only published version
81
+ - Dist-tag note: use `@alpha` until a stable release; `latest` still points at the first alpha line
78
82
  - Default mode: mock providers, no API keys, no provider CLI calls
79
83
 
80
84
  Current local verification:
@@ -83,6 +87,7 @@ Current local verification:
83
87
  - `npm test`: 245 tests pass
84
88
  - `npm audit --audit-level=moderate`: 0 vulnerabilities
85
89
  - `npm pack --dry-run --json`: pass
90
+ - `npx -y @ps-neko/nekowork@alpha doctor --quick`: pass with warnings only
86
91
 
87
92
  ## Case-study Evidence
88
93
 
@@ -333,7 +338,7 @@ npm run security:hardening
333
338
  npm pack --dry-run --json
334
339
  ```
335
340
 
336
- `npm pack --dry-run --json` currently produces a package named like `ps-neko-nekowork-0.1.0-alpha.1.tgz`. It does not publish.
341
+ `npm pack --dry-run --json` currently produces a package named like `ps-neko-nekowork-0.1.0-alpha.2.tgz`. It does not publish.
337
342
 
338
343
  ## Documentation
339
344
 
@@ -341,6 +346,7 @@ npm pack --dry-run --json
341
346
  - [docs/WHY-NEKOWORK.md](docs/WHY-NEKOWORK.md) - comparison and product positioning
342
347
  - [docs/CATALOG-PACKS.md](docs/CATALOG-PACKS.md) - curated catalog, official packs, and case-study evidence
343
348
  - [docs/PUBLISH-ALPHA.md](docs/PUBLISH-ALPHA.md) - public npm alpha release plan
349
+ - [docs/ROADMAP.md](docs/ROADMAP.md) - small alpha roadmap and non-goals
344
350
  - [docs/INTERNAL-PROVIDER.md](docs/INTERNAL-PROVIDER.md) - private command adapter protocol
345
351
  - [docs/DEMO.md](docs/DEMO.md) - sample command output and generated files
346
352
  - [docs/DEMO-REPORT.md](docs/DEMO-REPORT.md) - readable session report UX
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.1
4
+ version: 0.1.0-alpha.2
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
@@ -202,8 +202,8 @@ Builders project the catalog into tool-specific files:
202
202
 
203
203
  ## Release State
204
204
 
205
- The current release line is `0.1.0-alpha.1`:
205
+ The current release line is `0.1.0-alpha.2`:
206
206
 
207
207
  - Repository and GitHub tarball release are available.
208
208
  - Public npm alpha is published as `@ps-neko/nekowork@alpha`.
209
- - Clone, submodule, and local checkout integration remain the supported install paths until the package is published.
209
+ - Clone, submodule, and local checkout integration remain supported for repository-pinned workflows.
package/docs/AUDIT.md CHANGED
@@ -1,23 +1,24 @@
1
1
  # Audit
2
2
 
3
- Status date: 2026-05-07
3
+ Status date: 2026-05-08
4
4
 
5
- This audit summarizes the current NEKOWORK state after preparing the `0.1.0-alpha.1` alpha candidate. It replaces the older week-by-week scratch audit, which contained stale planning notes and encoding damage.
5
+ This audit summarizes the current NEKOWORK state after publishing the `0.1.0-alpha.2` public alpha. It replaces the older week-by-week scratch audit, which contained stale planning notes and encoding damage.
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.1`, `agent.yaml` uses `name: nekowork`, `runtime_name: harness` |
12
- | npm publish | WARN | `@ps-neko/nekowork@0.1.0-alpha.0` is published; `0.1.0-alpha.1` publish is prepared but requires owner OTP/web auth |
11
+ | Package metadata | OK | `@ps-neko/nekowork@0.1.0-alpha.2`, `agent.yaml` uses `name: nekowork`, `runtime_name: harness` |
12
+ | npm publish | OK | `@ps-neko/nekowork@alpha` points at `0.1.0-alpha.2` |
13
13
  | Source install | OK | Clone, local checkout, and submodule workflows are documented |
14
- | Public npm alpha | OK | `docs/PUBLISH-ALPHA.md` records the first alpha publish and the pending `0.1.0-alpha.1` publish attempt |
14
+ | Public npm alpha | OK | `docs/PUBLISH-ALPHA.md` records the first alpha publish and the `0.1.0-alpha.2` alpha update |
15
15
  | CLI doctor | OK | `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 doctor --quick --json` from a disposable directory |
21
22
  | Report UX | OK | `report` writes inspect-only `REPORT.md` and `report-summary.json` from session evidence |
22
23
  | External demo | OK | `npm run demo:external` verifies a disposable target project flow |
23
24
  | Third-party case studies | OK | `docs/case-studies/` records real public repository runs for npm package, auth boundary, and Python protocol targets |
@@ -29,7 +30,7 @@ This audit summarizes the current NEKOWORK state after preparing the `0.1.0-alph
29
30
  | Persistent wakeup | OK | `wait` resumes supported active sessions and blocks on `HUMAN_GATE` |
30
31
  | Generated docs | OK | CODEMAP output is stable ASCII and reproducible |
31
32
  | Tests | OK | Unit, integration, and e2e suites pass locally and in CI |
32
- | Release | WARN | `v0.1.0-alpha.0` prerelease exists; `v0.1.0-alpha.1` should be tagged after npm publish succeeds |
33
+ | Release | OK | `v0.1.0-alpha.2` is tagged and published as a GitHub prerelease |
33
34
 
34
35
  ## Verification Gates
35
36
 
@@ -62,8 +63,9 @@ Current local result for this working tree:
62
63
  - `npm audit --audit-level=moderate`: 0 vulnerabilities
63
64
  - `npm pack --dry-run --json`: pass
64
65
  - `npm publish --dry-run --access public --tag alpha`: pass
65
- - `npm publish --access public --tag alpha`: `0.1.0-alpha.1` blocked by npm `EOTP` pending owner OTP/web auth
66
- - `npx -y @ps-neko/nekowork@alpha doctor --quick`: previously passed for `0.1.0-alpha.0` with WARN summary from Gemini auth not checked
66
+ - `npm publish --access public --tag alpha`: `0.1.0-alpha.2` published
67
+ - `npm view @ps-neko/nekowork dist-tags version versions --json`: `alpha` points at `0.1.0-alpha.2`; `latest` remains `0.1.0-alpha.0`
68
+ - `npx -y @ps-neko/nekowork@alpha doctor --quick`: passed for `0.1.0-alpha.2` with WARN summary from non-git project root and Gemini auth not checked
67
69
 
68
70
  ## Completed Work
69
71
 
@@ -91,14 +93,13 @@ Current local result for this working tree:
91
93
  - Official packs expose curated install shapes without creating a second safety model.
92
94
  - Checked-in example fixtures now cover financial UI, CI hardening, and quality lifecycle evidence flows.
93
95
  - Third-party case studies record NEKOWORK runs against `sindresorhus/is-plain-obj`, `jshttp/basic-auth`, and `python-hyper/h11`.
94
- - Public npm alpha `0.1.0-alpha.0` is published and smoke-tested through `npx`; `0.1.0-alpha.1` is prepared for owner-authenticated publish.
96
+ - Public npm alpha `0.1.0-alpha.2` is published under the `alpha` dist-tag.
95
97
 
96
98
  ## Remaining Optional Work
97
99
 
98
100
  | Item | Priority | Reason |
99
101
  |---|---|---|
100
- | Publish `0.1.0-alpha.1` | High | Package is prepared and dry-run passes, but npm requires owner OTP/web auth |
101
- | Stable `latest` promotion | Medium | `alpha` is correct; npm also points `latest` at the only published version and rejected removal with `E400`, so move it to a stable version later |
102
+ | Stable `latest` promotion | Medium | `alpha` is correct; npm keeps `latest` on the first alpha line for now, so move it to a stable version later |
102
103
  | More third-party case studies | Low | Three public repo case studies exist; more frameworks can still improve adoption evidence later |
103
104
  | More skill catalog expansion | Low | Catalog expansion should stay selective to preserve progressive disclosure |
104
105
 
@@ -116,7 +117,6 @@ Current external readiness, excluding broader adoption evidence: **9.1 / 10**.
116
117
 
117
118
  Main deductions:
118
119
 
119
- - `latest` currently points at the alpha because it is the only published version; docs still recommend `@alpha` until a stable release exists.
120
- - `0.1.0-alpha.1` publish requires owner OTP/web auth.
120
+ - `latest` currently remains on the first alpha; docs still recommend `@alpha` until a stable release exists.
121
121
  - Three independent real-world external project case studies exist so far.
122
122
  - Advanced surfaces exist but are intentionally secondary to the public decomposed workflow and install flow.
package/docs/CHANGELOG.md CHANGED
@@ -4,6 +4,21 @@
4
4
 
5
5
  ## [Unreleased]
6
6
 
7
+ No unreleased changes yet.
8
+
9
+ ## [0.1.0-alpha.2] - 2026-05-08
10
+
11
+ ### Added
12
+ - Add GitHub issue templates for alpha feedback and reproducible bug reports.
13
+ - Add CI coverage for a fresh `npx @ps-neko/nekowork@alpha doctor --quick` smoke against the published alpha package.
14
+ - Add an alpha.2 roadmap focused on release smoke evidence, demo assets, and external feedback.
15
+ - Add a static terminal SVG for the one-minute README demo.
16
+
17
+ ### Changed
18
+ - Make the published alpha smoke workflow compare against the registry's current `@alpha` version instead of a hard-coded alpha string.
19
+
20
+ ## [0.1.0-alpha.1] - 2026-05-07
21
+
7
22
  ### Added
8
23
  - Add `report` to write inspect-only `REPORT.md` and `report-summary.json` from session evidence.
9
24
  - Add official catalog packs as install aliases over safety-checked profiles.
@@ -15,7 +30,7 @@
15
30
  - Add a third-party `python-hyper/h11` Python protocol case study.
16
31
  - Add an opt-in internal provider command adapter.
17
32
  - Add the focused `acceptance-coverage` quality evidence skill.
18
- - Prepare public alpha `@ps-neko/nekowork@0.1.0-alpha.1` with the updated adapter, case study, and catalog evidence; actual npm publish requires owner OTP/web auth.
33
+ - Publish public alpha `@ps-neko/nekowork@0.1.0-alpha.1` with the updated adapter, case study, catalog evidence, report sample, and demo transcript.
19
34
  - Add `npm run demo:external` to create a disposable target project and verify repository-based porting end to end.
20
35
  - Add `docs/EXAMPLE-PROJECT.md` and e2e coverage for the external project demo.
21
36
  - Add product principles and core invariants for the Claude work -> Codex verification -> Human Gate runtime.
package/docs/DEMO.md CHANGED
@@ -25,6 +25,8 @@ Demo completed: verdict=approve_with_fixes, ship_ready=false, applied=false
25
25
 
26
26
  This transcript is the README-friendly demo path. It uses mock providers, so it is safe to run on a fresh checkout without Claude, Codex, Gemini, or API keys.
27
27
 
28
+ ![NEKOWORK one-minute terminal demo](assets/demo-terminal.svg)
29
+
28
30
  ```text
29
31
  $ npx -y @ps-neko/nekowork@alpha doctor --quick
30
32
  NEKOWORK doctor
@@ -141,7 +143,7 @@ project root : C:\path\to\harness
141
143
 
142
144
  STATUS CHECK MESSAGE
143
145
  PASS node Node 24.x
144
- PASS package metadata @ps-neko/nekowork@0.1.0-alpha.1; public alpha publish candidate
146
+ PASS package metadata @ps-neko/nekowork@0.1.0-alpha.2; public alpha package
145
147
  PASS git worktree project root is inside a git worktree
146
148
  WARN gemini cli installed, auth status is not checked non-interactively
147
149
 
@@ -87,6 +87,6 @@ demo-target/
87
87
 
88
88
  ## What This Does Not Prove
89
89
 
90
- - Public npm installation. The package metadata is ready, but publish execution still requires npm owner auth.
90
+ - Public npm installation. This demo intentionally exercises the source-checkout path; run the npm install smoke separately for package resolution.
91
91
  - Live provider execution. Run live provider smoke checks separately after local CLI login.
92
92
  - A production rollout. Pin a release tag or submodule commit before using the tool in a shared workflow.
package/docs/PORTING.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Porting NEKOWORK Into Another Project
2
2
 
3
- NEKOWORK `0.1.0-alpha.1` is the current repository candidate. The published `@ps-neko/nekowork@alpha` package remains `0.1.0-alpha.0` until owner-authenticated npm publish completes. Use a submodule or local checkout for repository-pinned workflows and examples.
3
+ NEKOWORK `0.1.0-alpha.2` is the current repository version and the published `@ps-neko/nekowork@alpha` package. Use a submodule or local checkout for repository-pinned workflows and examples.
4
4
 
5
5
  ## Local Demo First
6
6
 
@@ -1,25 +1,40 @@
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 repository candidate is `0.1.0-alpha.1`.
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.2`.
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.1` with `private: false`. The `0.1.0-alpha.0` publish succeeded on 2026-05-07. The `0.1.0-alpha.1` publish dry-run passes, but actual publish requires owner OTP/web auth.
7
+ The repository metadata has been advanced to `0.1.0-alpha.2` 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` publish succeeded on 2026-05-08 and moved the `alpha` dist-tag forward.
8
+
9
+ The matching Git tag and GitHub prerelease are published as `v0.1.0-alpha.2`:
10
+
11
+ ```text
12
+ https://github.com/Ps-Neko/NEKOWORK/releases/tag/v0.1.0-alpha.2
13
+ ```
8
14
 
9
15
  ## Registry State
10
16
 
11
- Checked on 2026-05-07:
17
+ Checked on 2026-05-08:
12
18
 
13
19
  ```text
14
20
  npm view @ps-neko/nekowork version --json
15
21
  -> 0.1.0-alpha.0
16
22
  ```
17
23
 
24
+ The default version output follows `latest`, which is not the documented alpha install path.
25
+
26
+ The current alpha install path points at the release line:
27
+
28
+ ```text
29
+ npm view @ps-neko/nekowork@alpha version --json
30
+ -> 0.1.0-alpha.2
31
+ ```
32
+
18
33
  Dist-tags:
19
34
 
20
35
  ```text
21
36
  npm view @ps-neko/nekowork dist-tags --json
22
- -> { "alpha": "0.1.0-alpha.0", "latest": "0.1.0-alpha.0" }
37
+ -> { "alpha": "0.1.0-alpha.2", "latest": "0.1.0-alpha.0" }
23
38
  ```
24
39
 
25
40
  The publish package shape has been checked:
@@ -29,43 +44,57 @@ npm publish --dry-run --access public --tag alpha
29
44
  -> pass
30
45
  ```
31
46
 
32
- The first alpha publish succeeded, and a duplicate publish attempt is correctly blocked:
47
+ The first alpha publish succeeded, and duplicate publish attempts are correctly blocked:
33
48
 
34
49
  ```text
35
50
  npm publish --access public --tag alpha
36
51
  -> E403 previously published versions: 0.1.0-alpha.0
37
52
  ```
38
53
 
39
- The current alpha update is prepared with the same `alpha` dist-tag, but actual publish is blocked until owner OTP/web auth is completed:
54
+ The alpha update was published with the same `alpha` dist-tag:
55
+
56
+ ```text
57
+ npm publish --access public --tag alpha
58
+ -> published 0.1.0-alpha.1
59
+ ```
60
+
61
+ The second alpha update was also published with the same `alpha` dist-tag:
40
62
 
41
63
  ```text
42
64
  npm publish --access public --tag alpha
43
- -> EOTP one-time password / web authentication required
65
+ -> published 0.1.0-alpha.2
66
+ ```
67
+
68
+ After publish:
69
+
70
+ ```text
71
+ npm view @ps-neko/nekowork@0.1.0-alpha.2 version --json
72
+ -> 0.1.0-alpha.2
44
73
  ```
45
74
 
46
75
  `npx` smoke passed:
47
76
 
48
77
  ```text
49
78
  npx -y @ps-neko/nekowork@alpha doctor --quick
50
- -> WARN summary, 6 pass, 1 warn, 0 fail
79
+ -> WARN summary, 5 pass, 2 warn, 0 fail
51
80
  ```
52
81
 
53
- The registry keeps `latest` on the first alpha. Attempts to remove it after 2FA returned `E400 Bad Request`:
82
+ The registry keeps `latest` on the first alpha line. Attempts to remove it after 2FA returned `E400 Bad Request`:
54
83
 
55
84
  ```text
56
85
  npm dist-tag rm @ps-neko/nekowork latest
57
86
  -> E400 Bad Request
58
87
  ```
59
88
 
60
- Treat `latest` as an unavoidable first-alpha registry pointer for now. Do not promote it in docs as the stable path. When the first stable package is ready, publish or retag that stable version as `latest`.
89
+ Treat `latest` as an unavoidable alpha-line registry pointer for now. Do not promote it in docs as the stable path. When the first stable package is ready, publish or retag that stable version as `latest`.
61
90
 
62
91
  ## Release Shape
63
92
 
64
- Prepared first public package:
93
+ Published public alpha package:
65
94
 
66
95
  ```text
67
96
  name: @ps-neko/nekowork
68
- version: 0.1.0-alpha.1
97
+ version: 0.1.0-alpha.2
69
98
  dist-tag: alpha
70
99
  bin: harness
71
100
  ```
@@ -80,10 +109,29 @@ Before publishing, explicitly confirm:
80
109
  - npm 2FA readiness
81
110
  - package name `@ps-neko/nekowork`
82
111
  - binary name `harness`
83
- - public alpha version `0.1.0-alpha.1`
112
+ - public alpha version `0.1.0-alpha.2`
84
113
  - `private` removed or set to `false`
85
114
  - publish tag is `alpha`, not `latest`
86
115
 
116
+ ## Next Alpha Publish Checklist
117
+
118
+ Use this checklist for `0.1.0-alpha.3` or any later alpha. Do not run it until the owner explicitly approves the publish.
119
+
120
+ 1. Confirm the candidate scope in [RELEASE-READINESS.md](RELEASE-READINESS.md).
121
+ 2. Move the intended changelog entries from `Unreleased` to the new version heading.
122
+ 3. Bump `package.json` to the approved alpha version.
123
+ 4. Run the required gates below.
124
+ 5. Inspect `npm pack --dry-run --json` and confirm issue templates, docs, examples, scripts, and assets are intentional.
125
+ 6. Confirm `npm whoami` is the owner account.
126
+ 7. Publish with `npm publish --access public --tag alpha`.
127
+ 8. Verify `npm view @ps-neko/nekowork@alpha version --json` returns the new version.
128
+ 9. Smoke test from a fresh directory with `npx -y @ps-neko/nekowork@alpha doctor --quick`.
129
+ 10. Create and push `v<version>`.
130
+ 11. Create a GitHub prerelease for `v<version>`.
131
+ 12. Update release docs from candidate/pending language to published language.
132
+
133
+ Keep `latest` out of the public install path until a stable release exists.
134
+
87
135
  ## Required Gates
88
136
 
89
137
  Run:
@@ -328,13 +328,13 @@ Remove-Item Env:GOOGLE_API_KEY -ErrorAction SilentlyContinue
328
328
  The public alpha is published as `@ps-neko/nekowork@alpha`:
329
329
 
330
330
  ```bash
331
- npm i --save-dev @ps-neko/nekowork
331
+ npm i --save-dev @ps-neko/nekowork@alpha
332
332
  ```
333
333
 
334
334
  or:
335
335
 
336
336
  ```bash
337
- npm i -g @ps-neko/nekowork
337
+ npm i -g @ps-neko/nekowork@alpha
338
338
  ```
339
339
 
340
340
  For alpha pinning, prefer:
@@ -1,24 +1,47 @@
1
1
  # Release Readiness
2
2
 
3
- Status date: 2026-05-07
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 is prepared for `0.1.0-alpha.1`; npm publish requires owner OTP/web auth.
5
+ NEKOWORK / HARNESS is release-ready for local use, repository-based installation, and public npm alpha installation. The repository and npm alpha are both at `0.1.0-alpha.2`.
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.0`, published with `--tag alpha`.
10
+ - Public alpha: `0.1.0-alpha.2`, 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 release track is `0.1.0-alpha.1` prepared; npm `@alpha` remains `0.1.0-alpha.0` until owner-authenticated publish completes.
13
+ - Current release track is `0.1.0-alpha.2`; npm `@alpha` points at this version.
14
+ - GitHub prerelease: `v0.1.0-alpha.2`.
14
15
  - Required local provider auth is delegated CLI auth, not long-lived API keys.
15
16
  - Core workflow invariant is Claude work -> Codex verification -> Human Gate.
16
17
  - Risk classifier, acceptance criteria artifacts, and profile safety validation are part of the release gate.
17
18
  - Remaining optional work is stable promotion and broader adoption evidence.
18
- - Public package metadata is published as `@ps-neko/nekowork@alpha`; `0.1.0-alpha.1` dry-run passes but actual publish is blocked by npm `EOTP` pending owner auth.
19
- - Dist-tag note: `latest` also points at the first alpha because it is the only published version; `npm dist-tag rm ... latest` returned `E400`.
19
+ - Public package metadata is published as `@ps-neko/nekowork@alpha`.
20
+ - Dist-tag note: `latest` remains on the first alpha line; use `@alpha` until a stable release exists.
20
21
  - See [PUBLISH-ALPHA.md](PUBLISH-ALPHA.md) for the public alpha checklist.
21
22
 
23
+ GitHub Release:
24
+
25
+ - https://github.com/Ps-Neko/NEKOWORK/releases/tag/v0.1.0-alpha.2
26
+
27
+ ## 0.1.0-alpha.2 Release Scope
28
+
29
+ The `0.1.0-alpha.2` release scope is documentation, evidence, and feedback-loop hardening only:
30
+
31
+ - fresh `npx @ps-neko/nekowork@alpha doctor --quick --json` smoke coverage in CI
32
+ - static one-minute terminal demo SVG in README and `docs/DEMO.md`
33
+ - alpha feedback and bug report issue forms
34
+ - README evidence links for report, demo, feedback, and roadmap
35
+ - no catalog expansion unless a new surface directly strengthens verification evidence
36
+
37
+ Release exit criteria:
38
+
39
+ - required gates below pass locally
40
+ - `published-alpha-smoke` passes in GitHub Actions
41
+ - `npm pack --dry-run --json` contains only intended files
42
+ - changelog `0.1.0-alpha.2` entries match the release contents
43
+ - `latest` remains documented as non-stable; install examples continue to use `@alpha`
44
+
22
45
  ## Required Gates
23
46
 
24
47
  Run these before a release tag or public package decision:
@@ -51,8 +74,10 @@ Current local verification after the decomposed workflow expansion:
51
74
  - `npm audit --audit-level=moderate`: 0 vulnerabilities
52
75
  - `npm pack --dry-run --json`: pass
53
76
  - `npm publish --dry-run --access public --tag alpha`: pass
54
- - `npm publish --access public --tag alpha`: `0.1.0-alpha.1` blocked by npm `EOTP` pending owner OTP/web auth
55
- - `npx -y @ps-neko/nekowork@alpha doctor --quick`: previously passed for `0.1.0-alpha.0` with WARN summary from Gemini auth not checked
77
+ - `npm publish --access public --tag alpha`: `0.1.0-alpha.2` published
78
+ - `npm view @ps-neko/nekowork dist-tags version versions --json`: `alpha` points at `0.1.0-alpha.2`; `latest` remains `0.1.0-alpha.0`
79
+ - `npx -y @ps-neko/nekowork@alpha doctor --quick`: passed for `0.1.0-alpha.2` with WARN summary from non-git project root and Gemini auth not checked
80
+ - GitHub Actions `published-alpha-smoke`: validates the fresh `npx @alpha` path against the published package
56
81
 
57
82
  ## Install Smoke
58
83
 
@@ -131,11 +156,11 @@ Expected target outputs:
131
156
 
132
157
  ## Public npm Checklist
133
158
 
134
- Already completed for the first public alpha. Repeat the owner-authenticated publish step for `0.1.0-alpha.1`:
159
+ Already completed for `0.1.0-alpha.2`. Repeat this checklist for the next public alpha:
135
160
 
136
161
  1. Confirm the npm package name is still `@ps-neko/nekowork`.
137
162
  2. Confirm the `harness` binary is still intentional.
138
- 3. Confirm the public alpha version is `0.1.0-alpha.1`.
163
+ 3. Bump `package.json` to the next public alpha version only when publish is approved.
139
164
  4. Run the required gates above.
140
165
  5. Inspect `npm pack --dry-run --json` and confirm only intended files are included.
141
166
  6. Confirm npm account access and 2FA readiness with `npm whoami`.
@@ -0,0 +1,41 @@
1
+ # Roadmap
2
+
3
+ Status date: 2026-05-08
4
+
5
+ This roadmap is intentionally small. NEKOWORK should improve the evidence surface before expanding the agent catalog.
6
+
7
+ ## 0.1.0-alpha.2
8
+
9
+ Status: released.
10
+
11
+ Goal: make the published package and first-run story easier to trust from the outside.
12
+
13
+ Planned scope:
14
+
15
+ - Keep fresh `npx @ps-neko/nekowork@alpha doctor --quick` smoke coverage in CI.
16
+ - Keep the generated terminal SVG for the one-minute demo path.
17
+ - Keep README focused on evidence, report output, Human Gate, and explicit apply.
18
+ - Keep the external feedback path for alpha users to paste `doctor --quick --json` and `REPORT.md` summaries.
19
+ - Preserve the current catalog size unless a new agent, skill, hook, or pack directly strengthens verification evidence.
20
+
21
+ ## 0.1.0-alpha.3 Candidate
22
+
23
+ Goal: gather external feedback and keep the release path boring.
24
+
25
+ Candidate scope:
26
+
27
+ - Keep `@alpha` smoke evidence green across local and GitHub Actions gates.
28
+ - Add one more third-party case study only if it demonstrates a new risk class.
29
+ - Improve feedback triage docs once alpha users file real reports.
30
+ - Avoid provider/API-key-first setup changes unless they preserve delegated local auth as the default.
31
+
32
+ Non-goals:
33
+
34
+ - No stable `latest` promotion.
35
+ - No automatic commit, push, publish, deploy, or apply.
36
+ - No bulk import of external agent packs.
37
+ - No API-key-first provider setup.
38
+
39
+ ## Stable Release Track
40
+
41
+ Promote a stable release only after the alpha install path has repeated smoke evidence, external feedback, and no known moderate+ audit issues. Until then, docs should keep recommending `@alpha`.
package/docs/RUNBOOK.md CHANGED
@@ -92,7 +92,7 @@ Do not run this checklist unless public publish is explicitly approved.
92
92
  5. Confirm npm identity with `npm whoami`.
93
93
  6. Confirm account 2FA readiness.
94
94
  7. Confirm `private: false`.
95
- 8. Confirm the public alpha version, for example `0.1.0-alpha.1`.
95
+ 8. Confirm the public alpha version, for example `0.1.0-alpha.2`.
96
96
  9. Run `npm publish --access public --tag alpha`.
97
97
  10. Update README, Quickstart, Changelog, and release notes from "future npm path" to "published npm path".
98
98
 
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.1` is the current repository candidate. The published `@ps-neko/nekowork@alpha` package remains `0.1.0-alpha.0` until owner-authenticated npm publish completes. Use a source checkout, submodule, or local repository integration when you need examples, tests, or repository-pinned workflows.
5
+ NEKOWORK `0.1.0-alpha.2` is the current repository version and the published `@ps-neko/nekowork@alpha` package. 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
 
@@ -0,0 +1,41 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="960" height="610" viewBox="0 0 960 610" role="img" aria-labelledby="title desc">
2
+ <title id="title">NEKOWORK one-minute terminal demo</title>
3
+ <desc id="desc">Terminal transcript showing npx alpha doctor, quick demo, and report output.</desc>
4
+ <defs>
5
+ <linearGradient id="frame" x1="0" y1="0" x2="1" y2="1">
6
+ <stop offset="0" stop-color="#101820"/>
7
+ <stop offset="1" stop-color="#18252f"/>
8
+ </linearGradient>
9
+ <filter id="shadow" x="-10%" y="-10%" width="120%" height="130%">
10
+ <feDropShadow dx="0" dy="18" stdDeviation="18" flood-color="#091018" flood-opacity="0.28"/>
11
+ </filter>
12
+ </defs>
13
+ <rect width="960" height="610" rx="0" fill="#eef2f5"/>
14
+ <g filter="url(#shadow)">
15
+ <rect x="40" y="36" width="880" height="538" rx="8" fill="url(#frame)"/>
16
+ <rect x="40" y="36" width="880" height="42" rx="8" fill="#24313b"/>
17
+ <rect x="40" y="69" width="880" height="9" fill="#24313b"/>
18
+ <circle cx="66" cy="57" r="6" fill="#ef6a5f"/>
19
+ <circle cx="86" cy="57" r="6" fill="#f4bd4f"/>
20
+ <circle cx="106" cy="57" r="6" fill="#61c554"/>
21
+ <text x="480" y="62" text-anchor="middle" font-family="Consolas, Menlo, monospace" font-size="13" fill="#c8d2dc">NEKOWORK alpha smoke</text>
22
+ </g>
23
+ <g font-family="Consolas, Menlo, monospace" font-size="18">
24
+ <text x="72" y="114" fill="#7ee787">$ npx -y @ps-neko/nekowork@alpha doctor --quick</text>
25
+ <text x="72" y="147" fill="#d7e3ec">NEKOWORK doctor</text>
26
+ <text x="72" y="179" fill="#8fb3c8">STATUS CHECK MESSAGE</text>
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.2</text>
29
+ <text x="72" y="275" fill="#9be9a8">PASS api key env no delegated-provider API key overrides</text>
30
+ <text x="72" y="307" fill="#ffd166">WARN gemini cli auth status is not checked non-interactively</text>
31
+ <text x="72" y="339" fill="#d7e3ec">summary: WARN (5 pass, 2 warn, 0 fail)</text>
32
+
33
+ <text x="72" y="387" fill="#7ee787">$ npm run demo:quick -- --cleanup</text>
34
+ <text x="72" y="419" fill="#d7e3ec">NEKOWORK quick run demo</text>
35
+ <text x="72" y="451" fill="#9be9a8">doctor OK / run workflow OK / report OK / gate status OK</text>
36
+ <text x="72" y="483" fill="#d7e3ec">Demo completed: verdict=approve_with_fixes, ship_ready=false, applied=false</text>
37
+
38
+ <text x="72" y="531" fill="#7ee787">$ node scripts/cli.js report --session quick-demo --stdout</text>
39
+ <text x="72" y="563" fill="#d7e3ec">Status: no_ship / Human gate: clear / Evidence: work, verify, ship</text>
40
+ </g>
41
+ </svg>
@@ -1,7 +1,5 @@
1
1
  name: harness-validate
2
2
 
3
- # 매 push / PR 마다 매니페스트·카탈로그·테스트 빠른 검증. 5분 이내 완료 목표.
4
-
5
3
  on:
6
4
  push:
7
5
  pull_request:
@@ -10,18 +8,51 @@ permissions:
10
8
  contents: read
11
9
 
12
10
  jobs:
11
+ published-alpha-smoke:
12
+ runs-on: ubuntu-latest
13
+ timeout-minutes: 5
14
+ steps:
15
+ - uses: actions/setup-node@v6
16
+ with:
17
+ node-version: '22'
18
+
19
+ - name: Fresh npx alpha doctor smoke
20
+ shell: bash
21
+ run: |
22
+ set -euo pipefail
23
+ workdir="$RUNNER_TEMP/nekowork-alpha-smoke"
24
+ mkdir -p "$workdir"
25
+ cd "$workdir"
26
+ npx -y @ps-neko/nekowork@alpha doctor --quick --json > doctor.json
27
+ node <<'NODE'
28
+ const { execSync } = require('node:child_process');
29
+ const fs = require('node:fs');
30
+ const report = JSON.parse(fs.readFileSync('doctor.json', 'utf8'));
31
+ const expectedVersion = JSON.parse(execSync('npm view @ps-neko/nekowork@alpha version --json', { encoding: 'utf8' }));
32
+ const metadata = report.checks.find((check) => check.name === 'package metadata');
33
+ if (report.summary.fail !== 0) {
34
+ throw new Error(`doctor reported ${report.summary.fail} failure(s)`);
35
+ }
36
+ if (!metadata || !metadata.message.includes(`@ps-neko/nekowork@${expectedVersion}`)) {
37
+ throw new Error(`unexpected package metadata: ${metadata?.message || '<missing>'}`);
38
+ }
39
+ console.log(`published alpha smoke: ${metadata.message}`);
40
+ NODE
41
+
13
42
  validate:
14
43
  runs-on: ubuntu-latest
15
44
  timeout-minutes: 10
16
45
  steps:
17
46
  - uses: actions/checkout@v5
47
+
18
48
  - uses: actions/setup-node@v6
19
49
  with:
20
50
  node-version: '22'
21
- cache: 'npm'
51
+ cache: npm
52
+
22
53
  - run: npm ci --no-audit --no-fund
23
54
 
24
- - name: 매니페스트·카탈로그 검증
55
+ - name: Validate manifests and catalog
25
56
  run: |
26
57
  node scripts/install-plan.js --profile core --verbose
27
58
  node scripts/install-plan.js --profile developer
@@ -31,14 +62,16 @@ jobs:
31
62
  node scripts/ci/catalog.js
32
63
  node scripts/ci/check-markers.js
33
64
 
34
- - name: 단위 테스트
35
- run: |
36
- npm test
65
+ - name: Security hardening gate
66
+ run: npm run security:hardening
67
+
68
+ - name: Unit and integration tests
69
+ run: npm test
37
70
 
38
- - name: 의존성 감사
71
+ - name: Dependency audit
39
72
  run: npm audit --audit-level=moderate
40
73
 
41
- - name: 빌드 산출물
74
+ - name: Build projections
42
75
  run: |
43
76
  node scripts/build-claude.js
44
77
  node scripts/build-codex.js
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ps-neko/nekowork",
3
- "version": "0.1.0-alpha.1",
3
+ "version": "0.1.0-alpha.2",
4
4
  "description": "Local-first AI development harness for Claude Code, Codex CLI, and Gemini CLI",
5
5
  "keywords": [
6
6
  "claude",
package/scripts/doctor.js CHANGED
@@ -130,7 +130,7 @@ function checkPackageMetadata(root) {
130
130
  return pass('package metadata', `${pkg.name}@${pkg.version}; private publish disabled`);
131
131
  }
132
132
  if (pkg.private === false && isPublicAlphaVersion(pkg.version)) {
133
- return pass('package metadata', `${pkg.name}@${pkg.version}; public alpha publish candidate`);
133
+ return pass('package metadata', `${pkg.name}@${pkg.version}; public alpha package`);
134
134
  }
135
135
  return warn('package metadata', `${pkg.name}@${pkg.version}; publish guard is not explicit`);
136
136
  } catch (error) {