gitifact 0.7.1 → 0.8.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.md +44 -28
- package/dist/THIRD_PARTY_NOTICES.txt +213 -0
- package/dist/browser/assets/Banner-c1hFCLs8.js +1 -0
- package/dist/browser/assets/Grid-BrUBBmhu.js +1 -0
- package/dist/browser/assets/HoverCard-D6keobP0.js +1 -0
- package/dist/browser/assets/{Markdown-68DgpF6D.js → Markdown-Droxhk-G.js} +3 -3
- package/dist/browser/assets/MetadataListItem-C3SqHyk0.js +1 -0
- package/dist/browser/assets/PretendardVariable-CJuje-Rk.woff2 +0 -0
- package/dist/browser/assets/Selector-D_xYW7R_.js +2 -0
- package/dist/browser/assets/Tab-VVHagF2Z.js +1 -0
- package/dist/browser/assets/{Table-GZptlOQa.js → Table-D4v8xCrw.js} +2 -2
- package/dist/browser/assets/TimestampHoverCard-qfGbCkoP.js +1 -0
- package/dist/browser/assets/Token-BLd8-jfF.js +1 -0
- package/dist/browser/assets/about-DeUi-_2z.js +3 -0
- package/dist/browser/assets/activity-CiuGYDQ8.jpg +0 -0
- package/dist/browser/assets/activity-timeline-BEeyw2GA.css +1 -0
- package/dist/browser/assets/activity-timeline-bFoqFwVu.js +2 -0
- package/dist/browser/assets/changelog-Brd1Ninm.js +2 -0
- package/dist/browser/assets/commit-CiMtFlZl.js +4 -0
- package/dist/browser/assets/commit-DVyOH45R.css +1 -0
- package/dist/browser/assets/contributor-2mkEa2Wo.css +1 -0
- package/dist/browser/assets/contributor-C_IskSHq.js +1 -0
- package/dist/browser/assets/contributors-CPdOQKMF.css +1 -0
- package/dist/browser/assets/contributors-CbwXLc7M.js +1 -0
- package/dist/browser/assets/contributors._email-BRfre3dw.js +1 -0
- package/dist/browser/assets/contributors.index-CV84owW7.js +1 -0
- package/dist/browser/assets/dashboard-CMSj2wu3.css +1 -0
- package/dist/browser/assets/dashboard.index-CQdr7hsf.js +1 -0
- package/dist/browser/assets/document-BZmiLx-e.js +2 -0
- package/dist/browser/assets/document-DEGaf2yT.css +1 -0
- package/dist/browser/assets/document-Drgtj94X.css +1 -0
- package/dist/browser/assets/document-JLY2-z8S.js +19 -0
- package/dist/browser/assets/feature-requirements-CA8f9Bcf.jpg +0 -0
- package/dist/browser/assets/features-Cj41kcXf.js +4 -0
- package/dist/browser/assets/features-g3j2elTj.css +1 -0
- package/dist/browser/assets/features._featureId-BgFHsRcy.js +1 -0
- package/dist/browser/assets/features.index-Ca0rzFW6.js +1 -0
- package/dist/browser/assets/getting-started-CgL3Vi9o.js +1 -0
- package/dist/browser/assets/getting-started-DQwukRnd.css +1 -0
- package/dist/browser/assets/git-B7oxggGB.js +1 -0
- package/dist/browser/assets/git-D_wcK2vC.css +1 -0
- package/dist/browser/assets/{gitifact-logo-DPewkDQ4.svg → gitifact-logo-B5c-L14Z.svg} +5 -5
- package/dist/browser/assets/index-CmU7dwFQ.css +1 -0
- package/dist/browser/assets/index-DWRGm9YO.js +48 -0
- package/dist/browser/assets/instructions-2OUMP-vh.css +1 -0
- package/dist/browser/assets/instructions-D3cdAPD3.js +1 -0
- package/dist/browser/assets/instructions._instructionId-BkT14646.js +1 -0
- package/dist/browser/assets/instructions.agents-B3jLRl1u.js +1 -0
- package/dist/browser/assets/instructions.index-8qlhSXoy.js +1 -0
- package/dist/browser/assets/jetbrains-mono-cyrillic-wght-normal-D73BlboJ.woff2 +0 -0
- package/dist/browser/assets/jetbrains-mono-greek-wght-normal-Bw9x6K1M.woff2 +0 -0
- package/dist/browser/assets/jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.woff2 +0 -0
- package/dist/browser/assets/jetbrains-mono-latin-wght-normal-B9CIFXIH.woff2 +0 -0
- package/dist/browser/assets/jetbrains-mono-vietnamese-wght-normal-Bt-aOZkq.woff2 +0 -0
- package/dist/browser/assets/lazyRouteComponent-JkRa2CHo.js +1 -0
- package/dist/browser/assets/page-header-CPL7myjo.js +1 -0
- package/dist/browser/assets/page-header-atX8Nsmd.css +1 -0
- package/dist/browser/assets/project-instructions-DsWrw-nY.jpg +0 -0
- package/dist/browser/assets/records-Dk3shbYl.css +1 -0
- package/dist/browser/assets/records-page-B4Al3fIQ.js +1 -0
- package/dist/browser/assets/records-page-D2F1WJrh.css +1 -0
- package/dist/browser/assets/records._recordId-Chn1SO5R.js +1 -0
- package/dist/browser/assets/records.commits._commit-D4Wk4i_m.js +1 -0
- package/dist/browser/assets/records.index-CViTeD08.js +1 -0
- package/dist/browser/assets/records.working-BsHKMIz-.js +1 -0
- package/dist/browser/assets/request-state-oiWyP9c-.js +1 -0
- package/dist/browser/assets/search-BCYi0CBz.js +1 -0
- package/dist/browser/assets/search-palette-D0ctICJy.js +561 -0
- package/dist/browser/assets/{page-header-ClRsIf4A.css → search-palette-DpmGOAIg.css} +1 -1
- package/dist/browser/assets/settings-BDVKHrS8.js +1 -0
- package/dist/browser/assets/useInfiniteQuery-Bn_R13Ih.js +1 -0
- package/dist/browser/assets/useKeyboardHint-lSxUw5Qj.js +1 -0
- package/dist/browser/favicon.svg +5 -5
- package/dist/browser/gitifact-logo.svg +4 -4
- package/dist/browser/index.html +15 -14
- package/dist/browser/licenses/jetbrains-mono.txt +93 -0
- package/dist/browser/licenses/pretendard.txt +94 -0
- package/dist/i18n/en/block.md +25 -25
- package/dist/i18n/en/changelog.md +44 -0
- package/dist/i18n/en/docs/commit.md +23 -22
- package/dist/i18n/en/docs/design.md +45 -26
- package/dist/i18n/en/docs/instructions.md +94 -0
- package/dist/i18n/en/docs/migrate.md +140 -0
- package/dist/i18n/en/docs/records.md +82 -0
- package/dist/i18n/en/docs/spec.md +68 -31
- package/dist/i18n/en/docs/workflow.md +23 -17
- package/dist/i18n/en/docs/writing.md +46 -15
- package/dist/i18n/ko/block.md +28 -28
- package/dist/i18n/ko/changelog.md +209 -165
- package/dist/i18n/ko/docs/commit.md +21 -20
- package/dist/i18n/ko/docs/design.md +44 -25
- package/dist/i18n/ko/docs/instructions.md +94 -0
- package/dist/i18n/ko/docs/migrate.md +140 -0
- package/dist/i18n/ko/docs/records.md +82 -0
- package/dist/i18n/ko/docs/spec.md +66 -29
- package/dist/i18n/ko/docs/workflow.md +24 -18
- package/dist/i18n/ko/docs/writing.md +46 -15
- package/dist/main.js +4953 -3240
- package/package.json +1 -1
- package/dist/browser/assets/Grid-DlI9bhVm.js +0 -1
- package/dist/browser/assets/MetadataListItem-Bvdm7SCW.js +0 -1
- package/dist/browser/assets/TimestampHoverCard-_VKbn1Py.js +0 -1
- package/dist/browser/assets/about-LBmmoJtj.js +0 -3
- package/dist/browser/assets/activity-DRgs2s8a.jpg +0 -0
- package/dist/browser/assets/activity-paVxugse.js +0 -1
- package/dist/browser/assets/changelog-DMndHW2p.js +0 -2
- package/dist/browser/assets/contributors._email-Ch0pZAte.js +0 -1
- package/dist/browser/assets/contributors.index-BwSL0x8o.js +0 -1
- package/dist/browser/assets/document-Ceyg9sKE.js +0 -11
- package/dist/browser/assets/document-ChObsStB.css +0 -1
- package/dist/browser/assets/feature-requirements-Ci6Hez1P.jpg +0 -0
- package/dist/browser/assets/features._featureId-DtlIpe3Y.js +0 -1
- package/dist/browser/assets/features.index-CsxYbWGn.js +0 -1
- package/dist/browser/assets/getting-started-7e77o6gE.css +0 -1
- package/dist/browser/assets/getting-started-LVh16CZ8.js +0 -1
- package/dist/browser/assets/git-DF8OMSPX.css +0 -1
- package/dist/browser/assets/git-H0K9dpC3.js +0 -1
- package/dist/browser/assets/index-DClmARNh.js +0 -48
- package/dist/browser/assets/index-DJrBgKkG.css +0 -1
- package/dist/browser/assets/page-header-sbYRXZP4.js +0 -531
- package/dist/browser/assets/product-BIGIVBUa.js +0 -10
- package/dist/browser/assets/product-DNaVAIwO.css +0 -1
- package/dist/browser/assets/product.index-vzVtG_rC.js +0 -1
- package/dist/browser/assets/project-wiki-BBWDVTfk.jpg +0 -0
- package/dist/browser/assets/request-state-J0QLm_8G.js +0 -1
- package/dist/browser/assets/requirements-POF-07kZ.js +0 -1
- package/dist/browser/assets/settings-eas7Zq56.js +0 -1
- package/dist/browser/assets/wiki-fpAHbhnh.js +0 -1
- package/dist/browser/assets/wiki._documentId-DJ7LAi8J.js +0 -1
- package/dist/browser/assets/wiki.index-DJ7LAi8J.js +0 -1
- package/dist/i18n/en/docs/wiki.default.md +0 -27
- package/dist/i18n/en/docs/wiki.md +0 -43
- package/dist/i18n/ko/docs/wiki.default.md +0 -27
- package/dist/i18n/ko/docs/wiki.md +0 -43
|
@@ -1,3 +1,47 @@
|
|
|
1
|
+
## 0.8.1 - 2026-09-25
|
|
2
|
+
### Added
|
|
3
|
+
- 목록이 문서마다 마지막 커밋 대비 상태를 보입니다. 커밋하지 않은 문서는 줄 끝(브라우저는 연한 바탕색과 배지)에 추가·변경·삭제 예정이 붙고, 지운 문서는 커밋할 때까지 삭제 예정으로 남습니다. 옮긴 문서는 한 줄의 변경입니다.
|
|
4
|
+
- 브라우저 결정기록 목록 맨 위에 "커밋 전" 항목이 생겼습니다. 커밋하지 않은 결정기록과 바뀐 문서를 `/records/working`에서 마지막 커밋과 비교해 봅니다. 커밋 전 결정기록도 기록 상세 주소로 열립니다.
|
|
5
|
+
- 브라우저 탭으로 돌아왔을 때 그사이 문서나 커밋이 바뀌었으면 새로 고침 알림을 보입니다.
|
|
6
|
+
- `init`이 `.gitifact/.gitattributes`를 만들어 문서를 모든 OS에서 LF로 저장하고 꺼냅니다. 루트 `.gitattributes`는 건드리지 않습니다.
|
|
7
|
+
- 브라우저 커밋 페이지가 결정기록·문서·코드 탭으로 나뉘고, 문서와 코드는 파일 목록 옆에 고른 파일의 비교를 보입니다. 기록 상세는 머리에서 커밋과 같은 커밋의 다른 기록, 코드로 이어집니다.
|
|
8
|
+
- 기능별 요구사항·결정기록·프로젝트 지침 목록의 제목 옆 `?`가 그 화면의 설명을 보입니다.
|
|
9
|
+
### Changed
|
|
10
|
+
- 지침 폴더의 참고 파일(`index.md` 밖의 Markdown)은 프론트매터에 `title`과 `description`을 적어야 합니다. 없으면 `check`가 알립니다. `instructions list`·`show`는 지침마다 파일의 경로·제목·설명을 보이고, 브라우저는 파일을 그 제목으로 부릅니다.
|
|
11
|
+
- 브라우저 지침 사이드바의 파일에 종류별 아이콘을 붙이고 폴더를 접을 수 있게 했습니다. 줄 어디를 눌러도 열립니다.- 모든 목록이 20개씩 보이고 끝에 나온 `--after <값>`으로 이어 읽습니다(`--all`은 전부). 명세는 기능 단위, 결정기록 이력은 커밋 단위로 나누고, JSON은 `page`를 싣습니다.
|
|
12
|
+
- 에이전트는 세션을 시작할 때 지침만 모두 읽고, 명세는 제품 동작 이야기가 나오거나 코드를 고치기 전에 읽습니다. `update`로 지침 블록을 갱신하세요.
|
|
13
|
+
- 지침 블록을 짧게 정리했습니다. 언제 무엇을 읽고 할지를 상황별 표 하나로 모으고 겹치는 규칙을 합쳐, 한국어 기준 약 6,100자에서 3,700자가 됐습니다.
|
|
14
|
+
- 이력 색인이 문서 원문을 담지 않고 비교를 열 때 Git에서 읽어 크기가 약 절반이 됐습니다. 기존 색인은 자동으로 다시 만들어지고, 처음 만들 때 파일을 동시에 읽습니다.
|
|
15
|
+
- 브라우저의 결정기록 목록은 커밋 20개씩, 커밋 페이지는 바뀐 문서 20개씩 원문 없이 받고, 고른 문서의 원문만 읽습니다.
|
|
16
|
+
### Fixed
|
|
17
|
+
- 0.7 프로젝트를 옮기는 전환 커밋이 경로 128개 한도에 걸려 한 커밋으로 끝나지 않던 문제를 고쳤습니다. `migration: true`인 커밋은 경로를 5,000개까지 받고, 경로가 많아도 명령줄 길이에 걸리지 않습니다.
|
|
18
|
+
- 0.7 프로젝트에서 `update`가 보이는 전환 안내가 없어진 `docs` 명령을 가리키던 문제를 고쳤습니다.
|
|
19
|
+
- 브라우저에서 휠 스크롤이 미끄러지는 중에 누른 파일이나 화면이 옛 스크롤 위치로 끌려가던 문제를 고쳤습니다.
|
|
20
|
+
|
|
21
|
+
## 0.8.0 - 2026-09-25
|
|
22
|
+
### Added
|
|
23
|
+
- 프로젝트 지침: 아키텍처 규칙·검증 절차처럼 여러 기능에 걸친 일하는 방식을 `.gitifact/instructions/<이름>/`에 지침으로 두고, AGENTS.md 색인이 어떤 작업에 어느 지침을 읽을지 알립니다. 브라우저의 프로젝트 지침 화면에서 AGENTS.md와 지침, 지침 폴더의 파일을 읽습니다.
|
|
24
|
+
- 결정기록: 기존 문서를 바꾸거나 여러 안 중 하나를 고르면 에이전트가 `records new`로 맥락·결정·검토한 대안을 `.gitifact/records/`에 남기고 문서와 함께 커밋합니다. 브라우저의 결정기록 화면에서 커밋·기록별로 읽고, `records list --doc <ID>`로 한 문서의 결정 흐름을 봅니다.
|
|
25
|
+
- 문서 목록이 grep으로 알 수 없는 것을 골라 줍니다. `specs list`는 `--uncovered`(어떤 설계도 다루지 않는 요구사항), `--without-design`, `--draft`, `--changed-since <날짜|커밋>`, `--author`, `--q`로 거르고, 모든 목록은 `--fields`로 필요한 열만, `--format json`으로도 줍니다.
|
|
26
|
+
- `feedback`: Gitifact의 버그나 개선을 말하면 에이전트가 초안을 보여 주고 확인받은 뒤 Gitifact 저장소에 이슈로 보냅니다. GitHub CLI(`gh`)가 없으면 내용을 채운 이슈 작성 페이지 주소를 알려 줍니다.
|
|
27
|
+
- 브라우저 대시보드가 프로젝트 규모와 최신 결정기록을 보이고, 커밋 페이지가 문서 변경을 git 형식 비교로, 커밋이 바꾼 소스 파일과 함께 보입니다.
|
|
28
|
+
- `guide show migrate`가 0.7 프로젝트를 새 문서 형식으로 옮기는 절차를 안내하고, `update`가 0.7 프로젝트에 전환이 필요하다고 알립니다.
|
|
29
|
+
- 작업을 마치고 커밋하지 않은 채 다음 작업으로 넘어가면 에이전트가 커밋을 한 번 제안합니다.
|
|
30
|
+
### Changed
|
|
31
|
+
- 문서 형식(저장 규약 schemaVersion 3): 문서 하나가 파일 하나입니다. 기능 폴더에 `index.md`·`requirements/`·`design/`을 두고 ID·제목·관계는 프론트매터에 둡니다. 에이전트가 파일을 직접 고치고 `check`로 확인합니다. 0.7로 기록한 프로젝트는 `guide show migrate`로 한 번 옮겨야 합니다.
|
|
32
|
+
- 명령을 리소스별로 정리했습니다: `specs`·`instructions`·`records`의 `list`·`show`·`new`, 전체 검사 `check`, 커밋 `changes list`·`commit`, 작성 지침 `guide list`·`show`.
|
|
33
|
+
- 에이전트는 블록에 적힌 버전의 전역 `gitifact`를 씁니다. 명령이 없거나 버전이 다르면 설치를 제안하고, 그전에는 같은 버전의 npx로 실행합니다.
|
|
34
|
+
- 브라우저의 제품 개요는 대시보드, 활동은 결정기록이 됐고 옛 주소(`/product`·`/activity`)는 없어졌습니다. 문서 목록과 본문의 글꼴을 Pretendard로 맞췄습니다.
|
|
35
|
+
- 이력 색인을 작업 폴더의 `.gitifact/cache/index.db`에 둡니다. 커밋에서 빠지며 지워도 다시 만들어집니다.
|
|
36
|
+
### Removed
|
|
37
|
+
- 위키(`.gitifact/wiki/`): 프로젝트 지침으로 대신합니다. 남은 위키 페이지는 `check`가 알립니다.
|
|
38
|
+
- `spec working`·`save`·`read`·`diff`·`changes`·`commit`, `docs <topic>`, `status`: 문서를 직접 고치는 방식과 `specs`·`changes`·`guide` 명령으로 대신합니다.
|
|
39
|
+
- 변경 이유 파일 `history.jsonl`: 결정기록으로 대신합니다. 0.7 커밋의 이유는 이력에서 계속 읽습니다.
|
|
40
|
+
- Tryce 시절 형식(`.tryce` 경로, `tryce-*` 마커, schemaVersion 1)과 이를 옮기던 `migrate` 명령.
|
|
41
|
+
### Fixed
|
|
42
|
+
- 브라우저의 좁은 화면에서 좌우 여백이 화면마다 달랐고, 필터와 기능 목록이 한 줄로 밀려 잘리던 문제를 고쳤습니다.
|
|
43
|
+
- 한 커밋에서 여러 문서를 설명한 0.7 변경 이유가 결정기록 목록에 문서마다 되풀이되던 문제를 고쳤습니다.
|
|
44
|
+
|
|
1
45
|
## 0.7.1 - 2026-09-21
|
|
2
46
|
### Added
|
|
3
47
|
- 에이전트가 새 세션에서 업데이트를 확인하고 사용자 동의 후 지침을 갱신하도록 안내합니다. 직접 확인할 때는 파일을 바꾸지 않는 `update --check`를 사용할 수 있습니다.
|
|
@@ -18,168 +62,168 @@
|
|
|
18
62
|
- 저장소와 npm README의 기본 언어를 영어로 바꾸고 한국어 문서 링크를 제공합니다.
|
|
19
63
|
- 기존 에이전트 지침 블록은 `--lang`을 지정하지 않으면 업데이트 후에도 원래 언어를 유지합니다. 프로젝트 문서·ID·이력과 schemaVersion 2 저장 규약은 그대로입니다.
|
|
20
64
|
|
|
21
|
-
## 0.6.2 - 2026-09-20
|
|
22
|
-
### Added
|
|
23
|
-
- 기능별 요구사항 목록이 기능 아래에 그 기능의 요구사항을 한 줄씩 보여 줍니다. 누르면 상세의 그 요구사항으로 바로 이동하고 주소가 그 위치를 가리켜, 링크를 공유하거나 북마크해 두면 다시 그 자리에서 열립니다. 목록은 기능 단위로 페이지를 나누어 한 기능의 요구사항이 페이지에 걸쳐 끊기지 않습니다.
|
|
24
|
-
- 요구사항에서 그 요구사항을 설명하는 설계 절로 이동할 수 있습니다. 설계가 절마다 관련 요구사항을 보여 주던 것의 반대 방향입니다.
|
|
25
|
-
### Changed
|
|
26
|
-
- 활동 화면의 한 항목이 커밋 하나가 됐습니다. 변경 이유는 그 이유로 바뀐 기록들 위에 한 번만 적습니다. 한 커밋이 여러 기록을 건드리면 같은 이유가 기록마다 되풀이되던 것을 없앴고, 이유를 한 줄로 자르지 않습니다. 날짜가 바뀌는 자리에는 날짜를 표시합니다.
|
|
27
|
-
- 제품 개요의 "최근 변경 이력"이 "최신 활동"이 되고 활동 화면과 같은 타임라인으로 보입니다. 커밋마다 기록 10개까지 보인 뒤 나머지는 활동으로 잇습니다.
|
|
28
|
-
- 다른 화면에서 특정 요구사항이나 설계 절로 들어오면 그 절의 제목에 형광펜 표시가 남아 어느 것을 보러 왔는지 알 수 있습니다. 절 옆의 세로 줄을 대신합니다.
|
|
29
|
-
- 기능별 요구사항 목록의 정렬이 별도 선택 상자에서 표의 열 머리로 옮겨졌습니다. 기능 이름·요구사항 수·최근 변경 열을 눌러 정렬하고 한 번 더 누르면 방향이 바뀝니다.
|
|
30
|
-
- 왼쪽 메뉴의 로고와 바닥의 버전이 메뉴 항목과 같은 선에서 시작합니다.
|
|
31
|
-
### Fixed
|
|
32
|
-
- 요구사항이나 설계 절을 가리키는 주소를 직접 열었을 때 그 위치로 이동하지 않던 문제를 고쳤습니다.
|
|
33
|
-
- 제품 개요가 이력을 세는 동안 "전체 활동 0건"과 "커밋된 명세 활동이 아직 없습니다"를 보이던 문제를 고쳤습니다. 답이 오기 전에는 불러오는 중임을 보입니다.
|
|
34
|
-
|
|
35
|
-
## 0.6.1 - 2026-09-19
|
|
36
|
-
### Added
|
|
37
|
-
- 브라우저가 이력을 로컬 색인(`.git/gitifact/index.sqlite`)에 둡니다. 한 번 읽은 커밋은 브라우저를 다시 띄워도 다시 읽지 않고 새 커밋만 더합니다. 작업 폴더와 `git status`에는 나타나지 않으며, 지우거나 손상돼도 다시 만들어집니다.
|
|
38
|
-
- 검색창(`Ctrl`/`Cmd`+`K`)이 지난 변경도 찾습니다. 변경의 제목과 이유로 찾고, 고르면 활동 화면의 그 변경을 엽니다.
|
|
39
|
-
### Changed
|
|
40
|
-
- 활동의 필터와 검색어가 불러온 범위가 아니라 전체 이력에 적용됩니다. 아직 불러오지 않은 오래된 변경도 찾고, 목록 아래에 "전체 N건 중 M건"을 알립니다. 한 번에 변경 50건씩 불러옵니다.
|
|
41
|
-
- 제품 개요의 변경 종류 차트와 21일 막대가 전체 이력을 셉니다. 최근 변경 이력은 커밋마다 기록을 12개까지 보이고 나머지는 "외 N건"으로 활동에 잇습니다.
|
|
42
|
-
- 참여자 상세의 최근 활동이 불러온 범위와 무관하게 그 사람의 최근 변경 10건을 보입니다.
|
|
43
|
-
- 활동의 변경 내용은 항목을 열 때 받아 옵니다. 목록에 없는 변경을 가리키는 링크도 그 변경을 엽니다.
|
|
44
|
-
- 활동 목록을 여러 번 더 불러온 뒤 다른 화면에 다녀와도 빠르게 다시 그립니다. 334건 기준 약 2.9초에서 0.4초로 줄었고, 더보기는 불러온 양과 관계없이 일정합니다.
|
|
45
|
-
- 라이트 모드의 글자와 로고를 한 단계 밝게 하고 로고를 줄였습니다. 제품 개요의 두 차트 카드는 높이가 같습니다.
|
|
46
|
-
- 참여자 아바타를 손으로 그린 얼굴 그림으로 바꿨습니다.
|
|
47
|
-
### Fixed
|
|
48
|
-
- 스톤 외의 색 조합에서 문서의 mermaid 다이어그램이 그려지지 않던 문제를 고쳤습니다.
|
|
49
|
-
- 위키 화면의 로딩 골격이 모양 없이 그려지던 문제를 고쳤습니다. 트리·경로·본문 배치대로 보입니다.
|
|
50
|
-
- 검색창에 입력하는 동안 "검색할 문서가 없습니다" 안내가 깜빡이던 문제를 고쳤습니다. 결과를 기다리는 동안에는 결과 줄 모양의 골격이 보입니다.
|
|
51
|
-
|
|
52
|
-
## 0.6.0 - 2026-09-19
|
|
53
|
-
### Added
|
|
54
|
-
- 브라우저가 문서의 ```mermaid 코드 펜스를 다이어그램으로, `> [!NOTE]` 같은 GitHub 알림을 종류가 드러나는 상자로 그립니다. 그리는 코드는 패키지에 함께 담아 외부 서비스를 부르지 않습니다.
|
|
55
|
-
- 브라우저에 문서 검색을 추가했습니다. `Ctrl`(macOS는 `Cmd`)+`K`나 모든 화면 머리의 검색 버튼으로 열고, 기능 명세·요구사항·설계·위키 페이지를 제목과 본문으로 함께 찾아 분류별로 보여 줍니다. 고르면 그 문서가 있는 화면으로 이동합니다.
|
|
56
|
-
- 기능별 요구사항 목록을 설계 여부·참여자로 좁히고 최근 변경순·요구사항 많은 순·이름순으로 정렬할 수 있습니다. 고른 조건은 주소에 남아 기능을 열고 돌아와도 유지됩니다.
|
|
57
|
-
- `gitifact docs writing`을 추가했습니다. 위키 페이지·요구사항·설계에 공통으로 적용하는 문체, 인용과 Alert·다이어그램을 쓰는 기준, AI가 쓴 문장에서 흔한 상투구를 덜어내는 기준을 담습니다. `docs spec`·`docs design`·`docs wiki`가 이 문서를 가리킵니다.
|
|
58
|
-
### Changed
|
|
59
|
-
- 제품 개요가 최근 변경 이력을 본문으로 보여 줍니다. 요약 타일 다섯 개 대신 프로젝트 규모 한 줄과 차트 두 장을 위에 두고, 그 아래에 커밋별 변경 이유와 그 커밋이 건드린 기록을 싣습니다.
|
|
60
|
-
- 브라우저가 불러온 이력을 화면을 옮겨도 유지합니다. 이전에는 다른 메뉴에 다녀올 때마다 불러온 페이지를 전부 다시 읽었습니다. 현재 명세·위키·참여자는 첫 페이지에만 실어 "더 보기"가 같은 내용을 다시 보내지 않습니다.
|
|
61
|
-
- 검색창은 타자가 멈춘 뒤 500ms에 검색합니다. 활동·기능·참여자 화면의 검색창과 문서 검색이 같은 값을 씁니다.
|
|
62
|
-
- 기능 목록의 표에서 모든 행이 같은 값을 갖던 설계 열을 빼고 설계가 없는 기능만 제목 옆에 표시합니다. 요구사항 수에는 가장 많은 기능 대비 막대를 함께 그리고, 모든 행의 높이를 같게 맞췄습니다.
|
|
63
|
-
- GITIFACT 블록의 명령 목록에 `docs writing`이 들어가고, 문서를 쓰기 전에 그 문체를 따르라는 규칙이 늘었습니다. `update` 또는 `init`을 다시 실행하면 갱신됩니다.
|
|
64
|
-
### Removed
|
|
65
|
-
- deprecated였던 `spec prepare`·`spec verify`·`spec commit-plan`·`spec commit-apply`를 삭제했습니다. 0.5.0에서 예고한 일정입니다. 이유 기록과 커밋은 `spec commit` 하나로 합니다.
|
|
66
|
-
|
|
67
|
-
## 0.5.1 - 2026-09-18
|
|
68
|
-
### Changed
|
|
69
|
-
- `init`이 새 버전이 있는지 확인해 결과의 `update`·`install`에 알립니다. 이미 설치된 이전 버전으로 도입해도 새 버전이 있다는 것을 알 수 있습니다. 확인에 실패해도 초기화는 진행되며 `GITIFACT_NO_UPDATE_CHECK`로 끌 수 있습니다. `init` 출력 계약이 version 5가 되었습니다.
|
|
70
|
-
- 소개 글의 시작 프롬프트가 이미 설치돼 있어도 `npm install -g gitifact@latest`로 최신 버전을 설치하도록 안내합니다.
|
|
71
|
-
- CLI보다 새로운 저장 규약을 쓰는 프로젝트에서는 CLI를 최신 버전으로 올리라고 안내합니다.
|
|
72
|
-
### Fixed
|
|
73
|
-
- 0.4.x로 `init`한 프로젝트에서 0.5.0이 새로 `init`하라고 안내하면서 `init`도 거부해 진행할 수 없던 문제를 고쳤습니다. `.gitifact`에 설정 파일만 있으면 `init`이 새 저장 규약으로 바꾸고 결과에 `replaced`로 표시합니다. 이전 규약의 명세나 기록이 있으면 바꾸지 않고 해야 할 일을 안내합니다.
|
|
74
|
-
|
|
75
|
-
## 0.5.0 - 2026-09-18
|
|
76
|
-
### Added
|
|
77
|
-
- 프로젝트 위키를 추가했습니다. 기능에 묶이지 않는 제품 설명·구조·규칙을 `.gitifact/wiki/`에 하위 폴더로 자유롭게 두고, 페이지마다 CLI가 발급한 W-ID로 추적합니다. `spec save`의 `create-doc`·`update-doc`·`move-doc`·`delete-doc`으로 저장하고 커밋할 때 변경 이유를 붙입니다.
|
|
78
|
-
- 위키의 `README.md`가 위키 운영 방침입니다. `init`이 처음 도입할 때 아키텍처 결정 기록(ADR)을 쌓는 기본 방침으로 만들고, 고치면 `docs wiki`가 그 내용을 이 프로젝트의 방침으로 보여 줍니다.
|
|
79
|
-
- 이미지·PDF 같은 파일을 `.gitifact/assets/`에 두고 문서에서 상대 경로로 참조할 수 있습니다. `spec working`이 대상 없는 링크, 큰 파일, 권장하지 않는 확장자, 어떤 문서도 참조하지 않는 에셋을 경고합니다.
|
|
80
|
-
- 설계 문서의 frontmatter `sources`에 참고 문서를 적으면 브라우저 설계 탭 위에 목록으로 보입니다.
|
|
81
|
-
- 브라우저에 프로젝트 위키 메뉴를 추가했습니다. 왼쪽 트리와 오른쪽의 폴더 내용 또는 페이지로 된 탐색기입니다.
|
|
82
|
-
- 브라우저가 문서 본문의 상대 링크를 해당 위키 페이지·기능·에셋으로 연결합니다. `.gitifact` 밖의 저장소 파일은 열지 않고 경로를 복사합니다.
|
|
83
|
-
- `init`이 AGENTS.md에 블록을 쓸 때 CLAUDE.md가 없으면 `@AGENTS.md` 한 줄로 된 CLAUDE.md를 만들어 Claude Code도 블록을 읽게 합니다. `update`는 파일을 만들지 않고 없다는 사실만 알립니다.
|
|
84
|
-
### Changed
|
|
85
|
-
- 저장 규약이 schemaVersion 2가 되었습니다. 파일 ID는 frontmatter에 둡니다. 0.4.x로 만든 프로젝트(schemaVersion 1)는 이 버전에서 읽지 않으며 전환 도구도 없습니다. CLI가 이유를 알리고, 새로 `init`해야 합니다.
|
|
86
|
-
- 브라우저가 제품 개요에서 시작합니다. 활동은 `/activity`로 옮겼고, 필터나 선택이 담긴 이전 활동 주소는 같은 조건의 활동 페이지로 이어집니다.
|
|
87
|
-
- 브라우저의 요구사항 메뉴 이름을 기능별 요구사항으로 바꿨습니다.
|
|
88
|
-
- GITIFACT 블록이 요구사항·설계·코드를 바꾸기 전에 `docs wiki`를 확인하고, 위키 운영 방식을 바꾸려면 위키 README를 고치도록 안내합니다. `update` 또는 `init`을 다시 실행하면 갱신됩니다.
|
|
89
|
-
- 명세 지침의 예시에서 제목 뒤의 "요구사항"을 뺐습니다. 명세 제목은 기능 이름만 씁니다.
|
|
90
|
-
- `update` 출력 계약이 version 3이 되었습니다. `agentDocs.missing`에 없는 CLAUDE.md를 알립니다.
|
|
91
|
-
### Removed
|
|
92
|
-
- 제품 문서와 지침 폴더, 브라우저의 지침 메뉴를 없앴습니다. 같은 내용은 프로젝트 위키에 둡니다.
|
|
93
|
-
### Fixed
|
|
94
|
-
- 브라우저 검색창에서 한글이 조합 도중 끊기거나 "ㄱ거검검"처럼 겹쳐 입력되던 문제를 고쳤습니다.
|
|
95
|
-
|
|
96
|
-
## 0.4.4 - 2026-09-17
|
|
97
|
-
### Added
|
|
98
|
-
- `update --commit`이 블록 안만 바뀐 지침 파일을 `chore(gitifact): refresh GITIFACT block to v<버전>` 메시지로 그 파일만 커밋합니다. 다른 staging은 그대로 남고 훅·서명도 평소대로 실행됩니다. 블록 밖에도 수정이 있거나, 추적하지 않는 파일이거나, Git이 커밋을 거부하면 커밋하지 않고 이유를 알립니다.
|
|
99
|
-
- GITIFACT 블록이 `gitifact` 명령이 없는 환경을 안내합니다. 에이전트는 사용자에게 알리고 동의를 받아 블록에 적힌 버전으로 설치합니다.
|
|
100
|
-
### Changed
|
|
101
|
-
- GITIFACT 블록을 `## Gitifact Guide` 제목, 절 제목, 목록으로 정리하고 끝에 구분선을 넣었습니다. Markdown으로 볼 때 명령 목록이 한 줄로 합쳐지지 않습니다. `update` 또는 `init`을 다시 실행하면 갱신됩니다.
|
|
102
|
-
- 브라우저의 업데이트 안내 문장이 설치 후 `gitifact update --commit`을 실행하도록 안내합니다.
|
|
103
|
-
- `update` 출력 계약이 version 2가 되었습니다. 커밋 결과를 담는 `commit` 필드가 추가됐습니다.
|
|
104
|
-
|
|
105
|
-
## 0.4.3 - 2026-09-17
|
|
106
|
-
### Fixed
|
|
107
|
-
- 브라우저의 새 버전 안내 창에서 제목과 닫기 버튼이 창 가장자리에 붙어 잘려 보이던 문제를 고쳤습니다.
|
|
108
|
-
- 같은 창에서 복사 버튼이 요청 문장과 겹치던 문제를 고쳤습니다. 복사 버튼은 각 코드 블록의 제목 줄에 표시됩니다.
|
|
109
|
-
|
|
110
|
-
## 0.4.2 - 2026-09-17
|
|
111
|
-
### Added
|
|
112
|
-
- `spec working`과 `spec changes`가 저장·커밋 입력 파일을 둘 경로(`inputs.save`·`inputs.commit`)를 알려 줍니다. 기본은 운영체제 임시 폴더이고, 그곳에 쓸 수 없는 환경에서는 Git이 무시하는 `.gitifact/tmp/`를 씁니다.
|
|
113
|
-
- 알려 준 경로의 입력으로 `spec save`·`spec commit`이 성공하면 CLI가 입력 파일을 지우고 결과에 `inputRemoved`를 표시합니다. 실패·`--dry-run`·결과가 불확실한 커밋에서는 남깁니다. 이 폴더의 7일 넘은 파일은 조회 때 정리됩니다.
|
|
114
|
-
- `spec save`·`spec commit`이 `--file -`로 표준 입력을 받습니다.
|
|
115
|
-
- `spec working`에 `--stamp`(stamp와 입력 경로만), `--feature <폴더>`(한 기능만), `--ids`(ID·제목·경로만) 옵션을 추가했습니다.
|
|
116
|
-
### Changed
|
|
117
|
-
- GITIFACT 블록과 작업 흐름 문서가 입력 파일을 알려 준 경로에 쓰고 조회 결과를 파일로 남기지 않도록 안내합니다. `update` 또는 `init`을 다시 실행하면 갱신됩니다.
|
|
118
|
-
- 사용자가 요구사항·프로젝트 현황·변경 이력을 보여 달라고 하면 에이전트가 `browser`를 백그라운드로 실행해 URL을 알려 주도록 안내합니다.
|
|
119
|
-
|
|
120
|
-
## 0.4.1 - 2026-09-17
|
|
121
|
-
### Added
|
|
122
|
-
- 브라우저에 설정 페이지를 추가했습니다. 화면 모드(시스템·라이트·다크)와 색 조합 다섯 가지(스톤, 세이지 & 크림, 올리브 & 웜그레이, 슬레이트 & 블루, 샌드 & 클레이)를 고를 수 있고, 선택은 그 브라우저에만 저장됩니다.
|
|
123
|
-
- 제품 개요에서 제품 문서를 별도의 읽기 페이지로 엽니다.
|
|
124
|
-
### Changed
|
|
125
|
-
- 제품 문서·지침·요구사항·설계·소개 문서를 더 읽기 좋게 다듬었습니다. 본문을 16px로 키우고 문단·코드·표를 같은 폭에 맞췄으며 제목 크기와 간격, 표·인용·링크 모양을 정리했습니다.
|
|
126
|
-
- 코드 블록에 구문 색을 입혔습니다. 기존에는 색이 모두 회색이라 구분되지 않았습니다.
|
|
127
|
-
- 지침 열 보기에서 폴더 행에 문서 수를 표시해 문서 행과 높이를 맞췄습니다.
|
|
128
|
-
- 활동 상세의 변경 내용 박스를 위아래 선만 남겨 단순화했습니다.
|
|
129
|
-
- 사이드 메뉴 하단에는 버전만 표시합니다.
|
|
130
|
-
### Fixed
|
|
131
|
-
- 활동 상세를 스크롤할 때 고정된 제목 위로 본문이 겹쳐 보이던 문제를 고쳤습니다.
|
|
132
|
-
|
|
133
|
-
## 0.4.0 - 2026-09-17
|
|
134
|
-
### Added
|
|
135
|
-
- 브라우저가 새 버전을 알려 줍니다. 에이전트에게 전달할 업데이트 요청 문장과 npm 전역 설치용 명령을 복사할 수 있습니다. 설치는 자동으로 실행하지 않습니다.
|
|
136
|
-
- 브라우저 사이드 메뉴 하단에 실행 중인 CLI 버전을 표시합니다.
|
|
137
|
-
- 브라우저에 패치노트 페이지를 추가했습니다. 버전별 추가·변경·제거·수정 내역을 최신순으로 보여 줍니다.
|
|
138
|
-
- `update` 명령이 새 버전 여부와 설치 방법을 알려 주고, 프로젝트 지침 파일의 GITIFACT 블록을 현재 버전으로 갱신합니다.
|
|
139
|
-
- `browser --no-update-check` 옵션과 `GITIFACT_NO_UPDATE_CHECK` 환경변수로 새 버전 확인을 끌 수 있습니다.
|
|
140
|
-
### Changed
|
|
141
|
-
- `browser`를 시작할 때 CLI가 npm 레지스트리(registry.npmjs.org)에 최신 버전을 한 번 조회합니다. 프로젝트 정보는 보내지 않으며, 실패해도 브라우저는 그대로 동작합니다.
|
|
142
|
-
- `browser-session` 계약이 version 2가 되어 `cliVersion`과 `update` 필드를 포함합니다.
|
|
143
|
-
- GITIFACT 블록의 명령 목록에 `update`를 추가했습니다. `update` 또는 `init`을 다시 실행하면 갱신됩니다.
|
|
144
|
-
|
|
145
|
-
## 0.3.2 - 2026-09-17
|
|
146
|
-
### Added
|
|
147
|
-
- 버전별 변경 내역을 패치노트로 함께 배포합니다.
|
|
148
|
-
- `spec changes`·`spec working`·`spec save`·`spec read`·`spec diff` 도움말에 명령 설명을 추가했습니다.
|
|
149
|
-
- 브라우저 소개 페이지에 로고를 보여 주고 소개 글을 새로 정리했습니다.
|
|
150
|
-
### Changed
|
|
151
|
-
- GITIFACT 블록 첫 줄에 언어(`ko`)를 표시합니다. `init`을 다시 실행하면 갱신되며, 이전 형식의 블록도 그대로 읽습니다.
|
|
152
|
-
### Fixed
|
|
153
|
-
- CLI 안내가 구형 JSON 프로젝트용으로 존재하지 않는 `gitifact@0.4.0`을 안내하던 것을 `@tryce/cli@0.4.0`으로 바로잡았습니다.
|
|
154
|
-
|
|
155
|
-
## 0.3.1 - 2026-09-17
|
|
156
|
-
### Added
|
|
157
|
-
- 브라우저에 제품 개요 대시보드와 Gitifact 소개 페이지를 추가했습니다.
|
|
158
|
-
- 지침 문서를 열 보기로 훑고 미리보기로 읽을 수 있습니다.
|
|
159
|
-
- 헤더에 마지막 조회 시각을, Git 상태 메뉴에 미커밋 변경 표시를 보여 줍니다.
|
|
160
|
-
### Changed
|
|
161
|
-
- 요구사항 메뉴의 이름과 순서를 정리했습니다.
|
|
162
|
-
|
|
163
|
-
## 0.3.0 - 2026-09-16
|
|
164
|
-
### Added
|
|
165
|
-
- `init`이 AGENTS.md·CLAUDE.md·`.cursorrules` 등 에이전트 지침 파일에 `GITIFACT:START`/`GITIFACT:END` 블록을 쓰고, 다시 실행하면 그 사이만 갱신합니다.
|
|
166
|
-
- `init`에 `--agent`·`--remove-agents`·`--skip-agents` 옵션을 추가했습니다.
|
|
167
|
-
- `docs <topic>` 명령이 번들된 지침 문서 다섯 편(workflow·spec·design·product·commit)을 출력합니다.
|
|
168
|
-
### Changed
|
|
169
|
-
- `project-init` 계약이 version 4가 됐습니다.
|
|
170
|
-
### Removed
|
|
171
|
-
- `skills install`·`skills sync`·`skills remove` 명령과 배포 스킬 파일을 제거했습니다. 0.2.0 스킬 설치본은 자동으로 정리하지 않으므로, 설치한 스킬 파일을 직접 삭제하고 `init`을 다시 실행하세요.
|
|
172
|
-
|
|
173
|
-
## 0.2.0 - 2026-09-15
|
|
174
|
-
### Added
|
|
175
|
-
- 1920px 이상 화면에서 브라우저의 기본 글자 크기를 키웁니다.
|
|
176
|
-
### Changed
|
|
177
|
-
- 브라우저의 기여자 화면을 참여자 화면으로 바꿨습니다.
|
|
178
|
-
- 기능·참여자 상세를 `/features/<S-ID>`·`/contributors/<이메일>` 경로로 옮겼습니다. 이전 `?feature=`·`?author=` 링크는 리다이렉트하지 않습니다.
|
|
179
|
-
- Git 상태 페이지를 다른 페이지와 같은 구조로 정리했습니다.
|
|
180
|
-
|
|
181
|
-
## 0.1.0 - 2026-09-15
|
|
182
|
-
### Added
|
|
183
|
-
- `migrate` 명령으로 이전 `@tryce/cli` 저장소를 Gitifact 형식으로 전환합니다. 과거 커밋 기록은 그대로 읽힙니다.
|
|
184
|
-
### Changed
|
|
185
|
-
- Tryce에서 Gitifact로 이름을 바꿨습니다. 패키지는 `gitifact`, 실행 명령은 `gitifact`, 저장 경로는 `.gitifact`, 스킬은 `gitifact-workflow`입니다.
|
|
65
|
+
## 0.6.2 - 2026-09-20
|
|
66
|
+
### Added
|
|
67
|
+
- 기능별 요구사항 목록이 기능 아래에 그 기능의 요구사항을 한 줄씩 보여 줍니다. 누르면 상세의 그 요구사항으로 바로 이동하고 주소가 그 위치를 가리켜, 링크를 공유하거나 북마크해 두면 다시 그 자리에서 열립니다. 목록은 기능 단위로 페이지를 나누어 한 기능의 요구사항이 페이지에 걸쳐 끊기지 않습니다.
|
|
68
|
+
- 요구사항에서 그 요구사항을 설명하는 설계 절로 이동할 수 있습니다. 설계가 절마다 관련 요구사항을 보여 주던 것의 반대 방향입니다.
|
|
69
|
+
### Changed
|
|
70
|
+
- 활동 화면의 한 항목이 커밋 하나가 됐습니다. 변경 이유는 그 이유로 바뀐 기록들 위에 한 번만 적습니다. 한 커밋이 여러 기록을 건드리면 같은 이유가 기록마다 되풀이되던 것을 없앴고, 이유를 한 줄로 자르지 않습니다. 날짜가 바뀌는 자리에는 날짜를 표시합니다.
|
|
71
|
+
- 제품 개요의 "최근 변경 이력"이 "최신 활동"이 되고 활동 화면과 같은 타임라인으로 보입니다. 커밋마다 기록 10개까지 보인 뒤 나머지는 활동으로 잇습니다.
|
|
72
|
+
- 다른 화면에서 특정 요구사항이나 설계 절로 들어오면 그 절의 제목에 형광펜 표시가 남아 어느 것을 보러 왔는지 알 수 있습니다. 절 옆의 세로 줄을 대신합니다.
|
|
73
|
+
- 기능별 요구사항 목록의 정렬이 별도 선택 상자에서 표의 열 머리로 옮겨졌습니다. 기능 이름·요구사항 수·최근 변경 열을 눌러 정렬하고 한 번 더 누르면 방향이 바뀝니다.
|
|
74
|
+
- 왼쪽 메뉴의 로고와 바닥의 버전이 메뉴 항목과 같은 선에서 시작합니다.
|
|
75
|
+
### Fixed
|
|
76
|
+
- 요구사항이나 설계 절을 가리키는 주소를 직접 열었을 때 그 위치로 이동하지 않던 문제를 고쳤습니다.
|
|
77
|
+
- 제품 개요가 이력을 세는 동안 "전체 활동 0건"과 "커밋된 명세 활동이 아직 없습니다"를 보이던 문제를 고쳤습니다. 답이 오기 전에는 불러오는 중임을 보입니다.
|
|
78
|
+
|
|
79
|
+
## 0.6.1 - 2026-09-19
|
|
80
|
+
### Added
|
|
81
|
+
- 브라우저가 이력을 로컬 색인(`.git/gitifact/index.sqlite`)에 둡니다. 한 번 읽은 커밋은 브라우저를 다시 띄워도 다시 읽지 않고 새 커밋만 더합니다. 작업 폴더와 `git status`에는 나타나지 않으며, 지우거나 손상돼도 다시 만들어집니다.
|
|
82
|
+
- 검색창(`Ctrl`/`Cmd`+`K`)이 지난 변경도 찾습니다. 변경의 제목과 이유로 찾고, 고르면 활동 화면의 그 변경을 엽니다.
|
|
83
|
+
### Changed
|
|
84
|
+
- 활동의 필터와 검색어가 불러온 범위가 아니라 전체 이력에 적용됩니다. 아직 불러오지 않은 오래된 변경도 찾고, 목록 아래에 "전체 N건 중 M건"을 알립니다. 한 번에 변경 50건씩 불러옵니다.
|
|
85
|
+
- 제품 개요의 변경 종류 차트와 21일 막대가 전체 이력을 셉니다. 최근 변경 이력은 커밋마다 기록을 12개까지 보이고 나머지는 "외 N건"으로 활동에 잇습니다.
|
|
86
|
+
- 참여자 상세의 최근 활동이 불러온 범위와 무관하게 그 사람의 최근 변경 10건을 보입니다.
|
|
87
|
+
- 활동의 변경 내용은 항목을 열 때 받아 옵니다. 목록에 없는 변경을 가리키는 링크도 그 변경을 엽니다.
|
|
88
|
+
- 활동 목록을 여러 번 더 불러온 뒤 다른 화면에 다녀와도 빠르게 다시 그립니다. 334건 기준 약 2.9초에서 0.4초로 줄었고, 더보기는 불러온 양과 관계없이 일정합니다.
|
|
89
|
+
- 라이트 모드의 글자와 로고를 한 단계 밝게 하고 로고를 줄였습니다. 제품 개요의 두 차트 카드는 높이가 같습니다.
|
|
90
|
+
- 참여자 아바타를 손으로 그린 얼굴 그림으로 바꿨습니다.
|
|
91
|
+
### Fixed
|
|
92
|
+
- 스톤 외의 색 조합에서 문서의 mermaid 다이어그램이 그려지지 않던 문제를 고쳤습니다.
|
|
93
|
+
- 위키 화면의 로딩 골격이 모양 없이 그려지던 문제를 고쳤습니다. 트리·경로·본문 배치대로 보입니다.
|
|
94
|
+
- 검색창에 입력하는 동안 "검색할 문서가 없습니다" 안내가 깜빡이던 문제를 고쳤습니다. 결과를 기다리는 동안에는 결과 줄 모양의 골격이 보입니다.
|
|
95
|
+
|
|
96
|
+
## 0.6.0 - 2026-09-19
|
|
97
|
+
### Added
|
|
98
|
+
- 브라우저가 문서의 ```mermaid 코드 펜스를 다이어그램으로, `> [!NOTE]` 같은 GitHub 알림을 종류가 드러나는 상자로 그립니다. 그리는 코드는 패키지에 함께 담아 외부 서비스를 부르지 않습니다.
|
|
99
|
+
- 브라우저에 문서 검색을 추가했습니다. `Ctrl`(macOS는 `Cmd`)+`K`나 모든 화면 머리의 검색 버튼으로 열고, 기능 명세·요구사항·설계·위키 페이지를 제목과 본문으로 함께 찾아 분류별로 보여 줍니다. 고르면 그 문서가 있는 화면으로 이동합니다.
|
|
100
|
+
- 기능별 요구사항 목록을 설계 여부·참여자로 좁히고 최근 변경순·요구사항 많은 순·이름순으로 정렬할 수 있습니다. 고른 조건은 주소에 남아 기능을 열고 돌아와도 유지됩니다.
|
|
101
|
+
- `gitifact docs writing`을 추가했습니다. 위키 페이지·요구사항·설계에 공통으로 적용하는 문체, 인용과 Alert·다이어그램을 쓰는 기준, AI가 쓴 문장에서 흔한 상투구를 덜어내는 기준을 담습니다. `docs spec`·`docs design`·`docs wiki`가 이 문서를 가리킵니다.
|
|
102
|
+
### Changed
|
|
103
|
+
- 제품 개요가 최근 변경 이력을 본문으로 보여 줍니다. 요약 타일 다섯 개 대신 프로젝트 규모 한 줄과 차트 두 장을 위에 두고, 그 아래에 커밋별 변경 이유와 그 커밋이 건드린 기록을 싣습니다.
|
|
104
|
+
- 브라우저가 불러온 이력을 화면을 옮겨도 유지합니다. 이전에는 다른 메뉴에 다녀올 때마다 불러온 페이지를 전부 다시 읽었습니다. 현재 명세·위키·참여자는 첫 페이지에만 실어 "더 보기"가 같은 내용을 다시 보내지 않습니다.
|
|
105
|
+
- 검색창은 타자가 멈춘 뒤 500ms에 검색합니다. 활동·기능·참여자 화면의 검색창과 문서 검색이 같은 값을 씁니다.
|
|
106
|
+
- 기능 목록의 표에서 모든 행이 같은 값을 갖던 설계 열을 빼고 설계가 없는 기능만 제목 옆에 표시합니다. 요구사항 수에는 가장 많은 기능 대비 막대를 함께 그리고, 모든 행의 높이를 같게 맞췄습니다.
|
|
107
|
+
- GITIFACT 블록의 명령 목록에 `docs writing`이 들어가고, 문서를 쓰기 전에 그 문체를 따르라는 규칙이 늘었습니다. `update` 또는 `init`을 다시 실행하면 갱신됩니다.
|
|
108
|
+
### Removed
|
|
109
|
+
- deprecated였던 `spec prepare`·`spec verify`·`spec commit-plan`·`spec commit-apply`를 삭제했습니다. 0.5.0에서 예고한 일정입니다. 이유 기록과 커밋은 `spec commit` 하나로 합니다.
|
|
110
|
+
|
|
111
|
+
## 0.5.1 - 2026-09-18
|
|
112
|
+
### Changed
|
|
113
|
+
- `init`이 새 버전이 있는지 확인해 결과의 `update`·`install`에 알립니다. 이미 설치된 이전 버전으로 도입해도 새 버전이 있다는 것을 알 수 있습니다. 확인에 실패해도 초기화는 진행되며 `GITIFACT_NO_UPDATE_CHECK`로 끌 수 있습니다. `init` 출력 계약이 version 5가 되었습니다.
|
|
114
|
+
- 소개 글의 시작 프롬프트가 이미 설치돼 있어도 `npm install -g gitifact@latest`로 최신 버전을 설치하도록 안내합니다.
|
|
115
|
+
- CLI보다 새로운 저장 규약을 쓰는 프로젝트에서는 CLI를 최신 버전으로 올리라고 안내합니다.
|
|
116
|
+
### Fixed
|
|
117
|
+
- 0.4.x로 `init`한 프로젝트에서 0.5.0이 새로 `init`하라고 안내하면서 `init`도 거부해 진행할 수 없던 문제를 고쳤습니다. `.gitifact`에 설정 파일만 있으면 `init`이 새 저장 규약으로 바꾸고 결과에 `replaced`로 표시합니다. 이전 규약의 명세나 기록이 있으면 바꾸지 않고 해야 할 일을 안내합니다.
|
|
118
|
+
|
|
119
|
+
## 0.5.0 - 2026-09-18
|
|
120
|
+
### Added
|
|
121
|
+
- 프로젝트 위키를 추가했습니다. 기능에 묶이지 않는 제품 설명·구조·규칙을 `.gitifact/wiki/`에 하위 폴더로 자유롭게 두고, 페이지마다 CLI가 발급한 W-ID로 추적합니다. `spec save`의 `create-doc`·`update-doc`·`move-doc`·`delete-doc`으로 저장하고 커밋할 때 변경 이유를 붙입니다.
|
|
122
|
+
- 위키의 `README.md`가 위키 운영 방침입니다. `init`이 처음 도입할 때 아키텍처 결정 기록(ADR)을 쌓는 기본 방침으로 만들고, 고치면 `docs wiki`가 그 내용을 이 프로젝트의 방침으로 보여 줍니다.
|
|
123
|
+
- 이미지·PDF 같은 파일을 `.gitifact/assets/`에 두고 문서에서 상대 경로로 참조할 수 있습니다. `spec working`이 대상 없는 링크, 큰 파일, 권장하지 않는 확장자, 어떤 문서도 참조하지 않는 에셋을 경고합니다.
|
|
124
|
+
- 설계 문서의 frontmatter `sources`에 참고 문서를 적으면 브라우저 설계 탭 위에 목록으로 보입니다.
|
|
125
|
+
- 브라우저에 프로젝트 위키 메뉴를 추가했습니다. 왼쪽 트리와 오른쪽의 폴더 내용 또는 페이지로 된 탐색기입니다.
|
|
126
|
+
- 브라우저가 문서 본문의 상대 링크를 해당 위키 페이지·기능·에셋으로 연결합니다. `.gitifact` 밖의 저장소 파일은 열지 않고 경로를 복사합니다.
|
|
127
|
+
- `init`이 AGENTS.md에 블록을 쓸 때 CLAUDE.md가 없으면 `@AGENTS.md` 한 줄로 된 CLAUDE.md를 만들어 Claude Code도 블록을 읽게 합니다. `update`는 파일을 만들지 않고 없다는 사실만 알립니다.
|
|
128
|
+
### Changed
|
|
129
|
+
- 저장 규약이 schemaVersion 2가 되었습니다. 파일 ID는 frontmatter에 둡니다. 0.4.x로 만든 프로젝트(schemaVersion 1)는 이 버전에서 읽지 않으며 전환 도구도 없습니다. CLI가 이유를 알리고, 새로 `init`해야 합니다.
|
|
130
|
+
- 브라우저가 제품 개요에서 시작합니다. 활동은 `/activity`로 옮겼고, 필터나 선택이 담긴 이전 활동 주소는 같은 조건의 활동 페이지로 이어집니다.
|
|
131
|
+
- 브라우저의 요구사항 메뉴 이름을 기능별 요구사항으로 바꿨습니다.
|
|
132
|
+
- GITIFACT 블록이 요구사항·설계·코드를 바꾸기 전에 `docs wiki`를 확인하고, 위키 운영 방식을 바꾸려면 위키 README를 고치도록 안내합니다. `update` 또는 `init`을 다시 실행하면 갱신됩니다.
|
|
133
|
+
- 명세 지침의 예시에서 제목 뒤의 "요구사항"을 뺐습니다. 명세 제목은 기능 이름만 씁니다.
|
|
134
|
+
- `update` 출력 계약이 version 3이 되었습니다. `agentDocs.missing`에 없는 CLAUDE.md를 알립니다.
|
|
135
|
+
### Removed
|
|
136
|
+
- 제품 문서와 지침 폴더, 브라우저의 지침 메뉴를 없앴습니다. 같은 내용은 프로젝트 위키에 둡니다.
|
|
137
|
+
### Fixed
|
|
138
|
+
- 브라우저 검색창에서 한글이 조합 도중 끊기거나 "ㄱ거검검"처럼 겹쳐 입력되던 문제를 고쳤습니다.
|
|
139
|
+
|
|
140
|
+
## 0.4.4 - 2026-09-17
|
|
141
|
+
### Added
|
|
142
|
+
- `update --commit`이 블록 안만 바뀐 지침 파일을 `chore(gitifact): refresh GITIFACT block to v<버전>` 메시지로 그 파일만 커밋합니다. 다른 staging은 그대로 남고 훅·서명도 평소대로 실행됩니다. 블록 밖에도 수정이 있거나, 추적하지 않는 파일이거나, Git이 커밋을 거부하면 커밋하지 않고 이유를 알립니다.
|
|
143
|
+
- GITIFACT 블록이 `gitifact` 명령이 없는 환경을 안내합니다. 에이전트는 사용자에게 알리고 동의를 받아 블록에 적힌 버전으로 설치합니다.
|
|
144
|
+
### Changed
|
|
145
|
+
- GITIFACT 블록을 `## Gitifact Guide` 제목, 절 제목, 목록으로 정리하고 끝에 구분선을 넣었습니다. Markdown으로 볼 때 명령 목록이 한 줄로 합쳐지지 않습니다. `update` 또는 `init`을 다시 실행하면 갱신됩니다.
|
|
146
|
+
- 브라우저의 업데이트 안내 문장이 설치 후 `gitifact update --commit`을 실행하도록 안내합니다.
|
|
147
|
+
- `update` 출력 계약이 version 2가 되었습니다. 커밋 결과를 담는 `commit` 필드가 추가됐습니다.
|
|
148
|
+
|
|
149
|
+
## 0.4.3 - 2026-09-17
|
|
150
|
+
### Fixed
|
|
151
|
+
- 브라우저의 새 버전 안내 창에서 제목과 닫기 버튼이 창 가장자리에 붙어 잘려 보이던 문제를 고쳤습니다.
|
|
152
|
+
- 같은 창에서 복사 버튼이 요청 문장과 겹치던 문제를 고쳤습니다. 복사 버튼은 각 코드 블록의 제목 줄에 표시됩니다.
|
|
153
|
+
|
|
154
|
+
## 0.4.2 - 2026-09-17
|
|
155
|
+
### Added
|
|
156
|
+
- `spec working`과 `spec changes`가 저장·커밋 입력 파일을 둘 경로(`inputs.save`·`inputs.commit`)를 알려 줍니다. 기본은 운영체제 임시 폴더이고, 그곳에 쓸 수 없는 환경에서는 Git이 무시하는 `.gitifact/tmp/`를 씁니다.
|
|
157
|
+
- 알려 준 경로의 입력으로 `spec save`·`spec commit`이 성공하면 CLI가 입력 파일을 지우고 결과에 `inputRemoved`를 표시합니다. 실패·`--dry-run`·결과가 불확실한 커밋에서는 남깁니다. 이 폴더의 7일 넘은 파일은 조회 때 정리됩니다.
|
|
158
|
+
- `spec save`·`spec commit`이 `--file -`로 표준 입력을 받습니다.
|
|
159
|
+
- `spec working`에 `--stamp`(stamp와 입력 경로만), `--feature <폴더>`(한 기능만), `--ids`(ID·제목·경로만) 옵션을 추가했습니다.
|
|
160
|
+
### Changed
|
|
161
|
+
- GITIFACT 블록과 작업 흐름 문서가 입력 파일을 알려 준 경로에 쓰고 조회 결과를 파일로 남기지 않도록 안내합니다. `update` 또는 `init`을 다시 실행하면 갱신됩니다.
|
|
162
|
+
- 사용자가 요구사항·프로젝트 현황·변경 이력을 보여 달라고 하면 에이전트가 `browser`를 백그라운드로 실행해 URL을 알려 주도록 안내합니다.
|
|
163
|
+
|
|
164
|
+
## 0.4.1 - 2026-09-17
|
|
165
|
+
### Added
|
|
166
|
+
- 브라우저에 설정 페이지를 추가했습니다. 화면 모드(시스템·라이트·다크)와 색 조합 다섯 가지(스톤, 세이지 & 크림, 올리브 & 웜그레이, 슬레이트 & 블루, 샌드 & 클레이)를 고를 수 있고, 선택은 그 브라우저에만 저장됩니다.
|
|
167
|
+
- 제품 개요에서 제품 문서를 별도의 읽기 페이지로 엽니다.
|
|
168
|
+
### Changed
|
|
169
|
+
- 제품 문서·지침·요구사항·설계·소개 문서를 더 읽기 좋게 다듬었습니다. 본문을 16px로 키우고 문단·코드·표를 같은 폭에 맞췄으며 제목 크기와 간격, 표·인용·링크 모양을 정리했습니다.
|
|
170
|
+
- 코드 블록에 구문 색을 입혔습니다. 기존에는 색이 모두 회색이라 구분되지 않았습니다.
|
|
171
|
+
- 지침 열 보기에서 폴더 행에 문서 수를 표시해 문서 행과 높이를 맞췄습니다.
|
|
172
|
+
- 활동 상세의 변경 내용 박스를 위아래 선만 남겨 단순화했습니다.
|
|
173
|
+
- 사이드 메뉴 하단에는 버전만 표시합니다.
|
|
174
|
+
### Fixed
|
|
175
|
+
- 활동 상세를 스크롤할 때 고정된 제목 위로 본문이 겹쳐 보이던 문제를 고쳤습니다.
|
|
176
|
+
|
|
177
|
+
## 0.4.0 - 2026-09-17
|
|
178
|
+
### Added
|
|
179
|
+
- 브라우저가 새 버전을 알려 줍니다. 에이전트에게 전달할 업데이트 요청 문장과 npm 전역 설치용 명령을 복사할 수 있습니다. 설치는 자동으로 실행하지 않습니다.
|
|
180
|
+
- 브라우저 사이드 메뉴 하단에 실행 중인 CLI 버전을 표시합니다.
|
|
181
|
+
- 브라우저에 패치노트 페이지를 추가했습니다. 버전별 추가·변경·제거·수정 내역을 최신순으로 보여 줍니다.
|
|
182
|
+
- `update` 명령이 새 버전 여부와 설치 방법을 알려 주고, 프로젝트 지침 파일의 GITIFACT 블록을 현재 버전으로 갱신합니다.
|
|
183
|
+
- `browser --no-update-check` 옵션과 `GITIFACT_NO_UPDATE_CHECK` 환경변수로 새 버전 확인을 끌 수 있습니다.
|
|
184
|
+
### Changed
|
|
185
|
+
- `browser`를 시작할 때 CLI가 npm 레지스트리(registry.npmjs.org)에 최신 버전을 한 번 조회합니다. 프로젝트 정보는 보내지 않으며, 실패해도 브라우저는 그대로 동작합니다.
|
|
186
|
+
- `browser-session` 계약이 version 2가 되어 `cliVersion`과 `update` 필드를 포함합니다.
|
|
187
|
+
- GITIFACT 블록의 명령 목록에 `update`를 추가했습니다. `update` 또는 `init`을 다시 실행하면 갱신됩니다.
|
|
188
|
+
|
|
189
|
+
## 0.3.2 - 2026-09-17
|
|
190
|
+
### Added
|
|
191
|
+
- 버전별 변경 내역을 패치노트로 함께 배포합니다.
|
|
192
|
+
- `spec changes`·`spec working`·`spec save`·`spec read`·`spec diff` 도움말에 명령 설명을 추가했습니다.
|
|
193
|
+
- 브라우저 소개 페이지에 로고를 보여 주고 소개 글을 새로 정리했습니다.
|
|
194
|
+
### Changed
|
|
195
|
+
- GITIFACT 블록 첫 줄에 언어(`ko`)를 표시합니다. `init`을 다시 실행하면 갱신되며, 이전 형식의 블록도 그대로 읽습니다.
|
|
196
|
+
### Fixed
|
|
197
|
+
- CLI 안내가 구형 JSON 프로젝트용으로 존재하지 않는 `gitifact@0.4.0`을 안내하던 것을 `@tryce/cli@0.4.0`으로 바로잡았습니다.
|
|
198
|
+
|
|
199
|
+
## 0.3.1 - 2026-09-17
|
|
200
|
+
### Added
|
|
201
|
+
- 브라우저에 제품 개요 대시보드와 Gitifact 소개 페이지를 추가했습니다.
|
|
202
|
+
- 지침 문서를 열 보기로 훑고 미리보기로 읽을 수 있습니다.
|
|
203
|
+
- 헤더에 마지막 조회 시각을, Git 상태 메뉴에 미커밋 변경 표시를 보여 줍니다.
|
|
204
|
+
### Changed
|
|
205
|
+
- 요구사항 메뉴의 이름과 순서를 정리했습니다.
|
|
206
|
+
|
|
207
|
+
## 0.3.0 - 2026-09-16
|
|
208
|
+
### Added
|
|
209
|
+
- `init`이 AGENTS.md·CLAUDE.md·`.cursorrules` 등 에이전트 지침 파일에 `GITIFACT:START`/`GITIFACT:END` 블록을 쓰고, 다시 실행하면 그 사이만 갱신합니다.
|
|
210
|
+
- `init`에 `--agent`·`--remove-agents`·`--skip-agents` 옵션을 추가했습니다.
|
|
211
|
+
- `docs <topic>` 명령이 번들된 지침 문서 다섯 편(workflow·spec·design·product·commit)을 출력합니다.
|
|
212
|
+
### Changed
|
|
213
|
+
- `project-init` 계약이 version 4가 됐습니다.
|
|
214
|
+
### Removed
|
|
215
|
+
- `skills install`·`skills sync`·`skills remove` 명령과 배포 스킬 파일을 제거했습니다. 0.2.0 스킬 설치본은 자동으로 정리하지 않으므로, 설치한 스킬 파일을 직접 삭제하고 `init`을 다시 실행하세요.
|
|
216
|
+
|
|
217
|
+
## 0.2.0 - 2026-09-15
|
|
218
|
+
### Added
|
|
219
|
+
- 1920px 이상 화면에서 브라우저의 기본 글자 크기를 키웁니다.
|
|
220
|
+
### Changed
|
|
221
|
+
- 브라우저의 기여자 화면을 참여자 화면으로 바꿨습니다.
|
|
222
|
+
- 기능·참여자 상세를 `/features/<S-ID>`·`/contributors/<이메일>` 경로로 옮겼습니다. 이전 `?feature=`·`?author=` 링크는 리다이렉트하지 않습니다.
|
|
223
|
+
- Git 상태 페이지를 다른 페이지와 같은 구조로 정리했습니다.
|
|
224
|
+
|
|
225
|
+
## 0.1.0 - 2026-09-15
|
|
226
|
+
### Added
|
|
227
|
+
- `migrate` 명령으로 이전 `@tryce/cli` 저장소를 Gitifact 형식으로 전환합니다. 과거 커밋 기록은 그대로 읽힙니다.
|
|
228
|
+
### Changed
|
|
229
|
+
- Tryce에서 Gitifact로 이름을 바꿨습니다. 패키지는 `gitifact`, 실행 명령은 `gitifact`, 저장 경로는 `.gitifact`, 스킬은 `gitifact-workflow`입니다.
|
|
@@ -1,45 +1,46 @@
|
|
|
1
|
-
|
|
1
|
+
---
|
|
2
|
+
title: 커밋 시점의 최종 변경
|
|
3
|
+
description: 커밋 입력, 결정기록과 함께 커밋하기, 나눠 커밋하기, 실패 후 복구
|
|
4
|
+
---
|
|
2
5
|
|
|
3
6
|
자동 기록은 커밋 권한이 아니다. 사용자 커밋 요청 또는 명시적 프로젝트 정책이 있을 때 실행한다. 정책이 없다는 이유로 자동 커밋하지 않으며 이미 부여된 권한은 다시 묻지 않는다. 푸시는 별도 권한을 따른다.
|
|
4
7
|
|
|
5
8
|
## 절차
|
|
6
9
|
|
|
7
|
-
1. 실제 diff와 관련 테스트를
|
|
8
|
-
2. 아래 입력을
|
|
9
|
-
3. 성공 결과와 실제 Git 상태를
|
|
10
|
+
1. 실제 diff와 관련 테스트를 확인하고 `gitifact changes list`를 실행한다. HEAD 대비 바뀐 문서, 커밋하지 않은 결정기록과 각 기록이 설명하는 문서, 결정기록이 없는 수정·이동·삭제, 문서 검사 결과, 커밋 입력 파일 경로가 나온다.
|
|
11
|
+
2. 아래 입력을 그 경로에 UTF-8 JSON으로 쓰고 `gitifact changes commit --file <그 경로>`를 실행한다. 범위나 기록 누락을 먼저 보려면 `--dry-run`을 붙인다. dry-run은 파일을 쓰거나 커밋하지 않는다. 커밋이 성공하면 CLI가 입력 파일을 지운다.
|
|
12
|
+
3. 성공 결과와 실제 Git 상태를 확인한다. 결과의 `withoutRecord`에 문서가 남아 있으면 결정기록 누락으로 보고한다.
|
|
10
13
|
|
|
11
14
|
```json
|
|
12
15
|
{
|
|
13
|
-
"
|
|
14
|
-
"paths": [".gitifact/spec/posts/requirements.md", ".gitifact/spec/posts/history.jsonl", "src/posts.ts", "test/posts.test.ts"],
|
|
16
|
+
"paths": [".gitifact/records/20260924/DR-실제값.md", ".gitifact/spec/posts/requirements/delete.md", ".gitifact/spec/posts/design/overview.md", "src/posts.ts", "test/posts.test.ts"],
|
|
15
17
|
"message": "프로젝트 정책에 맞는 메시지",
|
|
16
18
|
"authorization": { "basis": "user-request", "evidence": "실제 커밋 요청과 작업 범위" }
|
|
17
19
|
}
|
|
18
20
|
```
|
|
19
21
|
|
|
20
|
-
|
|
22
|
+
예시 경로·ID·근거를 그대로 복사하지 않는다. 입력에는 이 세 필드만 둔다. `basis`는 `user-request` 또는 `project-policy`다. CLI는 자연어 권한의 진위를 판정하지 않는다.
|
|
21
23
|
|
|
22
24
|
## 입력 규칙
|
|
23
25
|
|
|
24
|
-
-
|
|
25
|
-
-
|
|
26
|
-
-
|
|
27
|
-
-
|
|
28
|
-
-
|
|
29
|
-
-
|
|
30
|
-
-
|
|
31
|
-
- 훅 등으로 커밋이 거부되고 HEAD가 그대로면 이번에 쓴 이유 파일과 index는 실행 전으로 돌아간다. 원인을 고친 뒤 같은 입력으로 다시 실행한다. 실패 후 훅·서명을 끄지 않는다. HEAD가 바뀐 불확실한 실행은 재시도하지 않고 복구 자료를 확인한다. 잠금이나 index 백업을 임의 삭제하거나 커밋을 reset하지 않는다.
|
|
26
|
+
- **결정기록:** 기록은 결정한 순간에 `gitifact records new`로 만들어 둔 파일이다(`gitifact guide show records`). 커밋할 기록 파일을 `paths`에 넣는다. 넣지 않은 기록은 작업 폴더에 남아 다음 커밋을 기다린다. 커밋하는 기록에 `draft: true`가 남아 있으면 거부된다.
|
|
27
|
+
- **기록이 필요한 변경:** 기존 문서를 바꾸거나 옮기거나 지웠는데 그 문서를 가리키는 기록이 없으면 `withoutRecord`로 표시된다. 커밋을 막지는 않는다. 새로 만든 문서는 기록이 없어도 된다. 모르는 이유를 꾸며내지 않는다.
|
|
28
|
+
- **`paths`:** 이번 커밋에 담을 문서 파일, 결정기록 파일, 관련 코드·테스트를 담는다. 바뀐 문서를 모두 담을 필요는 없다. 담지 않은 문서는 다음 커밋으로 남는다. 옮긴 문서는 옛 경로와 새 경로를 함께 담아야 한다. 지운 문서는 지운 경로를 담는다. 문서가 참조하는 새 에셋(`.gitifact/assets/…`)도 함께 담는다. 한 커밋에 128개까지 담는다(`migration: true`인 전환 커밋은 5,000개). 넘으면 결정 단위로 나눠 커밋한다.
|
|
29
|
+
- **커밋된 기록:** 이미 커밋된 기록을 고치거나 지우면 `changes list`와 `check`가 알리고 `changes commit`이 거부한다. HEAD대로 되돌리고 바뀐 결정은 새 기록으로 쓴다.
|
|
30
|
+
- **검사:** 커밋 직전에 `check`와 같은 검사를 돌린다. 문제가 있거나 문서·커밋할 기록에 `draft: true`가 남아 있으면 커밋하지 않는다. 링크·에셋 경고는 커밋을 막지 않는다.
|
|
31
|
+
- **staging:** 실행 전에 staging하지 않는다. 기존 staging이나 intent-to-add가 있으면 CLI가 거부한다. 스스로 만든 staging(`git mv`·`git rm` 등)은 `git restore --staged`로 풀고 파일은 그대로 둔 채 다시 실행한다. 파일을 지우거나 옮길 때는 `git rm`·`git mv` 대신 일반 삭제·이동을 쓴다.
|
|
32
|
+
- **실패 후:** 훅 등으로 커밋이 거부되고 HEAD가 그대로면 index는 실행 전으로 돌아가고 파일은 그대로다. 원인을 고친 뒤 같은 입력으로 다시 실행한다. 실패 후 훅·서명을 끄지 않는다. 결과를 확인하지 못했다는 오류(HEAD가 바뀌었을 수 있음)면 재시도하지 않고 안내된 복구 자료와 HEAD를 확인한다. 잠금 폴더나 index 백업을 임의로 지우거나 커밋을 reset하지 않는다.
|
|
32
33
|
|
|
33
34
|
커밋 참조는 구현 완료 선언이 아니다. 실제 테스트 결과와 남은 제한을 별도로 알린다.
|
|
34
35
|
|
|
35
36
|
## 무엇을 한 커밋에 담는가
|
|
36
37
|
|
|
37
|
-
기본은
|
|
38
|
+
기본은 결정 하나를 커밋 하나에 담는 것이다. 그 결정기록, 결정이 바꾼 문서, 그것을 구현한 코드·테스트를 함께 담는다. `changes list`는 기록마다 설명하는 문서를 보여 주므로 이것을 보고 나눈다. 두 기록이 한 문서를 함께 설명하면(`두 기록이 함께 설명하는 문서`) 그 기록들은 한 커밋에 담는다. 코드 파일은 CLI가 기록에 나눠 주지 못하므로 어느 결정의 것인지 판단해 담고, 한 파일이 두 결정에 걸치면 함께 담는다.
|
|
38
39
|
|
|
39
|
-
|
|
40
|
+
작업 하나를 마치고 커밋하지 않은 채 다음 작업을 시작하게 되면 커밋을 한 번 제안한다. 다음 작업이 같은 파일을 고치면 두 결정이 한 파일에 섞여 결정별로 나눠 커밋하기 어렵고, 이력에서 어느 변경이 어느 결정의 것인지 흐려진다는 점을 한 줄로 알린다. 제안은 커밋 권한이 아니므로 사용자가 답하기 전에 커밋하지 않고, 원하지 않으면 같은 세션에서 다시 묻지 않는다.
|
|
40
41
|
|
|
41
|
-
|
|
42
|
+
프로젝트에 커밋을 묶는 규칙이 있으면 그 규칙을 따른다. 분리 정책이면 문서와 기록을 먼저 커밋하고, 이어지는 코드·테스트 커밋의 메시지에서 관련 문서를 설명한다. 기존 사용자 변경이나 staging을 지우거나 무관한 변경까지 포함하지 않는다.
|
|
42
43
|
|
|
43
|
-
##
|
|
44
|
+
## 메시지와 트레일러
|
|
44
45
|
|
|
45
|
-
|
|
46
|
+
프로젝트의 커밋 메시지 규약을 따른다. 규약이 없으면 첫 줄에 무엇을 바꿨는지, 본문에 왜 바꿨는지를 짧게 쓴다. CLI가 바뀐 문서와 기록이 가리킨 문서로 트레일러를 붙인다(요구사항은 `Gitifact-Req`, 설계는 `Gitifact-Design`, 기능·지침은 `Gitifact-Doc`, 결정기록은 `Gitifact-Record`). 메시지에 `Gitifact-`로 시작하는 줄을 직접 쓰면 거부된다.
|