makdoong2-team 1.8.0 → 2.0.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 (55) hide show
  1. package/agents/makdoong2-analyzer.md +7 -2
  2. package/agents/makdoong2-issue-reporter.md +2 -1
  3. package/agents/makdoong2-publisher.md +7 -3
  4. package/agents/makdoong2-researcher.md +2 -1
  5. package/agents/makdoong2-verifier.md +5 -1
  6. package/assets/makdoong2-team.schema.json +15 -0
  7. package/bin/cli.js +367 -336
  8. package/bin/cli.ts +428 -0
  9. package/dist/config.d.ts +23 -0
  10. package/dist/config.js +113 -0
  11. package/dist/issue-reporter-guard.js +51 -1
  12. package/dist/model-fallback-policy.js +41 -4
  13. package/dist/opencode-plugin.js +351 -242
  14. package/dist/poll-sub-session.d.ts +4 -0
  15. package/dist/poll-sub-session.js +30 -2
  16. package/dist/redact-secrets.js +42 -10
  17. package/dist/state-access-guard.d.ts +40 -1
  18. package/dist/state-access-guard.js +174 -19
  19. package/gates/stage-analysis-verify.sh +12 -2
  20. package/gates/stage2-requirements-verify.sh +6 -1
  21. package/gates/stage3-scope-verify.sh +6 -1
  22. package/gates/stage4-dev-post-verify.sh +10 -5
  23. package/gates/stage4-dev-verify.sh +7 -2
  24. package/gates/stage5-coverage-verify.sh +6 -1
  25. package/gates/stage5-test-verify.sh +7 -2
  26. package/gates/stage6-commit-verify.sh +13 -2
  27. package/gates/stage6-post-commit-verify.sh +18 -4
  28. package/gates/stage7-post-pr-verify.sh +6 -1
  29. package/gates/stage7-pr-verify.sh +7 -2
  30. package/gates/stage8-post-review-verify.sh +6 -1
  31. package/gates/stage8-review-verify.sh +6 -1
  32. package/gates/verify.sh +7 -1
  33. package/package.json +4 -2
  34. package/postinstall.mjs +39 -36
  35. package/scripts/install-lib.mjs +800 -752
  36. package/scripts/install-lib.mts +1179 -0
  37. package/scripts/lint-agent-prompts.sh +38 -7
  38. package/scripts/model-policy.mjs +162 -159
  39. package/scripts/model-policy.mts +274 -0
  40. package/scripts/run-tests.mjs +102 -91
  41. package/scripts/run-tests.mts +162 -0
  42. package/scripts/smoke-test.mjs +128 -144
  43. package/scripts/smoke-test.mts +207 -0
  44. package/scripts/state.sh +78 -7
  45. package/scripts/test-postinstall.mjs +115 -112
  46. package/scripts/test-postinstall.mts +176 -0
  47. package/scripts/test-ubuntu.sh +2 -2
  48. package/scripts/wt-sync-ignored.sh +1 -1
  49. package/skills/_lib/load-secret.sh +53 -0
  50. package/skills/bamboo-ci/run-bamboo.sh +2 -1
  51. package/skills/bitbucket-research/run-repos.sh +2 -1
  52. package/skills/confluence-research/run-docs.sh +2 -1
  53. package/skills/jira-research/run-works.sh +2 -1
  54. package/src/hooks/sync-state.sh +33 -2
  55. package/stages/01-planning.md +27 -1
@@ -22,9 +22,14 @@ permission:
22
22
  "git worktree add*": "deny"
23
23
  "git worktree remove*": "deny"
24
24
  "rm -rf*": "deny"
25
- write:
26
- "**/.makdoong2-team/*/workspace-analysis.json": "allow"
25
+ # 정식 키는 `edit` 다. opencode 의 permission 스키마에 `write` 키는 없고
26
+ # write/edit/patch 툴이 전부 `permission: "edit"` 으로 묻는다 — `write:` 로 적으면
27
+ # 규칙이 조용히 무시되고 기본값 ask 로 떨어진다.
28
+ # 규칙은 findLast(마지막 매치가 이김)라 **넓은 것을 위, 좁은 것을 아래**에 둔다.
29
+ edit:
27
30
  "**/*": "deny"
31
+ ".makdoong2-team/*/workspace-analysis.json": "allow"
32
+ "**/.makdoong2-team/*/workspace-analysis.json": "allow"
28
33
  ---
29
34
 
30
35
  Analysis Phase — Workspace 구조·소스·의존성·관례·통합 지점 read-only 분석. **코드 변경 금지.** 산출물은 `workspace-analysis.json` 한 파일만 허용.
@@ -31,7 +31,8 @@ permission:
31
31
  # 이 패턴은 issue-reporter-guard.ts 의 APPROVABLE_PAYLOAD_RE 와 한 쌍이다 —
32
32
  # 훅이 `-d @/절대경로` 표기만 허용하므로 게시 호출은 반드시 여기에 걸린다.
33
33
  "*-d @/*": "ask"
34
- write:
34
+ # 정식 키는 `edit`. 이슈 payload 를 자기 세션에서 작성해야 하므로 쓰기를 허용한다.
35
+ edit:
35
36
  "**/*": "allow"
36
37
  ---
