@holmes-lab/holmes-kit 0.12.2 → 0.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +80 -0
- package/README.md +12 -3
- package/dist/.build-id +1 -1
- package/dist/holmes/cli/approve-context.js +10 -10
- package/dist/holmes/cli/approve-ref.js +5 -5
- package/dist/holmes/cli/approve-watch.d.ts +1 -1
- package/dist/holmes/cli/approve-watch.js +6 -6
- package/dist/holmes/cli/approve.d.ts +3 -3
- package/dist/holmes/cli/approve.js +57 -57
- package/dist/holmes/cli/autonomy.d.ts +22 -0
- package/dist/holmes/cli/autonomy.js +145 -0
- package/dist/holmes/cli/colophon.d.ts +6 -0
- package/dist/holmes/cli/colophon.js +24 -0
- package/dist/holmes/cli/doctor.d.ts +2 -2
- package/dist/holmes/cli/doctor.js +104 -87
- package/dist/holmes/cli/index.js +122 -63
- package/dist/holmes/cli/init.d.ts +2 -0
- package/dist/holmes/cli/init.js +31 -19
- package/dist/holmes/cli/interactive-prompt.d.ts +8 -0
- package/dist/holmes/cli/interactive-prompt.js +23 -0
- package/dist/holmes/cli/semantic-key.js +9 -9
- package/dist/holmes/cli/settings-merge.d.ts +2 -1
- package/dist/holmes/cli/settings-merge.js +15 -3
- package/dist/holmes/cli/upgrade.js +7 -7
- package/dist/holmes/cpg/proposed-content.js +2 -2
- package/dist/holmes/governance/autonomy.d.ts +9 -2
- package/dist/holmes/governance/autonomy.js +166 -5
- package/dist/holmes/guardrail/blind-spots.js +15 -15
- package/dist/holmes/hooks/pre-tool-use.js +111 -42
- package/dist/holmes/hooks/session-start.js +17 -0
- package/dist/holmes/hooks/stop.d.ts +1 -1
- package/dist/holmes/hooks/stop.js +12 -12
- package/dist/holmes/mcp/handlers.js +14 -1
- package/dist/holmes/semantic/credentials.js +1 -1
- package/dist/holmes/spec/id-collision.js +2 -2
- package/package.json +2 -2
- package/playbooks/publish/PLAYBOOK.md +47 -35
- package/playbooks/remediation/PLAYBOOK.md +1 -1
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"//": "@implements A-SPEC-209",
|
|
3
3
|
"name": "@holmes-lab/holmes-kit",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.13.0",
|
|
5
5
|
"description": "Holmes-Kit — deterministic Agentic Software Engineering (ASE) harness with causal traceability (spec chain + D-CPG + RTM + phase guardrail)",
|
|
6
6
|
"main": "dist/holmes/mcp/server.js",
|
|
7
7
|
"types": "dist/holmes/mcp/server.d.ts",
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"mcp",
|
|
43
43
|
"guardrail"
|
|
44
44
|
],
|
|
45
|
-
"author": "SungNam Park <
|
|
45
|
+
"author": "SungNam Park <sungnam.park.korea@gmail.com>",
|
|
46
46
|
"license": "MIT",
|
|
47
47
|
"devDependencies": {
|
|
48
48
|
"@types/better-sqlite3": "^7.6.13",
|
|
@@ -2,72 +2,85 @@
|
|
|
2
2
|
name: holmes-publish
|
|
3
3
|
description: >-
|
|
4
4
|
Use when asked to publish holmes-kit to NPM registry or run release workflow governed by
|
|
5
|
-
"HOLMES_APPROVAL", "hard-hitl", or "A-SPEC-133"
|
|
6
|
-
|
|
5
|
+
"HOLMES_APPROVAL", "hard-hitl", or "A-SPEC-133" — the repository owner authorizes an
|
|
6
|
+
irreversible / high-risk release Human-In-The-Loop, while a low-risk release may self-publish
|
|
7
|
+
under autonomous mode.
|
|
7
8
|
---
|
|
8
9
|
|
|
9
|
-
# holmes-publish — NPM
|
|
10
|
+
# holmes-publish — NPM 배포 및 릴리스 자율/HITL 절차
|
|
10
11
|
|
|
11
|
-
이 플레이북은 `@holmes-lab/holmes-kit`
|
|
12
|
-
|
|
12
|
+
이 플레이북은 `@holmes-lab/holmes-kit` 를 NPM Registry에 안전하게 배포하는 **규정 절차**를 정의합니다.
|
|
13
|
+
npm publish 는 **비가역·외부노출**이라 기본은 HITL(사람 승인)이지만, **저위험 릴리스**(문서·테스트·양성
|
|
14
|
+
내부 변경의 patch/minor)는 **자율 모드에서 자율 처리**할 수 있고, **비가역/high-risk**(게이트·보안·아키텍처
|
|
15
|
+
변경, major 범프, 상위 스펙)는 반드시 **오너의 대역외 HITL 승인**을 거칩니다. 판정은 결정론적 분류기
|
|
16
|
+
`releaseAutonomy`(A-SPEC-555.1, `governance/autonomy.ts`)가 담당합니다.
|
|
13
17
|
|
|
14
18
|
---
|
|
15
19
|
|
|
16
|
-
## 배포
|
|
20
|
+
## 배포 절차 (Release Workflow)
|
|
17
21
|
|
|
18
22
|
### 1단계: 사전 품질 감사 (Pre-flight Quality Audit)
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
3. `npm run build`
|
|
23
|
+
1. `npm run typecheck` (타입 오류 0건)
|
|
24
|
+
2. 전체 스위트 green — `mcp__holmes-kit__test_run`(HEAD~1..HEAD) 또는 `npx jest`. 부하가 높으면 대시보드
|
|
25
|
+
canary(A-SPEC-435)가 타임아웃할 수 있으니 부하를 낮춘 뒤 재실행한다(코드가 아니라 부하 문제).
|
|
26
|
+
3. `npm run build` (`dist/` 최신 + `.build-id`).
|
|
23
27
|
|
|
24
28
|
> [!IMPORTANT]
|
|
25
|
-
>
|
|
29
|
+
> 타입 오류나 실제(부하-무관) 테스트 실패가 하나라도 있으면 즉시 배포 중단(Abort).
|
|
26
30
|
|
|
27
31
|
---
|
|
28
32
|
|
|
29
33
|
### 2단계: 패키지 타르볼 시뮬레이션 및 검수 (Tarball Inspection)
|
|
30
|
-
|
|
31
|
-
- `
|
|
32
|
-
- 출력된 타르볼 패키지 목록 검수:
|
|
33
|
-
- `package.json` (`@holmes-lab/holmes-kit` 명칭 및 버전 확인)
|
|
34
|
-
- `bin/` (`holmes-kit.js`, `holmes-mcp.js`, `holmes-hook-antigravity.js` 등)
|
|
35
|
-
- `dist/` (전체 컴파일 산출물)
|
|
36
|
-
- `playbooks/` (`adopt`, `author-slice`, `promote-slice`, `publish`)
|
|
37
|
-
- `CHANGELOG.md`, `README.md`
|
|
34
|
+
- `npm publish --dry-run`
|
|
35
|
+
- 타르볼 구성 검수: `package.json`(명칭·버전), `bin/`, `dist/`, `playbooks/`, `CHANGELOG.md`, `README.md`.
|
|
38
36
|
|
|
39
37
|
---
|
|
40
38
|
|
|
41
|
-
###
|
|
42
|
-
|
|
39
|
+
### 2.5단계: 문서 정합성 게이트 (Docs Currency Gate) — 배포는 정직한 고지다
|
|
40
|
+
타르볼에 문서가 **포함**됐는지가 아니라 **최신인지**를 diff로 검사한다(이 단계 없이 폐기된 동작이 README에
|
|
41
|
+
현재형으로 남는 사고가 실제로 있었다):
|
|
42
|
+
1. 직전 릴리스 태그 이후 승인된 스펙 열거: `git log <last-tag>..HEAD --name-only -- .ax/specs/03_a-spec/`.
|
|
43
|
+
2. 각 A-SPEC 중 **사용자-대면**(CLI 명령/플래그, 동작 변경, env 스위치, 게이트 행동)인 것마다:
|
|
44
|
+
- `CHANGELOG.md` 의 이번 버전 항목이 그 변화를 기술하는가.
|
|
45
|
+
- `README.md` 의 기능 목록/CLI 치트시트가 새 명령·플래그를 담고, **폐기된 동작을 현재형으로 서술하지
|
|
46
|
+
않는가**(바뀐 동작의 옛 문구를 `grep` 으로 점검).
|
|
47
|
+
> [!CAUTION]
|
|
48
|
+
> 사용자-대면 변화가 CHANGELOG/README 에 반영되지 않았으면 배포 중단 — 문서 drift 는 거짓 주장이다.
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
### 3단계: 릴리스 자율 판정 (Release Autonomy) — auto 또는 HITL
|
|
53
|
+
`releaseAutonomy(specsSinceTag, versionBump, process.env, root, now)` 로 이번 릴리스를 분류한다
|
|
54
|
+
(`versionBumpKind(현재버전, 대상버전)` 으로 범프 종류 산출):
|
|
55
|
+
- **`'auto'`** (자율 ON + 모든 스펙 auto 등급 + patch/minor): 사람 없이 4단계로 진행하되, 원장에 배포
|
|
56
|
+
근거를 남긴다(무엇을·왜·어느 버전). 저위험 릴리스의 자율 처리.
|
|
57
|
+
- **`'hitl'`** (자율 OFF · major 범프 · 게이트/보안/아키텍처 스펙 · 상위 REQ/H/C · 비가역 breaking_change):
|
|
58
|
+
**오너에게 배포 요약을 보고하고 명시적 대역외 승인**을 받은 뒤에만 진행한다. AI Agent 는 독단적으로
|
|
59
|
+
`npm publish` 하지 않는다. 승인은 채팅의 명시적 확인 또는 `HOLMES_APPROVAL` 로 전달된다.
|
|
43
60
|
|
|
44
|
-
**[보고 양식]**:
|
|
45
|
-
|
|
46
|
-
- **대상 버전**: `vX.Y.Z`
|
|
47
|
-
- **테스트 결과**: PASS (100%)
|
|
48
|
-
- **타르볼 파일 수 및 용량**: N개 / XXX kB
|
|
61
|
+
**[HITL 보고 양식]**: 패키지 `@holmes-lab/holmes-kit` · 대상 `vX.Y.Z`(범프: major/minor/patch) ·
|
|
62
|
+
테스트 PASS · 타르볼 N개/XXX kB · 분류 사유(어느 스펙이 hitl 인지).
|
|
49
63
|
|
|
50
64
|
> [!CAUTION]
|
|
51
|
-
>
|
|
52
|
-
> 승인은 채팅을 통한 명시적 확인 또는 `HOLMES_APPROVAL` 환경변수를 통해 전달됩니다.
|
|
65
|
+
> hitl 판정에서 오너 승인이 없으면 즉시 중단. 자율(auto) 판정이라도 2.5단계 문서 게이트를 통과해야 한다.
|
|
53
66
|
|
|
54
67
|
---
|
|
55
68
|
|
|
56
69
|
### 4단계: NPM 게시 실행 (NPM Publishing Execution)
|
|
57
|
-
승인이 완료된 경우에만 실제 게시 명령을 수행합니다:
|
|
58
70
|
```bash
|
|
59
71
|
npm publish --access public
|
|
60
72
|
```
|
|
61
|
-
- 2FA / Web OTP
|
|
73
|
+
- 2FA / Web OTP 가 필요하면 인증 URL 을 사용자에게 제공하고 대기.
|
|
74
|
+
- verify-release 가 전체 `npm test` 를 돌려 플레이크할 수 있으므로, 1단계를 이미 green 으로 통과했다면
|
|
75
|
+
`npm publish --ignore-scripts` + 수동 무결성 확인(트리 클린·build-id==HEAD·CHANGELOG 항목)로 우회할 수 있다.
|
|
62
76
|
|
|
63
77
|
---
|
|
64
78
|
|
|
65
79
|
### 5단계: 배포 후 검증 및 Git 태깅 (Post-Release Verification)
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
2. Git 커밋 및 태그 생성:
|
|
80
|
+
1. NPM 반영 확인: `npm view @holmes-lab/holmes-kit version` (레지스트리 read-cache 지연 시 레지스트리 JSON 직접 조회).
|
|
81
|
+
2. 커밋 및 태그:
|
|
69
82
|
```bash
|
|
70
|
-
git add package.json
|
|
83
|
+
git add package.json CHANGELOG.md README.md
|
|
71
84
|
git commit -m "chore: release vX.Y.Z"
|
|
72
85
|
git tag -a vX.Y.Z -m "vX.Y.Z Release"
|
|
73
86
|
```
|
|
@@ -75,7 +88,6 @@ npm publish --access public
|
|
|
75
88
|
---
|
|
76
89
|
|
|
77
90
|
## 플레이북 트리거 조건
|
|
78
|
-
다음 요청 시 자동 트리거됩니다:
|
|
79
91
|
- "npm publish"
|
|
80
92
|
- "release to npm"
|
|
81
93
|
- "HOLMES_APPROVAL"
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: holmes-remediation
|
|
3
3
|
description: >-
|
|
4
|
-
Automatically triggered when Holmes-Kit pre-tool-use hook gate denies a tool call with "
|
|
4
|
+
Automatically triggered when Holmes-Kit pre-tool-use hook gate denies a tool call with "Target specification (...) is not approved" or missing code anchor. Guides the agent to execute 1-call spec_remediate or 3-step recovery workflow.
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Holmes-Kit Remediation Playbook (Self-Healing Recovery)
|