@uzysjung/agent-harness 26.88.0 → 26.89.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.
Files changed (92) hide show
  1. package/README.ko.md +3 -26
  2. package/README.md +8 -32
  3. package/dist/{chunk-QHYH6P32.js → chunk-EZZOJPG4.js} +1 -11
  4. package/dist/chunk-EZZOJPG4.js.map +1 -0
  5. package/dist/index.js +262 -748
  6. package/dist/index.js.map +1 -1
  7. package/dist/trust-tier-drift.js +1 -1
  8. package/package.json +1 -1
  9. package/templates/agents/plan-checker.md +3 -4
  10. package/templates/agents/reviewer.md +1 -1
  11. package/templates/antigravity/AGENTS.md.template +0 -28
  12. package/templates/codex/AGENTS.md.template +0 -25
  13. package/templates/codex/README.md +5 -15
  14. package/templates/codex/config.toml.template +0 -10
  15. package/templates/codex/hooks/README.md +0 -2
  16. package/templates/hooks/checkpoint-snapshot.sh +1 -22
  17. package/templates/hooks/session-start.sh +1 -1
  18. package/templates/hooks/spec-drift-check.sh +2 -20
  19. package/templates/opencode/AGENTS.md.template +3 -38
  20. package/templates/opencode/README.md +0 -4
  21. package/templates/opencode/opencode.json.template +1 -3
  22. package/templates/project-claude/fragments/csr-fastapi/boundaries.md +0 -1
  23. package/templates/project-claude/fragments/csr-fastapi/commands.md +0 -1
  24. package/templates/project-claude/fragments/csr-fastapi/plugins.md +1 -1
  25. package/templates/project-claude/fragments/csr-fastify/boundaries.md +0 -1
  26. package/templates/project-claude/fragments/csr-fastify/commands.md +0 -1
  27. package/templates/project-claude/fragments/csr-fastify/plugins.md +1 -1
  28. package/templates/project-claude/fragments/csr-supabase/boundaries.md +0 -1
  29. package/templates/project-claude/fragments/csr-supabase/commands.md +0 -1
  30. package/templates/project-claude/fragments/csr-supabase/plugins.md +1 -1
  31. package/templates/project-claude/fragments/csr-supabase/supabase-auth.md +0 -2
  32. package/templates/project-claude/fragments/data/boundaries.md +0 -1
  33. package/templates/project-claude/fragments/data/commands.md +0 -1
  34. package/templates/project-claude/fragments/data/plugins.md +1 -1
  35. package/templates/project-claude/fragments/executive/boundaries.md +0 -1
  36. package/templates/project-claude/fragments/executive/commands.md +0 -1
  37. package/templates/project-claude/fragments/executive/skills.md +1 -1
  38. package/templates/project-claude/fragments/executive/workflow.md +1 -2
  39. package/templates/project-claude/fragments/growth-marketing/boundaries.md +0 -1
  40. package/templates/project-claude/fragments/growth-marketing/commands.md +0 -1
  41. package/templates/project-claude/fragments/growth-marketing/skills.md +1 -1
  42. package/templates/project-claude/fragments/growth-marketing/workflow.md +1 -2
  43. package/templates/project-claude/fragments/project-management/boundaries.md +0 -1
  44. package/templates/project-claude/fragments/project-management/commands.md +0 -1
  45. package/templates/project-claude/fragments/project-management/skills.md +1 -1
  46. package/templates/project-claude/fragments/project-management/workflow.md +1 -2
  47. package/templates/project-claude/fragments/ssr-htmx/boundaries.md +0 -1
  48. package/templates/project-claude/fragments/ssr-htmx/commands.md +0 -1
  49. package/templates/project-claude/fragments/ssr-htmx/plugins.md +1 -1
  50. package/templates/project-claude/fragments/ssr-nextjs/boundaries.md +0 -1
  51. package/templates/project-claude/fragments/ssr-nextjs/commands.md +0 -1
  52. package/templates/project-claude/fragments/ssr-nextjs/plugins.md +1 -1
  53. package/templates/project-claude/fragments/tooling/boundaries.md +0 -1
  54. package/templates/project-claude/fragments/tooling/commands.md +0 -1
  55. package/templates/project-claude/fragments/tooling/skills.md +1 -1
  56. package/templates/rules/git-policy.md +2 -2
  57. package/templates/rules/ship-checklist.md +3 -3
  58. package/templates/settings.json +0 -13
  59. package/templates/skills/gh-issue-workflow/SKILL.md +8 -8
  60. package/templates/skills/north-star/SKILL.md +4 -4
  61. package/templates/skills/ui-visual-review/SKILL.md +6 -6
  62. package/dist/chunk-QHYH6P32.js.map +0 -1
  63. package/templates/codex/hooks/gate-check.sh +0 -7
  64. package/templates/codex/skills/uzys-build/SKILL.md +0 -24
  65. package/templates/codex/skills/uzys-plan/SKILL.md +0 -24
  66. package/templates/codex/skills/uzys-review/SKILL.md +0 -24
  67. package/templates/codex/skills/uzys-ship/SKILL.md +0 -24
  68. package/templates/codex/skills/uzys-spec/SKILL.md +0 -28
  69. package/templates/codex/skills/uzys-test/SKILL.md +0 -24
  70. package/templates/commands/uzys/auto.md +0 -190
  71. package/templates/commands/uzys/build.md +0 -42
  72. package/templates/commands/uzys/plan.md +0 -55
  73. package/templates/commands/uzys/review.md +0 -44
  74. package/templates/commands/uzys/ship.md +0 -49
  75. package/templates/commands/uzys/spec.md +0 -93
  76. package/templates/commands/uzys/test.md +0 -58
  77. package/templates/hooks/agentshield-gate.sh +0 -101
  78. package/templates/hooks/gate-check.sh +0 -138
  79. package/templates/opencode/.opencode/commands/uzys-build.md +0 -22
  80. package/templates/opencode/.opencode/commands/uzys-plan.md +0 -22
  81. package/templates/opencode/.opencode/commands/uzys-review.md +0 -22
  82. package/templates/opencode/.opencode/commands/uzys-ship.md +0 -22
  83. package/templates/opencode/.opencode/commands/uzys-spec.md +0 -28
  84. package/templates/opencode/.opencode/commands/uzys-test.md +0 -22
  85. package/templates/opencode/.opencode/plugins/uzys-harness.ts +0 -146
  86. package/templates/project-claude/fragments/csr-fastapi/workflow.md +0 -8
  87. package/templates/project-claude/fragments/csr-fastify/workflow.md +0 -8
  88. package/templates/project-claude/fragments/csr-supabase/workflow.md +0 -8
  89. package/templates/project-claude/fragments/data/workflow.md +0 -9
  90. package/templates/project-claude/fragments/ssr-htmx/workflow.md +0 -8
  91. package/templates/project-claude/fragments/ssr-nextjs/workflow.md +0 -8
  92. package/templates/project-claude/fragments/tooling/workflow.md +0 -5
