@kodevibe/harness 0.11.0 → 0.11.1

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/README.ko.md CHANGED
@@ -64,6 +64,56 @@ npx @kodevibe/harness init --ide antigravity
64
64
 
65
65
  ---
66
66
 
67
+ ## 기존 설치 업그레이드
68
+
69
+ 이미 kode:harness가 설치된 프로젝트에서 `init`을 다시 실행하면 project state와 agent memory는 보존하고 IDE 설정 파일만 최신 버전으로 갱신합니다. 기본 동작은 데이터 손실 없이 진행되며, 덮어쓴 IDE 설정은 자동 백업됩니다.
70
+
71
+ | 범주 | 기본 동작 | 세부 내용 |
72
+ |------|----------|----------|
73
+ | **State files** | 보존 | `project-state.md`, `failure-patterns.md`, `dependency-map.md`, `features.md`, `project-brief.md` |
74
+ | **Agent memory** | 보존 | solo 모드에서는 `docs/agent-memory/`, team 모드에서는 `.harness/agent-memory/` |
75
+ | **IDE config** | 매 실행 갱신 | `.github/copilot-instructions.md`, `CLAUDE.md`, `.claude/`, `.cursor/`, `.codex/`, `.windsurf/`, `.agents/`, `AGENTS.md` |
76
+ | **백업 위치** | 자동 생성 | 기존 IDE 설정 → `.harness/init-backups/<ISO-timestamp>/...` |
77
+
78
+ ```bash
79
+ npx @kodevibe/harness init --ide <vscode|claude|cursor|codex|windsurf|antigravity> --batch
80
+ ```
81
+
82
+ `--overwrite`는 state files까지 초기화하므로, 손상된 상태 파일을 재생성해야 할 때만 사용하세요.
83
+
84
+ ---
85
+
86
+ ## 안전 제거
87
+
88
+ `init`은 `.harness/install-manifest.json`에 생성 파일, hash, IDE 대상, 모드, 백업 경로를 기록합니다. `uninstall`은 이 manifest를 사용해 kode:harness가 관리한 파일만 제거합니다.
89
+
90
+ ```bash
91
+ # 먼저 미리보기. 파일은 변경되지 않습니다.
92
+ npx @kodevibe/harness uninstall --ide claude --dry-run
93
+
94
+ # 적용. state files와 agent memory는 기본 보존됩니다.
95
+ npx @kodevibe/harness uninstall --ide claude --yes
96
+ ```
97
+
98
+ 안전 규칙:
99
+
100
+ - `docs/project-state.md`, `docs/project-brief.md`, `docs/features.md`, `docs/dependency-map.md`, `docs/failure-patterns.md`, agent memory는 기본 보존됩니다.
101
+ - 기존 `CLAUDE.md` 또는 `AGENTS.md`를 `init`이 덮어쓴 경우 `.harness/init-backups/<timestamp>/...`에서 복원합니다.
102
+ - 설치 후 수정된 managed file은 `--force` 없이는 건드리지 않고 skip합니다.
103
+ - `AGENTS.md`, `.agents/skills/*`처럼 여러 IDE가 공유하는 경로는 다른 active install이 소유 중이면 보존하거나 남은 owner의 내용으로 되돌립니다.
104
+ - 삭제/복원 전 파일은 `.harness/uninstall-backups/<timestamp>/...`에 백업됩니다.
105
+
106
+ ```bash
107
+ npx @kodevibe/harness uninstall --all --dry-run # 감지된 전체 IDE 제거 계획 확인
108
+ npx @kodevibe/harness uninstall --ide vscode --yes # 특정 IDE 표면만 제거
109
+ npx @kodevibe/harness uninstall --ide vscode --yes --purge-state
110
+ npx @kodevibe/harness uninstall --all --yes --purge-state --purge-backups
111
+ ```
112
+
113
+ `--purge-state`는 생성된 state files까지 의도적으로 삭제할 때만 사용하세요. `--purge-state --purge-backups`를 함께 쓰면 active install이 모두 제거된 뒤 `.harness/install-manifest.json`까지 삭제되어 kode:harness 흔적을 남기지 않습니다.
114
+
115
+ ---
116
+
67
117
  ## 문제: 컨텍스트 부패 (Context Rot)
68
118
 
69
119
  AI 코딩 에이전트는 매 세션 제로에서 시작합니다. 세션 3에서는 세션 1의 아키텍처 결정을 잊고, 세션 10에서는 이미 확정된 사항을 다시 논의하며 자신의 이전 작업과 모순됩니다.
@@ -101,9 +151,10 @@ kode:harness는 세 가지 메커니즘으로 해결합니다:
101
151
  | ✅ **Evidence-Gated Progress Board** | 테스트/스모크 증거가 있어야 Planned → Proof Pending → Proven으로 진행 |
102
152
  | 📒 **Proof Ledger** | review/wrap-up 출력에 명령어, 결과, 관찰 증거를 짧게 기록 |
103
153
  | 🔒 **Proof-First Enforcement** | pm/lead/reviewer/state-check가 모호한 계획, 증거 없는 완료, 실패한 테스트, 누락된 proof 기록을 막음 |
