ai-ops-cli 0.2.6 → 1.0.2
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.ko.md +195 -0
- package/README.md +126 -155
- package/data/context-layer/AGENTS.md +30 -0
- package/data/context-layer/CLAUDE.md +14 -0
- package/data/context-layer/GEMINI.md +14 -0
- package/data/context-layer/docs/agent/checks/impact-checklist.md +16 -0
- package/data/context-layer/docs/agent/checks/review-checklist.md +17 -0
- package/data/context-layer/docs/agent/maps/codebase-map.md +16 -0
- package/data/context-layer/docs/agent/rules/00-agent-baseline.md +47 -0
- package/data/context-layer/docs/agent/rules/doc-update-rules.md +22 -0
- package/data/context-layer/docs/agent/rules/routing-rules.md +22 -0
- package/data/context-layer/docs/agent/rules/stop-rules.md +20 -0
- package/data/context-layer/docs/agent/workflow.md +25 -0
- package/data/context-layer/docs/business/business-rules.md +16 -0
- package/data/context-layer/docs/docs-status.md +14 -0
- package/data/packs/pack-registry.json +8 -0
- package/data/packs/spec-lifecycle/docs/specs/README.ko.md +28 -0
- package/data/packs/spec-lifecycle/docs/specs/README.md +28 -0
- package/data/packs/spec-lifecycle/docs/specs/baseline/.gitkeep +1 -0
- package/data/packs/spec-lifecycle/docs/specs/initial-build/.gitkeep +1 -0
- package/data/skills/README.ko.md +184 -0
- package/data/skills/README.md +29 -2
- package/data/skills/skill-registry.json +64 -16
- package/data/skills/task-skills/doc-impact-reviewer/SKILL.md +101 -0
- package/data/skills/task-skills/doc-impact-reviewer/agents/openai.yaml +6 -0
- package/data/skills/task-skills/spec-baseline-sync/SKILL.md +134 -0
- package/data/skills/task-skills/spec-baseline-sync/agents/openai.yaml +6 -0
- package/data/skills/task-skills/spec-baseline-sync/references/template.md +14 -0
- package/data/skills/task-skills/spec-product-01-idea-to-brief/SKILL.md +78 -0
- package/data/skills/task-skills/spec-product-01-idea-to-brief/agents/openai.yaml +6 -0
- package/data/skills/task-skills/spec-product-01-idea-to-brief/references/template.md +36 -0
- package/data/skills/task-skills/spec-product-02-brief-to-technical-context/SKILL.md +91 -0
- package/data/skills/task-skills/spec-product-02-brief-to-technical-context/agents/openai.yaml +6 -0
- package/data/skills/task-skills/spec-product-02-brief-to-technical-context/references/template.md +58 -0
- package/data/skills/task-skills/spec-product-03-brief-to-product-spec/SKILL.md +85 -0
- package/data/skills/task-skills/spec-product-03-brief-to-product-spec/agents/openai.yaml +6 -0
- package/data/skills/task-skills/spec-product-03-brief-to-product-spec/references/template.md +41 -0
- package/data/skills/task-skills/spec-product-04-product-spec-to-ui-spec/SKILL.md +93 -0
- package/data/skills/task-skills/spec-product-04-product-spec-to-ui-spec/agents/openai.yaml +6 -0
- package/data/skills/task-skills/spec-product-04-product-spec-to-ui-spec/references/stitch-prompt-template.md +41 -0
- package/data/skills/task-skills/spec-product-04-product-spec-to-ui-spec/references/ui-spec-template.md +39 -0
- package/data/skills/task-skills/spec-product-05-spec-to-work-packets/SKILL.md +157 -0
- package/data/skills/task-skills/spec-product-05-spec-to-work-packets/agents/openai.yaml +6 -0
- package/data/skills/task-skills/spec-product-05-spec-to-work-packets/references/stitch-html-review.md +25 -0
- package/data/skills/task-skills/spec-product-05-spec-to-work-packets/references/work-packet-template.md +67 -0
- package/data/skills/task-skills/spec-shared-glossary-sync/SKILL.md +102 -0
- package/data/skills/task-skills/spec-shared-glossary-sync/agents/openai.yaml +6 -0
- package/data/skills/task-skills/spec-shared-glossary-sync/references/checklist.md +36 -0
- package/data/skills/task-skills/spec-shared-glossary-sync/references/template.md +58 -0
- package/data/subagents/README.ko.md +49 -0
- package/data/subagents/README.md +49 -0
- package/data/subagents/security-gate/PROMPT.md +18 -0
- package/data/subagents/security-gate/claude.frontmatter.yaml +8 -0
- package/data/subagents/security-gate/codex.frontmatter.toml +6 -0
- package/data/subagents/security-gate/gemini.frontmatter.yaml +6 -0
- package/data/subagents/security-reviewer/PROMPT.md +17 -0
- package/data/subagents/security-reviewer/claude.frontmatter.yaml +9 -0
- package/data/subagents/security-reviewer/codex.frontmatter.toml +6 -0
- package/data/subagents/security-reviewer/gemini.frontmatter.yaml +6 -0
- package/data/subagents/subagent-registry.json +14 -0
- package/dist/bin/index.js +2103 -1713
- package/dist/bin/index.js.map +1 -1
- package/package.json +2 -2
- package/data/presets.yaml +0 -35
- package/data/rules/code-philosophy.yaml +0 -35
- package/data/rules/communication.yaml +0 -12
- package/data/rules/naming-convention.yaml +0 -10
- package/data/rules/plan-mode.yaml +0 -32
- package/data/rules/role-persona.yaml +0 -14
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
interface:
|
|
2
|
+
display_name: "spec-product-02-brief-to-technical-context"
|
|
3
|
+
short_description: "Convert an approved brief into a constrained technical context."
|
|
4
|
+
default_prompt: "Use $spec-product-02-brief-to-technical-context to expand the approved brief into a Korean 05_technical-context.md with justified stack choices."
|
|
5
|
+
policy:
|
|
6
|
+
allow_implicit_invocation: false
|
package/data/skills/task-skills/spec-product-02-brief-to-technical-context/references/template.md
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# 05_technical-context.md Template
|
|
2
|
+
|
|
3
|
+
```md
|
|
4
|
+
# 05 Technical Context
|
|
5
|
+
|
|
6
|
+
## 제품 형태
|
|
7
|
+
- web / app / backend / mixed
|
|
8
|
+
|
|
9
|
+
## 기본 선택 스택
|
|
10
|
+
- web:
|
|
11
|
+
- TypeScript
|
|
12
|
+
- Next.js
|
|
13
|
+
- shadcn/ui
|
|
14
|
+
- Tailwind CSS
|
|
15
|
+
- date-fns
|
|
16
|
+
- Supabase
|
|
17
|
+
- app:
|
|
18
|
+
- Flutter
|
|
19
|
+
- backend:
|
|
20
|
+
- NestJS
|
|
21
|
+
- Prisma
|
|
22
|
+
- Supabase
|
|
23
|
+
- GraphQL
|
|
24
|
+
- simple serverless:
|
|
25
|
+
- Hono
|
|
26
|
+
- RESTful API
|
|
27
|
+
|
|
28
|
+
## 선택 근거
|
|
29
|
+
- 왜 이 조합이 현재 제품 범위에 맞는가
|
|
30
|
+
|
|
31
|
+
## 운영 / 배포 가정
|
|
32
|
+
- 인증
|
|
33
|
+
- 데이터 저장
|
|
34
|
+
- 배포 환경
|
|
35
|
+
- 서버 필요 여부
|
|
36
|
+
|
|
37
|
+
## 보안 고려사항
|
|
38
|
+
- auth / secret / storage / upload / 외부 callback / tenant 경계 같은 제약
|
|
39
|
+
- 없으면 `특이사항 없음`
|
|
40
|
+
|
|
41
|
+
## 프로젝트 제약
|
|
42
|
+
- 기존 코드베이스
|
|
43
|
+
- 팀 숙련도
|
|
44
|
+
- 일정 / 운영 부담
|
|
45
|
+
|
|
46
|
+
## 현재 저장소 상태 / 스택 갭
|
|
47
|
+
- web / app / backend surface별 현재 repo 상태: `present` / `partial` / `absent`
|
|
48
|
+
- 이미 재사용할 수 있는 manifest, config, app/package 디렉터리
|
|
49
|
+
- 부족한 scaffold, dependency install, env/config wiring
|
|
50
|
+
- downstream work packet에서 선행 bootstrap 패킷이 필요한 영역
|
|
51
|
+
|
|
52
|
+
## 추가 기술 제안 규칙
|
|
53
|
+
- 기본 선호 스택으로 해결 가능한지 먼저 검토
|
|
54
|
+
- 선호 밖 기술은 이유, 이점, 비용, 승인 필요 여부를 함께 기록
|
|
55
|
+
|
|
56
|
+
## 미해결 기술 결정사항
|
|
57
|
+
- 결정사항 1
|
|
58
|
+
```
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: spec-product-03-brief-to-product-spec
|
|
3
|
+
description: Expand an approved Korean 00_brief.md and 05_technical-context.md into a Korean 10_product-spec.md in the current project's docs/specs/baseline directory with concrete user flows, features, entities, business rules, edge cases, and success criteria while preserving approved scope and stack constraints.
|
|
4
|
+
disable-model-invocation: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# spec-product-03-brief-to-product-spec
|
|
8
|
+
|
|
9
|
+
Use this skill after `./docs/specs/baseline/00_brief.md` and `./docs/specs/baseline/05_technical-context.md` are approved and the next artifact should be `./docs/specs/baseline/10_product-spec.md`.
|
|
10
|
+
|
|
11
|
+
## Output Location
|
|
12
|
+
|
|
13
|
+
- Write into the current workspace.
|
|
14
|
+
- Default output path: `./docs/specs/baseline/10_product-spec.md`
|
|
15
|
+
|
|
16
|
+
## Language Rules
|
|
17
|
+
|
|
18
|
+
- Write the document in Korean.
|
|
19
|
+
- Keep code-facing names, API field names, library/service names, protocol names, file paths, and widely used technical terms in their natural English form when that is clearer and more standard.
|
|
20
|
+
- Do not force awkward phonetic transliterations such as `소스 오브 트루스`, `타겟 플랫폼`, or `워크 패킷`.
|
|
21
|
+
- If an English technical term needs explanation, keep the English term and add a short Korean gloss on first mention, for example `source of truth(가장 신뢰하는 기준)`.
|
|
22
|
+
|
|
23
|
+
## Required Inputs
|
|
24
|
+
|
|
25
|
+
1. `./docs/specs/baseline/00_brief.md`
|
|
26
|
+
2. `./docs/specs/baseline/05_technical-context.md`
|
|
27
|
+
|
|
28
|
+
## Objective
|
|
29
|
+
|
|
30
|
+
Convert direction into a tighter operational product spec without reopening already approved scope or ignoring the fixed technical context.
|
|
31
|
+
|
|
32
|
+
## Workflow
|
|
33
|
+
|
|
34
|
+
1. Turn goals into 1-3 core user flows.
|
|
35
|
+
2. Derive the minimum feature set needed for those flows.
|
|
36
|
+
3. Define only the entities needed for v1 decisions.
|
|
37
|
+
4. Make business rules explicit, especially permissions and state transitions.
|
|
38
|
+
5. Add edge cases that affect validation, UI states, or data integrity.
|
|
39
|
+
6. Reflect technical constraints only where they meaningfully change the product shape.
|
|
40
|
+
7. Rewrite success criteria so they can be checked later.
|
|
41
|
+
|
|
42
|
+
## Security Lens
|
|
43
|
+
|
|
44
|
+
Keep this pass lightweight and product-facing.
|
|
45
|
+
|
|
46
|
+
- Check whether user flows or business rules introduce auth, permission, ownership, tenant, or destructive-action concerns.
|
|
47
|
+
- Check whether features handle sensitive data, uploads, external callbacks, or rendered rich content.
|
|
48
|
+
- Record the result under `보안 고려사항`.
|
|
49
|
+
- If any of those triggers exist or the boundary is unclear, recommend `spec-security-01-triage` in `mode=spec`.
|
|
50
|
+
|
|
51
|
+
Use [references/template.md](references/template.md) when drafting the file.
|
|
52
|
+
|
|
53
|
+
## Glossary Rule
|
|
54
|
+
|
|
55
|
+
- Check `./docs/specs/baseline/01_glossary.md` if it exists and the product spec introduces or chooses domain terms, entity names, state names, or user-facing labels.
|
|
56
|
+
- After writing the target document, `spec-shared-glossary-sync` is recommended because product specs often add or refine canonical vocabulary.
|
|
57
|
+
|
|
58
|
+
## Required Sections
|
|
59
|
+
|
|
60
|
+
- `핵심 사용자 플로우`
|
|
61
|
+
- `기능`
|
|
62
|
+
- `엔티티`
|
|
63
|
+
- `비즈니스 규칙`
|
|
64
|
+
- `엣지 케이스`
|
|
65
|
+
- `성공 기준`
|
|
66
|
+
- `기술 제약 반영 메모`
|
|
67
|
+
- `보안 고려사항`
|
|
68
|
+
- `미해결 결정사항`
|
|
69
|
+
|
|
70
|
+
## Mermaid Rule
|
|
71
|
+
|
|
72
|
+
Add Mermaid when the product behavior is easier to understand visually.
|
|
73
|
+
|
|
74
|
+
- Use flowchart for multi-step user flows.
|
|
75
|
+
- Use stateDiagram for non-trivial state transitions.
|
|
76
|
+
- Skip Mermaid if there is only one short flow and no meaningful state logic.
|
|
77
|
+
|
|
78
|
+
## Quality Bar
|
|
79
|
+
|
|
80
|
+
The product spec is not ready if:
|
|
81
|
+
|
|
82
|
+
- features do not map cleanly to user flows
|
|
83
|
+
- entities exist without behavioral rules
|
|
84
|
+
- success criteria cannot be validated later
|
|
85
|
+
- technical context is contradicted or ignored
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
interface:
|
|
2
|
+
display_name: "spec-product-03-brief-to-product-spec"
|
|
3
|
+
short_description: "Expand an approved brief into a concrete Korean product spec."
|
|
4
|
+
default_prompt: "Use $spec-product-03-brief-to-product-spec to turn the approved brief and technical context into a detailed Korean 10_product-spec.md."
|
|
5
|
+
policy:
|
|
6
|
+
allow_implicit_invocation: false
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# 10_product-spec.md Template
|
|
2
|
+
|
|
3
|
+
```md
|
|
4
|
+
# 10 Product Spec
|
|
5
|
+
|
|
6
|
+
## 핵심 사용자 플로우
|
|
7
|
+
1. 플로우 1
|
|
8
|
+
2. 플로우 2
|
|
9
|
+
|
|
10
|
+
## 기능
|
|
11
|
+
- 기능 1
|
|
12
|
+
- 기능 2
|
|
13
|
+
|
|
14
|
+
## 엔티티
|
|
15
|
+
- 엔티티명
|
|
16
|
+
- 목적
|
|
17
|
+
- 핵심 필드
|
|
18
|
+
|
|
19
|
+
## 비즈니스 규칙
|
|
20
|
+
- 규칙 1
|
|
21
|
+
- 규칙 2
|
|
22
|
+
|
|
23
|
+
## 엣지 케이스
|
|
24
|
+
- empty state
|
|
25
|
+
- loading state
|
|
26
|
+
- error state
|
|
27
|
+
|
|
28
|
+
## 성공 기준
|
|
29
|
+
- 기준 1
|
|
30
|
+
- 기준 2
|
|
31
|
+
|
|
32
|
+
## 기술 제약 반영 메모
|
|
33
|
+
- 어떤 제약이 제품 구조에 영향을 주는지
|
|
34
|
+
|
|
35
|
+
## 보안 고려사항
|
|
36
|
+
- auth / 권한 / 민감정보 / 업로드 / 외부 호출 / tenant 경계 관련 메모
|
|
37
|
+
- 없으면 `특이사항 없음`
|
|
38
|
+
|
|
39
|
+
## 미해결 결정사항
|
|
40
|
+
- 결정사항 1
|
|
41
|
+
```
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: spec-product-04-product-spec-to-ui-spec
|
|
3
|
+
description: Generate initial Korean 20_ui-spec.md, optional English 21_stitch-prompt.md, and initial visual guidance from approved product specs, screenshots, or Stitch/reference drafts for first product implementation only.
|
|
4
|
+
disable-model-invocation: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# spec-product-04-product-spec-to-ui-spec
|
|
8
|
+
|
|
9
|
+
Use this skill when `./docs/specs/baseline/10_product-spec.md` is approved and the product needs initial UI direction before first implementation.
|
|
10
|
+
|
|
11
|
+
Default outputs:
|
|
12
|
+
|
|
13
|
+
- `./docs/specs/baseline/20_ui-spec.md`
|
|
14
|
+
- optional `./docs/specs/baseline/21_stitch-prompt.md`
|
|
15
|
+
- optional `./docs/specs/baseline/22_stitch-assets/DESIGN.md`
|
|
16
|
+
- optional `./docs/specs/baseline/24_design-tokens.md`
|
|
17
|
+
|
|
18
|
+
Do not use this skill as the default path for MVP-afterward UI changes. Ongoing UI work belongs in `.codex/plans/*.md` with screenshots, reference apps, and detailed requested adjustments.
|
|
19
|
+
|
|
20
|
+
## Language Rules
|
|
21
|
+
|
|
22
|
+
- `20_ui-spec.md`, `DESIGN.md`, and `24_design-tokens.md` must be written in Korean.
|
|
23
|
+
- `21_stitch-prompt.md`, when created, must be written in English.
|
|
24
|
+
- Keep code-facing names, API field names, library/service names, protocol names, file paths, and standard technical terms in their natural English form when clearer.
|
|
25
|
+
- Do not force awkward phonetic transliterations.
|
|
26
|
+
|
|
27
|
+
## Required Inputs
|
|
28
|
+
|
|
29
|
+
1. `./docs/specs/baseline/05_technical-context.md`
|
|
30
|
+
2. `./docs/specs/baseline/10_product-spec.md`
|
|
31
|
+
3. optional user-provided screenshots, reference apps, mood notes, or visual constraints
|
|
32
|
+
4. optional Stitch output under `./docs/specs/baseline/22_stitch-assets/`
|
|
33
|
+
|
|
34
|
+
## Objective
|
|
35
|
+
|
|
36
|
+
Define initial UI structure and states clearly enough for first implementation, while treating visual references as concept/draft input rather than product truth.
|
|
37
|
+
|
|
38
|
+
The skill should:
|
|
39
|
+
|
|
40
|
+
- enumerate screens from approved user flows
|
|
41
|
+
- define screen purpose, primary actions, states, and navigation boundaries
|
|
42
|
+
- preserve target platform constraints
|
|
43
|
+
- normalize initial visual direction against approved product scope
|
|
44
|
+
- reject or defer visual ideas that imply unapproved product behavior
|
|
45
|
+
- create a Stitch prompt only when external visual generation will reduce ambiguity
|
|
46
|
+
|
|
47
|
+
## Workflow
|
|
48
|
+
|
|
49
|
+
1. Read approved product and technical context.
|
|
50
|
+
2. Identify UI surfaces that are required for the first build.
|
|
51
|
+
3. Draft `20_ui-spec.md` around screens, states, interactions, and design constraints.
|
|
52
|
+
4. If the user wants Stitch concepting, write `21_stitch-prompt.md` in English.
|
|
53
|
+
5. If screenshots or Stitch output already establish reusable visual rules, write or update baseline `DESIGN.md` and optional tokens.
|
|
54
|
+
6. Record security-relevant UI surfaces under `보안 고려사항`.
|
|
55
|
+
|
|
56
|
+
## Visual Reference Rules
|
|
57
|
+
|
|
58
|
+
- Stitch, screenshots, and reference apps are inspiration and structure references, not product truth.
|
|
59
|
+
- Approved product spec and technical context outrank visual references.
|
|
60
|
+
- If a reference introduces unsupported features, labels, business rules, biometric/medical claims, social mechanics, monetization, or platform assumptions, reject or mark them out of scope.
|
|
61
|
+
- For Flutter or native apps, translate visual ideas into native primitives and theme/tokens. Do not treat HTML/CSS as the shipping stack.
|
|
62
|
+
- Keep initial guidance practical enough for `spec-product-05` to create implementation packets.
|
|
63
|
+
|
|
64
|
+
## Security Lens
|
|
65
|
+
|
|
66
|
+
Keep this pass UI-focused and short.
|
|
67
|
+
|
|
68
|
+
- Check whether the UI introduces auth-sensitive actions, destructive actions, file upload/download, rendered user content, or admin-only surfaces.
|
|
69
|
+
- Record the result under `보안 고려사항`.
|
|
70
|
+
- If any trigger appears or the trust boundary is unclear, recommend `spec-security-01-triage` in `mode=spec`.
|
|
71
|
+
|
|
72
|
+
Use these references while drafting:
|
|
73
|
+
|
|
74
|
+
- [references/ui-spec-template.md](references/ui-spec-template.md)
|
|
75
|
+
- [references/stitch-prompt-template.md](references/stitch-prompt-template.md)
|
|
76
|
+
|
|
77
|
+
## Required UI Spec Sections
|
|
78
|
+
|
|
79
|
+
- `화면 목록`
|
|
80
|
+
- `화면 목적`
|
|
81
|
+
- `상태 정의`
|
|
82
|
+
- `주요 인터랙션`
|
|
83
|
+
- `디자인 제약`
|
|
84
|
+
- `초기 시각 참고 / 구현 번역 규칙`
|
|
85
|
+
- `보안 고려사항`
|
|
86
|
+
|
|
87
|
+
## Mermaid Rule
|
|
88
|
+
|
|
89
|
+
Include Mermaid only when navigation or state coverage is dense.
|
|
90
|
+
|
|
91
|
+
- Use flowchart for screen-to-screen navigation.
|
|
92
|
+
- Use stateDiagram for per-screen states when more than 4 states or transitions matter.
|
|
93
|
+
- Skip Mermaid if prose is enough.
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
interface:
|
|
2
|
+
display_name: "spec-product-04-product-spec-to-ui-spec"
|
|
3
|
+
short_description: "Create initial UI spec, optional Stitch prompt, and first-build visual guidance."
|
|
4
|
+
default_prompt: "Use $spec-product-04-product-spec-to-ui-spec to create an initial Korean 20_ui-spec.md, optional English 21_stitch-prompt.md, and practical first-build visual guidance from approved product specs and reference inputs."
|
|
5
|
+
policy:
|
|
6
|
+
allow_implicit_invocation: false
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# 21_stitch-prompt.md Template
|
|
2
|
+
|
|
3
|
+
```md
|
|
4
|
+
# Stitch Prompt
|
|
5
|
+
|
|
6
|
+
## Product Context
|
|
7
|
+
- Summarize the product in 3-5 lines.
|
|
8
|
+
|
|
9
|
+
## Technical Context
|
|
10
|
+
- Mention the intended platform and implementation constraints relevant to UI generation.
|
|
11
|
+
- Say the generated result is an initial visual reference, not product truth or the shipped technology stack.
|
|
12
|
+
|
|
13
|
+
## Core User Flows
|
|
14
|
+
1. Flow 1
|
|
15
|
+
2. Flow 2
|
|
16
|
+
|
|
17
|
+
## Screens To Generate
|
|
18
|
+
- Screen 1
|
|
19
|
+
- Screen 2
|
|
20
|
+
|
|
21
|
+
## Required States
|
|
22
|
+
- empty
|
|
23
|
+
- loading
|
|
24
|
+
- error
|
|
25
|
+
- success
|
|
26
|
+
|
|
27
|
+
## Key Interactions
|
|
28
|
+
- Interaction 1
|
|
29
|
+
- Interaction 2
|
|
30
|
+
|
|
31
|
+
## Design Direction
|
|
32
|
+
- Visual tone
|
|
33
|
+
- Layout constraints
|
|
34
|
+
- Platform assumptions
|
|
35
|
+
- Current design-system constraints, if any
|
|
36
|
+
|
|
37
|
+
## Scope Guardrails
|
|
38
|
+
- Do not invent unapproved features, pricing, social mechanics, medical claims, or backend behavior.
|
|
39
|
+
- Do not imply that HTML/CSS is the implementation stack.
|
|
40
|
+
- Treat output as concept art/reference for first implementation.
|
|
41
|
+
```
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# 20_ui-spec.md Template
|
|
2
|
+
|
|
3
|
+
```md
|
|
4
|
+
# 20 UI Spec
|
|
5
|
+
|
|
6
|
+
## 화면 목록
|
|
7
|
+
- 화면명
|
|
8
|
+
|
|
9
|
+
## 화면 목적
|
|
10
|
+
- 화면별 목적과 주요 사용자 행동
|
|
11
|
+
|
|
12
|
+
## 상태 정의
|
|
13
|
+
- empty
|
|
14
|
+
- loading
|
|
15
|
+
- error
|
|
16
|
+
- success
|
|
17
|
+
|
|
18
|
+
## 주요 인터랙션
|
|
19
|
+
- 인터랙션 1
|
|
20
|
+
- 인터랙션 2
|
|
21
|
+
|
|
22
|
+
## 디자인 제약
|
|
23
|
+
- 접근성
|
|
24
|
+
- 반응형
|
|
25
|
+
- 시각 톤
|
|
26
|
+
- 플랫폼 제약
|
|
27
|
+
|
|
28
|
+
## 초기 시각 참고 / 구현 번역 규칙
|
|
29
|
+
- 참고 screenshot, reference app, Stitch 결과는 initial concept reference다.
|
|
30
|
+
- 승인된 product spec과 technical context가 더 우선한다.
|
|
31
|
+
- 구현 대상은 승인된 target platform이며, Flutter 프로젝트라면 Flutter widget tree와 theme/token으로 번역한다.
|
|
32
|
+
- HTML/CSS를 그대로 이식하지 않는다.
|
|
33
|
+
- 레이아웃 계층, CTA 우선순위, 정보 그룹, 상태 표현, 주요 인터랙션 중 제품에 승인된 부분만 유지한다.
|
|
34
|
+
- 범위 밖 아이디어는 `범위 제외` 또는 후속 plan 후보로 분리한다.
|
|
35
|
+
|
|
36
|
+
## 보안 고려사항
|
|
37
|
+
- auth-sensitive action, destructive action, upload/download, rendered content 관련 메모
|
|
38
|
+
- 없으면 `특이사항 없음`
|
|
39
|
+
```
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: spec-product-05-spec-to-work-packets
|
|
3
|
+
description: Convert approved baseline product specs into initial-build Korean work packets under docs/specs/initial-build, with explicit scope, tests, dependencies, and repo-reality bootstrap/foundation packets when needed.
|
|
4
|
+
disable-model-invocation: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# spec-product-05-spec-to-work-packets
|
|
8
|
+
|
|
9
|
+
Use this skill only when the next artifact is the first implementation packet set for a product baseline.
|
|
10
|
+
|
|
11
|
+
## Output Location
|
|
12
|
+
|
|
13
|
+
- Write into the current workspace.
|
|
14
|
+
- Create or continue one initial-build batch such as `./docs/specs/initial-build/2026-03-21_initial-build/`.
|
|
15
|
+
- If no active initial-build batch exists yet, create `./docs/specs/initial-build/YYYY-MM-DD_initial-build/`.
|
|
16
|
+
- Default output path: `./docs/specs/initial-build/<initial-build-topic>/30_work-packets/*.md`
|
|
17
|
+
- Optional summary artifact: `./docs/specs/initial-build/<initial-build-topic>/30_work-packets/00_packet-map.md`
|
|
18
|
+
|
|
19
|
+
Do not use this skill as the default path for MVP 이후 changes. Ongoing changes belong in `.codex/plans/*.md`.
|
|
20
|
+
|
|
21
|
+
## Required Inputs
|
|
22
|
+
|
|
23
|
+
Read all relevant available inputs before writing packets:
|
|
24
|
+
|
|
25
|
+
1. `./docs/specs/baseline/05_technical-context.md`
|
|
26
|
+
2. `./docs/specs/baseline/10_product-spec.md`
|
|
27
|
+
3. `./docs/specs/baseline/20_ui-spec.md` when the product includes approved UI surfaces
|
|
28
|
+
4. optional initial visual references under `./docs/specs/baseline/22_stitch-assets/`
|
|
29
|
+
5. optional `./docs/specs/baseline/22_stitch-assets/DESIGN.md`
|
|
30
|
+
6. optional `./docs/specs/baseline/24_design-tokens.md`
|
|
31
|
+
7. current repository manifests, config files, and top-level app/package directories relevant to the approved stack
|
|
32
|
+
|
|
33
|
+
Use what exists. Explicitly note missing but relevant inputs.
|
|
34
|
+
|
|
35
|
+
If the product has no user-facing UI by design, proceed from `05_technical-context.md` and `10_product-spec.md` without inventing UI docs or visual inputs.
|
|
36
|
+
|
|
37
|
+
If the product has UI but no visual references exist, proceed from `20_ui-spec.md`; visual references are helpful but never a blocker.
|
|
38
|
+
|
|
39
|
+
## Language Rules
|
|
40
|
+
|
|
41
|
+
- Write every work packet in Korean.
|
|
42
|
+
- Keep code identifiers, API field names, library/service names, protocol names, file paths, and standard technical terms in their natural English form when clearer.
|
|
43
|
+
- Do not force awkward phonetic transliterations.
|
|
44
|
+
|
|
45
|
+
## Objective
|
|
46
|
+
|
|
47
|
+
Produce initial-build packets that are independently understandable, independently implementable, and small enough for human review and safe AI execution.
|
|
48
|
+
|
|
49
|
+
For initial-build work, packet generation must stay grounded in the current repository reality, not an imagined clean scaffold.
|
|
50
|
+
|
|
51
|
+
The packet set should be `parallel-ready`:
|
|
52
|
+
|
|
53
|
+
- packets are small enough to hand to one worker at a time
|
|
54
|
+
- dependencies are explicit enough that plan mode can order or parallelize them
|
|
55
|
+
- hidden coupling is minimized before execution begins
|
|
56
|
+
|
|
57
|
+
## Required Sections
|
|
58
|
+
|
|
59
|
+
Every packet must include:
|
|
60
|
+
|
|
61
|
+
- `목표`
|
|
62
|
+
- `범위`
|
|
63
|
+
- `입력물`
|
|
64
|
+
- `산출물`
|
|
65
|
+
- `대상 파일 / 모듈`
|
|
66
|
+
- `승인 기준`
|
|
67
|
+
- `보안 검토`
|
|
68
|
+
- `테스트`
|
|
69
|
+
- `의존성`
|
|
70
|
+
- `범위 제외`
|
|
71
|
+
|
|
72
|
+
For UI-touching packets:
|
|
73
|
+
|
|
74
|
+
- `입력물` should include `20_ui-spec.md` and any relevant visual guidance that exists
|
|
75
|
+
- `승인 기준` must state which UI structure, hierarchy, states, and interactions must survive in the approved target platform
|
|
76
|
+
- any intentional deviation from initial visual references must be named explicitly
|
|
77
|
+
|
|
78
|
+
## Security Overlay
|
|
79
|
+
|
|
80
|
+
Every packet must include `보안 검토`.
|
|
81
|
+
|
|
82
|
+
- `보안 검토` must state `판정: 필요 | 불필요 | 확인 필요`.
|
|
83
|
+
- It must briefly list trigger surfaces and say whether implementation-stage security review is required.
|
|
84
|
+
- If the packet touches auth, permission, sensitive data, tenant boundaries, external fetch, uploads, raw queries, rendered content, or destructive actions, do not mark it `불필요` unless the packet is clearly documentation-only.
|
|
85
|
+
- If risk is unclear, use `확인 필요` and recommend `spec-security-01-triage` in `mode=spec`.
|
|
86
|
+
|
|
87
|
+
## Dependency Rules
|
|
88
|
+
|
|
89
|
+
Every packet must make dependency state explicit.
|
|
90
|
+
|
|
91
|
+
- If there is no dependency, write `없음`.
|
|
92
|
+
- If another packet must finish first, name the packet ID explicitly.
|
|
93
|
+
- If the packet is blocked by a contract, schema, design decision, or external approval, name that dependency explicitly.
|
|
94
|
+
- If the packet is likely parallel-safe with other packets, note that inside `의존성`.
|
|
95
|
+
- Never leave dependencies implied or blank.
|
|
96
|
+
|
|
97
|
+
Use a compact structure such as:
|
|
98
|
+
|
|
99
|
+
- `선행 패킷: 없음`
|
|
100
|
+
- `선행 패킷: 001_api-shell`
|
|
101
|
+
- `외부 결정 / 선행 계약: Supabase auth schema 확정`
|
|
102
|
+
- `병렬 가능 후보: 003_home-shell, 004_session-card`
|
|
103
|
+
|
|
104
|
+
## Repository Reality Check
|
|
105
|
+
|
|
106
|
+
Before drafting packets, inspect the current repository for concrete evidence of the approved stack.
|
|
107
|
+
|
|
108
|
+
- Check stack signals such as `package.json`, lockfiles, workspace manifests, `next.config.*`, `components.json`, `tailwind.config.*`, `pubspec.yaml`, `lib/`, `android/`, `ios/`, `nest-cli.json`, `src/main.ts`, `prisma/schema.prisma`, GraphQL schema/config files, and existing app/package directories.
|
|
109
|
+
- Use product surfaces declared in `05_technical-context.md` to decide which signals matter.
|
|
110
|
+
- Classify each approved surface as `present`, `partial`, or `absent`.
|
|
111
|
+
- If any approved surface is `partial` or `absent`, create explicit bootstrap/foundation packets before feature packets for that surface.
|
|
112
|
+
|
|
113
|
+
## Bootstrap / Foundation Rules
|
|
114
|
+
|
|
115
|
+
Bootstrap work is first-class packet work.
|
|
116
|
+
|
|
117
|
+
- Prefer clear packet names such as `000_repo-bootstrap`, `001_web-foundation`, `002_backend-foundation`, or `003_db-foundation`.
|
|
118
|
+
- Cover the minimum setup required to make later feature packets realistic:
|
|
119
|
+
- package manager / workspace initialization when missing
|
|
120
|
+
- framework scaffold or base module wiring
|
|
121
|
+
- required approved dependencies installation
|
|
122
|
+
- baseline config files and directory structure
|
|
123
|
+
- environment/example config wiring needed for local execution
|
|
124
|
+
- smoke-level verification such as install success, boot success, or schema generation success
|
|
125
|
+
- Downstream feature packets must list relevant foundation packet IDs in `선행 패킷`.
|
|
126
|
+
- Do not scatter the same installation or scaffold work across multiple feature packets.
|
|
127
|
+
|
|
128
|
+
Use these references while drafting:
|
|
129
|
+
|
|
130
|
+
- [references/work-packet-template.md](references/work-packet-template.md)
|
|
131
|
+
- [references/stitch-html-review.md](references/stitch-html-review.md) only when initial Stitch HTML exists and materially helps UI packet boundaries
|
|
132
|
+
|
|
133
|
+
## Glossary Rule
|
|
134
|
+
|
|
135
|
+
- Check `./docs/specs/baseline/01_glossary.md` only if packet wording could drift from established entity, state, or UI terminology.
|
|
136
|
+
- Do not run `spec-shared-glossary-sync` by default after packet generation. Run it only if packeting surfaced meaningful new terms or clear terminology collisions.
|
|
137
|
+
|
|
138
|
+
## Mermaid Rule
|
|
139
|
+
|
|
140
|
+
Include Mermaid only when dependency structure is hard to scan in prose.
|
|
141
|
+
|
|
142
|
+
- If packet count is 4 or more, or dependency order across backend/mobile/domain seams is hard to scan, prefer adding `00_packet-map.md`.
|
|
143
|
+
- Use graph TD for packet dependency DAGs.
|
|
144
|
+
- Skip Mermaid if packets are already linear and obvious.
|
|
145
|
+
|
|
146
|
+
If `00_packet-map.md` is created, packet files' `## 의존성` sections remain the canonical dependency source.
|
|
147
|
+
|
|
148
|
+
## Quality Bar
|
|
149
|
+
|
|
150
|
+
The packet set is not ready if:
|
|
151
|
+
|
|
152
|
+
- it assumes a framework scaffold that is absent from the repo
|
|
153
|
+
- dependencies are implied rather than explicit
|
|
154
|
+
- bootstrap work is hidden inside feature packets
|
|
155
|
+
- security trigger surfaces are not marked
|
|
156
|
+
- UI packets ignore approved UI spec or current visual guidance
|
|
157
|
+
- packets are too broad for one worker to implement safely
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
interface:
|
|
2
|
+
display_name: "spec-product-05-spec-to-work-packets"
|
|
3
|
+
short_description: "Split baseline specs into initial-build packets with repo-reality foundation work."
|
|
4
|
+
default_prompt: "Use $spec-product-05-spec-to-work-packets to convert the approved baseline spec set into initial-build Korean work packets under docs/specs/initial-build, checking the current repository against the approved stack and creating explicit foundation packets when required surfaces are missing."
|
|
5
|
+
policy:
|
|
6
|
+
allow_implicit_invocation: false
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Stitch HTML Review Checklist
|
|
2
|
+
|
|
3
|
+
Use this checklist before writing initial-build UI packets from Stitch output.
|
|
4
|
+
|
|
5
|
+
## Extract
|
|
6
|
+
|
|
7
|
+
- top-level screens represented by each HTML file
|
|
8
|
+
- repeated layout regions such as header, shell, side panel, footer
|
|
9
|
+
- major interactive blocks such as forms, tables, tabs, charts, filters
|
|
10
|
+
- visible state variants such as disabled, active, empty, loading-like placeholders, error copy
|
|
11
|
+
|
|
12
|
+
## Do Not Assume
|
|
13
|
+
|
|
14
|
+
- generated class names are production-ready structure
|
|
15
|
+
- every visual grouping should become a component
|
|
16
|
+
- missing states mean those states do not exist
|
|
17
|
+
- HTML output means the shipped product should be implemented as web markup
|
|
18
|
+
|
|
19
|
+
## Use For Packeting
|
|
20
|
+
|
|
21
|
+
- identify natural UI seams
|
|
22
|
+
- identify likely component boundaries
|
|
23
|
+
- identify stateful regions needing separate implementation work
|
|
24
|
+
- cross-check whether the generated visuals introduce behavior not present in the approved spec
|
|
25
|
+
- identify which approved layout hierarchy, CTA priority, copy grouping, and state presentation should survive target-platform translation
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# Work Packet Template
|
|
2
|
+
|
|
3
|
+
```md
|
|
4
|
+
# 001 패킷 제목
|
|
5
|
+
|
|
6
|
+
## 목표
|
|
7
|
+
|
|
8
|
+
- 이번 패킷이 끝나면 무엇이 가능해져야 하는가
|
|
9
|
+
- foundation 패킷이면 이후 기능 패킷이 실제 repo 위에서 시작 가능해야 한다.
|
|
10
|
+
|
|
11
|
+
## 범위
|
|
12
|
+
|
|
13
|
+
- 포함되는 변경 범위
|
|
14
|
+
- 설치, scaffold, config, env wiring만 다루는 foundation 패킷인지 여부를 명확히 적는다.
|
|
15
|
+
|
|
16
|
+
## 입력물
|
|
17
|
+
|
|
18
|
+
- `./docs/specs/baseline/05_technical-context.md`
|
|
19
|
+
- `./docs/specs/baseline/10_product-spec.md`
|
|
20
|
+
- 필요 시 `./docs/specs/baseline/20_ui-spec.md`
|
|
21
|
+
- 필요 시 `./docs/specs/baseline/22_stitch-assets/...`
|
|
22
|
+
- 필요 시 `./docs/specs/baseline/22_stitch-assets/DESIGN.md`
|
|
23
|
+
- 필요 시 `./docs/specs/baseline/24_design-tokens.md`
|
|
24
|
+
- 현재 repo의 관련 manifest / config / app 디렉터리 상태 (`package.json`, `pubspec.yaml`, `next.config.*`, `nest-cli.json`, `prisma/schema.prisma` 등)
|
|
25
|
+
|
|
26
|
+
## 산출물
|
|
27
|
+
|
|
28
|
+
- 기대 결과물
|
|
29
|
+
- foundation 패킷이면 생성되거나 정리될 scaffold, config, dependency install 결과를 적는다.
|
|
30
|
+
|
|
31
|
+
## 대상 파일 / 모듈
|
|
32
|
+
|
|
33
|
+
- 수정 또는 생성 대상
|
|
34
|
+
- 필요 시 `package.json`, lockfile, `pubspec.yaml`, `next.config.*`, `tailwind.config.*`, `components.json`, `nest-cli.json`, `src/main.ts`, `prisma/schema.prisma`, `apps/*`, `packages/*`, `lib/*` 같은 기반 파일을 명시한다.
|
|
35
|
+
|
|
36
|
+
## 승인 기준
|
|
37
|
+
|
|
38
|
+
- 기준 1
|
|
39
|
+
- 기준 2
|
|
40
|
+
- foundation 패킷이면 이후 패킷이 가정하는 framework scaffold와 dependency wiring이 repo에 실제로 존재해야 한다.
|
|
41
|
+
- foundation 패킷이면 최소 한 가지 smoke 검증 기준을 넣는다. 예: install 성공, dev boot 성공, schema generation 성공.
|
|
42
|
+
- UI 패킷이면 `20_ui-spec.md`와 initial visual guidance에서 승인된 화면 구조, CTA 우선순위, 상태 표현, 주요 인터랙션을 target platform에 맞게 보존해야 한다.
|
|
43
|
+
- 헤드리스 / 백엔드 패킷이면 화면 문서를 새로 만들지 않고 계약, 데이터 흐름, 운영 동작 기준으로 검증 가능해야 한다.
|
|
44
|
+
|
|
45
|
+
## 보안 검토
|
|
46
|
+
|
|
47
|
+
- 판정: 필요 / 불필요 / 확인 필요
|
|
48
|
+
- 트리거: auth / 권한 / 민감정보 / 업로드 / 외부 호출 / raw query / 렌더링 / tenant 경계 / 삭제 동작 중 해당 사항
|
|
49
|
+
- 구현 후 리뷰 조건: 필요 없으면 `없음`
|
|
50
|
+
|
|
51
|
+
## 테스트
|
|
52
|
+
|
|
53
|
+
- 테스트 1
|
|
54
|
+
- 테스트 2
|
|
55
|
+
- foundation 패킷이면 smoke test, install verification, scaffold verification, generated file presence 중 최소 하나를 넣는다.
|
|
56
|
+
|
|
57
|
+
## 의존성
|
|
58
|
+
|
|
59
|
+
- 선행 패킷: 없음 / `000_repo-bootstrap` / `001_xxx`
|
|
60
|
+
- 외부 결정 / 선행 계약: 없으면 `없음`
|
|
61
|
+
- 병렬 가능 후보: 없으면 `없음`
|
|
62
|
+
|
|
63
|
+
## 범위 제외
|
|
64
|
+
|
|
65
|
+
- 이번 패킷에서 다루지 않을 것
|
|
66
|
+
- foundation 패킷이면 실제 기능 구현, 세부 UI 완성, 비즈니스 로직은 범위 제외로 분리한다.
|
|
67
|
+
```
|