@@ -4,7 +4,7 @@ import {
4
4
  EXTERNAL_ASSETS,
5
5
  TRUST_TIER,
6
6
  init_esm_shims
7
- } from "./chunk-QHYH6P32.js";
7
+ } from "./chunk-EZZOJPG4.js";
8
8
 
9
9
  // src/trust-tier-drift.ts
10
10
  init_esm_shims();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uzysjung/agent-harness",
3
- "version": "26.88.0",
3
+ "version": "26.89.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": {
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: plan-checker
3
- description: Outcome-driven verification of docs/plan.md + docs/todo.md against docs/SPEC.md goals. Catches plans that look complete but miss the objective. Invoked during /uzys:plan gate by the reviewer subagent.
3
+ description: Outcome-driven verification of docs/plan.md + docs/todo.md against docs/SPEC.md goals. Catches plans that look complete but miss the objective. Invoked by the reviewer subagent during plan verification.
4
4
  tools: Read, Grep, Glob, Bash
5
5
  model: opus
6
6
  origin: self-authored (GSD gsd-plan-checker 사상 흡수, 100% 자체 작성)
@@ -12,14 +12,13 @@ origin: self-authored (GSD gsd-plan-checker 사상 흡수, 100% 자체 작성)
12
12
 
13
13
  ## 호출 조건
14
14
 
15
- `/uzys:plan` 게이트에서 `reviewer` subagent가 이 에이전트를 호출한다. 또는 수동으로 `Agent(subagent_type=plan-checker, ...)` 직접 호출.
15
+ `reviewer` subagent가 plan 검증 시 이 에이전트를 호출한다. 또는 수동으로 `Agent(subagent_type=plan-checker, ...)` 직접 호출.
16
16
 
17
17
  ## 입력 (필수 파일)
18
18
 
19
19
  - `docs/SPEC.md` — 명세. 없으면 **BLOCKER**, 중단.
20
20
  - `docs/plan.md` — 분해된 계획. 없으면 **BLOCKER**.
21
21
  - `docs/todo.md` — 체크박스 기반 task 목록. 없으면 **WARNING**.
22
- - `.claude/gate-status.json` — 게이트 진행 상태. 있으면 참조.
23
22
  - `.claude/rules/gates-taxonomy.md` — Gates taxonomy 참조 (이 에이전트는 **Revision Gate** 패턴 구현).
24
23
 
25
24
  ## 검증 Dimensions (6개)
@@ -100,7 +99,7 @@ Recommendation: <있는 경우>
100
99
  ## Next Action
101
100
  (a) 사용자에게 escalate
102
101
  (b) 수정 후 재검증
103
- (c) 통과 — /uzys:plan gate mark completed 가능
102
+ (c) 통과 — plan 검증 완료
104
103
  ```
105
104
 
106
105
  ## 핵심 원칙
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: reviewer
3
- description: "Multi-perspective verification agent. Reviews code, documentation, UI, and QA from an independent evaluator perspective. Enforces Segregation of Duties (SOD) — implementation and verification must be separate. Use for all /uzys:review phases."
3
+ description: "Multi-perspective verification agent. Reviews code, documentation, UI, and QA from an independent evaluator perspective. Enforces Segregation of Duties (SOD) — implementation and verification must be separate. Use for review phases."
4
4
  tools: ["Read", "Grep", "Glob", "Bash"]
5
5
  model: opus
6
6
  context: fork
@@ -8,32 +8,6 @@
8
8
 
9
9
  {PROJECT_RULES}
10
10
 
11
- ## Workflow Gates
12
-
13
- ```
14
- Define(/uzys-spec) → Plan(/uzys-plan) → Build(/uzys-build) → Verify(/uzys-test) → Review(/uzys-review) → Ship(/uzys-ship)
15
- ```
16
-
17
- 각 단계 완료 없이 다음 진행 금지. 6-Gate workflow 는 `uzys-harness 6-Gate workflow` opt-in 시에만 `.agents/workflows/` 에 설치됨.
18
-
19
- **Hotfix 단축**: Build → Verify → Ship (긴급 수정에 한함)
20
- **Executive track**: 6단계 게이트 미적용. 자연어 요청 → strategist + document-skills → 산출물 → 검토.
21
-
22
- ## Command Reference (Antigravity workflows)
23
-
24
- `.agents/workflows/uzys-{phase}.md` 파일은 `/` prefix 슬래시로 호출됨:
25
-
26
- | Slash | 용도 |
27
- |-------|------|
28
- | `/uzys-spec` | Define — 구조화된 스펙 작성 |
29
- | `/uzys-plan` | Plan — 검증 가능한 작은 단위로 분해 |
30
- | `/uzys-build` | Build — TDD 점진적 구현 |
31
- | `/uzys-test` | Verify — 테스트 실행 + 커버리지 |
32
- | `/uzys-review` | Review — 5축 리뷰 (correctness, readability, architecture, security, performance) |
33
- | `/uzys-ship` | Ship — 프리런치 체크리스트 + 배포 |
34
-
35
- Antigravity 는 워크플로우를 파일명 기반 `/` 슬래시로 호출 → `uzys-{phase}.md` = `/uzys-{phase}`. Claude Code 원본은 `/uzys:*` 유지.
36
-
37
11
  ## Protected Files (DO NOT EDIT)
38
12
 
39
13
  - `.env*`, `**/credentials.json`
@@ -48,10 +22,8 @@ Antigravity 는 워크플로우를 파일명 기반 `/` 슬래시로 호출 →
48
22
  | Scope | 위치 | 비고 |
49
23
  |-------|------|------|
50
24
  | Workspace skills | `.agents/skills/` | 본 프로젝트 한정 (Codex 공유) |
51
- | Workspace workflows | `.agents/workflows/` | 본 프로젝트 한정 |
52
25
  | Workspace rules | `.agents/rules/` | 본 문서 |
53
26
  | Global rules | `~/.gemini/GEMINI.md` | 사용자 직접 관리 (harness 미터치) |
54
- | Global skills | `~/.gemini/antigravity/skills/` | `--with-antigravity-global` + `--scope global` opt-in 시만 |
55
27
 
56
28
  ---
57
29
 
@@ -8,18 +8,6 @@
8
8
 
9
9
  {PROJECT_RULES}
10
10
 
11
- ## Workflow Gates
12
-
13
- ```
14
- Define(/uzys-spec) → Plan(/uzys-plan) → Build(/uzys-build) → Verify(/uzys-test) → Review(/uzys-review) → Ship(/uzys-ship)
15
- ```
16
-
17
- 각 단계 완료 없이 다음 진행 금지. 건너뛰기 시도 시 `pre_tool_use` hook이 exit 2로 차단.
18
-
19
- **Hotfix 단축**: Build → Verify → Ship (긴급 수정에 한함)
20
-
21
- **Executive track**: 6단계 게이트 미적용. 자연어 요청 → strategist + document-skills → 산출물 → 검토.
22
-
23
11
  ## Session Start
24
12
 
25
13
  매 세션 시작 시:
@@ -48,19 +36,6 @@ Codex `sandbox_mode = "workspace-write"` + `approval_policy = "on-request"` 가
48
36
  - 세션 시작 시 `git pull` 필수.
49
37
  - Conventional Commits — `<type>: <description>` (feat, fix, refactor, docs, test, chore, perf, ci)
50
38
 
51
- ## Command Reference (Codex slash)
52
-
53
- | Slash | 용도 |
54
- |-------|------|
55
- | `/uzys-spec` | Define — 구조화된 스펙 작성 |
56
- | `/uzys-plan` | Plan — 검증 가능한 작은 단위로 분해 |
57
- | `/uzys-build` | Build — TDD 점진적 구현 |
58
- | `/uzys-test` | Verify — 테스트 실행 + 커버리지 |
59
- | `/uzys-review` | Review — 5축 리뷰 (correctness, readability, architecture, security, performance) |
60
- | `/uzys-ship` | Ship — 프리런치 체크리스트 + 배포 |
61
-
62
- Codex는 slash namespace(`uzys:`)를 지원하지 않아 `uzys-*` 형식으로 rename됨. Claude Code 원본은 `/uzys:*` 유지.
63
-
64
39
  ## Agents (subagent, multi_agent stable)
65
40
 
66
41
  | Agent | Model | 역할 |
@@ -15,19 +15,11 @@ templates/codex/
15
15
  ├── README.md # 본 파일
16
16
  ├── AGENTS.md.template # 프로젝트 AGENTS.md (CLAUDE.md에서 생성)
17
17
  ├── config.toml.template # 프로젝트 .codex/config.toml (hooks + mcp + sandbox)
18
- ├── hooks/ # Shell 스크립트 (.claude/hooks/ 재사용 가능)
19
- ├── README.md # 포팅 상태 + Event 매핑
20
- ├── gate-check.sh # pre_tool_use matcher="Skill"
21
- ├── hito-counter.sh # user_prompt_submit
22
- │ ├── session-start.sh # session_start
23
- │ └── uncommitted-check.sh # post_tool_use (Bash 한정)
24
- └── skills/ # 6 uzys skills (Codex skill 포맷)
25
- ├── uzys-spec/SKILL.md
26
- ├── uzys-plan/SKILL.md
27
- ├── uzys-build/SKILL.md
28
- ├── uzys-test/SKILL.md
29
- ├── uzys-review/SKILL.md
30
- └── uzys-ship/SKILL.md
18
+ └── hooks/ # Shell 스크립트 (.claude/hooks/ 재사용 가능)
19
+ ├── README.md # 포팅 상태 + Event 매핑
20
+ ├── hito-counter.sh # user_prompt_submit
21
+ ├── session-start.sh # session_start
22
+ └── uncommitted-check.sh # post_tool_use (Bash 한정)
31
23
  ```
32
24
 
33
25
  ## 설치 대상 경로 (`setup-harness.sh --cli=codex` 실행 후)
@@ -37,7 +29,6 @@ templates/codex/
37
29
  | `AGENTS.md.template` | `<project>/AGENTS.md` |
38
30
  | `config.toml.template` | `<project>/.codex/config.toml` |
39
31
  | `hooks/*.sh` | `<project>/.codex/hooks/*.sh` |
40
- | `skills/uzys-*/` | `~/.codex/skills/uzys-*/` (공식 $CODEX_HOME/skills) |
41
32
  | 사용자 `~/.codex/config.toml`에 trust 등록 추가 | (D4 opt-in 확인) |
42
33
 
43
34
  ## Hook Event 매핑 (Claude → Codex)
@@ -57,7 +48,6 @@ stdin JSON 필드(`session_id`, `cwd`, `tool_name`, `tool_input`, `hook_event_na
57
48
 
58
49
  - `AGENTS.md.template` 본문 — CLAUDE.md에서 변환 (Phase C)
59
50
  - `hooks/*.sh` 본체 — `.claude/hooks/` 에서 포팅 (Phase C)
60
- - `skills/uzys-*/SKILL.md` 본문 — `.claude/commands/uzys/*.md`에서 포팅 + slash prefix rename (Phase C)
61
51
  - `setup-harness.sh --cli=codex` 경로 — Phase D
62
52
  - Trust entry 확인 프롬프트 — Phase D
63
53
  - `--cli=codex` dogfood 검증 — Phase F
@@ -58,16 +58,6 @@ type = "command"
58
58
  timeout = 5
59
59
  async = true # non-blocking 측정
60
60
 
61
- # PreToolUse(Skill matcher): Phase 순서 강제 (exit 2로 차단)
62
- # 주의: Issue #16732 — Bash 툴에만 발화. ApplyPatch(파일 쓰기)에는 fire 안 함
63
- [[hooks.pre_tool_use]]
64
- name = "gate-check"
65
- command = ["{PROJECT_DIR}/.codex/hooks/gate-check.sh"]
66
- type = "command"
67
- timeout = 10
68
- matcher = "Skill"
69
- async = false
70
-
71
61
  # PostToolUse: 미커밋 파일 경고 (Bash 한정)
72
62
  [[hooks.post_tool_use]]
73
63
  name = "uncommitted-check"
@@ -9,7 +9,6 @@
9
9
  |--------------------------|----------|---------------|------|
10
10
  | `session_start` | `session-start.sh` | `.claude/hooks/session-start.sh` | Phase C 포팅 예정 |
11
11
  | `user_prompt_submit` | `hito-counter.sh` | `.claude/hooks/hito-counter.sh` | Phase C 포팅 예정 |
12
- | `pre_tool_use` matcher="Skill" | `gate-check.sh` | `.claude/hooks/gate-check.sh` | Phase C 포팅 예정 |
13
12
  | `post_tool_use` | `uncommitted-check.sh` | `.claude/hooks/uncommitted-check.sh` | Phase C 포팅 예정 |
14
13
  | ❌ (hook 사용 안 함) | ❌ | `.claude/hooks/protect-files.sh` | **Codex sandbox로 이관 (ADR-002 v2 D3)** |
15
14
 
@@ -27,7 +26,6 @@ Claude Code hook 스크립트가 stdin에서 읽는 필드는 Codex에서도 동
27
26
  `pre_tool_use` / `post_tool_use` 가 Bash 툴에만 발화. ApplyPatch(파일 쓰기)에 대해선 fire 안 함.
28
27
 
29
28
  **영향**:
30
- - `gate-check.sh` matcher="Skill" — Claude Code에서도 Skill matcher 대상이므로 **영향 없음** (Skill 호출 경로는 Bash shell이 감싸므로 발화)
31
29
  - `uncommitted-check.sh` — 파일 저장 후 감지가 필요한 경우 ApplyPatch 이후 상태는 못 잡음. Bash 커밋/저장 경로는 잡힘. Codex `stop` 이벤트(turn 종료) 추가 등록으로 보완 가능 (Phase C 설계 옵션)
32
30
 
33
31
  ## 미구현
@@ -51,20 +51,6 @@ if command -v git &>/dev/null && [ -d "$PROJECT_DIR/.git" ]; then
51
51
  GIT_STATUS=$(cd "$PROJECT_DIR" && git status --short 2>/dev/null | head -20)
52
52
  fi
53
53
 
54
- # Gate status 수집
55
- GATE_SUMMARY="(no gate-status.json)"
56
- GATE_FILE="$PROJECT_DIR/.claude/gate-status.json"
57
- if [ -f "$GATE_FILE" ] && command -v jq &>/dev/null; then
58
- GATE_SUMMARY=$(jq -r '
59
- "define: \(.define.completed // false)\n" +
60
- "plan: \(.plan.completed // false)\n" +
61
- "build: \(.build.completed // false)\n" +
62
- "verify: \(.verify.completed // false)\n" +
63
- "review: \(.review.completed // false)\n" +
64
- "ship: \(.ship.completed // false)"
65
- ' "$GATE_FILE" 2>/dev/null || echo "(parse error)")
66
- fi
67
-
68
54
  # Checkpoint 파일 작성
69
55
  cat > "$CHECKPOINT_FILE" <<EOF
70
56
  # Checkpoint — $TS
@@ -82,12 +68,6 @@ cat > "$CHECKPOINT_FILE" <<EOF
82
68
  $GIT_STATUS
83
69
  \`\`\`
84
70
 
85
- ## Gate Status
86
-
87
- \`\`\`
88
- $GATE_SUMMARY
89
- \`\`\`
90
-
91
71
  ## Session ID
92
72
  - \`$SESSION_ID\`
93
73
  - Tool count at snapshot: $count
@@ -97,8 +77,7 @@ $GATE_SUMMARY
97
77
  compact 후 다음을 확인:
98
78
  1. \`git status\` — 변경 사항 복원
99
79
  2. \`docs/SPEC.md\` + \`docs/todo.md\` — 현재 작업 컨텍스트
100
- 3. Gate Status 어느 단계에 있었는지
101
- 4. 최근 checkpoint: \`ls -t docs/checkpoints/ | head -5\`
80
+ 3. 최근 checkpoint: \`ls -t docs/checkpoints/ | head -5\`
102
81
  EOF
103
82
 
104
83
  # Counter 리셋
@@ -29,7 +29,7 @@ fi
29
29
  if [ "$SPEC_EXISTS" = "true" ]; then
30
30
  MSG="Session started. Branch: ${BRANCH:-detached}. SPEC exists — read docs/SPEC.md first (Persistent Anchor). Check Change Log and current Phase before starting work.${COMPACT_WARNING}"
31
31
  else
32
- MSG="Session started. Branch: ${BRANCH:-detached}. No SPEC found. Use /uzys:spec to begin workflow.${COMPACT_WARNING}"
32
+ MSG="Session started. Branch: ${BRANCH:-detached}. No SPEC found.${COMPACT_WARNING}"
33
33
  fi
34
34
 
35
35
  cat <<EOF
@@ -6,8 +6,7 @@
6
6
  # 검출 항목:
7
7
  # 1. SPEC.md의 Verification Checklist에 unchecked 항목 존재
8
8
  # 2. todo.md의 unchecked 항목 존재
9
- # 3. SPEC.md Status가 "Define"인데 build/verify gate완료된 경우
10
- # 4. PRD.md Status가 In Progress인데 모든 Phase가 Complete인 경우
9
+ # 3. PRD.md Status가 In Progress인데 모든 PhaseComplete인 경우
11
10
  #
12
11
  # Exit codes:
13
12
  # 0: drift 없음
@@ -47,24 +46,7 @@ if [ -f "$DOCS_DIR/todo.md" ]; then
47
46
  fi
48
47
  fi
49
48
 
50
- # 3. SPEC.md Status 일관성 gate-status.json과 대조
51
- GATE_FILE="$PROJECT_DIR/.claude/gate-status.json"
52
- if [ -f "$GATE_FILE" ] && [ -f "$DOCS_DIR/SPEC.md" ] && command -v jq &> /dev/null; then
53
- BUILD_DONE=$(jq -r '.build.completed // false' "$GATE_FILE")
54
- VERIFY_DONE=$(jq -r '.verify.completed // false' "$GATE_FILE")
55
-
56
- # SPEC Status가 "Define"인지 확인 (frontmatter 형식만, 본문 파이프라인 설명 제외)
57
- if grep -qE "^> \*\*Status\*\*:.*Define" "$DOCS_DIR/SPEC.md"; then
58
- if [ "$BUILD_DONE" = "true" ] || [ "$VERIFY_DONE" = "true" ]; then
59
- echo "DRIFT: SPEC.md Status='Define'인데 Build/Verify gate가 완료됨" >&2
60
- DRIFT=$((DRIFT + 1))
61
- # Ship 게이트에서는 차단 (Build 이후에도 SPEC이 Define이면 안 됨)
62
- [ "$1" = "ship" ] && BLOCK=1
63
- fi
64
- fi
65
- fi
66
-
67
- # 4. Ship 단계에서는 모든 unchecked가 차단
49
+ # 3. Ship 단계에서는 모든 unchecked가 차단
68
50
  if [ "$1" = "ship" ] && [ "$DRIFT" -gt 0 ]; then
69
51
  BLOCK=1
70
52
  fi
@@ -8,18 +8,6 @@
8
8
 
9
9
  {PROJECT_RULES}
10
10
 
11
- ## Workflow Gates
12
-
13
- ```
14
- Define(/uzys-spec) → Plan(/uzys-plan) → Build(/uzys-build) → Verify(/uzys-test) → Review(/uzys-review) → Ship(/uzys-ship)
15
- ```
16
-
17
- 각 단계 완료 없이 다음 진행 금지. 건너뛰기 시도 시 `tool.execute.before` plugin hook이 throw로 차단.
18
-
19
- **Hotfix 단축**: Build → Verify → Ship (긴급 수정에 한함)
20
-
21
- **Executive track**: 6단계 게이트 미적용. 자연어 요청 → strategist + document-skills → 산출물 → 검토.
22
-
23
11
  ## Session Start
24
12
 
25
13
  매 세션 시작 시:
@@ -27,11 +15,11 @@ Define(/uzys-spec) → Plan(/uzys-plan) → Build(/uzys-build) → Verify(/uzys-
27
15
  2. `docs/SPEC.md` 및 `docs/specs/*.md` 재참조 (Persistent Anchor)
28
16
  3. `docs/todo.md` 또는 `docs/plans/*-todo.md` 현재 Phase 확인
29
17
 
30
- `sessionCreated` plugin hook이 자동 수행. Hook 실패 수동 수행.
18
+ 절차를 세션 시작수행한다.
31
19
 
32
20
  ## Protected Files (DO NOT EDIT)
33
21
 
34
- OpenCode `permission` 설정 + plugin `tool.execute.before` 검사가 1차 방어. LLM 추가 준수:
22
+ OpenCode `permission` 설정이 1차 방어. LLM 추가 준수:
35
23
 
36
24
  - `.env*`
37
25
  - `**/credentials.json`
@@ -48,19 +36,6 @@ OpenCode `permission` 설정 + plugin `tool.execute.before` 검사가 1차 방
48
36
  - 세션 시작 시 `git pull` 필수.
49
37
  - Conventional Commits — `<type>: <description>` (feat, fix, refactor, docs, test, chore, perf, ci)
50
38
 
51
- ## Command Reference (OpenCode slash)
52
-
53
- | Slash | 용도 |
54
- |-------|------|
55
- | `/uzys-spec` | Define — 구조화된 스펙 작성 |
56
- | `/uzys-plan` | Plan — 검증 가능한 작은 단위로 분해 |
57
- | `/uzys-build` | Build — TDD 점진적 구현 |
58
- | `/uzys-test` | Verify — 테스트 실행 + 커버리지 |
59
- | `/uzys-review` | Review — 5축 리뷰 (correctness, readability, architecture, security, performance) |
60
- | `/uzys-ship` | Ship — 프리런치 체크리스트 + 배포 |
61
-
62
- OpenCode slash 커맨드는 `.opencode/commands/<name>.md` 파일명이 그대로 슬래시 이름. namespace(`:`) 미사용 — Codex 1차 일관성 + filesystem 호환을 위해 hyphen 채택 (Phase B2 결정, 2026-04-25).
63
-
64
39
  ## Agents (subagent)
65
40
 
66
41
  | Agent | Mode | 역할 |
@@ -73,20 +48,10 @@ OpenCode slash 커맨드는 `.opencode/commands/<name>.md` 파일명이 그대
73
48
 
74
49
  `opencode.json` `agent.<name>.mode = "subagent"` 로 정의.
75
50
 
76
- ## Hooks (Plugin lifecycle)
77
-
78
- OpenCode plugin (`./.opencode/plugin/uzys-harness.ts`)이 다음 3종 hook을 처리:
79
-
80
- - **`tool.execute.before`** — Claude `PreToolUse` 매핑. gate-check (단계 위반 차단)
81
- - **`tool.execute.after`** — Claude `PostToolUse` 매핑. spec-drift-check (산출물 검증)
82
- - **`messageCreated`** filter `role==="user"` — Claude `UserPromptSubmit` 매핑. HITO 카운터
83
-
84
- 자세한 매핑: `docs/decisions/ADR-004-opencode-plugin-mapping.md`.
85
-
86
51
  ## Experience Accumulation
87
52
 
88
53
  - 검증된 learning만 Rules 승격
89
- - HITO 로그: `.claude/evals/hito-YYYY-MM-DD.log` (plugin이 누적)
54
+ - HITO 로그: `.claude/evals/hito-YYYY-MM-DD.log`
90
55
 
91
56
  ## Context Management
92
57
 
@@ -8,8 +8,6 @@
8
8
  ```
9
9
  <project>/AGENTS.md ← AGENTS.md.template + CLAUDE.md
10
10
  <project>/opencode.json ← opencode.json.template + .mcp.json
11
- <project>/.opencode/commands/uzys-{spec,plan,build,test,review,ship}.md
12
- <project>/.opencode/plugins/uzys-harness.ts
13
11
  ```
14
12
 
15
13
  ## 구조
@@ -18,8 +16,6 @@
18
16
  |------|------|-------|
19
17
  | `AGENTS.md.template` | 프로젝트 root AGENTS.md 마스터 | B1 (현재) / C1 transform |
20
18
  | `opencode.json.template` | `opencode.json` 마스터 ($schema + mcp + command + agent + plugin + permission) | B3 |
21
- | `.opencode/commands/uzys-*.md` | 6 slash command stub. `{COMMAND_BODY_PLACEHOLDER}`가 transform 시 `.claude/commands/uzys/<n>.md` 본문으로 치환 | B1 stub / C2 |
22
- | `.opencode/plugins/uzys-harness.ts` | Plugin stub (3 hook 골격) | B1 stub / E1 본문 |
23
19
 
24
20
  ## 디자인 결정
25
21
 
@@ -33,9 +33,7 @@
33
33
  }
34
34
  }
35
35
  },
36
- "plugin": [
37
- "./.opencode/plugins/uzys-harness.ts"
38
- ],
36
+ "plugin": [],
39
37
  "permission": {
40
38
  "question": "allow"
41
39
  }
@@ -14,5 +14,4 @@
14
14
  - main 직접 커밋
15
15
  - 시크릿 하드코딩
16
16
  - 프로덕션 DB 직접 조작
17
- - 게이트 건너뛰기 (Hotfix 예외)
18
17
  - DO NOT CHANGE 영역 수정
@@ -1,6 +1,5 @@
1
1
  | Namespace | Command | 용도 |
2
2
  |-----------|---------|------|
3
- | uzys: | spec, plan, build, test, review, ship | 6-gate 개발 사이클 |
4
3
  | ecc: | security-scan, instinct-status, evolve, promote | 보안 스캔, 학습 관리 |
5
4
  | imm: | teach, polish, critique, audit, shape, adapt | 디자인 품질 관리 |
6
5
  | gsd: | (선택 설치) | 대형 프로젝트 오케스트레이션 |
@@ -1,2 +1,2 @@
1
- - **agent-skills**: 6-gate 워크플로우 엔진
1
+ - **agent-skills**: 개발 워크플로우 백본
2
2
  - **Railway**: 배포 자동화 (FastAPI 서비스 + PostgreSQL)
@@ -14,5 +14,4 @@
14
14
  - main 직접 커밋
15
15
  - 시크릿 하드코딩
16
16
  - 프로덕션 DB 직접 조작
17
- - 게이트 건너뛰기 (Hotfix 예외)
18
17
  - DO NOT CHANGE 영역 수정
@@ -1,6 +1,5 @@
1
1
  | Namespace | Command | 용도 |
2
2
  |-----------|---------|------|
3
- | uzys: | spec, plan, build, test, review, ship | 6-gate 개발 사이클 |
4
3
  | ecc: | security-scan, instinct-status, evolve, promote | 보안 스캔, 학습 관리 |
5
4
  | imm: | teach, polish, critique, audit, shape, adapt | 디자인 품질 관리 |
6
5
  | gsd: | (선택 설치) | 대형 프로젝트 오케스트레이션 |
@@ -1,2 +1,2 @@
1
- - **agent-skills**: 6-gate 워크플로우 엔진
1
+ - **agent-skills**: 개발 워크플로우 백본
2
2
  - **Railway**: 배포 자동화 (Fastify 서비스 + PostgreSQL)
@@ -15,5 +15,4 @@
15
15
  - main 직접 커밋
16
16
  - 시크릿 하드코딩
17
17
  - RLS 비활성화 상태로 배포
18
- - 게이트 건너뛰기 (Hotfix 예외)
19
18
  - DO NOT CHANGE 영역 수정
@@ -1,6 +1,5 @@
1
1
  | Namespace | Command | 용도 |
2
2
  |-----------|---------|------|
3
- | uzys: | spec, plan, build, test, review, ship | 6-gate 개발 사이클 |
4
3
  | ecc: | security-scan, instinct-status, evolve, promote | 보안 스캔, 학습 관리 |
5
4
  | imm: | teach, polish, critique, audit, shape, adapt | 디자인 품질 관리 |
6
5
  | gsd: | (선택 설치) | 대형 프로젝트 오케스트레이션 |
@@ -1,4 +1,4 @@
1
- - **agent-skills**: 6-gate 워크플로우 엔진
1
+ - **agent-skills**: 개발 워크플로우 백본
2
2
  - **supabase-agent-skills**: Supabase 전용 전문 지식 (공식 플러그인, D23)
3
3
  - **Vercel CLI** + **Netlify CLI**: 프론트엔드 배포 (Supabase backend + JAMstack hosting)
4
4
  - **Supabase CLI**: 프로젝트 link / DB migration / Edge Functions 배포
@@ -17,5 +17,3 @@ export SUPABASE_ACCESS_TOKEN=sbp_xxxxxxxxxxxxxxxxxxxxxxxxxxx
17
17
  ```
18
18
 
19
19
  (영구 적용은 `~/.zshrc`/`~/.bashrc`에 export 추가, 또는 프로젝트 `.env`에 기록 — `.env`는 `.gitignore`됨.)
20
-
21
- 이후 `/uzys:spec`에서 "Supabase 프로젝트 X 사용" 명시 → `/uzys:auto`가 MCP로 프로젝트 생성/스키마 적용/Edge Functions 배포 자동.
@@ -16,5 +16,4 @@
16
16
  - 시크릿/자격증명 하드코딩
17
17
  - PII 데이터를 로그/커밋에 포함
18
18
  - 시드 없는 ML 실험 (재현 불가)
19
- - 게이트 건너뛰기 (Hotfix 예외)
20
19
  - DO NOT CHANGE 영역 수정
@@ -1,6 +1,5 @@
1
1
  | Namespace | Command | 용도 |
2
2
  |-----------|---------|------|
3
- | uzys: | spec, plan, build, test, review, ship | 6-gate 개발 사이클 |
4
3
  | ecc: | security-scan, instinct-status, evolve, promote | 보안 스캔, 학습 관리 |
5
4
  | imm: | teach, polish, critique, audit | 디자인 품질 관리 (PySide6 UI) |
6
5
  | gsd: | (선택 설치) | 대형 프로젝트 오케스트레이션 |
@@ -1,2 +1,2 @@
1
- - **agent-skills**: 6-gate 워크플로우 엔진
1
+ - **agent-skills**: 개발 워크플로우 백본
2
2
  - **Railway**: 배포 자동화 (데이터 파이프라인, API 서빙)
@@ -14,4 +14,3 @@
14
14
  - 검증되지 않은 수치를 사실처럼 제시
15
15
  - 출처 없는 통계/시장 데이터 사용
16
16
  - 민감 정보(NDA 대상 등) 커밋
17
- - 6-gate 워크플로우 강제 적용 (이 트랙은 자연어 기반)
@@ -1,6 +1,5 @@
1
1
  | Namespace | Command | 용도 |
2
2
  |-----------|---------|------|
3
- | uzys: | (미적용) | Executive 트랙은 6-gate 미사용 |
4
3
  | ecc: | (미적용) | 개발 보안 스캔 불필요 |
5
4
  | imm: | (미적용) | 프론트엔드 디자인 불필요 |
6
5
  | gsd: | (미적용) | 개발 오케스트레이션 불필요 |
@@ -4,4 +4,4 @@
4
4
  - **document-skills (pdf)**: PDF 생성/합치기/분할
5
5
  - **document-skills (doc-coauthoring)**: 구조화된 문서 공동 작성 워크플로우
6
6
 
7
- **참고**: agent-skills(6-gate), ECC CL-v2, Impeccable은 이 트랙에 미적용.
7
+ **참고**: agent-skills, ECC CL-v2, Impeccable은 이 트랙에 미적용.
@@ -1,10 +1,9 @@
1
- 자연어 워크플로우 (6-gate 미적용):
1
+ 자연어 워크플로우:
2
2
 
3
3
  ```
4
4
  요청 -> strategist 에이전트 분석 -> document-skills로 산출물 생성 -> reviewer 검증 -> 전달
5
5
  ```
6
6
 
7
- - 6-gate 개발 워크플로우를 사용하지 않음.
8
7
  - 자연어 요청을 받아 strategist 에이전트가 구조화.
9
8
  - document-skills가 최종 문서 형식(pptx/docx/xlsx/pdf) 생성.
10
9
  - reviewer가 논리 흐름, 설득력, 범위 커버리지 검증.
@@ -14,4 +14,3 @@
14
14
  - 검증되지 않은 통계를 사실처럼 제시 (예: "고객의 X%는...")
15
15
  - 출처 없는 시장 규모 추정 (TAM/SAM/SOM 무근거)
16
16
  - 경쟁사 비방/허위 비교
17
- - 6-gate 워크플로우 강제 적용 (이 트랙은 자연어 기반)
@@ -1,6 +1,5 @@
1
1
  | Namespace | Command | 용도 |
2
2
  |-----------|---------|------|
3
- | uzys: | (미적용) | 본 트랙은 6-gate 미사용 |
4
3
  | ecc: | (미적용) | 보안 스캔 불필요 |
5
4
 
6
5
  대신 자연어로 직접 요청:
@@ -5,4 +5,4 @@
5
5
  - **research-summarizer**: 시장 조사 요약
6
6
  - **document-skills (docx/xlsx/pptx)**: 캠페인 브리프, 지표 시트, 투자 자료
7
7
 
8
- **참고**: agent-skills(6-gate), ECC CL-v2, Impeccable 코딩 스킬은 이 트랙에 미적용.
8
+ **참고**: agent-skills, ECC CL-v2, Impeccable 코딩 스킬은 이 트랙에 미적용.
@@ -1,10 +1,9 @@
1
- 자연어 워크플로우 (6-gate 미적용):
1
+ 자연어 워크플로우:
2
2
 
3
3
  ```
4
4
  요청 -> Growth/Marketing skill 호출 -> 산출물 생성 -> reviewer 검증 -> 전달
5
5
  ```
6
6
 
7
- - 6-gate 개발 워크플로우를 사용하지 않음.
8
7
  - 자연어 요청을 받아 적절한 marketing skill 호출.
9
8
  - 시장 조사 → research-summarizer → content-creator → marketing-skills/CRO 흐름.
10
9
  - demand-gen은 multi-channel 캠페인 설계 시 호출.
@@ -13,4 +13,3 @@
13
13
  - 검증되지 않은 우선순위 제시 ("그냥 중요해 보임")
14
14
  - 출처 없는 데이터로 RICE Reach/Impact 산정
15
15
  - Jira ticket 임의 closed/reopened
16
- - 6-gate 워크플로우 강제 적용 (이 트랙은 자연어 기반)
@@ -1,6 +1,5 @@
1
1
  | Namespace | Command | 용도 |
2
2
  |-----------|---------|------|
3
- | uzys: | (미적용) | 본 트랙은 6-gate 미사용 |
4
3
  | ecc: | (미적용) | 보안 스캔 불필요 |
5
4
 
6
5
  대신 자연어로 직접 요청:
@@ -2,4 +2,4 @@
2
2
  - **product-skills (15)**: RICE, PRD, agile PO, UX researcher, UI design system, competitive teardown, landing page generator, SaaS scaffolder, product analytics, experiment designer, product discovery, roadmap communicator, code-to-prd, research summarizer, apple-hig-expert
3
3
  - **document-skills (docx/xlsx/pptx)**: PRD/agenda/지표 시트/스폰서 덱
4
4
 
5
- **참고**: agent-skills(6-gate), ECC CL-v2, Impeccable 코딩 스킬은 이 트랙에 미적용.
5
+ **참고**: agent-skills, ECC CL-v2, Impeccable 코딩 스킬은 이 트랙에 미적용.
@@ -1,10 +1,9 @@
1
- 자연어 워크플로우 (6-gate 미적용):
1
+ 자연어 워크플로우:
2
2
 
3
3
  ```
4
4
  요청 -> PM/Scrum 에이전트 분석 -> pm-skills/product-skills로 산출물 생성 -> reviewer 검증 -> 전달
5
5
  ```
6
6
 
7
- - 6-gate 개발 워크플로우를 사용하지 않음.
8
7
  - 자연어 요청을 받아 PM/Scrum/RICE 등 적절한 skill 호출.
9
8
  - pm-skills + product-skills 양쪽 도구가 모두 설치되어 있음 — 상황에 맞춰 선택:
10
9
  - **pm-skills**: Jira/Confluence/Atlassian admin, scrum master 운영 — 운영 중심
@@ -16,5 +16,4 @@
16
16
  - 시크릿 하드코딩
17
17
  - Jinja2 autoescaping 비활성화
18
18
  - 프로덕션 DB 직접 조작
19
- - 게이트 건너뛰기 (Hotfix 예외)
20
19
  - DO NOT CHANGE 영역 수정
@@ -1,6 +1,5 @@
1
1
  | Namespace | Command | 용도 |
2
2
  |-----------|---------|------|
3
- | uzys: | spec, plan, build, test, review, ship | 6-gate 개발 사이클 |
4
3
  | ecc: | security-scan, instinct-status, evolve, promote | 보안 스캔, 학습 관리 |
5
4
  | imm: | teach, polish, critique, audit, shape, adapt | 디자인 품질 관리 |
6
5
  | gsd: | (선택 설치) | 대형 프로젝트 오케스트레이션 |
@@ -1,2 +1,2 @@
1
- - **agent-skills**: 6-gate 워크플로우 엔진
1
+ - **agent-skills**: 개발 워크플로우 백본
2
2
  - **Railway**: 배포 자동화 (FastAPI 서비스 + PostgreSQL)