154
+ | 🗂️ **Project Docs Bridge** | 원본과 visibility 경계를 보존하며 로컬 docs hub 인덱스 생성 |
104
155
  | 📝 **상태 영속성** | LLM 세션 간 프로젝트 지식을 유지하는 5개 마크다운 파일 |
105
156
  | 🔄 **5개 파이프라인** | 🟢 신규 → 🔵 계속 → 🔴 버그 수정 → 🟡 방향 전환 → 🟣 Crew 기반 |
106
- | 🛠️ **11개 스킬** | 단계별 절차: setup, debug, breakdown, review, pivot, state-check 등 |
157
+ | 🛠️ **12개 스킬** | 단계별 절차: setup, debug, breakdown, docs-bridge, review, pivot, state-check 등 |
107
158
  | 🤖 **4개 에이전트** | 역할 기반 페르소나: pm, reviewer, lead, architect |
108
159
  | ⚠️ **실패 패턴** | 세션 간 같은 실수를 방지하는 프로젝트별 실패 기록 |
109
160
  | 📋 **Decision Log** | 결정의 이유를 기록해 LLM이 확정된 사항을 재논의하지 않도록 방지 |
@@ -116,6 +167,7 @@ kode:harness는 세 가지 메커니즘으로 해결합니다:
116
167
  ```bash
117
168
  npx @kodevibe/harness doctor # 파일 설치 상태 확인
118
169
  npx @kodevibe/harness validate # state 파일에 실제 내용 확인
170
+ npx @kodevibe/harness uninstall --dry-run --ide vscode # 안전 제거 미리보기
119
171
  ```
120
172
 
121
173
  ---
@@ -155,6 +207,7 @@ npx @kodevibe/harness validate # state 파일에 실제 내용 확인
155
207
  | **debug** | 4단계 체계적 디버깅 (증거 → 범위축소 → 수정 → 검증) |
156
208
  | **check-impact** | 공유 모듈 수정 전 영향 범위 평가 |
157
209
  | **breakdown** | 기능을 의존성 순서대로 구현 태스크로 분해 |
210
+ | **docs-bridge** | 원본 문서를 보존하면서 repository docs를 wiki/docs hub와 연결할 수 있는 로컬 인덱스 생성 |
158
211
  | **pr-review** | PR 코드 리뷰: 품질, 보안, 방향 정렬 확인 |
159
212
  | **release** | 배포 전 검증 체크리스트 (테스트, state 파일, 보안, 버전) |
160
213
 
@@ -177,6 +230,8 @@ npx @kodevibe/harness validate # state 파일에 실제 내용 확인
177
230
  | **dependency-map.md** | 영향 분석을 위한 모듈 의존성 그래프 ("어떻게"에 대한 기록) |
178
231
  | **failure-patterns.md** | 반복 실수를 방지하는 프로젝트별 실패 패턴 ("주의사항") |
179
232
 
233
+ `project-brief.md`에는 필요 시 **Project Docs Hub Index**를 함께 둘 수 있습니다. 로컬 문서를 wiki, Confluence, Obsidian vault, 사내 문서 허브에서 찾을 수 있게 연결할 때 사용합니다. tracked index에는 repository-relative source와 정제된 hub alias만 두고, PC별 resolver 정보는 ignored `.harness/docs-bridge.local.*` 파일에 둡니다.
234
+
180
235
  ---
181
236
 
182
237
  ## 작동 방식
@@ -298,6 +353,16 @@ Bootstrap이 `docs/crew/`, `docs/PM/`, `docs/Analyst/`, `docs/ARB/`에서 crew
298
353
 
299
354
  원본 crew 문서는 **절대 수정되지 않습니다**. 인덱스와 트래커만 생성됩니다.
300
355
 
356
+ ### Project Docs Bridge
357
+
358
+ 프로젝트 문서가 README, `docs/`, ADR, runbook, API spec, 기획 산출물로 흩어져 있다면 `docs-bridge`를 실행합니다:
359
+
360
+ ```bash
361
+ > "이 프로젝트 문서를 wiki/docs hub와 연결해줘"
362
+ ```
363
+
364
+ `project-brief.md`에 Project Docs Hub Index를 추가해 각 로컬 원본, 역할, 정제된 hub 대상, sync 방향, visibility, 상태, 검토일을 기록합니다. 원본은 repository에 남깁니다. 외부 hub에 요약이나 링크를 쓰는 작업은 사용자가 명시적으로 요청하고 visibility boundary를 확인한 뒤에만 진행합니다.
365
+
301
366
  ### 다른 프레임워크와의 비교
302
367
 
303
368
  | | BMAD v6.2.2 | gstack v0.15.1 | GSD v1.33.0 | **kode:harness** |
@@ -315,7 +380,7 @@ Bootstrap이 `docs/crew/`, `docs/PM/`, `docs/Analyst/`, `docs/ARB/`에서 crew
315
380
 
316
381
  ## 로드맵
317
382
 
318
- kode:harness는 현재 **v0.11.0** — Common Mode의 proof-first 동작을 강제합니다. Proof Plan은 정확한 명령/체크여야 하고, Story 완료는 증거 없이는 막히며, reviewer는 proof 실패/누락 시 멈추고, state-check는 Proof Ledger 누락을 점검합니다.
383
+ kode:harness는 현재 **v0.11.1** — manifest 기반 안전 제거를 추가해 설치 흔적을 미리보기, 보존, 복원, purge 흐름으로 관리합니다. Common Mode의 proof-first 동작도 계속 강제합니다.
319
384
 
