@simplysm/sd-claude 14.0.87 → 14.0.89

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 (127) hide show
  1. package/claude/references/sd-simplysm14/README.md +17 -18
  2. package/claude/references/sd-simplysm14/apis/angular/README.md +35 -0
  3. package/claude/references/sd-simplysm14/apis/angular/controls.md +51 -0
  4. package/claude/references/sd-simplysm14/apis/angular/crud.md +53 -0
  5. package/claude/references/sd-simplysm14/apis/angular/directives.md +34 -0
  6. package/claude/references/sd-simplysm14/apis/angular/features.md +40 -0
  7. package/claude/references/sd-simplysm14/apis/angular/infra.md +74 -0
  8. package/claude/references/sd-simplysm14/apis/angular/layout.md +27 -0
  9. package/claude/references/sd-simplysm14/apis/angular/overlay.md +103 -0
  10. package/claude/references/sd-simplysm14/apis/angular/routing-appstructure.md +69 -0
  11. package/claude/references/sd-simplysm14/apis/angular/selection-managers.md +28 -0
  12. package/claude/references/sd-simplysm14/apis/angular/shared-data.md +57 -0
  13. package/claude/references/sd-simplysm14/apis/angular/sheet.md +73 -0
  14. package/claude/references/sd-simplysm14/apis/capacitor-plugin-auto-update/README.md +78 -0
  15. package/claude/references/sd-simplysm14/apis/capacitor-plugin-file-system/README.md +66 -0
  16. package/claude/references/sd-simplysm14/apis/capacitor-plugin-intent/README.md +71 -0
  17. package/claude/references/sd-simplysm14/apis/capacitor-plugin-usb-storage/README.md +62 -0
  18. package/claude/references/sd-simplysm14/apis/core-browser/README.md +70 -0
  19. package/claude/references/sd-simplysm14/apis/core-browser/dom-element.md +62 -0
  20. package/claude/references/sd-simplysm14/apis/core-browser/indexed-db.md +80 -0
  21. package/claude/references/sd-simplysm14/apis/core-common/README.md +262 -0
  22. package/claude/references/sd-simplysm14/apis/core-common/array-ext.md +121 -0
  23. package/claude/references/sd-simplysm14/apis/core-common/async-runtime.md +128 -0
  24. package/claude/references/sd-simplysm14/apis/core-common/datetime.md +129 -0
  25. package/claude/references/sd-simplysm14/apis/core-common/errors.md +91 -0
  26. package/claude/references/sd-simplysm14/apis/core-common/json-transfer.md +53 -0
  27. package/claude/references/sd-simplysm14/apis/core-common/obj.md +117 -0
  28. package/claude/references/sd-simplysm14/apis/core-node/README.md +17 -0
  29. package/claude/references/sd-simplysm14/apis/core-node/consola.md +43 -0
  30. package/claude/references/sd-simplysm14/apis/core-node/cpx.md +50 -0
  31. package/claude/references/sd-simplysm14/apis/core-node/fs-watcher.md +41 -0
  32. package/claude/references/sd-simplysm14/apis/core-node/fsx.md +72 -0
  33. package/claude/references/sd-simplysm14/apis/core-node/pathx.md +39 -0
  34. package/claude/references/sd-simplysm14/apis/core-node/worker.md +52 -0
  35. package/claude/references/sd-simplysm14/apis/excel/README.md +43 -0
  36. package/claude/references/sd-simplysm14/apis/excel/cell.md +54 -0
  37. package/claude/references/sd-simplysm14/apis/excel/conditional-format.md +51 -0
  38. package/claude/references/sd-simplysm14/apis/excel/style.md +67 -0
  39. package/claude/references/sd-simplysm14/apis/excel/utils.md +35 -0
  40. package/claude/references/sd-simplysm14/apis/excel/workbook-worksheet.md +97 -0
  41. package/claude/references/sd-simplysm14/apis/excel/wrapper.md +83 -0
  42. package/claude/references/sd-simplysm14/apis/lint/README.md +49 -0
  43. package/claude/references/sd-simplysm14/apis/lint/rules.md +130 -0
  44. package/claude/references/sd-simplysm14/apis/orm-common/README.md +13 -0
  45. package/claude/references/sd-simplysm14/apis/orm-common/db-context.md +111 -0
  46. package/claude/references/sd-simplysm14/apis/orm-common/expr.md +128 -0
  47. package/claude/references/sd-simplysm14/apis/orm-common/queryable.md +145 -0
  48. package/claude/references/sd-simplysm14/apis/orm-common/schema.md +147 -0
  49. package/claude/references/sd-simplysm14/apis/orm-common/types.md +62 -0
  50. package/claude/references/sd-simplysm14/apis/orm-node/README.md +90 -0
  51. package/claude/references/sd-simplysm14/apis/orm-node/db-conn.md +94 -0
  52. package/claude/references/sd-simplysm14/apis/sd-cli/README.md +26 -0
  53. package/claude/references/sd-simplysm14/apis/sd-cli/SdTsCompiler.md +117 -0
  54. package/claude/references/sd-simplysm14/apis/sd-cli/sd-config-types.md +291 -0
  55. package/claude/references/sd-simplysm14/apis/service-client/README.md +150 -0
  56. package/claude/references/sd-simplysm14/apis/service-client/orm.md +48 -0
  57. package/claude/references/sd-simplysm14/apis/service-client/transport.md +59 -0
  58. package/claude/references/sd-simplysm14/apis/service-common/README.md +84 -0
  59. package/claude/references/sd-simplysm14/apis/service-common/app-structure.md +48 -0
  60. package/claude/references/sd-simplysm14/apis/service-common/protocol.md +72 -0
  61. package/claude/references/sd-simplysm14/apis/service-server/README.md +118 -0
  62. package/claude/references/sd-simplysm14/apis/service-server/service-authoring.md +71 -0
  63. package/claude/references/sd-simplysm14/apis/service-server/transport-internals.md +62 -0
  64. package/claude/references/sd-simplysm14/apis/service-server/v1-legacy.md +39 -0
  65. package/claude/references/sd-simplysm14/apis/storage/README.md +120 -0
  66. package/claude/skills/sd-demo/SKILL.md +6 -0
  67. package/claude/skills/sd-impl/SKILL.md +4 -7
  68. package/claude/skills/sd-spec/SKILL.md +31 -858
  69. package/claude/skills/sd-spec/references/spec-authoring.md +519 -0
  70. package/claude/workflows/sd-docs.js +84 -0
  71. package/claude/{skills/sd-docs/references/subagent-prompt.md → workflows/sd-docs.rules.md} +25 -40
  72. package/package.json +1 -1
  73. package/claude/skills/sd-demo/evals/fixtures/inventory-list/.specs/inventory/spec.md +0 -99
  74. package/claude/skills/sd-demo/evals/fixtures/inventory-list/packages/demo-client/package.json +0 -12
  75. package/claude/skills/sd-demo/evals/fixtures/inventory-list/packages/demo-client/src/index.ts +0 -3
  76. package/claude/skills/sd-demo/evals/fixtures/inventory-list/packages/demo-client/src/screens/inbound/inbound.list.ts +0 -150
  77. package/claude/skills/sd-demo/evals/fixtures/inventory-list/packages/demo-client/src/screens/inventory/inventory-master.list.ts +0 -143
  78. package/claude/skills/sd-demo/evals/fixtures/inventory-list/packages/demo-client/src/screens/outbound/outbound.list.ts +0 -150
  79. package/claude/skills/sd-demo/evals/fixtures/inventory-list/pnpm-workspace.yaml +0 -2
  80. package/claude/skills/sd-demo/evals/fixtures/inventory-list/sd.config.ts +0 -12
  81. package/claude/skills/sd-demo/evals/golden.jsonl +0 -1
  82. package/claude/skills/sd-dev/evals/fixtures/minimal-ts-pkg/package.json +0 -8
  83. package/claude/skills/sd-dev/evals/fixtures/minimal-ts-pkg/src/.gitkeep +0 -0
  84. package/claude/skills/sd-dev/evals/fixtures/minimal-ts-pkg/tests/.gitkeep +0 -0
  85. package/claude/skills/sd-dev/evals/fixtures/minimal-ts-pkg/tsconfig.json +0 -10
  86. package/claude/skills/sd-dev/evals/golden.jsonl +0 -1
  87. package/claude/skills/sd-docs/SKILL.md +0 -58
  88. package/claude/skills/sd-docs/evals/fixtures/new-write/.claude/references/sd-simplysm14/README.md +0 -7
  89. package/claude/skills/sd-docs/evals/fixtures/new-write/packages/bar/package.json +0 -5
  90. package/claude/skills/sd-docs/evals/fixtures/new-write/packages/bar/src/index.ts +0 -3
  91. package/claude/skills/sd-docs/evals/fixtures/new-write/packages/baz/package.json +0 -6
  92. package/claude/skills/sd-docs/evals/fixtures/new-write/packages/baz/src/index.ts +0 -1
  93. package/claude/skills/sd-docs/evals/fixtures/new-write/packages/foo/package.json +0 -5
  94. package/claude/skills/sd-docs/evals/fixtures/new-write/packages/foo/src/index.ts +0 -8
  95. package/claude/skills/sd-docs/evals/fixtures/update-mixed/.claude/references/sd-simplysm14/README.md +0 -7
  96. package/claude/skills/sd-docs/evals/fixtures/update-mixed/.claude/references/sd-simplysm14/apis/foo/README.md +0 -3
  97. package/claude/skills/sd-docs/evals/fixtures/update-mixed/packages/bar/package.json +0 -5
  98. package/claude/skills/sd-docs/evals/fixtures/update-mixed/packages/bar/src/index.ts +0 -3
  99. package/claude/skills/sd-docs/evals/fixtures/update-mixed/packages/baz/package.json +0 -6
  100. package/claude/skills/sd-docs/evals/fixtures/update-mixed/packages/baz/src/index.ts +0 -1
  101. package/claude/skills/sd-docs/evals/fixtures/update-mixed/packages/foo/package.json +0 -5
  102. package/claude/skills/sd-docs/evals/fixtures/update-mixed/packages/foo/src/index.ts +0 -8
  103. package/claude/skills/sd-docs/evals/golden.jsonl +0 -2
  104. package/claude/skills/sd-impl/evals/fixtures/case-a-new-screen/.specs/260513120000_warehouse/spec.md +0 -101
  105. package/claude/skills/sd-impl/evals/fixtures/case-b-update-with-demo/.specs/260513120000_warehouse/spec.md +0 -101
  106. package/claude/skills/sd-impl/evals/fixtures/case-b-update-with-demo/packages/app/src/screens/box-register/box-register.view.ts +0 -46
  107. package/claude/skills/sd-impl/evals/fixtures/case-c-new-cross/.specs/260513120000_warehouse/spec.md +0 -89
  108. package/claude/skills/sd-impl/evals/fixtures/case-d-spec-modify/.specs/260513120000_warehouse/spec.md +0 -101
  109. package/claude/skills/sd-impl/evals/golden.jsonl +0 -4
  110. package/claude/skills/sd-manual/evals/fixtures/new-manual/src/notification.ts +0 -25
  111. package/claude/skills/sd-manual/evals/fixtures/update-manual/.claude/references/sd-simplysm14/manuals/notification.md +0 -14
  112. package/claude/skills/sd-manual/evals/fixtures/update-manual/src/notification.ts +0 -37
  113. package/claude/skills/sd-manual/evals/golden.jsonl +0 -2
  114. package/claude/skills/sd-review/evals/fixtures/code-review/src/foo.ts +0 -7
  115. package/claude/skills/sd-review/evals/fixtures/doc-review/docs/foo.md +0 -4
  116. package/claude/skills/sd-review/evals/golden.jsonl +0 -2
  117. package/claude/skills/sd-skill/evals/fixtures/existing-skill/.claude/skills/todo-format/SKILL.md +0 -14
  118. package/claude/skills/sd-skill/evals/fixtures/new-skill/.gitkeep +0 -0
  119. package/claude/skills/sd-skill/evals/golden.jsonl +0 -2
  120. package/claude/skills/sd-spec/evals/fixtures/case-a-split//355/232/214/354/235/230/353/241/235.md +0 -20
  121. package/claude/skills/sd-spec/evals/fixtures/case-b-detail/.specs/260513120000_warehouse/spec.md +0 -95
  122. package/claude/skills/sd-spec/evals/golden.jsonl +0 -2
  123. package/claude/skills/sd-unpack/evals/fixtures/eml-with-text-attachment/meeting.eml +0 -21
  124. package/claude/skills/sd-unpack/evals/fixtures/simple-eml/meeting.eml +0 -10
  125. package/claude/skills/sd-unpack/evals/golden.jsonl +0 -2
  126. package/claude/skills/sd-use/evals/fixtures/empty/.gitkeep +0 -0
  127. package/claude/skills/sd-use/evals/golden.jsonl +0 -6
