gitifact 0.8.5 → 0.9.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 (82) hide show
  1. package/README.md +14 -36
  2. package/dist/browser/assets/{HgiRefresh-BSPkIVFZ.js → HgiRefresh-CmdxsKUC.js} +1 -1
  3. package/dist/browser/assets/{Markdown-B1P3lpA0.js → Markdown-BpWtY88p.js} +1 -1
  4. package/dist/browser/assets/{Selector-BG3Gd_OR.js → Selector-Dji19JSe.js} +1 -1
  5. package/dist/browser/assets/Tab-BY4IuGKn.js +4 -0
  6. package/dist/browser/assets/{Table-DjTkmoR7.js → Table-Dm6wz2kf.js} +2 -2
  7. package/dist/browser/assets/{Token-D337a1e3.js → Token-9hr7eTF1.js} +1 -1
  8. package/dist/browser/assets/about-C3KamVtV.js +3 -0
  9. package/dist/browser/assets/activity-timeline-BdRnSGAp.js +2 -0
  10. package/dist/browser/assets/changelog-C8_hi0cv.js +1 -0
  11. package/dist/browser/assets/commit-BWyvKMHI.js +4 -0
  12. package/dist/browser/assets/contributors-Bk_xjPNJ.js +1 -0
  13. package/dist/browser/assets/{contributors._email-B7ATmxN1.js → contributors._email-C8GGV2IN.js} +1 -1
  14. package/dist/browser/assets/{contributors.index-Cc0QRJwQ.js → contributors.index-BKMSdIFJ.js} +1 -1
  15. package/dist/browser/assets/dashboard.index-COyVOMnD.js +1 -0
  16. package/dist/browser/assets/{document-kGFspd5u.js → document-BbL374wf.js} +4 -4
  17. package/dist/browser/assets/{document-Cmx0e6kz.css → document-DXzNxu17.css} +1 -1
  18. package/dist/browser/assets/document-Dtyl4_It.js +2 -0
  19. package/dist/browser/assets/features-B1FsIXwk.js +2 -0
  20. package/dist/browser/assets/{features._featureId-DGUBnzjL.js → features._featureId-DT63dqjw.js} +1 -1
  21. package/dist/browser/assets/{features.index-Dgw4kiMG.js → features.index-BGBefKJN.js} +1 -1
  22. package/dist/browser/assets/getting-started-CCqN7NFk.js +1 -0
  23. package/dist/browser/assets/git-CzKF2N75.js +1 -0
  24. package/dist/browser/assets/index-DsduXf6u.js +49 -0
  25. package/dist/browser/assets/{load-more-DVsjzCxE.js → load-more-COb87OhG.js} +1 -1
  26. package/dist/browser/assets/page-header-Cs2fqdqC.js +246 -0
  27. package/dist/browser/assets/{records._recordId-C2qxnLKN.js → records._recordId-DP2stdvW.js} +1 -1
  28. package/dist/browser/assets/{records.commits._commit-CSa3sQ8C.js → records.commits._commit-DQlC8mSd.js} +1 -1
  29. package/dist/browser/assets/{records.docs._docId-SIPsGTwH.js → records.docs._docId-C7snDAo3.js} +1 -1
  30. package/dist/browser/assets/{records.index-DoE_3GrP.js → records.index-DRPp4IAb.js} +1 -1
  31. package/dist/browser/assets/{records.working-Cp5ualrr.js → records.working-Qv9R2KgB.js} +1 -1
  32. package/dist/browser/assets/{settings-tVQIx1Uf.js → settings-DDEler3s.js} +1 -1
  33. package/dist/browser/assets/useInfiniteQuery-IoAmrFi4.js +1 -0
  34. package/dist/browser/assets/{useKeyboardHint-D5jGavym.js → useKeyboardHint-Wwnf-tpi.js} +1 -1
  35. package/dist/browser/index.html +18 -24
  36. package/dist/i18n/en/block.md +7 -7
  37. package/dist/i18n/en/changelog.md +25 -0
  38. package/dist/i18n/en/docs/commit.md +1 -1
  39. package/dist/i18n/en/docs/design.md +3 -3
  40. package/dist/i18n/en/docs/migrate.md +31 -34
  41. package/dist/i18n/en/docs/records.md +2 -2
  42. package/dist/i18n/en/docs/spec.md +80 -4
  43. package/dist/i18n/en/docs/workflow.md +12 -12
  44. package/dist/i18n/en/docs/writing.md +4 -4
  45. package/dist/i18n/ko/block.md +7 -7
  46. package/dist/i18n/ko/changelog.md +25 -0
  47. package/dist/i18n/ko/docs/commit.md +1 -1
  48. package/dist/i18n/ko/docs/design.md +3 -3
  49. package/dist/i18n/ko/docs/migrate.md +30 -33
  50. package/dist/i18n/ko/docs/records.md +2 -2
  51. package/dist/i18n/ko/docs/spec.md +80 -4
  52. package/dist/i18n/ko/docs/workflow.md +12 -12
  53. package/dist/i18n/ko/docs/writing.md +4 -4
  54. package/dist/launcher/cli.mjs +77 -0
  55. package/dist/main.js +405 -639
  56. package/package.json +3 -3
  57. package/dist/browser/assets/MetadataListItem-BEwPg27H.js +0 -1
  58. package/dist/browser/assets/Tab-RKLZrCiK.js +0 -1
  59. package/dist/browser/assets/about-D06ipt4C.js +0 -3
  60. package/dist/browser/assets/activity-timeline-Bl6a55GR.js +0 -2
  61. package/dist/browser/assets/changelog-DCvEVceR.js +0 -1
  62. package/dist/browser/assets/commit-Cj7mcn9u.js +0 -4
  63. package/dist/browser/assets/contributor-2mkEa2Wo.css +0 -1
  64. package/dist/browser/assets/contributor-D1TZSDq9.js +0 -1
  65. package/dist/browser/assets/contributors-lkpVuCXS.js +0 -1
  66. package/dist/browser/assets/dashboard.index-BNTyn3_V.js +0 -1
  67. package/dist/browser/assets/document-7jVYmB_Z.js +0 -2
  68. package/dist/browser/assets/features-CBeEOrok.js +0 -2
  69. package/dist/browser/assets/getting-started-B_LeBSZE.js +0 -1
  70. package/dist/browser/assets/git-DW-pzDOm.js +0 -1
  71. package/dist/browser/assets/index-IML0_BCy.js +0 -49
  72. package/dist/browser/assets/instructions-2OUMP-vh.css +0 -1
  73. package/dist/browser/assets/instructions-Qhbd8_KG.js +0 -1
  74. package/dist/browser/assets/instructions._instructionId-CnX6OyFZ.js +0 -1
  75. package/dist/browser/assets/instructions.agents-0tKcPahQ.js +0 -1
  76. package/dist/browser/assets/instructions.index-B3v6vtEg.js +0 -1
  77. package/dist/browser/assets/lazyRouteComponent-tJOK5sxC.js +0 -1
  78. package/dist/browser/assets/page-header-AS8jZ1ve.js +0 -248
  79. package/dist/browser/assets/project-instructions-DsWrw-nY.jpg +0 -0
  80. package/dist/browser/assets/useInfiniteQuery-C0rB-9Ci.js +0 -1
  81. package/dist/i18n/en/docs/instructions.md +0 -94
  82. package/dist/i18n/ko/docs/instructions.md +0 -94