320
385
  | 단계 | 버전 | 상태 | 초점 |
321
386
  |------|------|------|------|
@@ -329,7 +394,9 @@ kode:harness는 현재 **v0.11.0** — Common Mode의 proof-first 동작을 강
329
394
  | **Consistency & Budget** | v0.9.5 | ✅ 완료 | reviewer.md Iron Laws stale 수정, 디스패처 동기화, 경량성 예산 재교정(40K/1500/2500) 및 근거 기록 |
330
395
  | **Drift Guard & Positioning** | v0.9.7 | ✅ 완료 | `harness/`↔`.github/` drift 가드, reviewer working-proof 게이트, kode:vibe 위치 안내, IDE 선택 가이드, project-brief 예시 |
331
396
  | **Confidence Loop** | v0.10.0 | ✅ 완료 | Goal Card, Quiet Navigator, Evidence-Gated Progress Board, Proof Ledger, QA/content 회귀 테스트 |
332
- | **Proof-First Enforcement** | v0.11.0 | ✅ 현재 | Mandatory Proof Plan, lead proof blocker, reviewer proof blocker, state-check Proof Ledger coverage |
397
+ | **Proof-First Enforcement** | v0.11.0 | ✅ 완료 | Mandatory Proof Plan, lead proof blocker, reviewer proof blocker, state-check Proof Ledger coverage |
398
+ | **Uninstall Safety** | v0.11.1 | ✅ 현재 | Manifest 기반 uninstall, state 기본 보존, shared owner 복원, purge cleanup |
399
+ | **Docs Bridge** | v0.11.1 | 🧪 Experimental | Project Docs Hub Index, docs-bridge 스킬, visibility 경계를 가진 로컬 docs hub 인덱스 |
333
400
  | **Safety & Branding** | v0.9.6 | ✅ 완료 | init overwrite 백업, 배포 파일 pm 네이밍 정리, LICENSE 브랜딩 정리 |
334
401
  | **Validation** | v1.0 | 🔜 다음 | 실사용 검증, 사용자 피드백 수집 |
335
402
 
package/README.md CHANGED
@@ -64,6 +64,68 @@ npx @kodevibe/harness init --ide antigravity
64
64
 
65
65
  ---
66
66
 
67
+ ## Upgrade an existing install
68
+
69
+ If you already have kode:harness installed, running `init` again refreshes IDE configuration files while preserving project state and agent memory. **No data loss by default** — only IDE config files are updated, and previous versions are automatically backed up.
70
+
71
+ | Category | Behavior (default) | Details |
72
+ |----------|-------------------|---------|
73
+ | **State files** (preserved) | Not overwritten | `project-state.md`, `failure-patterns.md`, `dependency-map.md`, `features.md`, `project-brief.md` |
74
+ | **Agent memory** (preserved) | Not overwritten | `agent-memory/{architect,lead,pm,reviewer}.md` (under `docs/` in solo mode or `.harness/` in team mode) |
75
+ | **IDE config** (refreshed) | Overwritten each run | `.github/copilot-instructions.md`, `CLAUDE.md`, `.claude/`, `.cursor/`, `.codex/`, `.windsurf/`, `.agents/`, `AGENTS.md` |
76
+ | **Backup location** | Automatic (v0.9.6+) | Previous IDE config files → `.harness/init-backups/<ISO-timestamp>/...` |
77
+
78
+ ### Safe re-init (recommended for version upgrades)
79
+
80
+ ```bash
81
+ npx @kodevibe/harness init --ide <vscode|claude|cursor|codex|windsurf|antigravity> --batch
82
+ ```
83
+
84
+ State files and agent memory remain intact.
85
+
86
+ ### Force overwrite (caution)
87
+
88
+ ```bash
89
+ npx @kodevibe/harness init --ide vscode --batch --overwrite
90
+ ```
91
+
92
+ ⚠️ `--overwrite` will erase your current `project-state.md`, `failure-patterns.md`, and agent memory files. Recover the previous versions from `.harness/init-backups/<ISO-timestamp>/` if needed.
93
+
94
+ ---
95
+
96
+ ## Uninstall Safely
97
+
98
+ Every `init` now writes `.harness/install-manifest.json`, which records the generated files, hashes, IDE target, mode, and backup paths. `uninstall` uses that manifest to remove only kode:harness-managed files.
99
+
100
+ ```bash
101
+ # Preview first. No files are changed.
102
+ npx @kodevibe/harness uninstall --ide claude --dry-run
103
+
104
+ # Apply. State files and agent memory are preserved by default.
105
+ npx @kodevibe/harness uninstall --ide claude --yes
106
+ ```
107
+
108
+ Safety rules:
109
+
110
+ - `docs/project-state.md`, `docs/project-brief.md`, `docs/features.md`, `docs/dependency-map.md`, `docs/failure-patterns.md`, and agent memory are kept by default.
111
+ - Existing root files such as `CLAUDE.md` or `AGENTS.md` are restored from `.harness/init-backups/<timestamp>/...` when `init` overwrote them.
112
+ - Files modified after install are skipped unless `--force` is used.
113
+ - Shared cross-tool paths such as `AGENTS.md` and `.agents/skills/*` are kept while another active IDE install still owns them.
114
+ - Deleted/restored files are copied to `.harness/uninstall-backups/<timestamp>/...` before changes are applied.
115
+
116
+ Additional options:
117
+
118
+ ```bash
119
+ npx @kodevibe/harness uninstall --all --dry-run # preview all detected IDE installs
120
+ npx @kodevibe/harness uninstall --ide vscode --yes # remove one IDE surface
121
+ npx @kodevibe/harness uninstall --ide vscode --yes --purge-state
122
+ npx @kodevibe/harness uninstall --all --yes --purge-state --purge-backups
123
+ ```
124
+
125
+ Use `--purge-state` only when you intentionally want to delete generated state files too. Backup directories are kept unless `--purge-backups` is explicitly provided. Combining `--purge-state --purge-backups` removes `.harness/install-manifest.json` too once no active installs remain, leaving no kode:harness state behind.
126
+
127
+ ---
128
+
67
129
  ## The Problem: Context Rot