@@ -1,150 +0,0 @@
1
- import {
2
- ChangeDetectionStrategy,
3
- Component,
4
- ViewEncapsulation,
5
- effect,
6
- inject,
7
- signal,
8
- untracked,
9
- } from "@angular/core";
10
- import {
11
- injectPermsSignal,
12
- mark,
13
- SdCrudListComponent,
14
- SdSheetColumnDirective,
15
- SdTextfieldComponent,
16
- SdToastProvider,
17
- } from "@simplysm/angular";
18
-
19
- interface IOutboundItem {
20
- id: number;
21
- orderNo: string;
22
- customerName: string;
23
- itemName: string;
24
- quantity: number;
25
- shippedAt: string;
26
- }
27
-
28
- interface IFilter {
29
- searchText: string;
30
- }
31
-
32
- @Component({
33
- selector: "app-outbound-list",
34
- changeDetection: ChangeDetectionStrategy.OnPush,
35
- encapsulation: ViewEncapsulation.None,
36
- standalone: true,
37
- imports: [SdCrudListComponent, SdSheetColumnDirective, SdTextfieldComponent],
38
- template: `
39
- <div class="flex-column fill">
40
- <sd-crud-list
41
- title="출고 내역 조회"
42
- [(ready)]="ready"
43
- [initialized]="initialized()"
44
- [(busyCount)]="busyCount"
45
- [items]="items()"
46
- [(selectedKeys)]="selectedKeys"
47
- [(page)]="page"
48
- [totalPageCount]="pageLength()"
49
- [(sorts)]="sortingDefs"
50
- [trackByFn]="trackByFn"
51
- [restricted]="!perms().includes('use')"
52
- (filterSubmit)="onFilterSubmit()"
53
- >
54
- <ng-template #filterTpl>
55
- <div class="form-box-inline">
56
- <div>
57
- <label>검색</label>
58
- <sd-textfield [(value)]="filter().searchText" (valueChange)="mark(filter)" />
59
- </div>
60
- </div>
61
- </ng-template>
62
-
63
- <sd-sheet-column [key]="'orderNo'" [header]="'출고 번호'">
64
- <ng-template [cell]="items()" let-item="item">
65
- <div class="p-xs-sm">{{ item.orderNo }}</div>
66
- </ng-template>
67
- </sd-sheet-column>
68
-
69
- <sd-sheet-column [key]="'customerName'" [header]="'거래처'">
70
- <ng-template [cell]="items()" let-item="item">
71
- <div class="p-xs-sm">{{ item.customerName }}</div>
72
- </ng-template>
73
- </sd-sheet-column>
74
-
75
- <sd-sheet-column [key]="'itemName'" [header]="'품목'">
76
- <ng-template [cell]="items()" let-item="item">
77
- <div class="p-xs-sm">{{ item.itemName }}</div>
78
- </ng-template>
79
- </sd-sheet-column>
80
-
81
- <sd-sheet-column [key]="'quantity'" [header]="'수량'">
82
- <ng-template [cell]="items()" let-item="item">
83
- <div class="p-xs-sm tx-right">{{ item.quantity }}</div>
84
- </ng-template>
85
- </sd-sheet-column>
86
- </sd-crud-list>
87
-
88
- @if (initialized() && items().length === 0) {
89
- <div class="p-default tx-center tx-theme-gray-default">조회된 출고 내역이 없습니다.</div>
90
- }
91
- </div>
92
- `,
93
- })
94
- export class OutboundListComponent {
95
- private readonly _sdToast = inject(SdToastProvider);
96
-
97
- perms = injectPermsSignal(["outbound"], ["use"]);
98
-
99
- ready = signal(false);
100
- initialized = signal(false);
101
- busyCount = signal(0);
102
-
103
- items = signal<IOutboundItem[]>([]);
104
- selectedKeys = signal<number[]>([]);
105
- page = signal(0);
106
- pageLength = signal(0);
107
- sortingDefs = signal<{ key: string; desc: boolean }[]>([]);
108
-
109
- filter = signal<IFilter>({ searchText: "" });
110
- lastFilter = signal<IFilter>({ searchText: "" });
111
-
112
- trackByFn = (item: IOutboundItem) => item.id;
113
-
114
- protected readonly mark = mark;
115
-
116
- constructor() {
117
- effect(() => {
118
- if (!this.perms().includes("use") || !this.ready()) {
119
- this.initialized.set(true);
120
- return;
121
- }
122
-
123
- this.lastFilter();
124
- this.page();
125
- this.sortingDefs();
126
-
127
- void untracked(async () => {
128
- this.busyCount.update((v) => v + 1);
129
- await this._sdToast.try(async () => {
130
- await this._refresh();
131
- });
132
- this.busyCount.update((v) => v - 1);
133
- this.initialized.set(true);
134
- });
135
- });
136
- }
137
-
138
- onFilterSubmit(): void {
139
- this.page.set(0);
140
- this.lastFilter.set({ ...this.filter() });
141
- }
142
-
143
- doRefresh(): void {
144
- if (!this.perms().includes("use")) return;
145
- mark(this.lastFilter);
146
- }
147
-
148
- private async _refresh(): Promise<void> {
149
- }
150
- }
@@ -1,2 +0,0 @@
1
- packages:
2
- - packages/*
@@ -1,12 +0,0 @@
1
- import type { SdConfigFn } from "@simplysm/sd-cli";
2
-
3
- const config: SdConfigFn = () => ({
4
- packages: {
5
- "demo-client": {
6
- target: "client",
7
- server: 4000,
8
- },
9
- },
10
- });
11
-
12
- export default config;
@@ -1 +0,0 @@
1
- {"id": "case-001", "input": "/sd-demo .specs/inventory/spec.md §4.1 데모 만들어줘", "rubric": ["fixture 의 `packages/demo-client/src/screens/inventory/` 폴더 안에 화면 컴포넌트 파일이 새로 생성되었는가", "생성된 컴포넌트 파일이 Angular @Component 데코레이터 + selector 를 가지는가", "생성된 컴포넌트의 template 에 필터 영역·시트 영역·빈 상태 영역 마크업이 모두 등장하는가", "생성된 컴포넌트의 template 가 답습 화면(출고·입고 조회) 의 부위 마크업 구조(같은 컴포넌트·같은 클래스 패턴 사용)와 일치하는가", "생성된 파일 본문에 `// sd-demo:` 마커가 1회 이상 등장하는가", "events 에 `.claude/references/sd-simplysm14/` 폴더 안 파일 Read 또는 동등 명령 1회 이상 있는가"], "fixture": "inventory-list"}
@@ -1,8 +0,0 @@
1
- {
2
- "name": "minimal-ts-pkg",
3
- "version": "0.1.0",
4
- "type": "module",
5
- "scripts": {
6
- "test": "node --test tests/"
7
- }
8
- }
@@ -1,10 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "target": "ES2022",
4
- "module": "ESNext",
5
- "moduleResolution": "Bundler",
6
- "strict": true,
7
- "esModuleInterop": true
8
- },
9
- "include": ["src/**/*", "tests/**/*"]
10
- }
@@ -1 +0,0 @@
1
- {"id": "sum-add", "input": "/sd-dev sum 함수 추가해줘. a + b 반환.", "rubric": ["tree.json 에 sum 함수 구현 파일이 src/ 하위 (위치 자유) 에 존재하는가", "tree.json 에 sum 함수 테스트 파일 (위치 자유) 이 존재하는가", "events 에 테스트 러너 실행 흔적 (Bash 의 node --test 또는 동등 명령) 이 1회 이상 있는가", "구현 파일 내용에 sum 함수 정의 및 export 가 포함되는가", "테스트 파일 내용에 sum 호출 + 결과 검증 assertion 이 1개 이상 있는가"], "fixture": "minimal-ts-pkg"}
@@ -1,58 +0,0 @@
1
- ---
2
- name: sd-docs
3
- description: `@simplysm/*` 라이브러리 패키지의 API 문서를 `.claude/references/sd-simplysm14/apis/<패키지명>/` 위치에 사용 트리거 기준으로 작성·갱신. Use when 라이브러리 API 문서를 새로 작성하거나 코드 변경을 반영해 갱신할 때.
4
- model: haiku
5
- ---
6
-
7
- # sd-docs
8
-
9
- `@simplysm/*` 라이브러리 패키지의 API 문서를 코드를 근거로 작성·갱신. 메인 에이전트가 패키지 목록 추출과 상위 README 인덱스 갱신을 담당하고, 패키지별 문서 작성은 패키지 1개당 subagent 1개를 호출해 병렬 위임.
10
-
11
- ## 산출물 위치
12
-
13
- - `.claude/references/sd-simplysm14/apis/<패키지명>/README.md` — 패키지당 1개, 필수.
14
- - `.claude/references/sd-simplysm14/apis/<패키지명>/<군명>.md` — 사용 트리거 군이 커서 README 한 장에 풀어쓰면 같은 README 의 다른 군 정보까지 함께 읽혀 부담이 커지는 경우에만 분할 산출.
15
- - `.claude/references/sd-simplysm14/README.md` 의 "패키지 인덱스" 섹션 — 메인 에이전트가 갱신.
16
-
17
- ## 워크플로
18
-
19
- ### 1. 패키지 목록 추출
20
-
21
- 워크스페이스 루트의 `packages/*/package.json` 을 모두 읽어 다음 두 리스트를 만듦.
22
-
23
- - **public 리스트**: `private: true` 가 아닌 패키지. 각 항목 = `{ name, dir }`.
24
- - **private 리스트**: `private: true` 인 패키지. 인덱스에서 제외하기 위해 보관.
25
-
26
- ### 2. 패키지별 subagent 병렬 호출
27
-
28
- `public 리스트` 의 패키지 수만큼 `general-purpose` subagent 호출을 **단일 메시지 안에서 병렬**로 보냄. 각 호출 프롬프트는 [references/subagent-prompt.md](references/subagent-prompt.md) 양식의 "프롬프트" 마커 아래 본문을 그대로 사용하고, `<PACKAGE_NAME>` 과 `<PACKAGE_DIR>` 만 치환.
29
-
30
- 각 subagent 의 산출 (풀 재작성 모드 — 기존 파일 참고 없이 처음부터 작성):
31
-
32
- - `apis/<패키지명>/README.md` 재작성.
33
- - 필요 시 `apis/<패키지명>/<군명>.md` 재작성. 코드에서 사라진 군의 파일은 삭제.
34
- - 결과 보고 1단락 (산출 파일 목록, 분할 발생 여부, 한 줄 트리거 요약).
35
-
36
- **범위 한정**: subagent 는 `apis/<패키지명>/` 위치만 다룸. 상위 `.claude/references/sd-simplysm14/README.md` 는 건드리지 않음 (다음 단계의 "패키지 인덱스 섹션 갱신" 에서 메인 에이전트가 처리).
37
-
38
- ### 3. 상위 README 의 "패키지 인덱스" 섹션 갱신 (파일 보존 + 섹션 내 항목만 갱신)
39
-
40
- `.claude/references/sd-simplysm14/README.md` 는 **풀 재작성 대상 아님**. 파일 본문·다른 섹션은 그대로 보존, "패키지 인덱스" 섹션의 항목 리스트만 재구성함.
41
-
42
- 모든 subagent 완료 후:
43
-
44
- - **갱신 대상**: "패키지 인덱스" 섹션 본문(항목 리스트)만.
45
- - **건드리지 않음**: 섹션 머리(`## 패키지 인덱스`), 다른 모든 섹션, 파일 상단/하단 텍스트.
46
- - **항목 형식**: `- **<패키지명>** — <한 줄 트리거 요약>. 자세히: [apis/<패키지명>/README.md](./apis/<패키지명>/README.md)`.
47
- - **순서**: 패키지명 알파벳순.
48
- - **포함**: `public 리스트` 만.
49
- - **제외**: `private 리스트` 의 패키지, 코드베이스에 더 이상 존재하지 않는 패키지.
50
-
51
- ### 4. 사용자 보고
52
-
53
- 다음 항목을 짧게 정리해 출력함.
54
-
55
- - 재작성된 패키지 목록 (= `public 리스트` 전체. 풀 재작성 모드 — 매번 모든 패키지 산출).
56
- - 분할 발생(`<군명>.md` 가 생긴) 패키지 목록.
57
- - 삭제된 분할 파일 (코드에서 사라진 군, 있다면).
58
- - 인덱스에서 제거된 항목 (있다면).
@@ -1,7 +0,0 @@
1
- # @simplysm/* v14 행동 지침
2
-
3
- (eval fixture — 미니 README)
4
-
5
- ## 패키지 인덱스
6
-
7
- (비어 있음 — sd-docs 가 채워야 함)
@@ -1,5 +0,0 @@
1
- {
2
- "name": "@simplysm/bar",
3
- "version": "14.0.0",
4
- "type": "module"
5
- }
@@ -1,3 +0,0 @@
1
- export function barSum(a: number, b: number): number {
2
- return a + b;
3
- }
@@ -1,6 +0,0 @@
1
- {
2
- "name": "@simplysm/baz",
3
- "version": "14.0.0",
4
- "type": "module",
5
- "private": true
6
- }
@@ -1 +0,0 @@
1
- export const BAZ_SECRET = "internal-only";
@@ -1,5 +0,0 @@
1
- {
2
- "name": "@simplysm/foo",
3
- "version": "14.0.0",
4
- "type": "module"
5
- }
@@ -1,8 +0,0 @@
1
- /**
2
- * Foo 패키지의 표준 인사 클래스.
3
- */
4
- export class FooGreeter {
5
- hello(name: string): string {
6
- return `hello, ${name}`;
7
- }
8
- }
@@ -1,7 +0,0 @@
1
- # @simplysm/* v14 행동 지침
2
-
3
- (eval fixture — 미니 README, 갱신 케이스)
4
-
5
- ## 패키지 인덱스
6
-
7
- - **foo** — OLD_INDEX_PLACEHOLDER_MUST_BE_REWRITTEN
@@ -1,3 +0,0 @@
1
- # @simplysm/foo
2
-
3
- OLD_FOO_DOC_PLACEHOLDER_MUST_BE_REWRITTEN
@@ -1,5 +0,0 @@
1
- {
2
- "name": "@simplysm/bar",
3
- "version": "14.0.0",
4
- "type": "module"
5
- }
@@ -1,3 +0,0 @@
1
- export function barSum(a: number, b: number): number {
2
- return a + b;
3
- }
@@ -1,6 +0,0 @@
1
- {
2
- "name": "@simplysm/baz",
3
- "version": "14.0.0",
4
- "type": "module",
5
- "private": true
6
- }
@@ -1 +0,0 @@
1
- export const BAZ_SECRET = "internal-only";
@@ -1,5 +0,0 @@
1
- {
2
- "name": "@simplysm/foo",
3
- "version": "14.0.0",
4
- "type": "module"
5
- }
@@ -1,8 +0,0 @@
1
- /**
2
- * Foo 패키지의 표준 인사 클래스.
3
- */
4
- export class FooGreeter {
5
- hello(name: string): string {
6
- return `hello, ${name}`;
7
- }
8
- }
@@ -1,2 +0,0 @@
1
- {"id":"new-write","input":"/sd-docs","fixture":"new-write","rubric":["샌드박스 종료 시점 트리에 `.claude/references/sd-simplysm14/apis/foo/README.md` 파일이 존재하는가?","샌드박스 종료 시점 트리에 `.claude/references/sd-simplysm14/apis/bar/README.md` 파일이 존재하는가?","샌드박스 종료 시점 트리에 `.claude/references/sd-simplysm14/apis/baz/` 경로(`baz` 패키지 산출물)가 전혀 존재하지 않는가?","`.claude/references/sd-simplysm14/README.md` 본문에 `apis/foo` 를 가리키는 링크와 `apis/bar` 를 가리키는 링크가 모두 포함되었는가?","`.claude/references/sd-simplysm14/README.md` 본문에 `baz` 패키지가 패키지 인덱스 항목으로 노출되지 않는가?","`.claude/references/sd-simplysm14/apis/foo/README.md` 의 첫 줄(H1)이 정확히 `# @simplysm/foo` 문자열인가?"]}
2
- {"id":"update-mixed","input":"/sd-docs","fixture":"update-mixed","rubric":["`.claude/references/sd-simplysm14/apis/foo/README.md` 파일 내용에 `OLD_FOO_DOC_PLACEHOLDER_MUST_BE_REWRITTEN` 문자열이 포함되지 않는가?","샌드박스 종료 시점 트리에 `.claude/references/sd-simplysm14/apis/bar/README.md` 파일이 존재하는가?","샌드박스 종료 시점 트리에 `.claude/references/sd-simplysm14/apis/baz/` 경로가 전혀 존재하지 않는가?","`.claude/references/sd-simplysm14/README.md` 본문에 `OLD_INDEX_PLACEHOLDER_MUST_BE_REWRITTEN` 문자열이 포함되지 않는가?","`.claude/references/sd-simplysm14/README.md` 본문에 `apis/bar` 를 가리키는 링크가 포함되었는가?","`.claude/references/sd-simplysm14/apis/bar/README.md` 의 첫 줄(H1)이 정확히 `# @simplysm/bar` 문자열인가?"]}
@@ -1,101 +0,0 @@
1
- # 재고관리 요구 분석서
2
-
3
- ## 1. 개요
4
-
5
- ### 1.1 핵심 목적
6
-
7
- - 박스 단위 입고·재고 관리
8
-
9
- ### 1.2 주요 목표
10
-
11
- - 박스 1건 등록
12
-
13
- ### 1.3 최종 사용자/이해관계자
14
-
15
- - 창고 작업자
16
-
17
- ### 1.4 환경/장치
18
-
19
- #### 구성도
20
-
21
- ```
22
- ┌──────────────┐ ┌──────────────┐
23
- │ PC 클라이언트 │───→│ 서버 │
24
- └──────────────┘ └──────────────┘
25
- ```
26
-
27
- #### 장치 목록
28
-
29
- - PC: 창고 작업자용. Chrome 최신. 1920x1080
30
- - 서버: Node 20
31
-
32
- ## 2. 업무 프로세스
33
-
34
- ## 3. 기타 요구사항
35
-
36
- ## 4. 화면
37
-
38
- | § | 분류 | 화면 | 유형 | 장치 |
39
- | --- | -------- | --------- | -------- | ---- |
40
- | 4.1 | 기준정보 | 박스 등록 | 트랜잭션 | PC |
41
-
42
- ### 4.1 박스 등록 (PC) [확정: 2026-05-20]
43
-
44
- Actor: 창고 작업자
45
- 관련 섹션: [모델.박스]
46
-
47
- 기능 개요:
48
-
49
- - 박스 1건 신규 등록
50
-
51
- #### 와이어프레임 (텍스트)
52
-
53
- ```
54
- ┌─────────────────────────┐
55
- │ 박스 등록 │
56
- ├─────────────────────────┤
57
- │ <등록 폼> │
58
- │ │
59
- │ [저장] │
60
- └─────────────────────────┘
61
- ```
62
-
63
- #### 항목
64
-
65
- **등록 폼**
66
-
67
- | 항목 | 종류 | 필수 | 도메인 매핑 | 비고 |
68
- | --------- | ------ | ---- | ---------------- | ------------------- |
69
- | 박스 코드 | 문자열 | Y | [모델.박스.코드] | 코드 길이 규칙 따름 |
70
- | 품목 코드 | 문자열 | Y | [모델.박스.품목] | - |
71
-
72
- #### 동작
73
-
74
- - `[저장]` 클릭: 입력값으로 박스 1건 등록
75
-
76
- ## 5. 자동 처리
77
-
78
- ## 6. 공통·기반 기능
79
-
80
- ## 7. 공통 정의
81
-
82
- ## 8. 도메인 모델
83
-
84
- ### 8.1 박스 [확정: 2026-05-20]
85
-
86
- 필드:
87
-
88
- | 필드 | 타입 | 필수 | 비고 |
89
- | ---- | ------ | ---- | ---------------------- |
90
- | ID | 숫자 | Y | 자동 부여 |
91
- | 코드 | 문자열 | Y | 12자, 영문 대문자·숫자 |
92
- | 품목 | 문자열 | Y | 품목 코드 |
93
-
94
- 키/제약:
95
-
96
- - 식별 키: ID
97
- - 비즈니스 키: 코드 (수정 가능)
98
-
99
- ## 9. 외부 인터페이스
100
-
101
- ## 10. 본문 외 결정사항
@@ -1,101 +0,0 @@
1
- # 재고관리 요구 분석서
2
-
3
- ## 1. 개요
4
-
5
- ### 1.1 핵심 목적
6
-
7
- - 박스 단위 입고·재고 관리
8
-
9
- ### 1.2 주요 목표
10
-
11
- - 박스 1건 등록
12
-
13
- ### 1.3 최종 사용자/이해관계자
14
-
15
- - 창고 작업자
16
-
17
- ### 1.4 환경/장치
18
-
19
- #### 구성도
20
-
21
- ```
22
- ┌──────────────┐ ┌──────────────┐
23
- │ PC 클라이언트 │───→│ 서버 │
24
- └──────────────┘ └──────────────┘
25
- ```
26
-
27
- #### 장치 목록
28
-
29
- - PC: 창고 작업자용. Chrome 최신. 1920x1080
30
- - 서버: Node 20
31
-
32
- ## 2. 업무 프로세스
33
-
34
- ## 3. 기타 요구사항
35
-
36
- ## 4. 화면
37
-
38
- | § | 분류 | 화면 | 유형 | 장치 |
39
- | --- | -------- | --------- | -------- | ---- |
40
- | 4.1 | 기준정보 | 박스 등록 | 트랜잭션 | PC |
41
-
42
- ### 4.1 박스 등록 (PC) [확정: 2026-05-20]
43
-
44
- Actor: 창고 작업자
45
- 관련 섹션: [모델.박스]
46
-
47
- 기능 개요:
48
-
49
- - 박스 1건 신규 등록
50
-
51
- #### 와이어프레임 (텍스트)
52
-
53
- ```
54
- ┌─────────────────────────┐
55
- │ 박스 등록 │
56
- ├─────────────────────────┤
57
- │ <등록 폼> │
58
- │ │
59
- │ [저장] │
60
- └─────────────────────────┘
61
- ```
62
-
63
- #### 항목
64
-
65
- **등록 폼**
66
-
67
- | 항목 | 종류 | 필수 | 도메인 매핑 | 비고 |
68
- | --------- | ------ | ---- | ---------------- | ------------------- |
69
- | 박스 코드 | 문자열 | Y | [모델.박스.코드] | 코드 길이 규칙 따름 |
70
- | 품목 코드 | 문자열 | Y | [모델.박스.품목] | - |
71
-
72
- #### 동작
73
-
74
- - `[저장]` 클릭: 입력값으로 박스 1건 등록
75
-
76
- ## 5. 자동 처리
77
-
78
- ## 6. 공통·기반 기능
79
-
80
- ## 7. 공통 정의
81
-
82
- ## 8. 도메인 모델
83
-
84
- ### 8.1 박스 [확정: 2026-05-20]
85
-
86
- 필드:
87
-
88
- | 필드 | 타입 | 필수 | 비고 |
89
- | ---- | ------ | ---- | ---------------------- |
90
- | ID | 숫자 | Y | 자동 부여 |
91
- | 코드 | 문자열 | Y | 12자, 영문 대문자·숫자 |
92
- | 품목 | 문자열 | Y | 품목 코드 |
93
-
94
- 키/제약:
95
-
96
- - 식별 키: ID
97
- - 비즈니스 키: 코드 (수정 가능)
98
-
99
- ## 9. 외부 인터페이스
100
-
101
- ## 10. 본문 외 결정사항
@@ -1,46 +0,0 @@
1
- import { Component, signal } from "@angular/core";
2
-
3
- @Component({
4
- selector: "app-box-register",
5
- template: `
6
- <div class="box-register">
7
- <h2>박스 등록</h2>
8
- <div class="form">
9
- <label>
10
- 박스 코드
11
- <input
12
- type="text"
13
- [value]="boxCode()"
14
- (input)="onBoxCodeInput($event)"
15
- />
16
- </label>
17
- <label>
18
- 품목 코드
19
- <input
20
- type="text"
21
- [value]="itemCode()"
22
- (input)="onItemCodeInput($event)"
23
- />
24
- </label>
25
- </div>
26
- <button (click)="onSave()">저장</button>
27
- </div>
28
- `,
29
- })
30
- export class BoxRegisterView {
31
- boxCode = signal("");
32
- itemCode = signal("");
33
-
34
- onBoxCodeInput(e: Event) {
35
- this.boxCode.set((e.target as HTMLInputElement).value);
36
- }
37
-
38
- onItemCodeInput(e: Event) {
39
- this.itemCode.set((e.target as HTMLInputElement).value);
40
- }
41
-
42
- onSave() {
43
- // 데모 골격: 실제 저장 동작 없음 (sd-impl 풀 구현 대기)
44
- console.log("박스 등록 데모", { box: this.boxCode(), item: this.itemCode() });
45
- }
46
- }