@uzysjung/agent-harness 26.145.0 → 26.146.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uzysjung/agent-harness",
3
- "version": "26.145.0",
3
+ "version": "26.146.0",
4
4
  "description": "Curate vetted AI-coding skills & plugins by your tech stack — install only what you need, across Claude Code, Codex, OpenCode & Antigravity",
5
5
  "type": "module",
6
6
  "publishConfig": {
@@ -120,7 +120,7 @@ a sentence here.
120
120
  ## 7. Report Evidence
121
121
 
122
122
  Report what changed, what was verified and how, what independent review found,
123
- what was not verified, and what remains.
123
+ what was not verified, what remains, and the risk that remains.
124
124
 
125
125
  Do not claim `Pass`, `Works`, or `Completed` without evidence. An unverified
126
126
  criterion is incomplete. Disclose relevant broader checks not run; their
@@ -154,4 +154,4 @@ the condition on every line.
154
154
  show the filled-in brief so the user can carry it straight into a prompt,
155
155
  marking which values were assumed.
156
156
  - `model-orchestration`, where installed — when work is delegated, it decides
157
- which model and which effort level each lane gets.
157
+ which lane takes the work and how that lane is run.
@@ -1,7 +1,7 @@
1
1
  # Change Boundaries
2
2
 
3
- - 합의된 범위를 벗어나는 변경은 **인간 결정을 받는다.** 그 범위란 완료 기준의 Pass/Fail · 다른 단계의 입출력 · 명시된 Non-Goals · 수정 금지로 표시된 영역이다. 하나라도 건드리면 제안하고 기다린다.
4
- - 현재 단계 안에 국한된 변경은 제안 후 승인을 받고, 이미 합의된 내용의 구체화는 즉시 반영하되 기록을 남긴다.
5
- - 안정적으로 보이는 영역도 손대기 전에 묻는다 — "이 부분도 수정 범위입니까?"
6
- - 스펙에 없던 결정 중 **아키텍처 · 외부 의존성 · 데이터 모델 · 보안 정책 · breaking API** 는 결정 기록으로 남긴다. 한 함수의 구현 디테일, 임시 워크어라운드, 명백한 버그 fix 는 대상이 아니다.
7
- - 결정을 바꿀 때는 **이전 기록의 상태도 함께** 갱신한다. 한쪽만 고치면 어느 것이 현행인지 알 수 없다.
3
+ - **합의된 범위와 완료 기준 안에서는 자율적으로 수행한다.**
4
+ - 완료 기준의 Pass/Fail · 다른 단계의 입출력 · 명시된 Non-Goals · 수정 금지 영역을 바꿔야 한다면 **임의로 바꾸지 않고 인간 결정을 받는다.** 보류하는 것은 그 경계뿐이고, 범위 안에서 할 수 있는 일은 계속한다.
5
+ - 이미 합의된 내용의 구체화는 즉시 반영하되 **기록을 남긴다.** 기존 결정이나 요구사항의 **의미**를 바꾸는 것은 먼저 합의한다.
6
+ - 스펙에 없던 결정 중 **아키텍처 · 외부 의존성 · 데이터 모델 · 보안 정책 · breaking API** 처럼 이후 작업에 계속 영향을 주는 것은 결정 기록으로 남긴다. 한 함수의 구현 디테일, 임시 워크어라운드, 명백한 버그 fix 는 대상이 아니다.
7
+ - 결정을 바꿀 때는 **이전 기록의 상태와 그것을 참조하는 문서도 함께** 갱신한다. 한쪽만 고치면 어느 것이 현행인지 알 수 없다.
@@ -1,7 +1,7 @@
1
1
  # Documentation Boundaries
2
2
 
3
- - **한 사실은 한 곳에.** 같은 내용을 두 문서에 쓰지 않는다 — 한 곳에 두고 나머지는 가리킨다.
4
- - **머지는 코드와 추적의 동기화까지다.** 빠뜨리면 다음 세션이 완료분을 중복 작업하거나 미완분을 완료로 오인해 건너뛴다.
3
+ - **한 사실의 기준 문서는 하나다.** 다른 문서는 같은 내용을 독립적으로 복제하지 말고 가리키거나 필요한 만큼만 요약한다.
4
+ - 그 변경을 추적하는 문서가 있으면 **머지까지** 코드와 추적 상태를 함께 동기화한다. 한쪽만 바꾸면 다음 세션이 완료분을 중복 작업하거나 미완분을 완료로 오인해 건너뛴다.
5
5
  - 착수 시점의 미완 표기는 "안 된 것"이 아니라 **"모르는 것"**이다. 코드를 먼저 확인하고 상태를 정정한다 — 심볼이 있다는 것만으로 완료로 읽지 않는다. 못 찾았다고 착수를 보류하지는 않는다.
6
6
 
7
7
  **이 하네스가 설치해 둔 검사기**가 있다(스스로는 존재를 알 수 없으므로 여기 적는다): `bash .uzys-agent-harness/spec-drift-check.sh` 가 추적 문서의 미완 잔존·상태 불일치를 검출한다 — 인자 없이 부르면 경고(exit 1), `ship` 인자면 차단(exit 2). **탐지 경로 밖의 문서 레이아웃은 못 본다** — 그 경우 이 룰은 프로즈로만 작동한다.
@@ -1,14 +1,14 @@
1
1
  # Git Safety
2
2
 
3
- - 되돌리기 어려운 조작은 **명시적 승인 없이 하지 않는다**: force push · history rewrite · 기본 브랜치 직접 push · 검증 우회 플래그 · 추적 중인 변경을 버리는 reset · PR 머지.
4
- - 시크릿을 커밋하지 않는다. 새 파일을 통째로 스테이징하면(`git add -A`) 아직 ignore 되지 않은 `.env` 가 그대로 담긴다.
5
- - git config 는 사용자 것이다. 수정하지 않는다.
6
- - 로컬 게이트 통과는 기본 브랜치 반영의 증거가 아니다 — 둘을 분리해 보고한다.
3
+ - **공유 이력을 바꾸거나 · 작업물을 버리거나 · 보호장치를 우회하는 조작은 사용자가 명시적으로 요청했을 때만** 한다: force push · 공개된 이력 다시 쓰기 · 기본 브랜치 직접 push · 커밋하지 않은 변경 폐기 · 검증 우회 플래그 · PR 머지.
4
+ - **시크릿과 credentials 는 커밋하지 않는다.** 그리고 **의도한 파일만 stage 한다** — 통째로 담기 전에 추적되지 않은 파일을 먼저 본다.
5
+ - 사용자 전역 Git configuration 은 바꾸지 않는다. 저장소 로컬 설정과 remote 는 작업에 필요할 때만 바꾼다.
6
+ - **local 검증 · commit · push · PR · 기본 브랜치 반영은 서로를 추론하지 않는다.**
7
7
 
8
8
  ## Session Cleanup
9
9
 
10
- 세션을 끝내기 전에 이 세션이 띄운 백그라운드 프로세스·서브에이전트를 닫는다. 세션이 끝나도 프로세스는 안 끝난다 — 부모만 죽고 `ppid=1` 로 재부모화돼 메모리·포트·파일락을 계속 쥔다. **다른 프로젝트의 프로세스는 건드리지 않는다.**
10
+ 세션이 띄운 백그라운드 프로세스·서브에이전트는 끝나기 전에 닫는다 — 세션 종료가 그것들을 반드시 끝내주지는 않는다. 부모만 죽고 `ppid=1` 로 재부모화돼 메모리·포트·파일락을 계속 쥐는 경우가 있다. **다른 프로젝트의 프로세스는 건드리지 않는다.**
11
11
 
12
- ## 강제되지 않는다는 사실
12
+ ## Enforcement
13
13
 
14
- **위 줄들은 프로즈다 — 아무도 안 막는다.** 되돌릴 수 없는 것은 로컬 훅이 아니라 **호스트 규칙**으로 건다(우회도 재설치도 없다). **이 하네스가 설치해 둔 도구**를 쓴다(스스로는 존재를 알 수 없으므로 여기 적는다): `bash .uzys-agent-harness/protect-branch.sh --dry-run` 으로 먼저 보고 적용한다.
14
+ 되돌릴 수 없는 것은 로컬 훅이 아니라 **호스트 규칙**으로 건다(우회도 재설치도 없다). **이 하네스가 설치해 둔 도구**로 점검한다(스스로는 존재를 알 수 없으므로 여기 적는다): `bash .uzys-agent-harness/protect-branch.sh --dry-run`.
@@ -2,9 +2,8 @@
2
2
 
3
3
  무엇으로 검증할지는 이 저장소가 정한다. 아래는 그 선택과 무관하게 지켜야 하는 것들이다.
4
4
 
5
- - **머지는 그 변경을 만들지 않은 레인의 리뷰를 거친다.** 만든 쪽이 자기 산출물을 판정하면 그건 검증이 아니다. 배포 직전이 아니라 **머지 시점**이다 — 리뷰 없이 쌓인 변경은 배포 때 형식만 채워진다.
6
- - 배포 전에 이 저장소가 정의한 검증을 **실행하고 결과를 확인한다.** 실행하지 않은 검사는 통과가 아니다.
7
- - 게시·배포는 그 검증 통과에 **의존하도록 배선한다.** 검증과 별개 경로로 게시되면 red 를 통과해 나간다.
5
+ - 배포 전에 이 저장소가 정의한 검증을 **실행하고 결과를 확인한다.**
6
+ - **게시·배포 경로가 그 검증 통과에 의존해야 한다.** 별개 경로면 아무도 우회하려 하지 않았는데 red 가 그대로 나간다. 의존하지 않는 상태를 발견하면 경로를 고치기 전에 먼저 보고한다.
8
7
  - 변경분이 사용자에게 닿는 경로가 여럿이면 **경로마다 실행 증거를 따로** 확보한다. 한 경로의 증거를 다른 경로에 전용하지 않는다.
9
- - 의존성과 코드의 **알려진 취약점을 확인하고 나간다.** 무엇으로 확인할지는 이 저장소가 정한다.
8
+ - 이 저장소가 정의한 **보안·취약점 검사도** 실행하고 결과를 확인한다 — 테스트만 돌리고 나가는 것이 기본값이 되기 쉽다.
10
9
  - 추적 문서가 코드와 어긋난 채로 나가지 않게 한다. **이 하네스가 설치해 둔 검사기**를 쓴다(스스로는 존재를 알 수 없으므로 여기 적는다): `bash .uzys-agent-harness/spec-drift-check.sh ship` — **exit 2 면 차단**(동기화 후 재시도), 1 은 경고, 0 이 통과. 백로그는 `ship-gate:ignore` 구간으로 감싸 면제한다(표식이 안 닫히면 면제를 통째로 무시한다).
@@ -1,20 +1,17 @@
1
1
  # Testing
2
2
 
3
- - Verify every change with evidence proportional to its requirements and risk. Select the test level
4
- and technique that best exposes plausible failures.
3
+ - Select the test level and technique that best exposes plausible failures.
5
4
  - Test observable behavior, contracts, and invariants rather than reproducing implementation details.
6
5
  - For high-risk changes—including authentication, authorization, payments, personal data, data
7
- integrity, concurrency, and migrations—test normal, boundary, failure, misuse, and recovery paths.
8
- - Keep tests isolated, repeatable, and deterministic. Control time, randomness, shared state,
9
- execution order, network, and external services.
10
- - Use production-compatible dependencies when behavioral differences could affect validity.
11
- Otherwise, use explicit test doubles or contract tests.
6
+ integrity, concurrency, and migrations—cover normal, boundary, failure, misuse, and recovery
7
+ paths, omitting one only when failure on it is not plausible.
8
+ - Keep tests repeatable and deterministic. Control the sources of nondeterminism: time, randomness,
9
+ shared state, execution order, network, and external services.
10
+ - Use production-compatible dependencies when a substitute's behavioral differences could affect
11
+ the result. Otherwise, use explicit test doubles or contract tests.
12
12
  - Never use unauthorized production personal data, credentials, or secrets in tests.
13
- - Run the relevant checks and inspect their results. Never report a check as passed unless it was
14
- executed and observed.
15
13
  - Do not hide failures by weakening assertions, deleting or skipping tests, excluding coverage, or
16
14
  adding indiscriminate retries. Change tests only when the intended behavior has changed.
17
15
  - Treat coverage as a signal for untested risk, not as a quality target. Follow the
18
16
  repository-defined CI gates.
19
17
  - If the affected scope cannot be established confidently, broaden the validation.
20
- - Report what was tested, what was not tested, and the remaining risk.