68
130
 
69
131
  Your AI coding agent starts every session from zero. By session 3, it's forgotten the architecture decisions from session 1. By session 10, it's re-debating settled choices and contradicting its own earlier work.
@@ -101,9 +163,10 @@ kode:harness solves this with three mechanisms:
101
163
  | ✅ **Evidence-Gated Progress Board** | Stories move from Planned → Proof Pending → Proven only when tests or smoke proof exist |
102
164
  | 📒 **Proof Ledger** | Review and wrap-up outputs record compact proof: command, result, and observation |
103
165
  | 🔒 **Proof-First Enforcement** | pm/lead/reviewer/state-check block vague plans, unproven completion, failing tests, and missing proof records |
166
+ | 🗂️ **Project Docs Bridge** | Creates a local docs hub index while preserving originals and visibility boundaries |
104
167
  | 📝 **State Persistence** | 5 markdown files that persist project knowledge across LLM sessions |
105
168
  | 🔄 **5 Pipelines** | 🟢 New Dev → 🔵 Continue → 🔴 Bug Fix → 🟡 Direction Change → 🟣 Crew-Driven |
106
- | 🛠️ **11 Skills** | Step-by-step procedures: setup, debug, breakdown, review, pivot, state-check, and more |
169
+ | 🛠️ **12 Skills** | Step-by-step procedures: setup, debug, breakdown, docs-bridge, review, pivot, state-check, and more |
107
170
  | 🤖 **4 Agents** | Role-based personas: pm, reviewer, lead, architect |
108
171
  | ⚠️ **Failure Patterns** | Project-specific failure log that prevents repeat mistakes across sessions |
109
172
  | 📋 **Decision Log** | Records why decisions were made so LLMs don't re-debate settled choices |
@@ -116,6 +179,7 @@ kode:harness solves this with three mechanisms:
116
179
  ```bash
117
180
  npx @kodevibe/harness doctor # verify files are installed
118
181
  npx @kodevibe/harness validate # verify state files have real content
182
+ npx @kodevibe/harness uninstall --dry-run --ide vscode # preview safe removal
119
183
  ```
120
184
 
121
185
  ## Supported IDEs