37
38
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: makdoong2-publisher
3
- description: workflow delivery phase (substages commit/pr/review) — atomic commit execution, PR creation, inline review comments. **DIRECT EXECUTOR**: commit/pr/review 모두 본 에이전트가 worktree 에서 직접 git 명령·MCP 호출을 수행한다. Spawned by makdoong2-team-leader via dispatch_stage tool.
3
+ description: "workflow delivery phase (substages commit/pr/review) — atomic commit execution, PR creation, inline review comments. DIRECT EXECUTOR: commit/pr/review 모두 본 에이전트가 worktree 에서 직접 git 명령·MCP 호출을 수행한다. Spawned by makdoong2-team-leader via dispatch_stage tool."
4
4
  mode: subagent
5
5
  tools:
6
6
  Read: true
@@ -22,9 +22,13 @@ permission:
22
22
  "git worktree add*": "deny"
23
23
  "git worktree remove*": "deny"
24
24
  "rm -rf*": "deny"
25
- write:
26
- "**/.makdoong2-team/*/change-report.md": "allow"
25
+ # 정식 키는 `edit`, 규칙은 findLast — 넓은 것을 위, 좁은 것을 아래. (analyzer 주석 참조)
26
+ edit:
27
27
  "**/*": "deny"
28
+ ".makdoong2-team/*/change-report.md": "allow"
29
+ "**/.makdoong2-team/*/change-report.md": "allow"
30
+ ".makdoong2-team/*/review-comment-plan.json": "allow"
31
+ "**/.makdoong2-team/*/review-comment-plan.json": "allow"
28
32
  ---
29
33
 
30
34
  Delivery Phase — 커밋·PR 생성·리뷰 코멘트. **직접 실행 모델**: commit/pr/review 3개 substage 모두 본 에이전트가 worktree 경로에서 **직접 `git add` / `git commit` / `git push` / bitbucket MCP** 를 호출한다. 부장님(team-leader)은 git 권한이 제거되어 있으며 오케스트레이션만 담당한다.
@@ -26,7 +26,8 @@ permission:
26
26
  "git worktree add*": "deny"
27
27
  "git worktree remove*": "deny"
28
28
  "rm -rf*": "deny"
29
- write:
29
+ # 정식 키는 `edit`. researcher 는 파일을 쓰지 않는다 — 결과는 응답 텍스트로 반환한다.
30
+ edit:
30
31
  "**/*": "deny"
31
32
  ---
32
33
 
@@ -162,7 +162,11 @@ bash <SCRIPTS_DIR>/state.sh get <이슈키> '.stages."2_implementation".substage
162
162
  - 제목 형식: `^(Feat|Fix|Chore|Refactor|Docs|Style|Test|Perf|Ci|Build|Revert): [A-Z]+-[0-9]+ - .+$`
163
163
  - 제목 길이 ≤ 50자
164
164
  - 제목에 결합어(`and`, `&`, `+`, `및`, `그리고`) 없음
165
- - 본문에 `Resolves:` / `Closes:` / `Fixes:` / `See also:` 하나 이상 포함 (이슈 종료/참조 키워드)
165
+ - 본문에 이슈 참조 마커 `[RV] <이슈키>` 포함. **단 본문이 비어 있으면 면제**
166
+ `gates/stage6-post-commit-verify.sh` §7 과 정확히 같은 규칙이다 (`\[RV\][[:space:]]+[A-Z]+-[0-9]+`).
167
+ `Resolves:`/`Closes:`/`Fixes:`/`See also:` 를 요구하지 말 것 — CLAUDE.md · `stages/07-commit.md` ·
168
+ `agents/makdoong2-publisher.md` · `references/` 어디에도 그 키워드는 없고, 규약대로 커밋하면
169
+ post-gate 는 통과하는데 verifier 만 REJECTED 를 내는 구조적 무한 재작업이 된다.
166
170
  - 위반 시 → **REJECTED** + `finding.item = "3_delivery.commit.msg_convention_violation"` + `evidence` 에 위반 커밋 SHA·제목·위반 사유.
167
171
 
168
172
  4. **필수 마커 확인**:
@@ -370,6 +370,21 @@
370
370
  "description": "Per-source wall-clock budget. Default 10. Deliberately shorter than timeout.substage_minutes: a source that cannot answer in this window is recorded as failed so the other sources' findings still land."
371
371
  }
372
372
  }
373
+ },
374
+ "network": {
375
+ "type": "object",
376
+ "description": "사내 엔드포인트(Jira/Confluence/Bitbucket/Bamboo) 접속의 TLS 설정. skills/_lib/load-secret.sh 의 configure_tls_from_makdoong2_config 가 읽는다.",
377
+ "additionalProperties": false,
378
+ "properties": {
379
+ "ca_bundle": {
380
+ "type": "string",
381
+ "description": "사내 사설 CA 번들의 절대 경로. 지정하면 NODE_EXTRA_CA_CERTS 로 넘기고 인증서 검증을 켠다. 사설 CA 환경의 권장 설정이다."
382
+ },
383
+ "tls_reject_unauthorized": {
384
+ "type": "boolean",
385
+ "description": "true 면 인증서 검증을 켠다. ca_bundle 도 이 값도 없으면 검증을 끈 채 동작하며(종전 호환) 매 기동마다 경고를 낸다."
386
+ }
387
+ }
373
388
  }
374
389
  }
375
390
  }