@@ -1 +0,0 @@
1
- import{G as e,J as t,W as n,q as r}from"./page-header-AS8jZ1ve.js";var i=class extends e{constructor(e,t){super(e,t)}bindMethods(){super.bindMethods(),this.fetchNextPage=this.fetchNextPage.bind(this),this.fetchPreviousPage=this.fetchPreviousPage.bind(this)}setOptions(e){e._type=`infinite`,super.setOptions(e)}getOptimisticResult(e){return e._type=`infinite`,super.getOptimisticResult(e)}fetchNextPage(e){return this.fetch({...e,meta:{fetchMore:{direction:`forward`}}})}fetchPreviousPage(e){return this.fetch({...e,meta:{fetchMore:{direction:`backward`}}})}createResult(e,n){let{state:i}=e,a=super.createResult(e,n),{isFetching:o,isRefetching:s,isError:c,isRefetchError:l}=a,u=i.fetchMeta?.fetchMore?.direction,d=c&&u===`forward`,f=o&&u===`forward`,p=c&&u===`backward`,m=o&&u===`backward`;return{...a,fetchNextPage:this.fetchNextPage,fetchPreviousPage:this.fetchPreviousPage,hasNextPage:r(n,i.data),hasPreviousPage:t(n,i.data),isFetchNextPageError:d,isFetchingNextPage:f,isFetchPreviousPageError:p,isFetchingPreviousPage:m,isRefetchError:l&&!d&&!p,isRefetching:s&&!f&&!m}}};function a(e,t){return n(e,i,t)}export{a as t};
@@ -1,94 +0,0 @@
1
- ---
2
- title: Project instruction format
3
- description: The format of per-task instruction folders, the AGENTS.md index, how instructions relate to specs, assets and commits
4
- ---
5
-
6
- Project instructions hold how work is done in this project: architecture rules, decisions that span features, writing style, verification steps. Requirements say what to build and a design says how one feature is built; instructions say how the project works regardless of feature. Keep feature behavior in specs and do not repeat it in instructions.
7
-
8
- ## Folders and files
9
-
10
- An instruction is a folder, `.gitifact/instructions/<name>/`. Names use lowercase letters, digits and hyphens, up to 80 characters. The folder's `index.md` is the instruction document; split long content into reference files under `references/` in the same folder. `index.md` holds the short rules that always apply and an index, with relative links, of which reference file to read for which work. An agent opens only the reference files the task needs, going by `index.md` and the titles and descriptions in the list.
11
-
12
- ```text
13
- .gitifact/instructions/
14
- cli-architecture/
15
- index.md instruction document (I-)
16
- references/
17
- checklist.md a long list
18
- verification/
19
- index.md
20
- ```
21
-
22
- Create new instructions with the CLI. It issues an `I-` ID, fills in the frontmatter and adds `draft: true`. Write the body, remove that line and check with `gitifact check`.
23
-
24
- ```text
25
- gitifact instructions new code-review --title "Code review" --description "What to check in a review and how to report it. Use when reviewing a change."
26
- ```
27
-
28
- ```markdown
29
- ---
30
- id: I-value-issued-by-the-cli
31
- title: Code review
32
- description: What to check in a review and how to report it. Use when reviewing a change.
33
- ---
34
-
35
- Rules and reasons. Long lists go in [references/checklist.md](references/checklist.md).
36
- ```
37
-
38
- The ID and sentences above only show the structure. The frontmatter of `index.md` has only `id`, `title` and `description`, all required. The `description` says both what the instruction holds and for which work to read it. Do not repeat the title as a `#` heading in the body; start body sections at `##` and do not add gitifact comments. Follow `gitifact guide show writing` for the prose.
39
-
40
- A Markdown file other than `index.md` (a reference file) has only `title` and `description` in its frontmatter, both required. It has no ID, `order` or `draft`: the folder decides where it belongs and the path decides its order. Create reference files directly; there is no CLI command for them. The `description` says what the file holds and for which work to read it. A missing frontmatter or any other key is a `check` problem. The body is not checked.
41
-
42
- ```markdown
43
- ---
44
- title: Review checklist
45
- description: Every item to check in a review. Read when reviewing a large change or one that touches security.
46
- ---
47
-
48
- The items
49
- ```
50
-
51
- Files that are not Markdown, such as images, have no frontmatter.
52
-
53
- Edit existing instructions directly. To rename one, move the folder and keep the ID; to delete one, delete the folder. If a design's `sources` still names a deleted instruction, fix that design too or `check` fails. An instruction folder without `index.md` is an `INSTRUCTION_INDEX_REQUIRED` problem.
54
-
55
- ## The AGENTS.md index
56
-
57
- Agents read AGENTS.md in every session. Write, briefly and outside the GITIFACT block, which instruction to read for which work. The CLI rewrites the block, so do not put the index inside it.
58
-
59
- ```markdown
60
- ## Instructions by task
61
-
62
- - When changing CLI code: `.gitifact/instructions/cli-architecture/index.md`
63
- - Before verifying or committing a change: `.gitifact/instructions/verification/index.md`
64
- ```
65
-
66
- When you create, rename or delete an instruction, update the index too. Short facts every session needs belong in AGENTS.md; content needed only for certain work belongs in an instruction.
67
-
68
- ## Relation to specs
69
-
70
- Instructions do not point at specs. An instruction is knowledge that spans features; tied to one feature's spec, it goes stale when that spec changes. The only direction is a design listing the instructions it followed in `sources` as `{id: I-…}`. Markdown in an instruction folder that links under `.gitifact/spec/` is an `INSTRUCTION_SPEC_LINK` problem. A path pattern describing the storage format inside a code block is not a link.
71
-
72
- Write links between instructions and to assets relative to the file, for example `../verification/index.md` or `../../assets/diagrams/flow.png`. `check` and `changes list` report a link without a target as a `MISSING_LINK_TARGET` warning.
73
-
74
- ## Decisions
75
-
76
- An instruction keeps no decision table or decision log file of its own. Structure and technology choices that span features are written in the instruction body as rules; their context and the alternatives considered go into records that name the instruction (`gitifact guide show records`). Before changing an instruction, read how its decisions went with `gitifact records list --doc <I-ID>`. When a decision changes, change the rule in the body and write a new record.
77
-
78
- When an instruction is created or widened, find the same content in designs with `gitifact specs list --q` and remove it there. Add the instruction to those designs' `sources`, and record the move in one record (`docs` naming the instruction and the designs changed).
79
-
80
- ## Assets
81
-
82
- Keep images, PDFs and other non-Markdown files inside the instruction folder or under `.gitifact/assets/`: files one instruction uses go in its folder, files several documents share go in assets. For assets, the recommended extensions are png, jpg, gif, webp, svg and pdf, and the recommended size is at most 1 MB per file and 50 MB in total. Larger files can still be committed; `check` and `changes list` report them with `ASSET_SIZE`, `ASSET_EXTENSION` and `ASSETS_TOTAL_SIZE` warnings. Assets files no document references are reported with `UNREFERENCED_ASSET`.
83
-
84
- ## Commits
85
-
86
- A change to an instruction is a change to its `index.md`; a record names it by its I- ID in `docs`. Other files of the folder may be listed in `paths` and committed along with it; a change to them alone needs no record (`gitifact guide show commit`).
87
-
88
- ## Agents
89
-
90
- - Before changing requirements, designs or code, find the instructions for the area of work in the AGENTS.md index, read them and follow them. If none fits, say so and proceed.
91
- - `gitifact instructions list` shows whether AGENTS.md exists and, for each instruction, the path, title and description of each file in its folder. Read an instruction's `index.md` with `instructions show <name>` and a file of its folder with `instructions show <name> --file references/<file>`.
92
- - If a request conflicts with an instruction, say so before proceeding. Whether to change the instruction is the user's call.
93
- - When a new rule or decision spans features, suggest recording it in an instruction. If the user agrees, edit an existing instruction or create one with `gitifact instructions new`, and update the AGENTS.md index.
94
- - The 0.7 wiki (`.gitifact/wiki/`) became instructions in 0.8.0. `check` reports any page left there as `WIKI_REMOVED`. Follow `gitifact guide show migrate` to move them.
@@ -1,94 +0,0 @@
1
- ---
2
- title: 프로젝트 지침 형식
3
- description: 작업별 지침 폴더의 형식, AGENTS.md 색인, 명세와의 관계, 에셋과 커밋
4
- ---
5
-
6
- 프로젝트 지침은 이 프로젝트에서 어떻게 일하는지를 담는다. 아키텍처 규칙, 여러 기능에 걸친 결정, 문체, 검증 절차가 여기에 들어간다. 요구사항은 무엇을 만들지, 설계는 한 기능을 어떻게 만들지를 말하고, 지침은 기능과 무관하게 일하는 방식을 말한다. 기능별 동작은 명세에 두고 지침에 반복하지 않는다.
7
-
8
- ## 폴더와 파일
9
-
10
- 지침 하나는 `.gitifact/instructions/<이름>/` 폴더다. 이름은 소문자·숫자·하이픈 80자까지다. 폴더의 `index.md`가 지침 문서이고, 긴 내용은 같은 폴더의 `references/` 아래 참고 파일로 나눈다. `index.md`에는 늘 지킬 짧은 규칙과, 어떤 작업 때 어느 참고 파일을 읽을지의 색인을 상대 링크로 둔다. 에이전트는 `index.md`와 목록의 제목·설명만 보고 이번 작업에 필요한 참고 파일만 연다.
11
-
12
- ```text
13
- .gitifact/instructions/
14
- cli-architecture/
15
- index.md 지침 문서 (I-)
16
- references/
17
- checklist.md 긴 목록
18
- verification/
19
- index.md
20
- ```
21
-
22
- 새 지침은 CLI로 만든다. CLI가 `I-` ID를 발급하고 프론트매터를 채우며 `draft: true`를 붙인다. 본문을 채운 뒤 이 줄을 지우고 `gitifact check`로 확인한다.
23
-
24
- ```text
25
- gitifact instructions new code-review --title "코드 리뷰" --description "리뷰에서 확인할 것과 보고 형식. 변경을 리뷰할 때 쓴다."
26
- ```
27
-
28
- ```markdown
29
- ---
30
- id: I-CLI가발급한값
31
- title: 코드 리뷰
32
- description: 리뷰에서 확인할 것과 보고 형식. 변경을 리뷰할 때 쓴다.
33
- ---
34
-
35
- 규칙과 이유. 긴 목록은 [references/checklist.md](references/checklist.md)에 둔다.
36
- ```
37
-
38
- 위 ID와 문장은 구조 설명이다. `index.md`의 프론트매터는 `id`·`title`·`description`만 두고 모두 필수다. `description`에는 무엇을 담는지와 어떤 작업 때 읽는지를 함께 쓴다. 제목은 본문에 `#`로 다시 쓰지 않으며, 본문 절은 `##`부터 쓰고 gitifact 주석을 넣지 않는다. 본문의 문체는 `gitifact guide show writing`을 따른다.
39
-
40
- `index.md`가 아닌 Markdown 파일(참고 파일)은 프론트매터에 `title`과 `description`만 두며 둘 다 필수다. ID·`order`·`draft`는 없다. 소속은 폴더가, 순서는 경로가 정한다. 참고 파일은 CLI 명령 없이 직접 만든다. `description`에는 무엇을 담는지와 어떤 작업 때 읽는지를 쓴다. 프론트매터가 없거나 다른 키가 있으면 `check`의 문제다. 본문은 검사하지 않는다.
41
-
42
- ```markdown
43
- ---
44
- title: 리뷰 체크리스트
45
- description: 리뷰에서 확인할 항목 전체. 큰 변경이나 보안에 닿는 변경을 리뷰할 때 읽는다.
46
- ---
47
-
48
- 항목들
49
- ```
50
-
51
- 이미지 같은 Markdown이 아닌 파일은 프론트매터 없이 둔다.
52
-
53
- 이미 있는 지침은 파일을 직접 고친다. 이름을 바꿀 때는 폴더를 옮기고 ID를 유지하며, 지울 때는 폴더를 지운다. 지운 지침을 설계의 `sources`가 가리키고 있으면 그 설계도 고쳐야 `check`가 통과한다. `index.md`가 없는 지침 폴더는 `INSTRUCTION_INDEX_REQUIRED` 문제다.
54
-
55
- ## AGENTS.md 색인
56
-
57
- 에이전트는 모든 세션에서 AGENTS.md를 읽는다. 어떤 작업 때 어느 지침을 읽을지는 AGENTS.md의 GITIFACT 블록 밖에 짧게 적는다. 블록은 CLI가 갱신하므로 색인을 블록 안에 쓰지 않는다.
58
-
59
- ```markdown
60
- ## 작업별 지침
61
-
62
- - CLI 코드를 바꿀 때: `.gitifact/instructions/cli-architecture/index.md`
63
- - 변경을 검증하거나 커밋하기 전: `.gitifact/instructions/verification/index.md`
64
- ```
65
-
66
- 지침을 만들거나 이름을 바꾸거나 지우면 색인도 함께 고친다. 매 세션 필요한 짧은 사실은 AGENTS.md에 두고, 특정 작업 때만 필요한 내용은 지침에 둔다.
67
-
68
- ## 명세와의 관계
69
-
70
- 지침은 명세를 가리키지 않는다. 지침은 여러 기능에 걸친 지식이라, 한 기능의 명세에 묶이면 명세가 바뀔 때 함께 낡는다. 설계가 따른 지침을 `sources`에 `{id: I-…}`로 올리는 한 방향만 둔다. 지침 폴더의 Markdown이 `.gitifact/spec/` 아래를 링크하면 `INSTRUCTION_SPEC_LINK` 문제다. 저장 형식을 설명하는 경로 패턴을 코드 블록 안에 쓰는 것은 링크가 아니다.
71
-
72
- 지침 사이의 링크와 에셋으로 가는 링크는 이 파일 기준 상대 경로로 쓴다. 예: `../verification/index.md`, `../../assets/diagrams/flow.png`. 대상이 없는 링크는 `check`와 `changes list`가 `MISSING_LINK_TARGET` 경고로 알린다.
73
-
74
- ## 결정
75
-
76
- 지침은 결정 표나 결정 기록 파일을 스스로 두지 않는다. 여러 기능에 걸친 구조·기술 선택은 지침 본문에 규칙으로 쓰고, 그 맥락과 검토한 대안은 그 지침을 가리키는 결정기록으로 남긴다(`gitifact guide show records`). 지침을 고치기 전에 `gitifact records list --doc <I-ID>`로 결정 흐름을 읽는다. 결정이 바뀌면 본문의 규칙을 고치고 새 결정기록을 쓴다.
77
-
78
- 지침을 새로 만들거나 넓히면 설계들에서 같은 내용을 `gitifact specs list --q`로 찾아 지운다. 지운 설계의 `sources`에 그 지침을 더하고, 옮긴 사실을 결정기록 하나로 남긴다(`docs`에 지침과 고친 설계들).
79
-
80
- ## 에셋
81
-
82
- 이미지·PDF 등 Markdown이 아닌 파일은 지침 폴더 안이나 `.gitifact/assets/` 아래에 둔다. 한 지침만 쓰는 파일은 그 폴더에, 여러 문서가 함께 쓰는 파일은 assets에 둔다. assets의 권장 확장자는 png·jpg·gif·webp·svg·pdf, 권장 크기는 파일당 1MB·전체 50MB 이하다. 넘어도 커밋은 되며 `check`와 `changes list`가 `ASSET_SIZE`·`ASSET_EXTENSION`·`ASSETS_TOTAL_SIZE` 경고로 알린다. 어떤 문서도 참조하지 않는 assets 파일은 `UNREFERENCED_ASSET`으로 알린다.
83
-
84
- ## 커밋
85
-
86
- 지침의 변경은 `index.md`의 변경이다. 결정기록의 `docs`에 지침의 I- ID를 적는다. 폴더 안 다른 파일도 `paths`에 담아 함께 커밋할 수 있고, 그 파일만 바뀐 것에는 기록을 요구하지 않는다(`gitifact guide show commit`).
87
-
88
- ## 에이전트
89
-
90
- - 요구사항·설계·코드를 바꾸기 전에 AGENTS.md 색인에서 작업 영역에 맞는 지침을 찾아 읽고 따른다. 맞는 지침이 없으면 없다고 보고 진행한다.
91
- - `gitifact instructions list`는 AGENTS.md가 있는지와, 지침마다 딸린 파일의 경로·제목·설명을 보인다. 지침은 `instructions show <이름>`으로 `index.md`를, `instructions show <이름> --file references/<파일>`로 딸린 파일을 읽는다.
92
- - 요청이 지침과 어긋나면 진행 전에 알린다. 지침을 바꿀지는 사용자와 정한다.
93
- - 여러 기능에 걸친 규칙이나 결정을 새로 정하면 지침에 남길지 제안한다. 사용자가 동의하면 기존 지침을 고치거나 `gitifact instructions new`로 만들고 AGENTS.md 색인을 함께 고친다.
94
- - 0.7의 위키(`.gitifact/wiki/`)는 0.8.0에서 지침으로 바뀌었다. 위키 페이지가 남아 있으면 `check`가 `WIKI_REMOVED`로 알린다. 옮기는 절차는 `gitifact guide show migrate`를 따른다.