@@ -147,6 +211,7 @@ All IDEs also get state files (`project-state.md`, `project-brief.md`, `features
147
211
  - **debug** — 4-phase systematic debugging (evidence → scope → fix → verify)
148
212
  - **check-impact** — Assess change blast radius before modifying shared modules
149
213
  - **breakdown** — Decompose features into dependency-ordered implementation tasks
214
+ - **docs-bridge** — Create a local index that can connect repository docs to a wiki/docs hub while preserving originals and visibility boundaries
150
215
  - **pr-review** — Review incoming Pull Requests for quality, security, and direction alignment
151
216
  - **release** — Pre-release validation checklist (tests, state files, security, versioning)
152
217
 
@@ -163,6 +228,8 @@ All IDEs also get state files (`project-state.md`, `project-brief.md`, `features
163
228
  - **dependency-map.md** — Module dependency graph for impact analysis (the "how")
164
229
  - **failure-patterns.md** — Project-specific failure patterns that prevent repeat mistakes (the "watch out")
165
230
 
231
+ `project-brief.md` can also carry a **Project Docs Hub Index** when you want local docs discoverable from a wiki, Confluence space, Obsidian vault, or other documentation hub. The tracked index stores repo-relative sources and sanitized hub aliases only; machine-specific resolver details belong in ignored `.harness/docs-bridge.local.*` files.
232
+
166
233
  ## How It Works
167
234
 
168
235
  ### 1. Bootstrap (once)
@@ -274,6 +341,16 @@ Bootstrap auto-detects crew artifacts in `docs/crew/`, `docs/PM/`, `docs/Analyst
274
341
 
275
342
  Original crew documents are **never modified**. Only the index and tracker are created.
276
343
 
344
+ ### Project Docs Bridge
345
+
346
+ When a project already has useful docs spread across README files, `docs/`, ADRs, runbooks, API specs, or planning artifacts, run `docs-bridge`:
347
+
348
+ ```bash
349
+ > "connect this project's docs to our wiki/docs hub"
350
+ ```
351
+
352
+ It adds a Project Docs Hub Index to `project-brief.md` with each local source, role, sanitized hub target, sync direction, visibility, status, and review date. The repository keeps the originals. External hub summaries or links are written only when the user explicitly asks and visibility boundaries are confirmed.
353
+
277
354
  ### How It Compares
278
355
 
279
356
  | | BMAD v6.2.2 | gstack v0.15.1 | GSD v1.33.0 | kode:harness |
@@ -289,7 +366,7 @@ Original crew documents are **never modified**. Only the index and tracker are c
289
366
 
290
367
  ## Roadmap
291
368
 
292
- kode:harness is at **v0.11.0** — makes Common Mode proof-first behavior enforceable: Proof Plans need exact commands/checklists, Story completion is blocked without evidence, reviewer must stop on missing/failing proof, and state-check audits Proof Ledger coverage.
369
+ kode:harness is at **v0.11.1** — adds manifest-based safe uninstall so generated IDE files can be previewed, preserved, restored, or purged intentionally. Common Mode proof-first behavior remains enforceable.
293
370
 
294
371
  | Phase | Version | Status | Focus |
295
372
  |---|---|---|---|
@@ -303,7 +380,9 @@ kode:harness is at **v0.11.0** — makes Common Mode proof-first behavior enforc
303
380
  | **Consistency & Budget** | v0.9.5 | ✅ Done | Iron Laws stale-copy fix (reviewer.md), dispatcher sync (core-rules.md ↔ copilot-instructions.md), lightness budgets recalibrated (40K/1500/2500) with rationale |
304
381
  | **Drift Guard & Positioning** | v0.9.7 | ✅ Done | `harness/`↔`.github/` drift detector, reviewer working-proof gate, kode:vibe positioning, IDE selection guide, project-brief example |
305
382
  | **Confidence Loop** | v0.10.0 | ✅ Done | Goal Card, Quiet Navigator, Evidence-Gated Progress Board, Proof Ledger, QA/content regression tests |
306
- | **Proof-First Enforcement** | v0.11.0 | ✅ Current | Mandatory Proof Plan, lead proof blockers, reviewer proof blockers, state-check Proof Ledger coverage |
383
+ | **Proof-First Enforcement** | v0.11.0 | ✅ Complete | Mandatory Proof Plan, lead proof blockers, reviewer proof blockers, state-check Proof Ledger coverage |
384
+ | **Uninstall Safety** | v0.11.1 | ✅ Current | Manifest-based uninstall, default state preservation, shared owner restore, purge cleanup |
385
+ | **Docs Bridge** | v0.11.1 | 🧪 Experimental | Project Docs Hub Index, docs-bridge skill, local docs hub index with visibility boundaries |
307
386
  | **Safety & Branding** | v0.9.6 | ✅ Done | init overwrite backups, shipped pm naming cleanup, LICENSE branding cleanup |
308
387
  | **Validation** | v1.0 | 🔜 Next | Real-world project adoption, user feedback collection |
309
388
 
@@ -77,6 +77,7 @@ When the user provides a feature request or development goal in their prompt:
77
77
  - Bug report or error → Start 🔴 Pipeline from `debug`
78
78
  - Structural/design change → Run `architect` first, then `pm`
79
79
  - Direction change → Start 🟡 Pipeline from `pivot`
80
+ - Docs/wiki request → Run `docs-bridge`
80
81
  <!-- CREW_MODE_START -->
81
82
  - Crew artifacts detected (`docs/crew/` exists, `docs/PM/`+`docs/Analyst/`+`docs/ARB/` exist, or user provided design docs) → Start 🟣 Pipeline from `setup`
82
83
  <!-- CREW_MODE_END -->
@@ -128,6 +129,7 @@ When a skill or agent reports STATUS: DONE, use the same block and point to the
128
129
  - docs/dependency-map.md — module dependency graph
129
130
  - docs/features.md — feature registry
130
131
  - docs/project-brief.md — project vision, goals, and non-goals
132
+ - Optional: `## Project Docs Hub Index` maps docs to hubs
131
133
 
132
134
  ## Iron Laws
133
135
 
@@ -52,6 +52,24 @@ _Example (kode:harness)_: Developers and small teams (1–10) using AI coding as
52
52
  - Manual proof: create item → refresh → item persists
53
53
  -->
54
54
 
55
+ ## Project Docs Hub Index
56
+
57
+ <!-- Optional — maintained by the `docs-bridge` skill when the project needs to
58
+ connect local documentation to a wiki/docs hub without copying whole documents.
59
+ Keep originals in place; index repo-relative paths, roles, sync intent,
60
+ sanitized hub aliases, and visibility boundaries here. Machine-specific
61
+ resolver details belong in ignored `.harness/docs-bridge.local.*` files.
62
+
63
+ | Local Source | Role | Hub Target | Sync Direction | Visibility | Status | Last Reviewed |
64
+ |--------------|------|------------|----------------|------------|--------|---------------|
65
+ | README.md | source | local-only | local-source -> hub-summary | public | active | YYYY-MM-DD |
66
+
67
+ Role: source, planning-artifact, decision-record, reference, runbook, state, generated
68
+ Sync Direction: local-source -> hub-summary, hub-reference -> local-index, bidirectional-index-only, local-only
69
+ Visibility: public, team, company-confidential, personal-private, do-not-share
70
+ Status: active, proposed, stale, archived
71
+ -->
72
+
55
73
  <!-- CREW_MODE_START -->
56
74
  ## Crew Artifact Index
57
75
 
@@ -0,0 +1,161 @@
1
+ # Docs Bridge
2
+
3
+ ## Purpose
4
+
5
+ Connect project-local documentation to a wiki, knowledge base, or docs hub through a small, safe index in `docs/project-brief.md`.
6
+ This keeps the repository as the source of truth for project-internal docs while letting a central hub discover, summarize, and link them safely.
7
+
8
+ ## Invoked By
9
+
10
+ - **User** — "connect this project to my wiki", "문서를 위키처럼 정리해줘", "sync docs to Confluence", "Obsidian docs hub"
11
+ - **setup** — after state files are filled, when the user asked for documentation organization or a central docs hub
12
+ - **wrap-up** — when documentation changed and `docs/project-brief.md` already has a Project Docs Hub Index
13
+ - **state-check** — validates the index shape and local path coverage
14
+
15
+ ## When to Apply
16
+
17
+ - A project has several documentation surfaces: README, `docs/`, ADRs, runbooks, API specs, planning artifacts, generated reports
18
+ - The user wants a central wiki/docs hub to know which project docs exist without copying every document into the hub
19
+ - The user wants LLMs to manage internal docs, source cards, meeting notes, or project cards across sessions
20
+ - Before promoting a local document into an external wiki, Confluence space, Obsidian vault, or team knowledge base
21
+
22
+ ## Boundaries
23
+
24
+ - Preserve original documents unless the user explicitly asks to edit them.
25
+ - Do not copy entire READMEs, specs, transcripts, or external pages into the hub. Summarize and link.
26
+ - Treat the hub as a reference layer: path/URL, role, key constraints, status, and visibility are enough.
27
+ - Respect visibility. Private or confidential rows need explicit user confirmation before any external target is written.
28
+ - Do not commit company-private URLs or personal vault paths into OSS templates. Those belong in the user's local project state.
29
+ - Keep tracked index rows sanitized: use `local-only`, `pending`, or a logical hub alias/note title, not machine-specific absolute paths.
30
+ - Store local resolver details such as Obsidian vault paths, personal Wiki names, page IDs, or sync scripts only in ignored local files such as `.harness/docs-bridge.local.json`.
31
+ - Keep uncertain relationships as `proposed`, `needs verification`, or `review required`.
32
+
33
+ ## Procedure
34
+
35
+ ### Phase 1: Discover Documentation Surfaces
36
+
37
+ Read only enough to classify documents. Prefer headers, tables of contents, and first sections before reading full files.
38
+
39
+ Common candidates:
40
+ - Root docs: `README*`, `CHANGELOG*`, `CONTRIBUTING*`, `SECURITY*`, `LICENSE`
41
+ - Project docs: `docs/`, `adr/`, `architecture/`, `design/`, `runbooks/`, `playbooks/`, `operations/`
42
+ - API and contract docs: `openapi*`, `swagger*`, `schema*`, `proto/`, `graphql/`
43
+ - AI/planning docs: planning artifact directories, role-based analysis folders, meeting notes, research notes
44
+ - Existing state: `docs/project-brief.md`, `docs/features.md`, `docs/dependency-map.md`, `docs/project-state.md`
45
+
46
+ Skip generated dependency/build directories: `node_modules/`, `dist/`, `build/`, `.next/`, coverage output, binary archives.
47
+
48
+ ### Phase 2: Classify Each Candidate
49
+
50
+ Use this vocabulary in the index:
51
+
52
+ | Role | Meaning |
53
+ |------|---------|
54
+ | `source` | Original project documentation maintained in this repo |
55
+ | `planning-artifact` | PRD, design, architecture, ARB, roadmap, or external planning output |
56
+ | `decision-record` | ADR, Decision Log, meeting decision, or governance note |
57
+ | `reference` | External guide, source card, example, standard, or adoption candidate |
58
+ | `runbook` | Operational procedure, deployment guide, incident response, support playbook |
59
+ | `state` | kode:harness state file used by LLM agents |
60
+ | `generated` | Derived output that should not be treated as an original source |
61
+
62
+ ### Phase 3: Confirm The Docs Hub Contract
63
+
64
+ Ask at most three questions if the prompt does not already answer them:
65
+
66
+ 1. Hub target: logical hub alias/note title, wiki space/page label, repository path, `pending`, or `local-only`? Do not ask for or write absolute local vault paths into tracked state.
67
+ 2. Visibility boundary: `public`, `team`, `company-confidential`, `personal-private`, or `do-not-share`?
68
+ 3. Sync intent: summarize local docs into the hub, index hub references locally, or only maintain a bidirectional map?
69
+
70
+ If the user skips the hub target, create a local map only and set Hub Target to `local-only`. If the user provides a local filesystem path, write only a sanitized alias or `local-only` in the tracked index and put the concrete path in `.harness/docs-bridge.local.json`.
71
+
72
+ ### Phase 4: Update Project Docs Hub Index
73
+
74
+ Ensure `docs/project-brief.md` contains this section. Add it if missing:
75
+
76
+ ```markdown
77
+ ## Project Docs Hub Index
78
+
79
+ | Local Source | Role | Hub Target | Sync Direction | Visibility | Status | Last Reviewed |
80
+ |--------------|------|------------|----------------|------------|--------|---------------|
81
+ | README.md | source | local-only | local-source -> hub-summary | public | active | YYYY-MM-DD |
82
+ ```
83
+
84
+ Column rules:
85
+ - **Local Source**: exact repository path, or external URL only when no local file exists.
86
+ - **Role**: use the Phase 2 vocabulary.
87
+ - **Hub Target**: `local-only`, `pending`, a sanitized external page label/URL, an Obsidian note title, a Confluence page label, or a logical hub alias. Never store `/Users/...`, `~/...`, `file://...`, drive-letter paths, personal vault paths, or tokens in this tracked table.
88
+ - **Sync Direction**: one of `local-source -> hub-summary`, `hub-reference -> local-index`, `bidirectional-index-only`, `local-only`.
89
+ - **Visibility**: one of `public`, `team`, `company-confidential`, `personal-private`, `do-not-share`.
90
+ - **Status**: `active`, `proposed`, `stale`, or `archived`.
91
+ - **Last Reviewed**: ISO date, or `pending` for proposed rows.
92
+
93
+ ### Phase 5: Promote Safely (Optional)
94
+
95
+ Only when the user asks to update the hub:
96
+
97
+ 1. Create or update a short hub summary that links back to the Local Source.
98
+ 2. Preserve originals. If a local source needs improvement, ask before editing it.
99
+ 3. Record relationships with evidence, for example:
100
+ - `project -> documents -> Local Source`
101
+ - `Local Source -> summarized_by -> Hub Target`
102
+ - `reference -> supports -> project decision`
103
+ 4. Put uncertain claims under `needs verification` or `proposed relationship`.
104
+ 5. Never expose private/confidential rows into a less-restricted hub target without explicit user confirmation.
105
+ 6. For local-only hubs, use `.harness/docs-bridge.local.json` for machine-specific resolver details. Do not write those details into tracked state, README, or OSS templates.
106
+
107
+ ### Phase 6: Verify
108
+
109
+ 1. Run `state-check` after updating `docs/project-brief.md`.
110
+ 2. Confirm local paths in the index exist, unless the row is intentionally external.
111
+ 3. Report any private/confidential row that has an external Hub Target and ask for confirmation before hub writes.
112
+ 4. If documentation files changed, include the proof in the response: paths updated, index rows added/changed, and any hub target touched.
113
+
114
+ ## Output Format
115
+
116
+ ```markdown
117
+ ## Docs Bridge Result
118
+
119
+ ### Index Updates
120
+ - Added/updated rows: N
121
+ - Local-only rows: N
122
+ - External hub rows: N
123
+
124
+ ### Visibility Warnings
125
+ - [none] or [row requiring confirmation]
126
+
127
+ ### Verification
128
+ - state-check: PASS | WARN | FAIL
129
+ - Missing local paths: [none or list]
130
+
131
+ ---
132
+ 🧭 Next Step
133
+ → Goal: Keep project docs discoverable without rewriting originals
134
+ → Evidence: `state-check` plus changed index rows
135
+ → Next: `wrap-up` or [Hub update]
136
+ → Prompt: "문서 허브 인덱스를 기준으로 다음 문서를 요약/연결해줘"
137
+ → Why: The docs map is now explicit enough for future LLM sessions
138
+ → Pipeline: utility skill (docs bridge)
139
+ ---
140
+ ```
141
+
142
+ ## Rules
143
+
144
+ - Use repository-relative paths for Local Source.
145
+ - Prefer summaries and links over copied bodies.
146
+ - Do not modify raw/source docs during discovery.
147
+ - Do not invent hub targets. Use `local-only` or `pending` when unknown.
148
+ - Keep visibility explicit on every row.
149
+ - Keep personal/local Wiki resolver details in ignored `.harness/docs-bridge.local.*` files only.
150
+ - Do not write absolute local paths, personal vault names, private page IDs, tokens, or company-private URLs into tracked templates or public docs.
151
+
152
+ ## Anti-patterns
153
+
154
+ | Anti-pattern | Correct Approach |
155
+ |---|---|
156
+ | Copy every project doc into the central wiki | Index local sources and promote concise summaries only |
157
+ | Treat generated reports as authoritative source | Mark as `generated` and link to the original input when known |
158
+ | Publish private docs to a team/public hub silently | Stop and ask for explicit confirmation |
159
+ | Rewrite READMEs while building the index | Preserve originals; ask before editing source docs |
160
+ | Leave Hub Target blank | Use `local-only` or `pending` with a follow-up |
161
+ | Put `/Users/...`, `~/...`, `file://...`, or personal vault paths in `project-brief.md` | Store only a logical alias in the index and keep resolver details in `.harness/docs-bridge.local.json` |
@@ -13,6 +13,12 @@ One command does everything — no manual editing required.
13
13
  - When state files are outdated and need a refresh
14
14
  - When any agent reports "state files are empty"
15
15
 
16
+ ## Re-running on an existing install (Upgrade flow)
17
+
18
+ On existing installs, default `init` preserves state (`project-state`, `features`, `dependency-map`, `failure-patterns`, `project-brief`, `agent-memory`) and refreshes IDE config (`.github/`, `.claude/`, `.cursor/`, `.codex/`, `.windsurf/`, `.agents/`, `CLAUDE.md`, `AGENTS.md`). Overwritten IDE files are backed up to `.harness/init-backups/<ISO-timestamp>/...`.
19
+
20
+ Use `--overwrite` only to reset corrupted state after backup; then rerun setup to repopulate files.
21
+
16
22
  ## Procedure
17
23
 
18
24
  ### Phase 1: Project Discovery (read-only)
@@ -62,6 +68,10 @@ One command does everything — no manual editing required.
62
68
 
63
69
  **Do NOT modify any code files in this phase.**
64
70
 
71
+ ### Phase 1.4: Project Docs Hub Detection (optional)
72
+
73
+ If user asked for wiki/docs-hub work, record candidate paths from Phase 1 without reading or rewriting full docs. After Phase 3, invoke `docs-bridge` to fill `## Project Docs Hub Index`. Otherwise skip.
74
+
65
75
  <!-- CREW_MODE_START -->
66
76
  ### Phase 1.5: Crew Artifact Detection + Indexing
67
77
 
@@ -115,6 +115,22 @@ If no Validation Tracker → skip.
115
115
  - Done Story with failing proof → FAIL: `[FAIL] Story {S-N-M} proof shows failure but status is done`
116
116
  - In-progress Story without proof → PASS; proof pending is normal
117
117
 
118
+ ### Check 8: Project Docs Hub Index (optional)
119
+
120
+ If `docs/project-brief.md` contains `## Project Docs Hub Index` with non-comment table rows:
121
+
122
+ 1. For each row, verify `Local Source`, `Sync Direction`, `Visibility`, `Status`, and `Last Reviewed` are not blank or `TBD`.
123
+ 2. If `Local Source` is a repository path, verify the file or directory exists. Skip existence checks for URLs and explicitly external rows.
124
+ 3. Verify `Sync Direction` is one of: `local-source -> hub-summary`, `hub-reference -> local-index`, `bidirectional-index-only`, `local-only`.
125
+ 4. Verify `Visibility` is one of: `public`, `team`, `company-confidential`, `personal-private`, `do-not-share`.
126
+ 5. If `Hub Target` contains an absolute/local machine path (`/Users/`, `~/`, `file://`, drive-letter paths, or backslash user paths), WARN: `[WARN] docs hub row contains local machine path — move resolver details to .harness/docs-bridge.local.*`.
127
+ 6. If Visibility is `company-confidential`, `personal-private`, or `do-not-share` and Hub Target is not `local-only` or `pending`, WARN: `[WARN] restricted docs row has external Hub Target — confirm disclosure boundary before hub writes`.
128
+
129
+ Outcomes:
130
+ - Complete rows with existing local paths → PASS
131
+ - Missing local path, blank required column, invalid vocabulary, local machine path leakage, or restricted row with external target → WARN
132
+ - No `Project Docs Hub Index` section or no real rows → skip; this project may not use docs-bridge
133
+
118
134
  ## Output Format
119
135
 
120
136
  ```
@@ -139,6 +155,9 @@ If no Validation Tracker → skip.
139
155
  ### Check 7: Proof Ledger Coverage
140
156
  - {N} done Stories checked / {M} missing proof / {K} failing proof
141
157
 
158
+ ### Check 8: Project Docs Hub Index
159
+ - {N} rows checked / {M} missing paths / {K} visibility warnings / skipped if unused
160
+
142
161
  <!-- CREW_MODE_START -->
143
162
  ### Check 6: Validation Tracker (🟣)
144
163
  - {N} FR references checked / {M} drifted
@@ -138,6 +138,15 @@ For each issue/error that occurred in this session:
138
138
 
139
139
  > **Self-check**: `docs/dependency-map.md`에 이 세션에서 새로 추가한 모듈이 모두 등록되었는지 확인. 누락 시 즉시 추가. state-check가 PASS 또는 WARN을 반환해야 다음 단계로 진행합니다.
140
140
 
141
+ ### Step 5.55: Refresh Project Docs Hub Index (if applicable)
142
+
143
+ Run only if user used/requested `docs-bridge`, or Project Docs Hub Index has real rows.
144
+
145
+ 1. For changed docs (`README*`, `docs/`, ADR/design/runbook/API specs), refresh indexed review/status.
146
+ 2. For new docs, add `proposed` rows or recommend `docs-bridge`.
147
+ 3. Never write external hubs, invent targets, change visibility, or convert `local-only` / `pending` without explicit request.
148
+ 4. Keep filesystem paths, vault names, page IDs, and resolver details out of tracked state; use `.harness/docs-bridge.local.*`.
149
+
141
150
  ### Step 5.6: Resolve STATE-AUDIT Flags (if applicable)
142
151
 
143
152
  If the `reviewer` agent was run in this session and produced `[STATE-AUDIT]` flags:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kodevibe/harness",
3
- "version": "0.11.0",
3
+ "version": "0.11.1",
4
4
  "description": "kode:harness — harness engineering for keeping every developer's AI aligned on one project direction.",
5
5
  "keywords": [
6
6
  "llm",